// This file is part of Substrate.

// Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0

// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// 	http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//! Autogenerated weights for `pallet_sassafras`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2023-11-16, STEPS: `20`, REPEAT: `3`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `behemoth`, CPU: `AMD Ryzen Threadripper 3970X 32-Core Processor`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024`

// Executed Command:
// ./target/release/node-template
// benchmark
// pallet
// --chain
// dev
// --pallet
// pallet_sassafras
// --extrinsic
// *
// --steps
// 20
// --repeat
// 3
// --output
// weights.rs
// --template
// substrate/.maintain/frame-weight-template.hbs

#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]
#![allow(missing_docs)]

use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}};
use core::marker::PhantomData;

/// Weight functions needed for `pallet_sassafras`.
pub trait WeightInfo {
	fn on_initialize() -> Weight;
	fn enact_epoch_change(x: u32, y: u32, ) -> Weight;
	fn submit_tickets(x: u32, ) -> Weight;
	fn plan_config_change() -> Weight;
	fn update_ring_verifier(x: u32, ) -> Weight;
	fn load_ring_context() -> Weight;
	fn sort_segments(x: u32, ) -> Weight;
}

/// Weights for `pallet_sassafras` using the Substrate node and recommended hardware.
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
	/// Storage: `System::Digest` (r:1 w:1)
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:0)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:0)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentRandomness` (r:1 w:0)
	/// Proof: `Sassafras::CurrentRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:0)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RandomnessAccumulator` (r:1 w:1)
	/// Proof: `Sassafras::RandomnessAccumulator` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentSlot` (r:0 w:1)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::ClaimTemporaryData` (r:0 w:1)
	/// Proof: `Sassafras::ClaimTemporaryData` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:0 w:1)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	fn on_initialize() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `302`
		//  Estimated: `4787`
		// Minimum execution time: 438_039_000 picoseconds.
		Weight::from_parts(439_302_000, 4787)
			.saturating_add(T::DbWeight::get().reads(6_u64))
			.saturating_add(T::DbWeight::get().writes(5_u64))
	}
	/// Storage: `Sassafras::CurrentSlot` (r:1 w:0)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:1)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:1 w:0)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:1)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsMeta` (r:1 w:1)
	/// Proof: `Sassafras::TicketsMeta` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:1)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RandomnessAccumulator` (r:1 w:0)
	/// Proof: `Sassafras::RandomnessAccumulator` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextEpochConfig` (r:1 w:1)
	/// Proof: `Sassafras::NextEpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::PendingEpochConfigChange` (r:1 w:1)
	/// Proof: `Sassafras::PendingEpochConfigChange` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `System::Digest` (r:1 w:1)
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `Sassafras::SortedCandidates` (r:1 w:0)
	/// Proof: `Sassafras::SortedCandidates` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:79 w:79)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsIds` (r:5000 w:200)
	/// Proof: `Sassafras::TicketsIds` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::Authorities` (r:0 w:1)
	/// Proof: `Sassafras::Authorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:0 w:9896)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:0 w:1)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochConfig` (r:0 w:1)
	/// Proof: `Sassafras::EpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentRandomness` (r:0 w:1)
	/// Proof: `Sassafras::CurrentRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	/// The range of component `y` is `[1000, 5000]`.
	fn enact_epoch_change(x: u32, y: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `594909 + x * (33 ±0) + y * (53 ±0)`
		//  Estimated: `593350 + x * (24 ±1) + y * (2496 ±0)`
		// Minimum execution time: 121_279_846_000 picoseconds.
		Weight::from_parts(94_454_851_972, 593350)
			// Standard Error: 24_177_301
			.saturating_add(Weight::from_parts(8_086_191, 0).saturating_mul(x.into()))
			// Standard Error: 601_053
			.saturating_add(Weight::from_parts(15_578_413, 0).saturating_mul(y.into()))
			.saturating_add(T::DbWeight::get().reads(13_u64))
			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into())))
			.saturating_add(T::DbWeight::get().writes(112_u64))
			.saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(y.into())))
			.saturating_add(Weight::from_parts(0, 24).saturating_mul(x.into()))
			.saturating_add(Weight::from_parts(0, 2496).saturating_mul(y.into()))
	}
	/// Storage: `Sassafras::CurrentSlot` (r:1 w:0)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:0)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:1 w:0)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:1 w:0)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:0)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextEpochConfig` (r:1 w:0)
	/// Proof: `Sassafras::NextEpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:0)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:25 w:25)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsMeta` (r:1 w:1)
	/// Proof: `Sassafras::TicketsMeta` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:1 w:1)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 25]`.
	fn submit_tickets(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `3869`
		//  Estimated: `5519 + x * (2559 ±0)`
		// Minimum execution time: 36_904_934_000 picoseconds.
		Weight::from_parts(25_822_957_295, 5519)
			// Standard Error: 11_047_832
			.saturating_add(Weight::from_parts(11_338_353_299, 0).saturating_mul(x.into()))
			.saturating_add(T::DbWeight::get().reads(9_u64))
			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
			.saturating_add(T::DbWeight::get().writes(2_u64))
			.saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(x.into())))
			.saturating_add(Weight::from_parts(0, 2559).saturating_mul(x.into()))
	}
	/// Storage: `Sassafras::PendingEpochConfigChange` (r:0 w:1)
	/// Proof: `Sassafras::PendingEpochConfigChange` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	fn plan_config_change() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `0`
		//  Estimated: `0`
		// Minimum execution time: 4_038_000 picoseconds.
		Weight::from_parts(4_499_000, 0)
			.saturating_add(T::DbWeight::get().writes(1_u64))
	}
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:0 w:1)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	fn update_ring_verifier(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `590485`
		//  Estimated: `591809`
		// Minimum execution time: 105_121_424_000 picoseconds.
		Weight::from_parts(105_527_334_385, 591809)
			// Standard Error: 2_933_910
			.saturating_add(Weight::from_parts(96_136_261, 0).saturating_mul(x.into()))
			.saturating_add(T::DbWeight::get().reads(1_u64))
			.saturating_add(T::DbWeight::get().writes(1_u64))
	}
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	fn load_ring_context() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `590485`
		//  Estimated: `591809`
		// Minimum execution time: 44_005_681_000 picoseconds.
		Weight::from_parts(44_312_079_000, 591809)
			.saturating_add(T::DbWeight::get().reads(1_u64))
	}
	/// Storage: `Sassafras::SortedCandidates` (r:1 w:0)
	/// Proof: `Sassafras::SortedCandidates` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:100 w:100)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsIds` (r:0 w:200)
	/// Proof: `Sassafras::TicketsIds` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:0 w:12600)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	fn sort_segments(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `222 + x * (2060 ±0)`
		//  Estimated: `4687 + x * (4529 ±0)`
		// Minimum execution time: 183_501_000 picoseconds.
		Weight::from_parts(183_501_000, 4687)
			// Standard Error: 1_426_363
			.saturating_add(Weight::from_parts(169_156_241, 0).saturating_mul(x.into()))
			.saturating_add(T::DbWeight::get().reads(1_u64))
			.saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into())))
			.saturating_add(T::DbWeight::get().writes((129_u64).saturating_mul(x.into())))
			.saturating_add(Weight::from_parts(0, 4529).saturating_mul(x.into()))
	}
}

