|
|
|
@@ -18,7 +18,7 @@
|
|
|
|
|
//! Autogenerated weights for pallet_staking
|
|
|
|
|
//!
|
|
|
|
|
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
|
|
|
|
//! DATE: 2021-09-04, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
|
|
|
//! DATE: 2021-11-29, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
|
|
|
|
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
|
|
|
|
|
|
|
|
|
|
// Executed Command:
|
|
|
|
@@ -35,7 +35,6 @@
|
|
|
|
|
// --output=./frame/staking/src/weights.rs
|
|
|
|
|
// --template=./.maintain/frame-weight-template.hbs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#![cfg_attr(rustfmt, rustfmt_skip)]
|
|
|
|
|
#![allow(unused_parens)]
|
|
|
|
|
#![allow(unused_imports)]
|
|
|
|
@@ -71,7 +70,7 @@ pub trait WeightInfo {
|
|
|
|
|
fn new_era(v: u32, n: u32, ) -> Weight;
|
|
|
|
|
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight;
|
|
|
|
|
fn get_npos_targets(v: u32, ) -> Weight;
|
|
|
|
|
fn set_staking_limits() -> Weight;
|
|
|
|
|
fn set_staking_configs() -> Weight;
|
|
|
|
|
fn chill_other() -> Weight;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -85,7 +84,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn bond() -> Weight {
|
|
|
|
|
(73_865_000 as Weight)
|
|
|
|
|
(63_660_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(5 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -95,7 +94,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList ListNodes (r:3 w:3)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn bond_extra() -> Weight {
|
|
|
|
|
(114_296_000 as Weight)
|
|
|
|
|
(103_672_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(8 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(7 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -109,7 +108,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:0)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn unbond() -> Weight {
|
|
|
|
|
(121_737_000 as Weight)
|
|
|
|
|
(110_884_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -118,7 +117,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: System Account (r:1 w:1)
|
|
|
|
|
fn withdraw_unbonded_update(s: u32, ) -> Weight {
|
|
|
|
|
(51_631_000 as Weight)
|
|
|
|
|
(46_379_000 as Weight)
|
|
|
|
|
// Standard Error: 0
|
|
|
|
|
.saturating_add((55_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(4 as Weight))
|
|
|
|
@@ -138,12 +137,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
|
|
|
|
|
(101_870_000 as Weight)
|
|
|
|
|
(91_303_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(13 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(11 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking MinValidatorBond (r:1 w:0)
|
|
|
|
|
// Storage: Staking MinCommission (r:1 w:0)
|
|
|
|
|
// Storage: Staking Validators (r:1 w:1)
|
|
|
|
|
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
@@ -153,16 +153,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
// Storage: Staking CounterForValidators (r:1 w:1)
|
|
|
|
|
fn validate() -> Weight {
|
|
|
|
|
(69_092_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
|
|
|
|
(66_587_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
|
fn kick(k: u32, ) -> Weight {
|
|
|
|
|
(21_468_000 as Weight)
|
|
|
|
|
// Standard Error: 19_000
|
|
|
|
|
.saturating_add((16_415_000 as Weight).saturating_mul(k as Weight))
|
|
|
|
|
(21_153_000 as Weight)
|
|
|
|
|
// Standard Error: 16_000
|
|
|
|
|
.saturating_add((13_502_000 as Weight).saturating_mul(k as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(k as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(k as Weight)))
|
|
|
|
@@ -179,9 +179,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn nominate(n: u32, ) -> Weight {
|
|
|
|
|
(82_389_000 as Weight)
|
|
|
|
|
// Standard Error: 14_000
|
|
|
|
|
.saturating_add((5_597_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(75_456_000 as Weight)
|
|
|
|
|
// Standard Error: 12_000
|
|
|
|
|
.saturating_add((5_051_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
|
|
|
@@ -194,47 +194,47 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn chill() -> Weight {
|
|
|
|
|
(69_655_000 as Weight)
|
|
|
|
|
(65_332_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(8 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn set_payee() -> Weight {
|
|
|
|
|
(12_770_000 as Weight)
|
|
|
|
|
(11_757_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:2 w:2)
|
|
|
|
|
fn set_controller() -> Weight {
|
|
|
|
|
(27_756_000 as Weight)
|
|
|
|
|
(24_252_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ValidatorCount (r:0 w:1)
|
|
|
|
|
fn set_validator_count() -> Weight {
|
|
|
|
|
(2_446_000 as Weight)
|
|
|
|
|
(2_252_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_no_eras() -> Weight {
|
|
|
|
|
(2_720_000 as Weight)
|
|
|
|
|
(2_431_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_new_era() -> Weight {
|
|
|
|
|
(2_711_000 as Weight)
|
|
|
|
|
(2_397_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_new_era_always() -> Weight {
|
|
|
|
|
(2_796_000 as Weight)
|
|
|
|
|
(2_423_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Invulnerables (r:0 w:1)
|
|
|
|
|
fn set_invulnerables(v: u32, ) -> Weight {
|
|
|
|
|
(3_141_000 as Weight)
|
|
|
|
|
(2_876_000 as Weight)
|
|
|
|
|
// Standard Error: 0
|
|
|
|
|
.saturating_add((53_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
@@ -253,18 +253,18 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
// Storage: Staking SpanSlash (r:0 w:2)
|
|
|
|
|
fn force_unstake(s: u32, ) -> Weight {
|
|
|
|
|
(97_394_000 as Weight)
|
|
|
|
|
// Standard Error: 2_000
|
|
|
|
|
.saturating_add((2_370_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
(87_540_000 as Weight)
|
|
|
|
|
// Standard Error: 1_000
|
|
|
|
|
.saturating_add((1_791_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking UnappliedSlashes (r:1 w:1)
|
|
|
|
|
fn cancel_deferred_slash(s: u32, ) -> Weight {
|
|
|
|
|
(2_783_746_000 as Weight)
|
|
|
|
|
// Standard Error: 182_000
|
|
|
|
|
.saturating_add((16_223_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
(2_769_801_000 as Weight)
|
|
|
|
|
// Standard Error: 181_000
|
|
|
|
|
.saturating_add((16_225_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -279,9 +279,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Payee (r:2 w:0)
|
|
|
|
|
// Storage: System Account (r:2 w:2)
|
|
|
|
|
fn payout_stakers_dead_controller(n: u32, ) -> Weight {
|
|
|
|
|
(109_233_000 as Weight)
|
|
|
|
|
// Standard Error: 17_000
|
|
|
|
|
.saturating_add((47_612_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(103_452_000 as Weight)
|
|
|
|
|
// Standard Error: 19_000
|
|
|
|
|
.saturating_add((42_909_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(10 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
|
|
|
@@ -299,9 +299,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: System Account (r:2 w:2)
|
|
|
|
|
// Storage: Balances Locks (r:2 w:2)
|
|
|
|
|
fn payout_stakers_alive_staked(n: u32, ) -> Weight {
|
|
|
|
|
(177_392_000 as Weight)
|
|
|
|
|
// Standard Error: 20_000
|
|
|
|
|
.saturating_add((60_771_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(145_995_000 as Weight)
|
|
|
|
|
// Standard Error: 27_000
|
|
|
|
|
.saturating_add((55_974_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
|
|
|
@@ -314,9 +314,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:0)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn rebond(l: u32, ) -> Weight {
|
|
|
|
|
(111_858_000 as Weight)
|
|
|
|
|
// Standard Error: 4_000
|
|
|
|
|
.saturating_add((36_000 as Weight).saturating_mul(l as Weight))
|
|
|
|
|
(101_568_000 as Weight)
|
|
|
|
|
// Standard Error: 2_000
|
|
|
|
|
.saturating_add((66_000 as Weight).saturating_mul(l as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(9 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -331,14 +331,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
|
|
|
|
fn set_history_depth(e: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 68_000
|
|
|
|
|
.saturating_add((33_495_000 as Weight).saturating_mul(e as Weight))
|
|
|
|
|
// Standard Error: 69_000
|
|
|
|
|
.saturating_add((29_939_000 as Weight).saturating_mul(e as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(2 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes((7 as Weight).saturating_mul(e as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: System Account (r:1 w:1)
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:1)
|
|
|
|
|
// Storage: Staking SlashingSpans (r:1 w:1)
|
|
|
|
|
// Storage: Staking Validators (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
@@ -347,14 +348,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:0 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
// Storage: Staking SpanSlash (r:0 w:1)
|
|
|
|
|
fn reap_stash(s: u32, ) -> Weight {
|
|
|
|
|
(100_178_000 as Weight)
|
|
|
|
|
(96_886_000 as Weight)
|
|
|
|
|
// Standard Error: 1_000
|
|
|
|
|
.saturating_add((2_358_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add((1_790_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(12 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
|
|
|
|
}
|
|
|
|
@@ -378,10 +378,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
|
|
|
|
fn new_era(v: u32, n: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 860_000
|
|
|
|
|
.saturating_add((298_721_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 873_000
|
|
|
|
|
.saturating_add((286_141_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 43_000
|
|
|
|
|
.saturating_add((49_427_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add((44_712_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(208 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
|
|
|
|
@@ -399,12 +399,10 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Nominators (r:1000 w:0)
|
|
|
|
|
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 91_000
|
|
|
|
|
.saturating_add((26_605_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 91_000
|
|
|
|
|
.saturating_add((31_481_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
// Standard Error: 3_122_000
|
|
|
|
|
.saturating_add((16_672_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
// Standard Error: 87_000
|
|
|
|
|
.saturating_add((24_049_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 87_000
|
|
|
|
|
.saturating_add((27_514_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(204 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
|
|
|
|
@@ -413,19 +411,20 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: Staking Validators (r:501 w:0)
|
|
|
|
|
fn get_npos_targets(v: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 34_000
|
|
|
|
|
.saturating_add((10_558_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 32_000
|
|
|
|
|
.saturating_add((10_128_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking MinCommission (r:0 w:1)
|
|
|
|
|
// Storage: Staking MinValidatorBond (r:0 w:1)
|
|
|
|
|
// Storage: Staking MaxValidatorsCount (r:0 w:1)
|
|
|
|
|
// Storage: Staking ChillThreshold (r:0 w:1)
|
|
|
|
|
// Storage: Staking MaxNominatorsCount (r:0 w:1)
|
|
|
|
|
// Storage: Staking MinNominatorBond (r:0 w:1)
|
|
|
|
|
fn set_staking_limits() -> Weight {
|
|
|
|
|
(6_353_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(5 as Weight))
|
|
|
|
|
fn set_staking_configs() -> Weight {
|
|
|
|
|
(6_187_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking ChillThreshold (r:1 w:0)
|
|
|
|
@@ -438,7 +437,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn chill_other() -> Weight {
|
|
|
|
|
(83_389_000 as Weight)
|
|
|
|
|
(78_282_000 as Weight)
|
|
|
|
|
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -453,7 +452,7 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn bond() -> Weight {
|
|
|
|
|
(73_865_000 as Weight)
|
|
|
|
|
(63_660_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -463,7 +462,7 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList ListNodes (r:3 w:3)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn bond_extra() -> Weight {
|
|
|
|
|
(114_296_000 as Weight)
|
|
|
|
|
(103_672_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(8 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(7 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -477,7 +476,7 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:0)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn unbond() -> Weight {
|
|
|
|
|
(121_737_000 as Weight)
|
|
|
|
|
(110_884_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -486,7 +485,7 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: System Account (r:1 w:1)
|
|
|
|
|
fn withdraw_unbonded_update(s: u32, ) -> Weight {
|
|
|
|
|
(51_631_000 as Weight)
|
|
|
|
|
(46_379_000 as Weight)
|
|
|
|
|
// Standard Error: 0
|
|
|
|
|
.saturating_add((55_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
|
|
|
|
@@ -506,12 +505,13 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
|
|
|
|
|
(101_870_000 as Weight)
|
|
|
|
|
(91_303_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(13 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(11 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking MinValidatorBond (r:1 w:0)
|
|
|
|
|
// Storage: Staking MinCommission (r:1 w:0)
|
|
|
|
|
// Storage: Staking Validators (r:1 w:1)
|
|
|
|
|
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
@@ -521,16 +521,16 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
// Storage: Staking CounterForValidators (r:1 w:1)
|
|
|
|
|
fn validate() -> Weight {
|
|
|
|
|
(69_092_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
|
|
|
|
(66_587_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
|
fn kick(k: u32, ) -> Weight {
|
|
|
|
|
(21_468_000 as Weight)
|
|
|
|
|
// Standard Error: 19_000
|
|
|
|
|
.saturating_add((16_415_000 as Weight).saturating_mul(k as Weight))
|
|
|
|
|
(21_153_000 as Weight)
|
|
|
|
|
// Standard Error: 16_000
|
|
|
|
|
.saturating_add((13_502_000 as Weight).saturating_mul(k as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(k as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(k as Weight)))
|
|
|
|
@@ -547,9 +547,9 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn nominate(n: u32, ) -> Weight {
|
|
|
|
|
(82_389_000 as Weight)
|
|
|
|
|
// Standard Error: 14_000
|
|
|
|
|
.saturating_add((5_597_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(75_456_000 as Weight)
|
|
|
|
|
// Standard Error: 12_000
|
|
|
|
|
.saturating_add((5_051_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
|
|
|
@@ -562,47 +562,47 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn chill() -> Weight {
|
|
|
|
|
(69_655_000 as Weight)
|
|
|
|
|
(65_332_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(8 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
fn set_payee() -> Weight {
|
|
|
|
|
(12_770_000 as Weight)
|
|
|
|
|
(11_757_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:2 w:2)
|
|
|
|
|
fn set_controller() -> Weight {
|
|
|
|
|
(27_756_000 as Weight)
|
|
|
|
|
(24_252_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ValidatorCount (r:0 w:1)
|
|
|
|
|
fn set_validator_count() -> Weight {
|
|
|
|
|
(2_446_000 as Weight)
|
|
|
|
|
(2_252_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_no_eras() -> Weight {
|
|
|
|
|
(2_720_000 as Weight)
|
|
|
|
|
(2_431_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_new_era() -> Weight {
|
|
|
|
|
(2_711_000 as Weight)
|
|
|
|
|
(2_397_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking ForceEra (r:0 w:1)
|
|
|
|
|
fn force_new_era_always() -> Weight {
|
|
|
|
|
(2_796_000 as Weight)
|
|
|
|
|
(2_423_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Invulnerables (r:0 w:1)
|
|
|
|
|
fn set_invulnerables(v: u32, ) -> Weight {
|
|
|
|
|
(3_141_000 as Weight)
|
|
|
|
|
(2_876_000 as Weight)
|
|
|
|
|
// Standard Error: 0
|
|
|
|
|
.saturating_add((53_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
@@ -621,18 +621,18 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
// Storage: Staking SpanSlash (r:0 w:2)
|
|
|
|
|
fn force_unstake(s: u32, ) -> Weight {
|
|
|
|
|
(97_394_000 as Weight)
|
|
|
|
|
// Standard Error: 2_000
|
|
|
|
|
.saturating_add((2_370_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
(87_540_000 as Weight)
|
|
|
|
|
// Standard Error: 1_000
|
|
|
|
|
.saturating_add((1_791_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking UnappliedSlashes (r:1 w:1)
|
|
|
|
|
fn cancel_deferred_slash(s: u32, ) -> Weight {
|
|
|
|
|
(2_783_746_000 as Weight)
|
|
|
|
|
// Standard Error: 182_000
|
|
|
|
|
.saturating_add((16_223_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
(2_769_801_000 as Weight)
|
|
|
|
|
// Standard Error: 181_000
|
|
|
|
|
.saturating_add((16_225_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -647,9 +647,9 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Payee (r:2 w:0)
|
|
|
|
|
// Storage: System Account (r:2 w:2)
|
|
|
|
|
fn payout_stakers_dead_controller(n: u32, ) -> Weight {
|
|
|
|
|
(109_233_000 as Weight)
|
|
|
|
|
// Standard Error: 17_000
|
|
|
|
|
.saturating_add((47_612_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(103_452_000 as Weight)
|
|
|
|
|
// Standard Error: 19_000
|
|
|
|
|
.saturating_add((42_909_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
|
|
|
@@ -667,9 +667,9 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: System Account (r:2 w:2)
|
|
|
|
|
// Storage: Balances Locks (r:2 w:2)
|
|
|
|
|
fn payout_stakers_alive_staked(n: u32, ) -> Weight {
|
|
|
|
|
(177_392_000 as Weight)
|
|
|
|
|
// Standard Error: 20_000
|
|
|
|
|
.saturating_add((60_771_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
(145_995_000 as Weight)
|
|
|
|
|
// Standard Error: 27_000
|
|
|
|
|
.saturating_add((55_974_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((5 as Weight).saturating_mul(n as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
|
|
|
@@ -682,9 +682,9 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:0)
|
|
|
|
|
// Storage: BagsList ListBags (r:2 w:2)
|
|
|
|
|
fn rebond(l: u32, ) -> Weight {
|
|
|
|
|
(111_858_000 as Weight)
|
|
|
|
|
// Standard Error: 4_000
|
|
|
|
|
.saturating_add((36_000 as Weight).saturating_mul(l as Weight))
|
|
|
|
|
(101_568_000 as Weight)
|
|
|
|
|
// Standard Error: 2_000
|
|
|
|
|
.saturating_add((66_000 as Weight).saturating_mul(l as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(9 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
|
|
|
|
|
}
|
|
|
|
@@ -699,14 +699,15 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
|
|
|
|
fn set_history_depth(e: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 68_000
|
|
|
|
|
.saturating_add((33_495_000 as Weight).saturating_mul(e as Weight))
|
|
|
|
|
// Standard Error: 69_000
|
|
|
|
|
.saturating_add((29_939_000 as Weight).saturating_mul(e as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes((7 as Weight).saturating_mul(e as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: System Account (r:1 w:1)
|
|
|
|
|
// Storage: Staking Bonded (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:1)
|
|
|
|
|
// Storage: Staking SlashingSpans (r:1 w:1)
|
|
|
|
|
// Storage: Staking Validators (r:1 w:0)
|
|
|
|
|
// Storage: Staking Nominators (r:1 w:1)
|
|
|
|
@@ -715,14 +716,13 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
// Storage: Balances Locks (r:1 w:1)
|
|
|
|
|
// Storage: Staking Ledger (r:0 w:1)
|
|
|
|
|
// Storage: Staking Payee (r:0 w:1)
|
|
|
|
|
// Storage: Staking SpanSlash (r:0 w:1)
|
|
|
|
|
fn reap_stash(s: u32, ) -> Weight {
|
|
|
|
|
(100_178_000 as Weight)
|
|
|
|
|
(96_886_000 as Weight)
|
|
|
|
|
// Standard Error: 1_000
|
|
|
|
|
.saturating_add((2_358_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add((1_790_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(12 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
|
|
|
|
}
|
|
|
|
@@ -746,10 +746,10 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
|
|
|
|
fn new_era(v: u32, n: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 860_000
|
|
|
|
|
.saturating_add((298_721_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 873_000
|
|
|
|
|
.saturating_add((286_141_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 43_000
|
|
|
|
|
.saturating_add((49_427_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add((44_712_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(208 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
|
|
|
|
@@ -767,12 +767,10 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Nominators (r:1000 w:0)
|
|
|
|
|
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 91_000
|
|
|
|
|
.saturating_add((26_605_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 91_000
|
|
|
|
|
.saturating_add((31_481_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
// Standard Error: 3_122_000
|
|
|
|
|
.saturating_add((16_672_000 as Weight).saturating_mul(s as Weight))
|
|
|
|
|
// Standard Error: 87_000
|
|
|
|
|
.saturating_add((24_049_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 87_000
|
|
|
|
|
.saturating_add((27_514_000 as Weight).saturating_mul(n as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(204 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
|
|
|
|
@@ -781,19 +779,20 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: Staking Validators (r:501 w:0)
|
|
|
|
|
fn get_npos_targets(v: u32, ) -> Weight {
|
|
|
|
|
(0 as Weight)
|
|
|
|
|
// Standard Error: 34_000
|
|
|
|
|
.saturating_add((10_558_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
// Standard Error: 32_000
|
|
|
|
|
.saturating_add((10_128_000 as Weight).saturating_mul(v as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking MinCommission (r:0 w:1)
|
|
|
|
|
// Storage: Staking MinValidatorBond (r:0 w:1)
|
|
|
|
|
// Storage: Staking MaxValidatorsCount (r:0 w:1)
|
|
|
|
|
// Storage: Staking ChillThreshold (r:0 w:1)
|
|
|
|
|
// Storage: Staking MaxNominatorsCount (r:0 w:1)
|
|
|
|
|
// Storage: Staking MinNominatorBond (r:0 w:1)
|
|
|
|
|
fn set_staking_limits() -> Weight {
|
|
|
|
|
(6_353_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
|
|
|
|
|
fn set_staking_configs() -> Weight {
|
|
|
|
|
(6_187_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
|
// Storage: Staking Ledger (r:1 w:0)
|
|
|
|
|
// Storage: Staking ChillThreshold (r:1 w:0)
|
|
|
|
@@ -806,7 +805,7 @@ impl WeightInfo for () {
|
|
|
|
|
// Storage: BagsList ListBags (r:1 w:1)
|
|
|
|
|
// Storage: BagsList CounterForListNodes (r:1 w:1)
|
|
|
|
|
fn chill_other() -> Weight {
|
|
|
|
|
(83_389_000 as Weight)
|
|
|
|
|
(78_282_000 as Weight)
|
|
|
|
|
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
|
|
|
|
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
|
|
|
|
}
|
|
|
|
|