pub mod keys {
use super::super::override_map::Key;
pub const RTT_ALPHA: Key<f64> = Key::new("TYPHOON_RTT_ALPHA", 0.125);
pub const RTT_BETA: Key<f64> = Key::new("TYPHOON_RTT_BETA", 0.25);
pub const RTT_DEFAULT: Key<u64> = Key::new("TYPHOON_RTT_DEFAULT", 5000);
pub const RTT_MIN: Key<u64> = Key::new("TYPHOON_RTT_MIN", 200);
pub const RTT_MAX: Key<u64> = Key::new("TYPHOON_RTT_MAX", 8000);
pub const TIMEOUT_DEFAULT: Key<u64> = Key::new("TYPHOON_TIMEOUT_DEFAULT", 30000);
pub const TIMEOUT_MIN: Key<u64> = Key::new("TYPHOON_TIMEOUT_MIN", 4000);
pub const TIMEOUT_MAX: Key<u64> = Key::new("TYPHOON_TIMEOUT_MAX", 32000);
pub const TIMEOUT_RTT_FACTOR: Key<f64> = Key::new("TYPHOON_TIMEOUT_RTT_FACTOR", 5.0);
pub const HEALTH_CHECK_NEXT_IN_MIN: Key<u64> = Key::new("TYPHOON_HEALTH_CHECK_NEXT_IN_MIN", 64_000);
pub const HEALTH_CHECK_NEXT_IN_MAX: Key<u64> = Key::new("TYPHOON_HEALTH_CHECK_NEXT_IN_MAX", 256_000);
pub const HANDSHAKE_NEXT_IN_FACTOR: Key<f64> = Key::new("TYPHOON_HANDSHAKE_NEXT_IN_FACTOR", 0.02);
pub const MAX_RETRIES: Key<u64> = Key::new("TYPHOON_MAX_RETRIES", 12);
pub const RECEIVE_BUFFER_SIZE: Key<u64> = Key::new("TYPHOON_RECEIVE_BUFFER_SIZE", 512);
pub const SEND_BYTES_JITTER: Key<f64> = Key::new("TYPHOON_SEND_BYTES_JITTER", 0.2);
pub const SEND_BYTES_CHUNK: Key<u64> = Key::new("TYPHOON_SEND_BYTES_CHUNK", 0);
pub const FAKE_BODY_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_FAKE_BODY_LENGTH_MIN", 32);
pub const FAKE_BODY_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_FAKE_BODY_LENGTH_MAX", 512);
pub const FAKE_BODY_CONSTANT_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_FAKE_BODY_CONSTANT_LENGTH_MIN", 256);
pub const FAKE_BODY_CONSTANT_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_FAKE_BODY_CONSTANT_LENGTH_MAX", 1400);
pub const FAKE_HEADER_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_LENGTH_MIN", 4);
pub const FAKE_HEADER_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_LENGTH_MAX", 32);
pub const FAKE_HEADER_PROBABILITY: Key<f64> = Key::new("TYPHOON_FAKE_HEADER_PROBABILITY", 0.60);
pub const DECOY_FALLTHROUGH_PACKETS_MIN: Key<f64> = Key::new("TYPHOON_DECOY_FALLTHROUGH_PACKETS_MIN", 0.0);
pub const DECOY_FALLTHROUGH_PACKETS_MAX: Key<f64> = Key::new("TYPHOON_DECOY_FALLTHROUGH_PACKETS_MAX", 0.25);
pub const FAKE_BODY_WEIGHT_EMPTY: Key<u64> = Key::new("TYPHOON_FAKE_BODY_WEIGHT_EMPTY", 1);
pub const FAKE_BODY_WEIGHT_RANDOM: Key<u64> = Key::new("TYPHOON_FAKE_BODY_WEIGHT_RANDOM", 5);
pub const FAKE_BODY_WEIGHT_CONSTANT: Key<u64> = Key::new("TYPHOON_FAKE_BODY_WEIGHT_CONSTANT", 1);
pub const FAKE_BODY_WEIGHT_SERVICE: Key<u64> = Key::new("TYPHOON_FAKE_BODY_WEIGHT_SERVICE", 1);
pub const FAKE_HEADER_FIELD_WEIGHT_RANDOM: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_FIELD_WEIGHT_RANDOM", 1);
pub const FAKE_HEADER_FIELD_WEIGHT_CONSTANT: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_FIELD_WEIGHT_CONSTANT", 1);
pub const FAKE_HEADER_FIELD_WEIGHT_VOLATILE: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_FIELD_WEIGHT_VOLATILE", 1);
pub const FAKE_HEADER_FIELD_WEIGHT_SWITCHING: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_FIELD_WEIGHT_SWITCHING", 1);
pub const FAKE_HEADER_FIELD_WEIGHT_INCREMENTAL: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_FIELD_WEIGHT_INCREMENTAL", 1);
pub const FAKE_HEADER_VOLATILE_CHANGE_PROB_MIN: Key<f64> = Key::new("TYPHOON_FAKE_HEADER_VOLATILE_CHANGE_PROB_MIN", 0.01);
pub const FAKE_HEADER_VOLATILE_CHANGE_PROB_MAX: Key<f64> = Key::new("TYPHOON_FAKE_HEADER_VOLATILE_CHANGE_PROB_MAX", 0.20);
pub const FAKE_HEADER_SWITCHING_TIMEOUT_MIN_MS: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_SWITCHING_TIMEOUT_MIN_MS", 1000);
pub const FAKE_HEADER_SWITCHING_TIMEOUT_MAX_MS: Key<u64> = Key::new("TYPHOON_FAKE_HEADER_SWITCHING_TIMEOUT_MAX_MS", 30000);
pub const DECOY_REFERENCE_PACKET_RATE_DEFAULT: Key<f64> = Key::new("TYPHOON_DECOY_REFERENCE_PACKET_RATE_DEFAULT", 200.0);
pub const DECOY_CURRENT_PACKET_RATE_DEFAULT: Key<f64> = Key::new("TYPHOON_DECOY_CURRENT_PACKET_RATE_DEFAULT", 1.0);
pub const DECOY_CURRENT_BYTE_RATE_DEFAULT: Key<f64> = Key::new("TYPHOON_DECOY_CURRENT_BYTE_RATE_DEFAULT", 5000.0);
pub const DECOY_BYTE_RATE_CAP: Key<f64> = Key::new("TYPHOON_DECOY_BYTE_RATE_CAP", 1_000_000.0);
pub const DECOY_BYTE_RATE_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_BYTE_RATE_FACTOR", 3.0);
pub const DECOY_CURRENT_ALPHA: Key<f64> = Key::new("TYPHOON_DECOY_CURRENT_ALPHA", 0.05);
pub const DECOY_REFERENCE_ALPHA: Key<f64> = Key::new("TYPHOON_DECOY_REFERENCE_ALPHA", 0.001);
pub const DECOY_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_LENGTH_MAX", 1400);
pub const DECOY_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_LENGTH_MIN", 64);
pub const DECOY_BASE_RATE_RND: Key<f64> = Key::new("TYPHOON_DECOY_BASE_RATE_RND", 0.25);
pub const DECOY_HEAVY_BASE_RATE: Key<f64> = Key::new("TYPHOON_DECOY_HEAVY_BASE_RATE", 0.1);
pub const DECOY_HEAVY_QUIETNESS_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_HEAVY_QUIETNESS_FACTOR", 3.0);
pub const DECOY_HEAVY_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_HEAVY_DELAY_MIN", 5000);
pub const DECOY_HEAVY_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_HEAVY_DELAY_MAX", 300_000);
pub const DECOY_HEAVY_DELAY_DEFAULT: Key<u64> = Key::new("TYPHOON_DECOY_HEAVY_DELAY_DEFAULT", 64000);
pub const DECOY_HEAVY_BASE_LENGTH: Key<f64> = Key::new("TYPHOON_DECOY_HEAVY_BASE_LENGTH", 0.7);
pub const DECOY_HEAVY_QUIETNESS_LENGTH: Key<f64> = Key::new("TYPHOON_DECOY_HEAVY_QUIETNESS_LENGTH", 0.3);
pub const DECOY_HEAVY_DECOY_LENGTH_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_HEAVY_DECOY_LENGTH_FACTOR", 0.8);
pub const DECOY_HEAVY_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_HEAVY_LENGTH_MIN", 560);
pub const DECOY_NOISY_BASE_RATE: Key<f64> = Key::new("TYPHOON_DECOY_NOISY_BASE_RATE", 5.0);
pub const DECOY_NOISY_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_NOISY_DELAY_MIN", 30);
pub const DECOY_NOISY_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_NOISY_DELAY_MAX", 2000);
pub const DECOY_NOISY_DELAY_DEFAULT: Key<u64> = Key::new("TYPHOON_DECOY_NOISY_DELAY_DEFAULT", 500);
pub const DECOY_NOISY_DECOY_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_NOISY_DECOY_LENGTH_MIN", 64);
pub const DECOY_NOISY_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_NOISY_LENGTH_MAX", 800);
pub const DECOY_NOISY_DECOY_LENGTH_JITTER: Key<f64> = Key::new("TYPHOON_DECOY_NOISY_DECOY_LENGTH_JITTER", 0.3);
pub const DECOY_SPARSE_BASE_RATE: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_BASE_RATE", 20.0);
pub const DECOY_SPARSE_RATE_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_RATE_FACTOR", 3.0);
pub const DECOY_SPARSE_JITTER: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_JITTER", 0.15);
pub const DECOY_SPARSE_DELAY_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_DELAY_FACTOR", 3.0);
pub const DECOY_SPARSE_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_SPARSE_DELAY_MIN", 30);
pub const DECOY_SPARSE_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_SPARSE_DELAY_MAX", 2000);
pub const DECOY_SPARSE_DELAY_DEFAULT: Key<u64> = Key::new("TYPHOON_DECOY_SPARSE_DELAY_DEFAULT", 100);
pub const DECOY_SPARSE_LENGTH_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_LENGTH_FACTOR", 700.0);
pub const DECOY_SPARSE_LENGTH_SIGMA: Key<f64> = Key::new("TYPHOON_DECOY_SPARSE_LENGTH_SIGMA", 250.0);
pub const DECOY_SPARSE_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_SPARSE_LENGTH_MIN", 64);
pub const DECOY_SPARSE_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_SPARSE_LENGTH_MAX", 1400);
pub const DECOY_SMOOTH_BASE_RATE: Key<f64> = Key::new("TYPHOON_DECOY_SMOOTH_BASE_RATE", 0.3);
pub const DECOY_SMOOTH_QUIETNESS_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SMOOTH_QUIETNESS_FACTOR", 2.0);
pub const DECOY_SMOOTH_RATE_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SMOOTH_RATE_FACTOR", 3.0);
pub const DECOY_SMOOTH_JITTER: Key<f64> = Key::new("TYPHOON_DECOY_SMOOTH_JITTER", 0.2);
pub const DECOY_SMOOTH_DELAY_FACTOR: Key<f64> = Key::new("TYPHOON_DECOY_SMOOTH_DELAY_FACTOR", 2.0);
pub const DECOY_SMOOTH_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_SMOOTH_DELAY_MIN", 300);
pub const DECOY_SMOOTH_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_SMOOTH_DELAY_MAX", 300_000);
pub const DECOY_SMOOTH_DELAY_DEFAULT: Key<u64> = Key::new("TYPHOON_DECOY_SMOOTH_DELAY_DEFAULT", 5000);
pub const DECOY_SMOOTH_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_SMOOTH_LENGTH_MIN", 48);
pub const DECOY_SMOOTH_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_SMOOTH_LENGTH_MAX", 1100);
pub const DECOY_MAINTENANCE_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_LENGTH_MIN", 250);
pub const DECOY_MAINTENANCE_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_LENGTH_MAX", 250);
pub const DECOY_MAINTENANCE_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_DELAY_MIN", 3000);
pub const DECOY_MAINTENANCE_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_DELAY_MAX", 720_000);
pub const DECOY_MAINTENANCE_WEIGHT_NONE: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_WEIGHT_NONE", 3);
pub const DECOY_MAINTENANCE_WEIGHT_RANDOM: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_WEIGHT_RANDOM", 1);
pub const DECOY_MAINTENANCE_WEIGHT_TIMED: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_WEIGHT_TIMED", 1);
pub const DECOY_MAINTENANCE_WEIGHT_SIZED: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_WEIGHT_SIZED", 1);
pub const DECOY_MAINTENANCE_WEIGHT_BOTH: Key<u64> = Key::new("TYPHOON_DECOY_MAINTENANCE_WEIGHT_BOTH", 1);
pub const DECOY_REPLICATION_PROBABILITY_MIN: Key<f64> = Key::new("TYPHOON_DECOY_REPLICATION_PROBABILITY_MIN", 0.01);
pub const DECOY_REPLICATION_PROBABILITY_MAX: Key<f64> = Key::new("TYPHOON_DECOY_REPLICATION_PROBABILITY_MAX", 0.1);
pub const DECOY_REPLICATION_PROBABILITY_REDUCE: Key<f64> = Key::new("TYPHOON_DECOY_REPLICATION_PROBABILITY_REDUCE", 3.0);
pub const DECOY_REPLICATION_DELAY_MIN: Key<u64> = Key::new("TYPHOON_DECOY_REPLICATION_DELAY_MIN", 2500);
pub const DECOY_REPLICATION_DELAY_MAX: Key<u64> = Key::new("TYPHOON_DECOY_REPLICATION_DELAY_MAX", 10000);
pub const DECOY_REPLICATION_WEIGHT_NONE: Key<u64> = Key::new("TYPHOON_DECOY_REPLICATION_WEIGHT_NONE", 3);
pub const DECOY_REPLICATION_WEIGHT_MAINTENANCE: Key<u64> = Key::new("TYPHOON_DECOY_REPLICATION_WEIGHT_MAINTENANCE", 1);
pub const DECOY_REPLICATION_WEIGHT_ALL: Key<u64> = Key::new("TYPHOON_DECOY_REPLICATION_WEIGHT_ALL", 1);
pub const DECOY_SUBHEADER_LENGTH_MIN: Key<u64> = Key::new("TYPHOON_DECOY_SUBHEADER_LENGTH_MIN", 4);
pub const DECOY_SUBHEADER_LENGTH_MAX: Key<u64> = Key::new("TYPHOON_DECOY_SUBHEADER_LENGTH_MAX", 16);
pub const DECOY_SUBHEADER_WEIGHT_NONE: Key<u64> = Key::new("TYPHOON_DECOY_SUBHEADER_WEIGHT_NONE", 1);
pub const DECOY_SUBHEADER_WEIGHT_MAINTENANCE: Key<u64> = Key::new("TYPHOON_DECOY_SUBHEADER_WEIGHT_MAINTENANCE", 1);
pub const DECOY_SUBHEADER_WEIGHT_ALL: Key<u64> = Key::new("TYPHOON_DECOY_SUBHEADER_WEIGHT_ALL", 1);
pub const DECOY_PROVIDER_WEIGHT_SIMPLE: Key<u64> = Key::new("TYPHOON_DECOY_PROVIDER_WEIGHT_SIMPLE", 2);
pub const DECOY_PROVIDER_WEIGHT_SPARSE: Key<u64> = Key::new("TYPHOON_DECOY_PROVIDER_WEIGHT_SPARSE", 2);
pub const DECOY_PROVIDER_WEIGHT_NOISY: Key<u64> = Key::new("TYPHOON_DECOY_PROVIDER_WEIGHT_NOISY", 1);
pub const DECOY_PROVIDER_WEIGHT_SMOOTH: Key<u64> = Key::new("TYPHOON_DECOY_PROVIDER_WEIGHT_SMOOTH", 3);
pub const DECOY_PROVIDER_WEIGHT_HEAVY: Key<u64> = Key::new("TYPHOON_DECOY_PROVIDER_WEIGHT_HEAVY", 1);
pub const DRAIN_CHANNEL_CAPACITY: Key<u64> = Key::new("TYPHOON_DRAIN_CHANNEL_CAPACITY", 8192);
pub const DEBUG_PROBE_COUNT: Key<u64> = Key::new("TYPHOON_DEBUG_PROBE_COUNT", 10);
pub const DEBUG_PROBE_SIZE: Key<u64> = Key::new("TYPHOON_DEBUG_PROBE_SIZE", 65000);
pub const DEBUG_PROBE_TIMEOUT: Key<u64> = Key::new("TYPHOON_DEBUG_PROBE_TIMEOUT", 5000);
}
pub mod consts {
pub const DEFAULT_POOL_INITIAL_SIZE: usize = 128;
pub const DEFAULT_POOL_CAPACITY: usize = 2 << 15;
pub const DEFAULT_TYPHOON_MTU_LENGTH: usize = 1500;
pub const DEFAULT_TYPHOON_ID_LENGTH: usize = 16;
pub const TAILER_LENGTH: usize = 16;
pub const FG_OFFSET: usize = 0;
pub const CD_OFFSET: usize = 1;
pub const TM_OFFSET: usize = 2;
pub const PN_OFFSET: usize = 6;
pub const PL_OFFSET: usize = 14;
pub const ID_OFFSET: usize = 16;
}