// For backwards compatibility and tests.
impl WeightInfo for () {
	/// Storage: `System::Digest` (r:1 w:1)
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:0)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:0)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentRandomness` (r:1 w:0)
	/// Proof: `Sassafras::CurrentRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:0)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RandomnessAccumulator` (r:1 w:1)
	/// Proof: `Sassafras::RandomnessAccumulator` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentSlot` (r:0 w:1)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::ClaimTemporaryData` (r:0 w:1)
	/// Proof: `Sassafras::ClaimTemporaryData` (`max_values`: Some(1), `max_size`: Some(33), added: 528, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:0 w:1)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	fn on_initialize() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `302`
		//  Estimated: `4787`
		// Minimum execution time: 438_039_000 picoseconds.
		Weight::from_parts(439_302_000, 4787)
			.saturating_add(RocksDbWeight::get().reads(6_u64))
			.saturating_add(RocksDbWeight::get().writes(5_u64))
	}
	/// Storage: `Sassafras::CurrentSlot` (r:1 w:0)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:1)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:1 w:0)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:1)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsMeta` (r:1 w:1)
	/// Proof: `Sassafras::TicketsMeta` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:1)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RandomnessAccumulator` (r:1 w:0)
	/// Proof: `Sassafras::RandomnessAccumulator` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextEpochConfig` (r:1 w:1)
	/// Proof: `Sassafras::NextEpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::PendingEpochConfigChange` (r:1 w:1)
	/// Proof: `Sassafras::PendingEpochConfigChange` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `System::Digest` (r:1 w:1)
	/// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
	/// Storage: `Sassafras::SortedCandidates` (r:1 w:0)
	/// Proof: `Sassafras::SortedCandidates` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:79 w:79)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsIds` (r:5000 w:200)
	/// Proof: `Sassafras::TicketsIds` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::Authorities` (r:0 w:1)
	/// Proof: `Sassafras::Authorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:0 w:9896)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:0 w:1)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochConfig` (r:0 w:1)
	/// Proof: `Sassafras::EpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::CurrentRandomness` (r:0 w:1)
	/// Proof: `Sassafras::CurrentRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	/// The range of component `y` is `[1000, 5000]`.
	fn enact_epoch_change(x: u32, y: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `594909 + x * (33 ±0) + y * (53 ±0)`
		//  Estimated: `593350 + x * (24 ±1) + y * (2496 ±0)`
		// Minimum execution time: 121_279_846_000 picoseconds.
		Weight::from_parts(94_454_851_972, 593350)
			// Standard Error: 24_177_301
			.saturating_add(Weight::from_parts(8_086_191, 0).saturating_mul(x.into()))
			// Standard Error: 601_053
			.saturating_add(Weight::from_parts(15_578_413, 0).saturating_mul(y.into()))
			.saturating_add(RocksDbWeight::get().reads(13_u64))
			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(y.into())))
			.saturating_add(RocksDbWeight::get().writes(112_u64))
			.saturating_add(RocksDbWeight::get().writes((2_u64).saturating_mul(y.into())))
			.saturating_add(Weight::from_parts(0, 24).saturating_mul(x.into()))
			.saturating_add(Weight::from_parts(0, 2496).saturating_mul(y.into()))
	}
	/// Storage: `Sassafras::CurrentSlot` (r:1 w:0)
	/// Proof: `Sassafras::CurrentSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::EpochIndex` (r:1 w:0)
	/// Proof: `Sassafras::EpochIndex` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::GenesisSlot` (r:1 w:0)
	/// Proof: `Sassafras::GenesisSlot` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:1 w:0)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextAuthorities` (r:1 w:0)
	/// Proof: `Sassafras::NextAuthorities` (`max_values`: Some(1), `max_size`: Some(3302), added: 3797, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextEpochConfig` (r:1 w:0)
	/// Proof: `Sassafras::NextEpochConfig` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::NextRandomness` (r:1 w:0)
	/// Proof: `Sassafras::NextRandomness` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:25 w:25)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsMeta` (r:1 w:1)
	/// Proof: `Sassafras::TicketsMeta` (`max_values`: Some(1), `max_size`: Some(12), added: 507, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:1 w:1)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 25]`.
	fn submit_tickets(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `3869`
		//  Estimated: `5519 + x * (2559 ±0)`
		// Minimum execution time: 36_904_934_000 picoseconds.
		Weight::from_parts(25_822_957_295, 5519)
			// Standard Error: 11_047_832
			.saturating_add(Weight::from_parts(11_338_353_299, 0).saturating_mul(x.into()))
			.saturating_add(RocksDbWeight::get().reads(9_u64))
			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(x.into())))
			.saturating_add(RocksDbWeight::get().writes(2_u64))
			.saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(x.into())))
			.saturating_add(Weight::from_parts(0, 2559).saturating_mul(x.into()))
	}
	/// Storage: `Sassafras::PendingEpochConfigChange` (r:0 w:1)
	/// Proof: `Sassafras::PendingEpochConfigChange` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`)
	fn plan_config_change() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `0`
		//  Estimated: `0`
		// Minimum execution time: 4_038_000 picoseconds.
		Weight::from_parts(4_499_000, 0)
			.saturating_add(RocksDbWeight::get().writes(1_u64))
	}
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::RingVerifierData` (r:0 w:1)
	/// Proof: `Sassafras::RingVerifierData` (`max_values`: Some(1), `max_size`: Some(388), added: 883, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	fn update_ring_verifier(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `590485`
		//  Estimated: `591809`
		// Minimum execution time: 105_121_424_000 picoseconds.
		Weight::from_parts(105_527_334_385, 591809)
			// Standard Error: 2_933_910
			.saturating_add(Weight::from_parts(96_136_261, 0).saturating_mul(x.into()))
			.saturating_add(RocksDbWeight::get().reads(1_u64))
			.saturating_add(RocksDbWeight::get().writes(1_u64))
	}
	/// Storage: `Sassafras::RingContext` (r:1 w:0)
	/// Proof: `Sassafras::RingContext` (`max_values`: Some(1), `max_size`: Some(590324), added: 590819, mode: `MaxEncodedLen`)
	fn load_ring_context() -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `590485`
		//  Estimated: `591809`
		// Minimum execution time: 44_005_681_000 picoseconds.
		Weight::from_parts(44_312_079_000, 591809)
			.saturating_add(RocksDbWeight::get().reads(1_u64))
	}
	/// Storage: `Sassafras::SortedCandidates` (r:1 w:0)
	/// Proof: `Sassafras::SortedCandidates` (`max_values`: Some(1), `max_size`: Some(3202), added: 3697, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::UnsortedSegments` (r:100 w:100)
	/// Proof: `Sassafras::UnsortedSegments` (`max_values`: None, `max_size`: Some(2054), added: 4529, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsIds` (r:0 w:200)
	/// Proof: `Sassafras::TicketsIds` (`max_values`: None, `max_size`: Some(21), added: 2496, mode: `MaxEncodedLen`)
	/// Storage: `Sassafras::TicketsData` (r:0 w:12600)
	/// Proof: `Sassafras::TicketsData` (`max_values`: None, `max_size`: Some(84), added: 2559, mode: `MaxEncodedLen`)
	/// The range of component `x` is `[1, 100]`.
	fn sort_segments(x: u32, ) -> Weight {
		// Proof Size summary in bytes:
		//  Measured:  `222 + x * (2060 ±0)`
		//  Estimated: `4687 + x * (4529 ±0)`
		// Minimum execution time: 183_501_000 picoseconds.
		Weight::from_parts(183_501_000, 4687)
			// Standard Error: 1_426_363
			.saturating_add(Weight::from_parts(169_156_241, 0).saturating_mul(x.into()))
			.saturating_add(RocksDbWeight::get().reads(1_u64))
			.saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(x.into())))
			.saturating_add(RocksDbWeight::get().writes((129_u64).saturating_mul(x.into())))
			.saturating_add(Weight::from_parts(0, 4529).saturating_mul(x.into()))
	}
}
