use ::codec::Decode;
pub const API_METADATA_BYTES: &'static [u8] = &[
25u8, 11u8, 0u8, 12u8, 28u8, 115u8, 112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 24u8, 99u8, 114u8,
121u8, 112u8, 116u8, 111u8, 44u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
51u8, 50u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 51u8, 50u8, 93u8,
0u8, 0u8, 4u8, 0u8, 0u8, 3u8, 32u8, 0u8, 0u8, 0u8, 8u8, 0u8, 8u8, 0u8, 0u8, 5u8, 3u8, 0u8, 12u8,
8u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8,
44u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 102u8, 111u8, 8u8, 20u8, 73u8,
110u8, 100u8, 101u8, 120u8, 1u8, 16u8, 44u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 68u8,
97u8, 116u8, 97u8, 1u8, 20u8, 0u8, 20u8, 1u8, 20u8, 110u8, 111u8, 110u8, 99u8, 101u8, 16u8, 1u8,
20u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 36u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8,
101u8, 114u8, 115u8, 16u8, 1u8, 32u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8,
1u8, 36u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 115u8, 16u8, 1u8, 32u8, 82u8,
101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 1u8, 44u8, 115u8, 117u8, 102u8, 102u8,
105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 115u8, 16u8, 1u8, 32u8, 82u8, 101u8, 102u8, 67u8, 111u8,
117u8, 110u8, 116u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8, 20u8, 1u8, 44u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 68u8, 97u8, 116u8, 97u8, 0u8, 0u8, 16u8, 0u8, 0u8, 5u8, 5u8, 0u8,
20u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8,
109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8,
24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
115u8, 44u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 68u8, 97u8, 116u8, 97u8, 0u8, 0u8,
16u8, 1u8, 16u8, 102u8, 114u8, 101u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 1u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 44u8, 109u8, 105u8, 115u8, 99u8,
95u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 1u8, 40u8, 102u8, 101u8, 101u8, 95u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8,
24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 24u8, 0u8, 0u8, 5u8, 7u8,
0u8, 28u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8,
114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 64u8, 80u8, 101u8, 114u8,
68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 4u8, 4u8,
84u8, 1u8, 32u8, 0u8, 12u8, 1u8, 24u8, 110u8, 111u8, 114u8, 109u8, 97u8, 108u8, 32u8, 1u8, 4u8,
84u8, 0u8, 1u8, 44u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8,
32u8, 1u8, 4u8, 84u8, 0u8, 1u8, 36u8, 109u8, 97u8, 110u8, 100u8, 97u8, 116u8, 111u8, 114u8,
121u8, 32u8, 1u8, 4u8, 84u8, 0u8, 0u8, 32u8, 0u8, 0u8, 5u8, 6u8, 0u8, 36u8, 8u8, 60u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 95u8, 116u8, 121u8, 112u8, 101u8, 115u8,
16u8, 72u8, 50u8, 53u8, 54u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 88u8, 91u8, 117u8, 56u8, 59u8, 32u8,
47u8, 42u8, 194u8, 171u8, 42u8, 47u8, 32u8, 51u8, 50u8, 32u8, 47u8, 42u8, 194u8, 187u8, 42u8,
47u8, 93u8, 0u8, 0u8, 40u8, 0u8, 0u8, 2u8, 8u8, 0u8, 44u8, 16u8, 40u8, 115u8, 112u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 28u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8, 99u8,
24u8, 100u8, 105u8, 103u8, 101u8, 115u8, 116u8, 24u8, 68u8, 105u8, 103u8, 101u8, 115u8, 116u8,
0u8, 0u8, 4u8, 1u8, 16u8, 108u8, 111u8, 103u8, 115u8, 48u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8,
68u8, 105u8, 103u8, 101u8, 115u8, 116u8, 73u8, 116u8, 101u8, 109u8, 62u8, 0u8, 0u8, 48u8, 0u8,
0u8, 2u8, 52u8, 0u8, 52u8, 16u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 28u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8, 99u8, 24u8, 100u8, 105u8, 103u8,
101u8, 115u8, 116u8, 40u8, 68u8, 105u8, 103u8, 101u8, 115u8, 116u8, 73u8, 116u8, 101u8, 109u8,
0u8, 1u8, 20u8, 40u8, 80u8, 114u8, 101u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 8u8,
0u8, 56u8, 1u8, 68u8, 67u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 69u8, 110u8,
103u8, 105u8, 110u8, 101u8, 73u8, 100u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8,
117u8, 56u8, 62u8, 0u8, 6u8, 0u8, 36u8, 67u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8,
115u8, 8u8, 0u8, 56u8, 1u8, 68u8, 67u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8,
69u8, 110u8, 103u8, 105u8, 110u8, 101u8, 73u8, 100u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 4u8, 0u8, 16u8, 83u8, 101u8, 97u8, 108u8, 8u8, 0u8, 56u8,
1u8, 68u8, 67u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 69u8, 110u8, 103u8,
105u8, 110u8, 101u8, 73u8, 100u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 5u8, 0u8, 20u8, 79u8, 116u8, 104u8, 101u8, 114u8, 4u8, 0u8, 40u8, 1u8, 28u8,
86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 0u8, 100u8, 82u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 69u8, 110u8, 118u8, 105u8, 114u8, 111u8, 110u8, 109u8, 101u8, 110u8, 116u8,
85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 0u8, 8u8, 0u8, 0u8, 56u8, 0u8, 0u8, 3u8, 4u8, 0u8,
0u8, 0u8, 8u8, 0u8, 60u8, 0u8, 0u8, 2u8, 64u8, 0u8, 64u8, 8u8, 48u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 44u8, 69u8, 118u8, 101u8, 110u8, 116u8,
82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 8u8, 4u8, 69u8, 1u8, 68u8, 4u8, 84u8, 1u8, 36u8, 0u8,
12u8, 1u8, 20u8, 112u8, 104u8, 97u8, 115u8, 101u8, 105u8, 4u8, 1u8, 20u8, 80u8, 104u8, 97u8,
115u8, 101u8, 0u8, 1u8, 20u8, 101u8, 118u8, 101u8, 110u8, 116u8, 68u8, 1u8, 4u8, 69u8, 0u8, 1u8,
24u8, 116u8, 111u8, 112u8, 105u8, 99u8, 115u8, 109u8, 4u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8,
84u8, 62u8, 0u8, 0u8, 68u8, 12u8, 96u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 95u8, 100u8, 101u8, 118u8, 101u8, 108u8,
111u8, 112u8, 28u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 20u8, 69u8, 118u8, 101u8,
110u8, 116u8, 0u8, 1u8, 168u8, 24u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 4u8, 0u8, 72u8,
1u8, 112u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8,
58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 62u8, 0u8, 0u8, 0u8, 28u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 4u8, 0u8, 108u8,
1u8, 120u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 110u8, 100u8, 105u8, 99u8,
101u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 62u8, 0u8, 3u8, 0u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
115u8, 4u8, 0u8, 112u8, 1u8, 124u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 5u8, 0u8, 32u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 4u8, 0u8, 136u8, 1u8, 124u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 58u8, 58u8, 69u8, 118u8, 101u8,
110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 7u8, 0u8, 76u8,
67u8, 100u8, 100u8, 83u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 80u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 114u8, 115u8, 4u8, 0u8, 25u8, 1u8, 1u8, 212u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 73u8, 110u8, 115u8,
116u8, 97u8, 110u8, 99u8, 101u8, 50u8, 62u8, 0u8, 8u8, 0u8, 68u8, 80u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 4u8,
0u8, 37u8, 1u8, 1u8, 244u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8,
82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 73u8,
110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 49u8, 62u8, 0u8, 9u8, 0u8, 76u8, 67u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
104u8, 105u8, 112u8, 4u8, 0u8, 57u8, 1u8, 1u8, 212u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8,
82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8,
110u8, 99u8, 101u8, 49u8, 62u8, 0u8, 10u8, 0u8, 72u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8,
99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 65u8,
1u8, 1u8, 244u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 73u8, 110u8, 115u8,
116u8, 97u8, 110u8, 99u8, 101u8, 51u8, 62u8, 0u8, 11u8, 0u8, 112u8, 84u8, 101u8, 99u8, 104u8,
110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 4u8, 0u8, 73u8, 1u8, 1u8,
212u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 58u8,
58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8,
58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 51u8, 62u8, 0u8, 12u8, 0u8,
64u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 4u8, 0u8, 81u8, 1u8, 1u8, 244u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 69u8, 118u8,
101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8,
101u8, 58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 52u8, 62u8, 0u8, 13u8,
0u8, 104u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8,
4u8, 0u8, 89u8, 1u8, 1u8, 212u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8,
111u8, 117u8, 112u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8,
114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8,
52u8, 62u8, 0u8, 14u8, 0u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 4u8, 0u8,
97u8, 1u8, 1u8, 124u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 15u8, 0u8, 24u8, 66u8, 114u8, 105u8, 100u8, 103u8,
101u8, 4u8, 0u8, 109u8, 1u8, 1u8, 116u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8,
114u8, 105u8, 100u8, 103u8, 101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 16u8, 0u8, 28u8, 83u8, 116u8, 97u8, 107u8,
105u8, 110u8, 103u8, 4u8, 0u8, 129u8, 1u8, 1u8, 120u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 17u8, 0u8, 32u8, 79u8,
102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 115u8, 4u8, 0u8, 145u8, 1u8, 1u8, 88u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 115u8, 58u8,
58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 18u8, 0u8, 28u8, 83u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 4u8, 0u8, 153u8, 1u8, 1u8, 84u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8,
0u8, 19u8, 0u8, 28u8, 71u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 4u8, 0u8, 157u8, 1u8, 1u8,
84u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8,
97u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 21u8, 0u8, 32u8, 73u8, 109u8, 79u8,
110u8, 108u8, 105u8, 110u8, 101u8, 4u8, 0u8, 177u8, 1u8, 1u8, 128u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 58u8, 58u8,
69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8,
0u8, 23u8, 0u8, 16u8, 83u8, 117u8, 100u8, 111u8, 4u8, 0u8, 213u8, 1u8, 1u8, 108u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 117u8, 100u8, 111u8, 58u8, 58u8, 69u8, 118u8, 101u8,
110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 25u8, 0u8, 20u8,
65u8, 115u8, 115u8, 101u8, 116u8, 4u8, 0u8, 217u8, 1u8, 1u8, 112u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 26u8, 0u8, 76u8, 67u8,
97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 101u8, 2u8, 1u8, 136u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 95u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 0u8, 27u8, 0u8, 40u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
4u8, 0u8, 125u8, 2u8, 1u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 0u8, 28u8, 0u8, 68u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8,
77u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 4u8, 0u8, 157u8, 2u8, 1u8, 128u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8,
101u8, 95u8, 109u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 58u8, 58u8, 69u8, 118u8, 101u8,
110u8, 116u8, 0u8, 29u8, 0u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8,
65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 209u8, 2u8, 1u8, 124u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8,
30u8, 0u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 4u8, 0u8, 5u8, 3u8, 1u8, 120u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 31u8, 0u8, 16u8, 80u8,
105u8, 112u8, 115u8, 4u8, 0u8, 61u8, 3u8, 1u8, 108u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 112u8, 105u8, 112u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 33u8, 0u8, 36u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 4u8, 0u8, 125u8, 3u8, 1u8, 92u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 58u8, 58u8,
69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 34u8, 0u8, 44u8, 80u8, 114u8, 111u8, 116u8, 111u8, 99u8,
111u8, 108u8, 70u8, 101u8, 101u8, 4u8, 0u8, 141u8, 3u8, 1u8, 140u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 95u8, 102u8, 101u8,
101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 35u8, 0u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8,
114u8, 4u8, 0u8, 149u8, 3u8, 1u8, 128u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8,
116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 36u8, 0u8, 40u8, 83u8,
101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 4u8, 0u8, 161u8, 3u8, 1u8, 132u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8,
101u8, 110u8, 116u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 37u8, 0u8, 40u8, 83u8, 116u8, 97u8, 116u8, 105u8, 115u8,
116u8, 105u8, 99u8, 115u8, 4u8, 0u8, 205u8, 3u8, 1u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 58u8, 58u8,
69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 38u8, 0u8, 12u8, 83u8, 116u8, 111u8, 4u8, 0u8, 17u8, 4u8,
1u8, 104u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 58u8, 58u8, 69u8,
118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8,
39u8, 0u8, 32u8, 84u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 4u8, 0u8, 45u8, 4u8, 1u8,
124u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8,
114u8, 121u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 62u8, 0u8, 40u8, 0u8, 28u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8,
4u8, 0u8, 49u8, 4u8, 1u8, 84u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 121u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 41u8, 0u8,
16u8, 66u8, 97u8, 115u8, 101u8, 4u8, 0u8, 65u8, 4u8, 1u8, 72u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 98u8, 97u8, 115u8, 101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 42u8,
0u8, 56u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 65u8, 103u8, 101u8, 110u8,
116u8, 115u8, 4u8, 0u8, 73u8, 4u8, 1u8, 116u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 95u8, 97u8, 103u8, 101u8, 110u8, 116u8,
115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 43u8, 0u8, 28u8, 82u8, 101u8, 108u8,
97u8, 121u8, 101u8, 114u8, 4u8, 0u8, 77u8, 4u8, 1u8, 120u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 114u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 58u8, 58u8, 69u8, 118u8, 101u8,
110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 44u8, 0u8, 28u8,
82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 4u8, 0u8, 81u8, 4u8, 1u8, 120u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 58u8, 58u8,
69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8,
0u8, 45u8, 0u8, 36u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 4u8, 0u8, 85u8,
4u8, 1u8, 128u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 46u8, 0u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 4u8, 0u8, 89u8, 4u8,
1u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 47u8,
0u8, 32u8, 80u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 4u8, 0u8, 93u8, 4u8, 1u8, 124u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8,
101u8, 58u8, 58u8, 69u8, 118u8, 101u8, 110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 48u8, 0u8, 36u8, 84u8, 101u8, 115u8, 116u8, 85u8, 116u8, 105u8, 108u8,
115u8, 4u8, 0u8, 97u8, 4u8, 1u8, 132u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 116u8,
101u8, 115u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 115u8, 58u8, 58u8, 69u8, 118u8, 101u8,
110u8, 116u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 50u8, 0u8, 0u8,
72u8, 12u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8,
109u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8,
4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 64u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 83u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 4u8, 1u8, 52u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 95u8, 105u8, 110u8, 102u8, 111u8, 76u8, 1u8, 48u8, 68u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 73u8, 110u8, 102u8, 111u8, 0u8, 0u8, 4u8, 144u8, 65u8, 110u8,
32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8,
102u8, 117u8, 108u8, 108u8, 121u8, 46u8, 60u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 8u8, 1u8, 56u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 95u8, 101u8, 114u8, 114u8, 111u8, 114u8, 88u8, 1u8, 52u8, 68u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 1u8, 52u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 95u8, 105u8, 110u8, 102u8, 111u8, 76u8, 1u8, 48u8,
68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 73u8, 110u8, 102u8, 111u8, 0u8, 1u8, 4u8,
80u8, 65u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8,
102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 46u8, 44u8, 67u8, 111u8, 100u8, 101u8, 85u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 0u8, 2u8, 4u8, 80u8, 96u8, 58u8, 99u8, 111u8, 100u8, 101u8,
96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 40u8,
78u8, 101u8, 119u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 4u8, 1u8, 28u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 3u8, 4u8, 104u8, 65u8, 32u8, 110u8, 101u8, 119u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8,
97u8, 116u8, 101u8, 100u8, 46u8, 52u8, 75u8, 105u8, 108u8, 108u8, 101u8, 100u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 4u8, 1u8, 28u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 4u8,
4u8, 88u8, 65u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8, 97u8,
115u8, 32u8, 114u8, 101u8, 97u8, 112u8, 101u8, 100u8, 46u8, 32u8, 82u8, 101u8, 109u8, 97u8,
114u8, 107u8, 101u8, 100u8, 8u8, 1u8, 24u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 0u8, 1u8,
48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8,
0u8, 5u8, 4u8, 112u8, 79u8, 110u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8,
32u8, 114u8, 101u8, 109u8, 97u8, 114u8, 107u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8,
101u8, 100u8, 46u8, 4u8, 112u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 46u8, 76u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8,
115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
115u8, 48u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 73u8, 110u8, 102u8, 111u8, 0u8,
0u8, 12u8, 1u8, 24u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 1u8, 24u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 20u8, 99u8, 108u8, 97u8, 115u8, 115u8, 80u8, 1u8, 52u8,
68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 0u8, 1u8,
32u8, 112u8, 97u8, 121u8, 115u8, 95u8, 102u8, 101u8, 101u8, 84u8, 1u8, 16u8, 80u8, 97u8, 121u8,
115u8, 0u8, 0u8, 80u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8,
112u8, 111u8, 114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 52u8, 68u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 0u8, 1u8, 12u8,
24u8, 78u8, 111u8, 114u8, 109u8, 97u8, 108u8, 0u8, 0u8, 0u8, 44u8, 79u8, 112u8, 101u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 0u8, 1u8, 0u8, 36u8, 77u8, 97u8, 110u8, 100u8,
97u8, 116u8, 111u8, 114u8, 121u8, 0u8, 2u8, 0u8, 0u8, 84u8, 12u8, 52u8, 102u8, 114u8, 97u8,
109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 115u8, 16u8, 80u8, 97u8, 121u8, 115u8, 0u8, 1u8, 8u8, 12u8, 89u8, 101u8,
115u8, 0u8, 0u8, 0u8, 8u8, 78u8, 111u8, 0u8, 1u8, 0u8, 0u8, 88u8, 8u8, 40u8, 115u8, 112u8, 95u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 52u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 1u8, 40u8, 20u8, 79u8, 116u8, 104u8, 101u8,
114u8, 0u8, 0u8, 0u8, 48u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 76u8, 111u8, 111u8, 107u8,
117u8, 112u8, 0u8, 1u8, 0u8, 36u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8,
0u8, 2u8, 0u8, 24u8, 77u8, 111u8, 100u8, 117u8, 108u8, 101u8, 4u8, 0u8, 92u8, 1u8, 44u8, 77u8,
111u8, 100u8, 117u8, 108u8, 101u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 3u8, 0u8, 68u8, 67u8,
111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 114u8, 82u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8,
110u8, 103u8, 0u8, 4u8, 0u8, 44u8, 78u8, 111u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
114u8, 115u8, 0u8, 5u8, 0u8, 64u8, 84u8, 111u8, 111u8, 77u8, 97u8, 110u8, 121u8, 67u8, 111u8,
110u8, 115u8, 117u8, 109u8, 101u8, 114u8, 115u8, 0u8, 6u8, 0u8, 20u8, 84u8, 111u8, 107u8, 101u8,
110u8, 4u8, 0u8, 96u8, 1u8, 40u8, 84u8, 111u8, 107u8, 101u8, 110u8, 69u8, 114u8, 114u8, 111u8,
114u8, 0u8, 7u8, 0u8, 40u8, 65u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8,
4u8, 0u8, 100u8, 1u8, 60u8, 65u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8,
69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 8u8, 0u8, 52u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 4u8, 0u8, 104u8, 1u8, 72u8, 84u8, 114u8, 97u8,
110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 69u8, 114u8, 114u8, 111u8,
114u8, 0u8, 9u8, 0u8, 0u8, 92u8, 8u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 44u8, 77u8, 111u8, 100u8, 117u8, 108u8, 101u8, 69u8, 114u8, 114u8, 111u8,
114u8, 0u8, 0u8, 8u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 8u8, 1u8, 8u8, 117u8, 56u8,
0u8, 1u8, 20u8, 101u8, 114u8, 114u8, 111u8, 114u8, 56u8, 1u8, 140u8, 91u8, 117u8, 56u8, 59u8,
32u8, 77u8, 65u8, 88u8, 95u8, 77u8, 79u8, 68u8, 85u8, 76u8, 69u8, 95u8, 69u8, 82u8, 82u8, 79u8,
82u8, 95u8, 69u8, 78u8, 67u8, 79u8, 68u8, 69u8, 68u8, 95u8, 83u8, 73u8, 90u8, 69u8, 93u8, 0u8,
0u8, 96u8, 8u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 40u8,
84u8, 111u8, 107u8, 101u8, 110u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 1u8, 28u8, 28u8, 78u8,
111u8, 70u8, 117u8, 110u8, 100u8, 115u8, 0u8, 0u8, 0u8, 32u8, 87u8, 111u8, 117u8, 108u8, 100u8,
68u8, 105u8, 101u8, 0u8, 1u8, 0u8, 48u8, 66u8, 101u8, 108u8, 111u8, 119u8, 77u8, 105u8, 110u8,
105u8, 109u8, 117u8, 109u8, 0u8, 2u8, 0u8, 48u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 67u8,
114u8, 101u8, 97u8, 116u8, 101u8, 0u8, 3u8, 0u8, 48u8, 85u8, 110u8, 107u8, 110u8, 111u8, 119u8,
110u8, 65u8, 115u8, 115u8, 101u8, 116u8, 0u8, 4u8, 0u8, 24u8, 70u8, 114u8, 111u8, 122u8, 101u8,
110u8, 0u8, 5u8, 0u8, 44u8, 85u8, 110u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 101u8,
100u8, 0u8, 6u8, 0u8, 0u8, 100u8, 8u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 60u8, 65u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8,
69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 1u8, 12u8, 36u8, 85u8, 110u8, 100u8, 101u8, 114u8, 102u8,
108u8, 111u8, 119u8, 0u8, 0u8, 0u8, 32u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8,
0u8, 1u8, 0u8, 56u8, 68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 111u8, 110u8, 66u8, 121u8, 90u8,
101u8, 114u8, 111u8, 0u8, 2u8, 0u8, 0u8, 104u8, 8u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 72u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 97u8, 108u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 1u8, 8u8, 48u8, 76u8,
105u8, 109u8, 105u8, 116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 0u8, 0u8, 0u8, 28u8,
78u8, 111u8, 76u8, 97u8, 121u8, 101u8, 114u8, 0u8, 1u8, 0u8, 0u8, 108u8, 12u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 24u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 4u8, 84u8, 0u8,
1u8, 12u8, 52u8, 73u8, 110u8, 100u8, 101u8, 120u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 8u8, 1u8, 12u8, 119u8, 104u8, 111u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8,
16u8, 1u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 0u8, 4u8, 116u8, 65u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 115u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 40u8, 73u8, 110u8, 100u8, 101u8, 120u8, 70u8,
114u8, 101u8, 101u8, 100u8, 4u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 60u8,
84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8,
0u8, 1u8, 4u8, 188u8, 65u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8,
110u8, 100u8, 101u8, 120u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
102u8, 114u8, 101u8, 101u8, 100u8, 32u8, 117u8, 112u8, 32u8, 40u8, 117u8, 110u8, 97u8, 115u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 41u8, 46u8, 44u8, 73u8, 110u8, 100u8, 101u8, 120u8,
70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 8u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8,
1u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8,
101u8, 120u8, 0u8, 1u8, 12u8, 119u8, 104u8, 111u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 2u8, 4u8, 232u8, 65u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 32u8,
116u8, 111u8, 32u8, 105u8, 116u8, 115u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 73u8, 68u8, 46u8, 4u8, 153u8, 1u8,
10u8, 9u8, 9u8, 9u8, 84u8, 104u8, 101u8, 32u8, 91u8, 101u8, 118u8, 101u8, 110u8, 116u8, 93u8,
40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8,
115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8,
51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8,
116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8,
32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 10u8, 9u8, 9u8, 9u8, 98u8, 121u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8,
9u8, 112u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8,
111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8,
115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 115u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 28u8, 28u8, 69u8, 110u8, 100u8,
111u8, 119u8, 101u8, 100u8, 12u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 0u8,
1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 4u8, 49u8, 1u8, 65u8, 110u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8,
116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8,
102u8, 114u8, 101u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 32u8, 92u8,
91u8, 100u8, 105u8, 100u8, 44u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8,
102u8, 114u8, 101u8, 101u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 93u8, 32u8, 84u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 24u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
62u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 124u8, 1u8, 48u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8,
101u8, 109u8, 111u8, 62u8, 0u8, 1u8, 4u8, 244u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 40u8, 102u8,
114u8, 111u8, 109u8, 95u8, 100u8, 105u8, 100u8, 44u8, 32u8, 102u8, 114u8, 111u8, 109u8, 44u8,
32u8, 116u8, 111u8, 95u8, 100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 111u8, 44u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 44u8, 32u8, 109u8, 101u8, 109u8, 111u8, 41u8, 46u8, 40u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 83u8, 101u8, 116u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
2u8, 4u8, 212u8, 65u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 119u8, 97u8,
115u8, 32u8, 115u8, 101u8, 116u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 32u8,
40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 119u8, 104u8, 111u8, 44u8, 32u8, 102u8, 114u8, 101u8,
101u8, 44u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 41u8, 46u8, 80u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 66u8,
117u8, 114u8, 110u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 3u8, 8u8, 61u8, 1u8, 84u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8,
32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
119u8, 97u8, 115u8, 32u8, 98u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8, 140u8, 40u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 73u8, 100u8, 44u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 41u8, 32u8, 82u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 8u8, 0u8, 0u8,
1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 4u8, 4u8, 25u8, 1u8, 83u8, 111u8, 109u8, 101u8,
32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8,
115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 40u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 102u8, 114u8, 101u8, 101u8, 32u8, 116u8, 111u8, 32u8, 114u8,
101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 41u8, 46u8, 32u8, 92u8, 91u8, 119u8, 104u8,
111u8, 44u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 93u8, 40u8, 85u8, 110u8, 114u8, 101u8,
115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 8u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 5u8, 4u8, 33u8, 1u8, 83u8, 111u8, 109u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 110u8, 114u8, 101u8, 115u8, 101u8,
114u8, 118u8, 101u8, 100u8, 32u8, 40u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 102u8, 114u8, 101u8, 101u8, 41u8, 46u8, 32u8, 92u8, 91u8, 119u8, 104u8, 111u8, 44u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 93u8, 72u8, 82u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8,
82u8, 101u8, 112u8, 97u8, 116u8, 114u8, 105u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8, 0u8, 1u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 132u8, 1u8, 24u8, 83u8, 116u8, 97u8, 116u8, 117u8,
115u8, 0u8, 6u8, 12u8, 77u8, 1u8, 83u8, 111u8, 109u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8,
118u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8, 115u8,
116u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 46u8, 216u8, 70u8, 105u8, 110u8, 97u8, 108u8, 32u8, 97u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 110u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 121u8,
112u8, 101u8, 46u8, 160u8, 92u8, 91u8, 102u8, 114u8, 111u8, 109u8, 44u8, 32u8, 116u8, 111u8,
44u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 100u8, 101u8, 115u8, 116u8,
105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
93u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 116u8, 4u8, 24u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 120u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 120u8, 0u8, 0u8, 1u8,
0u8, 0u8, 120u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 44u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 95u8, 105u8, 100u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 56u8, 91u8, 117u8, 56u8, 59u8, 32u8,
85u8, 85u8, 73u8, 68u8, 95u8, 76u8, 69u8, 78u8, 93u8, 0u8, 0u8, 124u8, 4u8, 24u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 128u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8,
101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 128u8, 0u8, 0u8, 1u8, 0u8, 0u8,
128u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8,
109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8,
24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
115u8, 16u8, 77u8, 101u8, 109u8, 111u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8, 56u8,
59u8, 32u8, 51u8, 50u8, 93u8, 0u8, 0u8, 132u8, 20u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8,
95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8,
115u8, 24u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 16u8, 109u8, 105u8, 115u8, 99u8, 52u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8,
8u8, 16u8, 70u8, 114u8, 101u8, 101u8, 0u8, 0u8, 0u8, 32u8, 82u8, 101u8, 115u8, 101u8, 114u8,
118u8, 101u8, 100u8, 0u8, 1u8, 0u8, 0u8, 136u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8,
108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8,
101u8, 110u8, 116u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8,
0u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 1u8, 32u8, 1u8, 72u8, 40u8, 68u8, 105u8,
100u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 140u8, 1u8, 112u8, 86u8, 101u8, 99u8,
60u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 60u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 0u8, 12u8, 68u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8,
100u8, 46u8, 0u8, 136u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8,
114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 44u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 41u8, 72u8, 83u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 65u8, 100u8, 100u8, 101u8, 100u8,
8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 140u8, 1u8, 112u8, 86u8, 101u8, 99u8, 60u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 62u8, 0u8, 1u8, 12u8, 132u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 60u8, 40u8, 68u8,
73u8, 68u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 107u8, 101u8, 121u8, 115u8, 41u8, 80u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 232u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 2u8, 12u8, 148u8, 83u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 128u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8,
116u8, 104u8, 101u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
103u8, 111u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 41u8, 96u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 76u8, 101u8, 102u8,
116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 3u8, 12u8, 144u8, 65u8, 32u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 108u8,
101u8, 102u8, 116u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 80u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 41u8, 120u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 80u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
0u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 0u8, 0u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 0u8, 4u8, 12u8, 136u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8,
32u8, 107u8, 101u8, 121u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 13u8, 1u8, 40u8,
68u8, 73u8, 68u8, 44u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 44u8, 32u8, 112u8,
114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 41u8, 68u8, 80u8, 114u8, 105u8, 109u8,
97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 5u8, 12u8, 128u8, 80u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8,
101u8, 100u8, 46u8, 0u8, 164u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8, 32u8,
112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 73u8, 68u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 73u8,
68u8, 41u8, 40u8, 67u8, 108u8, 97u8, 105u8, 109u8, 65u8, 100u8, 100u8, 101u8, 100u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
236u8, 1u8, 52u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 67u8, 108u8, 97u8,
105u8, 109u8, 0u8, 6u8, 12u8, 96u8, 67u8, 108u8, 97u8, 105u8, 109u8, 32u8, 97u8, 100u8, 100u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 0u8, 48u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 41u8, 48u8,
67u8, 108u8, 97u8, 105u8, 109u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 8u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 236u8,
1u8, 52u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 67u8, 108u8, 97u8, 105u8,
109u8, 0u8, 7u8, 12u8, 112u8, 67u8, 108u8, 97u8, 105u8, 109u8, 32u8, 114u8, 101u8, 118u8, 111u8,
107u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 46u8, 0u8, 48u8, 40u8, 68u8, 73u8, 68u8, 44u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 41u8, 72u8, 65u8, 115u8, 115u8, 101u8, 116u8, 68u8, 105u8, 100u8, 82u8, 101u8,
103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 8u8, 12u8, 112u8, 65u8, 115u8, 115u8, 101u8, 116u8, 39u8, 115u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 114u8, 101u8, 103u8, 105u8,
115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 46u8, 0u8, 76u8, 40u8, 65u8, 115u8, 115u8, 101u8,
116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 72u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 65u8,
100u8, 100u8, 101u8, 100u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 5u8,
1u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 9u8,
1u8, 1u8, 112u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 68u8, 97u8, 116u8, 97u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 0u8, 0u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8,
111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 9u8, 12u8, 96u8, 78u8, 101u8, 119u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
100u8, 100u8, 101u8, 100u8, 46u8, 0u8, 49u8, 1u8, 40u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 115u8, 101u8, 100u8, 95u8, 98u8, 121u8, 44u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 95u8, 100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8,
107u8, 101u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 44u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 100u8,
97u8, 116u8, 97u8, 44u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 41u8, 80u8, 65u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 82u8, 101u8, 118u8,
111u8, 107u8, 101u8, 100u8, 12u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 5u8,
1u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 10u8, 12u8,
160u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 114u8, 46u8, 0u8,
184u8, 40u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 107u8, 101u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 41u8, 84u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 12u8,
0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 5u8, 1u8, 1u8, 68u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8,
0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 11u8, 12u8, 216u8, 65u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 106u8, 101u8,
99u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8,
101u8, 114u8, 32u8, 119u8, 104u8, 111u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 46u8, 0u8, 184u8, 40u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
95u8, 107u8, 101u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 41u8, 84u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 67u8,
111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 100u8, 12u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
62u8, 0u8, 0u8, 5u8, 1u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8,
52u8, 0u8, 12u8, 12u8, 92u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 100u8, 46u8, 0u8,
184u8, 40u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 107u8, 101u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 41u8, 120u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 82u8, 101u8, 116u8, 114u8, 121u8, 76u8, 105u8, 109u8, 105u8,
116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 12u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 62u8, 0u8, 0u8, 5u8, 1u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8,
54u8, 52u8, 0u8, 13u8, 12u8, 176u8, 65u8, 99u8, 99u8, 101u8, 112u8, 116u8, 105u8, 110u8, 103u8,
32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 114u8, 101u8, 116u8, 114u8, 121u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 114u8,
101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 0u8, 184u8, 40u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 107u8,
101u8, 121u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 41u8, 136u8, 67u8,
100u8, 100u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 70u8,
111u8, 114u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 85u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 4u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
14u8, 12u8, 196u8, 67u8, 68u8, 68u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
109u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8,
105u8, 110u8, 103u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 0u8, 68u8, 40u8, 110u8, 101u8,
119u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 41u8,
80u8, 67u8, 100u8, 100u8, 67u8, 108u8, 97u8, 105u8, 109u8, 115u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8,
101u8, 110u8, 116u8, 0u8, 15u8, 16u8, 65u8, 1u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 115u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 96u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
96u8, 32u8, 40u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8,
101u8, 114u8, 41u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 36u8, 96u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 96u8, 46u8, 0u8, 148u8, 40u8,
67u8, 68u8, 68u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 100u8, 97u8, 116u8, 101u8, 41u8, 76u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 4u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 16u8,
12u8, 196u8, 65u8, 108u8, 108u8, 32u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 73u8, 68u8, 32u8, 97u8, 114u8,
101u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 0u8, 20u8, 40u8, 68u8, 73u8, 68u8,
41u8, 84u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8,
115u8, 85u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 4u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 17u8, 12u8, 204u8, 65u8,
108u8, 108u8, 32u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8,
101u8, 121u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 73u8, 68u8, 32u8, 97u8, 114u8, 101u8, 32u8, 117u8,
110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 0u8, 20u8, 40u8, 68u8, 73u8, 68u8, 41u8,
8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 140u8, 0u8, 0u8,
2u8, 144u8, 0u8, 144u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 48u8, 83u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 8u8, 1u8, 12u8, 107u8, 101u8, 121u8, 0u8, 1u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 148u8, 1u8, 44u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 0u8, 148u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 95u8, 107u8, 101u8, 121u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 0u8, 0u8, 12u8, 1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 152u8, 1u8,
64u8, 65u8, 115u8, 115u8, 101u8, 116u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 0u8, 1u8, 36u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 172u8, 1u8, 80u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 36u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 208u8, 1u8, 80u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 0u8, 0u8, 152u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 24u8, 115u8,
117u8, 98u8, 115u8, 101u8, 116u8, 68u8, 83u8, 117u8, 98u8, 115u8, 101u8, 116u8, 82u8, 101u8,
115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 65u8, 1u8, 156u8, 1u8,
12u8, 20u8, 87u8, 104u8, 111u8, 108u8, 101u8, 0u8, 0u8, 0u8, 20u8, 84u8, 104u8, 101u8, 115u8,
101u8, 4u8, 0u8, 164u8, 1u8, 44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8,
65u8, 62u8, 0u8, 1u8, 0u8, 24u8, 69u8, 120u8, 99u8, 101u8, 112u8, 116u8, 4u8, 0u8, 164u8, 1u8,
44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8, 0u8, 2u8, 0u8, 0u8,
156u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8,
105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 4u8, 0u8, 160u8, 1u8, 64u8, 91u8,
117u8, 56u8, 59u8, 32u8, 84u8, 73u8, 67u8, 75u8, 69u8, 82u8, 95u8, 76u8, 69u8, 78u8, 93u8, 0u8,
0u8, 160u8, 0u8, 0u8, 3u8, 12u8, 0u8, 0u8, 0u8, 8u8, 0u8, 164u8, 4u8, 32u8, 66u8, 84u8, 114u8,
101u8, 101u8, 83u8, 101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 156u8, 0u8, 4u8, 0u8, 168u8, 0u8, 0u8,
0u8, 168u8, 0u8, 0u8, 2u8, 156u8, 0u8, 172u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8,
24u8, 115u8, 117u8, 98u8, 115u8, 101u8, 116u8, 68u8, 83u8, 117u8, 98u8, 115u8, 101u8, 116u8,
82u8, 101u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 65u8, 1u8,
176u8, 1u8, 12u8, 20u8, 87u8, 104u8, 111u8, 108u8, 101u8, 0u8, 0u8, 0u8, 20u8, 84u8, 104u8,
101u8, 115u8, 101u8, 4u8, 0u8, 200u8, 1u8, 44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8,
116u8, 60u8, 65u8, 62u8, 0u8, 1u8, 0u8, 24u8, 69u8, 120u8, 99u8, 101u8, 112u8, 116u8, 4u8, 0u8,
200u8, 1u8, 44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8, 0u8,
2u8, 0u8, 0u8, 176u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 68u8, 80u8, 97u8, 108u8,
108u8, 101u8, 116u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
0u8, 0u8, 8u8, 1u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 110u8, 97u8, 109u8,
101u8, 180u8, 1u8, 40u8, 80u8, 97u8, 108u8, 108u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8,
1u8, 72u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 95u8,
110u8, 97u8, 109u8, 101u8, 115u8, 184u8, 1u8, 68u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 78u8, 97u8, 109u8, 101u8, 115u8, 0u8, 0u8, 180u8, 8u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 80u8, 97u8, 108u8, 108u8, 101u8, 116u8, 78u8, 97u8,
109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8,
0u8, 0u8, 184u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 24u8, 115u8, 117u8, 98u8, 115u8,
101u8, 116u8, 68u8, 83u8, 117u8, 98u8, 115u8, 101u8, 116u8, 82u8, 101u8, 115u8, 116u8, 114u8,
105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 65u8, 1u8, 188u8, 1u8, 12u8, 20u8, 87u8,
104u8, 111u8, 108u8, 101u8, 0u8, 0u8, 0u8, 20u8, 84u8, 104u8, 101u8, 115u8, 101u8, 4u8, 0u8,
192u8, 1u8, 44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8, 0u8,
1u8, 0u8, 24u8, 69u8, 120u8, 99u8, 101u8, 112u8, 116u8, 4u8, 0u8, 192u8, 1u8, 44u8, 66u8, 84u8,
114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8, 0u8, 2u8, 0u8, 0u8, 188u8, 8u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 64u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
97u8, 98u8, 108u8, 101u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8,
101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 192u8, 4u8, 32u8, 66u8, 84u8, 114u8, 101u8,
101u8, 83u8, 101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 188u8, 0u8, 4u8, 0u8, 196u8, 0u8, 0u8, 0u8,
196u8, 0u8, 0u8, 2u8, 188u8, 0u8, 200u8, 4u8, 32u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8,
116u8, 4u8, 4u8, 84u8, 1u8, 176u8, 0u8, 4u8, 0u8, 204u8, 0u8, 0u8, 0u8, 204u8, 0u8, 0u8, 2u8,
176u8, 0u8, 208u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 24u8, 115u8, 117u8, 98u8,
115u8, 101u8, 116u8, 68u8, 83u8, 117u8, 98u8, 115u8, 101u8, 116u8, 82u8, 101u8, 115u8, 116u8,
114u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 65u8, 1u8, 212u8, 1u8, 12u8, 20u8,
87u8, 104u8, 111u8, 108u8, 101u8, 0u8, 0u8, 0u8, 20u8, 84u8, 104u8, 101u8, 115u8, 101u8, 4u8,
0u8, 224u8, 1u8, 44u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8,
0u8, 1u8, 0u8, 24u8, 69u8, 120u8, 99u8, 101u8, 112u8, 116u8, 4u8, 0u8, 224u8, 1u8, 44u8, 66u8,
84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 65u8, 62u8, 0u8, 2u8, 0u8, 0u8, 212u8, 12u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 95u8, 105u8, 100u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
73u8, 100u8, 0u8, 0u8, 8u8, 1u8, 12u8, 100u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 16u8, 107u8, 105u8, 110u8, 100u8,
216u8, 1u8, 52u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 75u8, 105u8,
110u8, 100u8, 0u8, 0u8, 216u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 44u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 105u8, 100u8, 52u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 8u8, 28u8, 68u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 0u8, 0u8, 0u8, 16u8, 85u8, 115u8, 101u8, 114u8, 4u8,
0u8, 220u8, 1u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 0u8, 0u8, 220u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 105u8, 100u8, 60u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 224u8, 4u8, 32u8, 66u8,
84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 212u8, 0u8, 4u8, 0u8, 228u8,
0u8, 0u8, 0u8, 228u8, 0u8, 0u8, 2u8, 212u8, 0u8, 232u8, 0u8, 0u8, 2u8, 0u8, 0u8, 236u8, 12u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 52u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 0u8, 20u8, 1u8, 48u8, 99u8, 108u8, 97u8,
105u8, 109u8, 95u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 52u8, 105u8, 115u8, 115u8,
117u8, 97u8, 110u8, 99u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 64u8, 108u8, 97u8, 115u8, 116u8, 95u8, 117u8, 112u8, 100u8,
97u8, 116u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 56u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8,
20u8, 99u8, 108u8, 97u8, 105u8, 109u8, 244u8, 1u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8,
0u8, 240u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 32u8, 1u8,
8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8,
32u8, 0u8, 0u8, 1u8, 0u8, 0u8, 244u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8,
20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 1u8, 48u8, 40u8, 65u8, 99u8, 99u8, 114u8, 101u8,
100u8, 105u8, 116u8, 101u8, 100u8, 4u8, 0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8,
0u8, 0u8, 0u8, 36u8, 65u8, 102u8, 102u8, 105u8, 108u8, 105u8, 97u8, 116u8, 101u8, 4u8, 0u8,
248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 0u8, 36u8, 66u8, 117u8, 121u8, 76u8,
111u8, 99u8, 107u8, 117u8, 112u8, 4u8, 0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8,
0u8, 2u8, 0u8, 40u8, 83u8, 101u8, 108u8, 108u8, 76u8, 111u8, 99u8, 107u8, 117u8, 112u8, 4u8, 0u8,
248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 3u8, 0u8, 80u8, 67u8, 117u8, 115u8,
116u8, 111u8, 109u8, 101u8, 114u8, 68u8, 117u8, 101u8, 68u8, 105u8, 108u8, 105u8, 103u8, 101u8,
110u8, 99u8, 101u8, 4u8, 0u8, 252u8, 1u8, 20u8, 67u8, 100u8, 100u8, 73u8, 100u8, 0u8, 4u8, 0u8,
64u8, 75u8, 110u8, 111u8, 119u8, 89u8, 111u8, 117u8, 114u8, 67u8, 117u8, 115u8, 116u8, 111u8,
109u8, 101u8, 114u8, 4u8, 0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 5u8, 0u8,
48u8, 74u8, 117u8, 114u8, 105u8, 115u8, 100u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 8u8, 0u8,
1u8, 1u8, 1u8, 44u8, 67u8, 111u8, 117u8, 110u8, 116u8, 114u8, 121u8, 67u8, 111u8, 100u8, 101u8,
0u8, 0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 6u8, 0u8, 32u8, 69u8, 120u8,
101u8, 109u8, 112u8, 116u8, 101u8, 100u8, 4u8, 0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8,
101u8, 0u8, 7u8, 0u8, 28u8, 66u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 4u8, 0u8, 248u8, 1u8,
20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 8u8, 0u8, 72u8, 73u8, 110u8, 118u8, 101u8, 115u8,
116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 12u8,
0u8, 248u8, 1u8, 20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 0u8, 120u8, 1u8, 28u8, 83u8, 99u8,
111u8, 112u8, 101u8, 73u8, 100u8, 0u8, 0u8, 252u8, 1u8, 20u8, 67u8, 100u8, 100u8, 73u8, 100u8,
0u8, 9u8, 0u8, 24u8, 78u8, 111u8, 68u8, 97u8, 116u8, 97u8, 0u8, 10u8, 0u8, 80u8, 73u8, 110u8,
118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8,
115u8, 115u8, 86u8, 50u8, 4u8, 0u8, 252u8, 1u8, 20u8, 67u8, 100u8, 100u8, 73u8, 100u8, 0u8, 11u8,
0u8, 0u8, 248u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 20u8, 83u8, 99u8, 111u8,
112u8, 101u8, 0u8, 1u8, 12u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 4u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 0u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 4u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 0u8, 24u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 4u8,
0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 2u8, 0u8, 0u8, 252u8,
12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8,
109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 24u8, 99u8, 100u8, 100u8, 95u8, 105u8, 100u8,
20u8, 67u8, 100u8, 100u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8, 56u8,
59u8, 32u8, 51u8, 50u8, 93u8, 0u8, 0u8, 1u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8,
48u8, 106u8, 117u8, 114u8, 105u8, 115u8, 100u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 44u8,
67u8, 111u8, 117u8, 110u8, 116u8, 114u8, 121u8, 67u8, 111u8, 100u8, 101u8, 0u8, 1u8, 233u8, 3u8,
8u8, 65u8, 70u8, 0u8, 0u8, 0u8, 8u8, 65u8, 88u8, 0u8, 1u8, 0u8, 8u8, 65u8, 76u8, 0u8, 2u8, 0u8,
8u8, 68u8, 90u8, 0u8, 3u8, 0u8, 8u8, 65u8, 83u8, 0u8, 4u8, 0u8, 8u8, 65u8, 68u8, 0u8, 5u8, 0u8,
8u8, 65u8, 79u8, 0u8, 6u8, 0u8, 8u8, 65u8, 73u8, 0u8, 7u8, 0u8, 8u8, 65u8, 81u8, 0u8, 8u8, 0u8,
8u8, 65u8, 71u8, 0u8, 9u8, 0u8, 8u8, 65u8, 82u8, 0u8, 10u8, 0u8, 8u8, 65u8, 77u8, 0u8, 11u8, 0u8,
8u8, 65u8, 87u8, 0u8, 12u8, 0u8, 8u8, 65u8, 85u8, 0u8, 13u8, 0u8, 8u8, 65u8, 84u8, 0u8, 14u8,
0u8, 8u8, 65u8, 90u8, 0u8, 15u8, 0u8, 8u8, 66u8, 83u8, 0u8, 16u8, 0u8, 8u8, 66u8, 72u8, 0u8,
17u8, 0u8, 8u8, 66u8, 68u8, 0u8, 18u8, 0u8, 8u8, 66u8, 66u8, 0u8, 19u8, 0u8, 8u8, 66u8, 89u8,
0u8, 20u8, 0u8, 8u8, 66u8, 69u8, 0u8, 21u8, 0u8, 8u8, 66u8, 90u8, 0u8, 22u8, 0u8, 8u8, 66u8,
74u8, 0u8, 23u8, 0u8, 8u8, 66u8, 77u8, 0u8, 24u8, 0u8, 8u8, 66u8, 84u8, 0u8, 25u8, 0u8, 8u8,
66u8, 79u8, 0u8, 26u8, 0u8, 8u8, 66u8, 65u8, 0u8, 27u8, 0u8, 8u8, 66u8, 87u8, 0u8, 28u8, 0u8,
8u8, 66u8, 86u8, 0u8, 29u8, 0u8, 8u8, 66u8, 82u8, 0u8, 30u8, 0u8, 8u8, 86u8, 71u8, 0u8, 31u8,
0u8, 8u8, 73u8, 79u8, 0u8, 32u8, 0u8, 8u8, 66u8, 78u8, 0u8, 33u8, 0u8, 8u8, 66u8, 71u8, 0u8,
34u8, 0u8, 8u8, 66u8, 70u8, 0u8, 35u8, 0u8, 8u8, 66u8, 73u8, 0u8, 36u8, 0u8, 8u8, 75u8, 72u8,
0u8, 37u8, 0u8, 8u8, 67u8, 77u8, 0u8, 38u8, 0u8, 8u8, 67u8, 65u8, 0u8, 39u8, 0u8, 8u8, 67u8,
86u8, 0u8, 40u8, 0u8, 8u8, 75u8, 89u8, 0u8, 41u8, 0u8, 8u8, 67u8, 70u8, 0u8, 42u8, 0u8, 8u8,
84u8, 68u8, 0u8, 43u8, 0u8, 8u8, 67u8, 76u8, 0u8, 44u8, 0u8, 8u8, 67u8, 78u8, 0u8, 45u8, 0u8,
8u8, 72u8, 75u8, 0u8, 46u8, 0u8, 8u8, 77u8, 79u8, 0u8, 47u8, 0u8, 8u8, 67u8, 88u8, 0u8, 48u8,
0u8, 8u8, 67u8, 67u8, 0u8, 49u8, 0u8, 8u8, 67u8, 79u8, 0u8, 50u8, 0u8, 8u8, 75u8, 77u8, 0u8,
51u8, 0u8, 8u8, 67u8, 71u8, 0u8, 52u8, 0u8, 8u8, 67u8, 68u8, 0u8, 53u8, 0u8, 8u8, 67u8, 75u8,
0u8, 54u8, 0u8, 8u8, 67u8, 82u8, 0u8, 55u8, 0u8, 8u8, 67u8, 73u8, 0u8, 56u8, 0u8, 8u8, 72u8,
82u8, 0u8, 57u8, 0u8, 8u8, 67u8, 85u8, 0u8, 58u8, 0u8, 8u8, 67u8, 89u8, 0u8, 59u8, 0u8, 8u8,
67u8, 90u8, 0u8, 60u8, 0u8, 8u8, 68u8, 75u8, 0u8, 61u8, 0u8, 8u8, 68u8, 74u8, 0u8, 62u8, 0u8,
8u8, 68u8, 77u8, 0u8, 63u8, 0u8, 8u8, 68u8, 79u8, 0u8, 64u8, 0u8, 8u8, 69u8, 67u8, 0u8, 65u8,
0u8, 8u8, 69u8, 71u8, 0u8, 66u8, 0u8, 8u8, 83u8, 86u8, 0u8, 67u8, 0u8, 8u8, 71u8, 81u8, 0u8,
68u8, 0u8, 8u8, 69u8, 82u8, 0u8, 69u8, 0u8, 8u8, 69u8, 69u8, 0u8, 70u8, 0u8, 8u8, 69u8, 84u8,
0u8, 71u8, 0u8, 8u8, 70u8, 75u8, 0u8, 72u8, 0u8, 8u8, 70u8, 79u8, 0u8, 73u8, 0u8, 8u8, 70u8,
74u8, 0u8, 74u8, 0u8, 8u8, 70u8, 73u8, 0u8, 75u8, 0u8, 8u8, 70u8, 82u8, 0u8, 76u8, 0u8, 8u8,
71u8, 70u8, 0u8, 77u8, 0u8, 8u8, 80u8, 70u8, 0u8, 78u8, 0u8, 8u8, 84u8, 70u8, 0u8, 79u8, 0u8,
8u8, 71u8, 65u8, 0u8, 80u8, 0u8, 8u8, 71u8, 77u8, 0u8, 81u8, 0u8, 8u8, 71u8, 69u8, 0u8, 82u8,
0u8, 8u8, 68u8, 69u8, 0u8, 83u8, 0u8, 8u8, 71u8, 72u8, 0u8, 84u8, 0u8, 8u8, 71u8, 73u8, 0u8,
85u8, 0u8, 8u8, 71u8, 82u8, 0u8, 86u8, 0u8, 8u8, 71u8, 76u8, 0u8, 87u8, 0u8, 8u8, 71u8, 68u8,
0u8, 88u8, 0u8, 8u8, 71u8, 80u8, 0u8, 89u8, 0u8, 8u8, 71u8, 85u8, 0u8, 90u8, 0u8, 8u8, 71u8,
84u8, 0u8, 91u8, 0u8, 8u8, 71u8, 71u8, 0u8, 92u8, 0u8, 8u8, 71u8, 78u8, 0u8, 93u8, 0u8, 8u8,
71u8, 87u8, 0u8, 94u8, 0u8, 8u8, 71u8, 89u8, 0u8, 95u8, 0u8, 8u8, 72u8, 84u8, 0u8, 96u8, 0u8,
8u8, 72u8, 77u8, 0u8, 97u8, 0u8, 8u8, 86u8, 65u8, 0u8, 98u8, 0u8, 8u8, 72u8, 78u8, 0u8, 99u8,
0u8, 8u8, 72u8, 85u8, 0u8, 100u8, 0u8, 8u8, 73u8, 83u8, 0u8, 101u8, 0u8, 8u8, 73u8, 78u8, 0u8,
102u8, 0u8, 8u8, 73u8, 68u8, 0u8, 103u8, 0u8, 8u8, 73u8, 82u8, 0u8, 104u8, 0u8, 8u8, 73u8, 81u8,
0u8, 105u8, 0u8, 8u8, 73u8, 69u8, 0u8, 106u8, 0u8, 8u8, 73u8, 77u8, 0u8, 107u8, 0u8, 8u8, 73u8,
76u8, 0u8, 108u8, 0u8, 8u8, 73u8, 84u8, 0u8, 109u8, 0u8, 8u8, 74u8, 77u8, 0u8, 110u8, 0u8, 8u8,
74u8, 80u8, 0u8, 111u8, 0u8, 8u8, 74u8, 69u8, 0u8, 112u8, 0u8, 8u8, 74u8, 79u8, 0u8, 113u8, 0u8,
8u8, 75u8, 90u8, 0u8, 114u8, 0u8, 8u8, 75u8, 69u8, 0u8, 115u8, 0u8, 8u8, 75u8, 73u8, 0u8, 116u8,
0u8, 8u8, 75u8, 80u8, 0u8, 117u8, 0u8, 8u8, 75u8, 82u8, 0u8, 118u8, 0u8, 8u8, 75u8, 87u8, 0u8,
119u8, 0u8, 8u8, 75u8, 71u8, 0u8, 120u8, 0u8, 8u8, 76u8, 65u8, 0u8, 121u8, 0u8, 8u8, 76u8, 86u8,
0u8, 122u8, 0u8, 8u8, 76u8, 66u8, 0u8, 123u8, 0u8, 8u8, 76u8, 83u8, 0u8, 124u8, 0u8, 8u8, 76u8,
82u8, 0u8, 125u8, 0u8, 8u8, 76u8, 89u8, 0u8, 126u8, 0u8, 8u8, 76u8, 73u8, 0u8, 127u8, 0u8, 8u8,
76u8, 84u8, 0u8, 128u8, 0u8, 8u8, 76u8, 85u8, 0u8, 129u8, 0u8, 8u8, 77u8, 75u8, 0u8, 130u8, 0u8,
8u8, 77u8, 71u8, 0u8, 131u8, 0u8, 8u8, 77u8, 87u8, 0u8, 132u8, 0u8, 8u8, 77u8, 89u8, 0u8, 133u8,
0u8, 8u8, 77u8, 86u8, 0u8, 134u8, 0u8, 8u8, 77u8, 76u8, 0u8, 135u8, 0u8, 8u8, 77u8, 84u8, 0u8,
136u8, 0u8, 8u8, 77u8, 72u8, 0u8, 137u8, 0u8, 8u8, 77u8, 81u8, 0u8, 138u8, 0u8, 8u8, 77u8, 82u8,
0u8, 139u8, 0u8, 8u8, 77u8, 85u8, 0u8, 140u8, 0u8, 8u8, 89u8, 84u8, 0u8, 141u8, 0u8, 8u8, 77u8,
88u8, 0u8, 142u8, 0u8, 8u8, 70u8, 77u8, 0u8, 143u8, 0u8, 8u8, 77u8, 68u8, 0u8, 144u8, 0u8, 8u8,
77u8, 67u8, 0u8, 145u8, 0u8, 8u8, 77u8, 78u8, 0u8, 146u8, 0u8, 8u8, 77u8, 69u8, 0u8, 147u8, 0u8,
8u8, 77u8, 83u8, 0u8, 148u8, 0u8, 8u8, 77u8, 65u8, 0u8, 149u8, 0u8, 8u8, 77u8, 90u8, 0u8, 150u8,
0u8, 8u8, 77u8, 77u8, 0u8, 151u8, 0u8, 8u8, 78u8, 65u8, 0u8, 152u8, 0u8, 8u8, 78u8, 82u8, 0u8,
153u8, 0u8, 8u8, 78u8, 80u8, 0u8, 154u8, 0u8, 8u8, 78u8, 76u8, 0u8, 155u8, 0u8, 8u8, 65u8, 78u8,
0u8, 156u8, 0u8, 8u8, 78u8, 67u8, 0u8, 157u8, 0u8, 8u8, 78u8, 90u8, 0u8, 158u8, 0u8, 8u8, 78u8,
73u8, 0u8, 159u8, 0u8, 8u8, 78u8, 69u8, 0u8, 160u8, 0u8, 8u8, 78u8, 71u8, 0u8, 161u8, 0u8, 8u8,
78u8, 85u8, 0u8, 162u8, 0u8, 8u8, 78u8, 70u8, 0u8, 163u8, 0u8, 8u8, 77u8, 80u8, 0u8, 164u8, 0u8,
8u8, 78u8, 79u8, 0u8, 165u8, 0u8, 8u8, 79u8, 77u8, 0u8, 166u8, 0u8, 8u8, 80u8, 75u8, 0u8, 167u8,
0u8, 8u8, 80u8, 87u8, 0u8, 168u8, 0u8, 8u8, 80u8, 83u8, 0u8, 169u8, 0u8, 8u8, 80u8, 65u8, 0u8,
170u8, 0u8, 8u8, 80u8, 71u8, 0u8, 171u8, 0u8, 8u8, 80u8, 89u8, 0u8, 172u8, 0u8, 8u8, 80u8, 69u8,
0u8, 173u8, 0u8, 8u8, 80u8, 72u8, 0u8, 174u8, 0u8, 8u8, 80u8, 78u8, 0u8, 175u8, 0u8, 8u8, 80u8,
76u8, 0u8, 176u8, 0u8, 8u8, 80u8, 84u8, 0u8, 177u8, 0u8, 8u8, 80u8, 82u8, 0u8, 178u8, 0u8, 8u8,
81u8, 65u8, 0u8, 179u8, 0u8, 8u8, 82u8, 69u8, 0u8, 180u8, 0u8, 8u8, 82u8, 79u8, 0u8, 181u8, 0u8,
8u8, 82u8, 85u8, 0u8, 182u8, 0u8, 8u8, 82u8, 87u8, 0u8, 183u8, 0u8, 8u8, 66u8, 76u8, 0u8, 184u8,
0u8, 8u8, 83u8, 72u8, 0u8, 185u8, 0u8, 8u8, 75u8, 78u8, 0u8, 186u8, 0u8, 8u8, 76u8, 67u8, 0u8,
187u8, 0u8, 8u8, 77u8, 70u8, 0u8, 188u8, 0u8, 8u8, 80u8, 77u8, 0u8, 189u8, 0u8, 8u8, 86u8, 67u8,
0u8, 190u8, 0u8, 8u8, 87u8, 83u8, 0u8, 191u8, 0u8, 8u8, 83u8, 77u8, 0u8, 192u8, 0u8, 8u8, 83u8,
84u8, 0u8, 193u8, 0u8, 8u8, 83u8, 65u8, 0u8, 194u8, 0u8, 8u8, 83u8, 78u8, 0u8, 195u8, 0u8, 8u8,
82u8, 83u8, 0u8, 196u8, 0u8, 8u8, 83u8, 67u8, 0u8, 197u8, 0u8, 8u8, 83u8, 76u8, 0u8, 198u8, 0u8,
8u8, 83u8, 71u8, 0u8, 199u8, 0u8, 8u8, 83u8, 75u8, 0u8, 200u8, 0u8, 8u8, 83u8, 73u8, 0u8, 201u8,
0u8, 8u8, 83u8, 66u8, 0u8, 202u8, 0u8, 8u8, 83u8, 79u8, 0u8, 203u8, 0u8, 8u8, 90u8, 65u8, 0u8,
204u8, 0u8, 8u8, 71u8, 83u8, 0u8, 205u8, 0u8, 8u8, 83u8, 83u8, 0u8, 206u8, 0u8, 8u8, 69u8, 83u8,
0u8, 207u8, 0u8, 8u8, 76u8, 75u8, 0u8, 208u8, 0u8, 8u8, 83u8, 68u8, 0u8, 209u8, 0u8, 8u8, 83u8,
82u8, 0u8, 210u8, 0u8, 8u8, 83u8, 74u8, 0u8, 211u8, 0u8, 8u8, 83u8, 90u8, 0u8, 212u8, 0u8, 8u8,
83u8, 69u8, 0u8, 213u8, 0u8, 8u8, 67u8, 72u8, 0u8, 214u8, 0u8, 8u8, 83u8, 89u8, 0u8, 215u8, 0u8,
8u8, 84u8, 87u8, 0u8, 216u8, 0u8, 8u8, 84u8, 74u8, 0u8, 217u8, 0u8, 8u8, 84u8, 90u8, 0u8, 218u8,
0u8, 8u8, 84u8, 72u8, 0u8, 219u8, 0u8, 8u8, 84u8, 76u8, 0u8, 220u8, 0u8, 8u8, 84u8, 71u8, 0u8,
221u8, 0u8, 8u8, 84u8, 75u8, 0u8, 222u8, 0u8, 8u8, 84u8, 79u8, 0u8, 223u8, 0u8, 8u8, 84u8, 84u8,
0u8, 224u8, 0u8, 8u8, 84u8, 78u8, 0u8, 225u8, 0u8, 8u8, 84u8, 82u8, 0u8, 226u8, 0u8, 8u8, 84u8,
77u8, 0u8, 227u8, 0u8, 8u8, 84u8, 67u8, 0u8, 228u8, 0u8, 8u8, 84u8, 86u8, 0u8, 229u8, 0u8, 8u8,
85u8, 71u8, 0u8, 230u8, 0u8, 8u8, 85u8, 65u8, 0u8, 231u8, 0u8, 8u8, 65u8, 69u8, 0u8, 232u8, 0u8,
8u8, 71u8, 66u8, 0u8, 233u8, 0u8, 8u8, 85u8, 83u8, 0u8, 234u8, 0u8, 8u8, 85u8, 77u8, 0u8, 235u8,
0u8, 8u8, 85u8, 89u8, 0u8, 236u8, 0u8, 8u8, 85u8, 90u8, 0u8, 237u8, 0u8, 8u8, 86u8, 85u8, 0u8,
238u8, 0u8, 8u8, 86u8, 69u8, 0u8, 239u8, 0u8, 8u8, 86u8, 78u8, 0u8, 240u8, 0u8, 8u8, 86u8, 73u8,
0u8, 241u8, 0u8, 8u8, 87u8, 70u8, 0u8, 242u8, 0u8, 8u8, 69u8, 72u8, 0u8, 243u8, 0u8, 8u8, 89u8,
69u8, 0u8, 244u8, 0u8, 8u8, 90u8, 77u8, 0u8, 245u8, 0u8, 8u8, 90u8, 87u8, 0u8, 246u8, 0u8, 8u8,
66u8, 81u8, 0u8, 247u8, 0u8, 8u8, 67u8, 87u8, 0u8, 248u8, 0u8, 8u8, 83u8, 88u8, 0u8, 249u8, 0u8,
0u8, 5u8, 1u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 0u8, 1u8,
8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8,
0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 9u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 68u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 68u8,
97u8, 116u8, 97u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8,
0u8, 1u8, 40u8, 96u8, 65u8, 116u8, 116u8, 101u8, 115u8, 116u8, 80u8, 114u8, 105u8, 109u8, 97u8,
114u8, 121u8, 75u8, 101u8, 121u8, 82u8, 111u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
0u8, 64u8, 82u8, 111u8, 116u8, 97u8, 116u8, 101u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8,
75u8, 101u8, 121u8, 0u8, 1u8, 0u8, 56u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 4u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 0u8, 2u8, 0u8, 68u8, 65u8, 100u8, 100u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8,
105u8, 103u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 3u8, 0u8, 88u8, 84u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 65u8, 115u8, 115u8, 101u8, 116u8, 79u8, 119u8, 110u8, 101u8, 114u8,
115u8, 104u8, 105u8, 112u8, 4u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 4u8, 0u8, 48u8, 74u8, 111u8, 105u8, 110u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 4u8, 0u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 0u8, 5u8, 0u8, 64u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
67u8, 117u8, 115u8, 116u8, 111u8, 100u8, 121u8, 4u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 6u8, 0u8, 44u8, 66u8, 101u8, 99u8,
111u8, 109u8, 101u8, 65u8, 103u8, 101u8, 110u8, 116u8, 8u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 13u8, 1u8, 1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8,
71u8, 114u8, 111u8, 117u8, 112u8, 0u8, 7u8, 0u8, 76u8, 65u8, 100u8, 100u8, 82u8, 101u8, 108u8,
97u8, 121u8, 101u8, 114u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 12u8, 0u8,
0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 8u8, 0u8, 108u8, 82u8, 111u8, 116u8, 97u8, 116u8,
101u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 84u8, 111u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 4u8, 0u8, 148u8, 1u8, 44u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 9u8, 0u8, 0u8, 13u8, 1u8,
12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8,
109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 20u8, 97u8, 103u8, 101u8, 110u8, 116u8, 40u8,
65u8, 103u8, 101u8, 110u8, 116u8, 71u8, 114u8, 111u8, 117u8, 112u8, 0u8, 1u8, 20u8, 16u8, 70u8,
117u8, 108u8, 108u8, 0u8, 0u8, 0u8, 24u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 4u8, 0u8,
17u8, 1u8, 1u8, 16u8, 65u8, 71u8, 73u8, 100u8, 0u8, 1u8, 0u8, 40u8, 69u8, 120u8, 99u8, 101u8,
112u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 2u8, 0u8, 52u8, 80u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 86u8, 49u8, 67u8, 65u8, 65u8, 0u8, 3u8, 0u8, 52u8, 80u8, 111u8, 108u8,
121u8, 109u8, 101u8, 115u8, 104u8, 86u8, 49u8, 80u8, 73u8, 65u8, 0u8, 4u8, 0u8, 0u8, 17u8, 1u8,
12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8,
109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 20u8, 97u8, 103u8, 101u8, 110u8, 116u8, 16u8,
65u8, 71u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 21u8,
1u8, 0u8, 0u8, 5u8, 0u8, 0u8, 25u8, 1u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8,
105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 20u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 12u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 20u8, 69u8, 118u8,
101u8, 110u8, 116u8, 1u8, 68u8, 4u8, 73u8, 1u8, 29u8, 1u8, 1u8, 28u8, 44u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 65u8, 100u8, 100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 8u8, 224u8, 84u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
119u8, 97u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 108u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 46u8, 52u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 8u8, 232u8, 84u8, 104u8,
101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 59u8, 32u8,
115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8,
160u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8,
101u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 52u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 8u8, 228u8,
84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8,
118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8,
102u8, 105u8, 99u8, 32u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8,
46u8, 160u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
103u8, 101u8, 116u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 46u8, 56u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 83u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 12u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
3u8, 8u8, 216u8, 84u8, 119u8, 111u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8,
119u8, 101u8, 114u8, 101u8, 32u8, 115u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 59u8, 32u8,
115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8,
148u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8,
97u8, 100u8, 100u8, 32u8, 68u8, 73u8, 68u8, 46u8, 48u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 82u8, 101u8, 115u8, 101u8, 116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 4u8, 8u8, 21u8,
1u8, 84u8, 104u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8,
112u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 115u8, 101u8, 116u8, 59u8, 32u8, 115u8,
101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 115u8, 46u8,
128u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 76u8, 105u8,
115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 46u8, 72u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 76u8, 105u8, 109u8,
105u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 5u8, 4u8, 45u8,
1u8, 84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8,
104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8,
101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8,
101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 100u8, 46u8, 20u8, 68u8, 117u8, 109u8, 109u8, 121u8, 0u8, 6u8, 4u8, 108u8,
80u8, 104u8, 97u8, 110u8, 116u8, 111u8, 109u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
44u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 8u8, 92u8,
69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 29u8, 1u8, 8u8, 48u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 36u8, 73u8, 110u8,
115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 50u8, 0u8, 0u8, 0u8, 0u8, 33u8, 1u8, 0u8, 0u8, 2u8,
120u8, 0u8, 37u8, 1u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8,
110u8, 116u8, 12u8, 16u8, 72u8, 97u8, 115u8, 104u8, 1u8, 36u8, 44u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 4u8, 73u8, 1u8, 41u8, 1u8, 1u8, 40u8,
32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8,
1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 8u8, 137u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8,
105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8,
104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 40u8, 98u8, 121u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 97u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8,
32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 216u8, 80u8, 97u8, 114u8, 97u8, 109u8,
101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8,
110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 20u8, 86u8, 111u8, 116u8, 101u8, 100u8, 28u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8,
1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8,
120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8,
111u8, 111u8, 108u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8,
111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 1u8, 12u8, 5u8, 1u8, 65u8, 32u8, 109u8, 111u8,
116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8,
115u8, 104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 118u8,
111u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 98u8, 121u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 108u8, 101u8, 97u8,
118u8, 105u8, 110u8, 103u8, 73u8, 1u8, 97u8, 32u8, 116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8,
121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8,
118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8,
108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8,
115u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8,
96u8, 41u8, 46u8, 149u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 110u8, 100u8,
101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8,
97u8, 115u8, 104u8, 44u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 118u8,
111u8, 116u8, 101u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8,
99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8,
101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8,
32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 52u8, 86u8, 111u8, 116u8, 101u8, 82u8, 101u8,
116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8,
72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 2u8,
8u8, 204u8, 65u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 109u8,
111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8,
97u8, 115u8, 104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8,
101u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 46u8, 5u8, 1u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 116u8, 114u8, 97u8,
99u8, 116u8, 101u8, 100u8, 40u8, 70u8, 105u8, 110u8, 97u8, 108u8, 86u8, 111u8, 116u8, 101u8,
115u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8,
110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 33u8,
1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 62u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 3u8, 8u8, 144u8, 70u8, 105u8, 110u8,
97u8, 108u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8,
109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
104u8, 97u8, 115u8, 104u8, 41u8, 248u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8,
101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8,
97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8,
115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 32u8, 65u8, 112u8,
112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8,
0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8,
116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8,
117u8, 110u8, 116u8, 0u8, 4u8, 12u8, 9u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8,
110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 100u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8,
105u8, 110u8, 103u8, 65u8, 1u8, 116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8,
115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8,
116u8, 101u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8,
115u8, 101u8, 97u8, 116u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8,
115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8,
96u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8,
77u8, 1u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8,
121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8,
116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8,
104u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8,
117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8,
111u8, 117u8, 110u8, 116u8, 0u8, 5u8, 12u8, 9u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8,
111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 100u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8,
119u8, 105u8, 110u8, 103u8, 65u8, 1u8, 116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8,
101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8,
111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8,
32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8,
101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8,
32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8,
46u8, 77u8, 1u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 97u8,
121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8,
110u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8,
44u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8,
69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8,
115u8, 104u8, 0u8, 0u8, 45u8, 1u8, 1u8, 56u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 0u8, 6u8, 8u8, 57u8, 1u8, 65u8, 32u8, 109u8,
111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8,
117u8, 116u8, 101u8, 100u8, 59u8, 32u8, 96u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 96u8, 79u8,
107u8, 40u8, 40u8, 41u8, 41u8, 96u8, 32u8, 105u8, 102u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8,
110u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 101u8, 114u8,
114u8, 111u8, 114u8, 46u8, 13u8, 1u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8,
115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8,
32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
46u8, 100u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8, 114u8, 100u8,
105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
116u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 7u8, 8u8, 148u8, 82u8, 101u8, 108u8, 101u8,
97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8,
97u8, 116u8, 101u8, 100u8, 46u8, 220u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8,
114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 68u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8,
101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 46u8, 76u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 65u8, 102u8, 116u8,
101u8, 114u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 53u8, 1u8, 1u8, 92u8,
77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 8u8, 8u8, 152u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8,
105u8, 109u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8,
112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 196u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8,
116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8,
116u8, 105u8, 109u8, 101u8, 32u8, 40u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 41u8, 46u8, 80u8,
86u8, 111u8, 116u8, 101u8, 84u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 85u8,
112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8,
16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 9u8, 8u8, 132u8, 86u8, 111u8, 116u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8,
184u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 117u8, 109u8, 101u8,
114u8, 97u8, 116u8, 111u8, 114u8, 44u8, 32u8, 100u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8,
97u8, 116u8, 111u8, 114u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8,
46u8, 0u8, 41u8, 1u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 36u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8,
99u8, 101u8, 49u8, 0u8, 0u8, 0u8, 0u8, 45u8, 1u8, 4u8, 24u8, 82u8, 101u8, 115u8, 117u8, 108u8,
116u8, 8u8, 4u8, 84u8, 1u8, 49u8, 1u8, 4u8, 69u8, 1u8, 88u8, 1u8, 8u8, 8u8, 79u8, 107u8, 4u8,
0u8, 49u8, 1u8, 0u8, 0u8, 0u8, 0u8, 12u8, 69u8, 114u8, 114u8, 4u8, 0u8, 88u8, 0u8, 0u8, 1u8, 0u8,
0u8, 49u8, 1u8, 0u8, 0u8, 4u8, 0u8, 0u8, 53u8, 1u8, 8u8, 100u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 40u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8,
108u8, 111u8, 99u8, 107u8, 4u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 1u8, 16u8, 1u8, 8u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 16u8, 1u8, 44u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 0u8, 0u8, 16u8,
78u8, 111u8, 110u8, 101u8, 0u8, 1u8, 0u8, 0u8, 57u8, 1u8, 16u8, 100u8, 112u8, 111u8, 108u8,
121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8,
116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8,
115u8, 20u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8,
110u8, 116u8, 12u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8,
20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 1u8, 68u8, 4u8, 73u8, 1u8, 61u8, 1u8, 1u8, 28u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 65u8, 100u8, 100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 8u8, 224u8,
84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 59u8, 32u8,
115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8,
108u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8,
119u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 46u8, 52u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8,
8u8, 232u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
119u8, 104u8, 111u8, 46u8, 160u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
46u8, 52u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8,
100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 2u8, 8u8, 228u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8,
116u8, 97u8, 109u8, 112u8, 46u8, 160u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8,
100u8, 46u8, 56u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 83u8, 119u8, 97u8, 112u8,
112u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 3u8, 8u8, 216u8, 84u8, 119u8, 111u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8, 115u8, 119u8, 97u8, 112u8, 112u8,
101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
119u8, 104u8, 111u8, 46u8, 148u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
78u8, 101u8, 119u8, 32u8, 97u8, 100u8, 100u8, 32u8, 68u8, 73u8, 68u8, 46u8, 48u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 82u8, 101u8, 115u8, 101u8, 116u8, 8u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 33u8, 1u8, 1u8,
60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 62u8, 0u8, 4u8, 8u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 115u8,
101u8, 116u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
119u8, 104u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8,
116u8, 32u8, 105u8, 115u8, 46u8, 128u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 76u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 110u8, 101u8, 119u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 46u8, 72u8, 65u8, 99u8, 116u8, 105u8, 118u8,
101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8,
0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8,
116u8, 0u8, 5u8, 4u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8,
104u8, 101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 20u8, 68u8, 117u8, 109u8, 109u8, 121u8, 0u8,
6u8, 4u8, 108u8, 80u8, 104u8, 97u8, 110u8, 116u8, 111u8, 109u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 44u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8,
46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 61u8, 1u8, 8u8,
48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 36u8,
73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 49u8, 0u8, 0u8, 0u8, 0u8, 65u8, 1u8, 8u8,
64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 12u8, 16u8, 72u8,
97u8, 115u8, 104u8, 1u8, 36u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 1u8, 16u8, 4u8, 73u8, 1u8, 69u8, 1u8, 1u8, 40u8, 32u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8,
104u8, 0u8, 0u8, 8u8, 137u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8,
40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
101u8, 100u8, 32u8, 40u8, 98u8, 121u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8,
116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 40u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8,
116u8, 96u8, 41u8, 46u8, 216u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8,
115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8,
104u8, 46u8, 20u8, 86u8, 111u8, 116u8, 101u8, 100u8, 28u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8,
16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8,
0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8,
116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 0u8, 1u8, 12u8, 5u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8,
32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8,
104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8,
32u8, 111u8, 110u8, 32u8, 98u8, 121u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 108u8, 101u8, 97u8, 118u8, 105u8, 110u8, 103u8,
73u8, 1u8, 97u8, 32u8, 116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8,
118u8, 111u8, 116u8, 101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8,
115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8,
97u8, 116u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8,
101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 149u8, 1u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 44u8, 32u8,
121u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8,
44u8, 32u8, 110u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8,
110u8, 116u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8,
115u8, 46u8, 52u8, 86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 116u8, 114u8, 97u8, 99u8, 116u8,
101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8,
21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 2u8, 8u8, 204u8, 65u8, 32u8, 118u8, 111u8,
116u8, 101u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8,
32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8,
104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 116u8, 114u8, 97u8,
99u8, 116u8, 101u8, 100u8, 46u8, 5u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8,
101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8,
97u8, 115u8, 104u8, 44u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8,
40u8, 70u8, 105u8, 110u8, 97u8, 108u8, 86u8, 111u8, 116u8, 101u8, 115u8, 20u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8,
52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8,
0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8,
99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8,
33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 62u8, 0u8, 3u8, 8u8, 144u8, 70u8, 105u8, 110u8, 97u8, 108u8, 32u8, 118u8,
111u8, 116u8, 101u8, 115u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8,
111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8,
41u8, 248u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8,
32u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 115u8, 44u8, 32u8, 110u8,
111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 32u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8,
101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8,
44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8,
1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 4u8,
12u8, 9u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8,
32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 104u8,
114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8, 105u8, 110u8, 103u8, 65u8, 1u8,
116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8,
101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8,
110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8,
105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 77u8, 1u8, 80u8, 97u8, 114u8,
97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8,
101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8, 121u8, 32u8, 118u8,
111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 111u8, 116u8,
97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8, 82u8, 101u8, 106u8, 101u8, 99u8,
116u8, 101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 16u8, 1u8,
44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8,
1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8,
16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8,
5u8, 12u8, 9u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8,
115u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8,
104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
116u8, 104u8, 101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8, 105u8, 110u8, 103u8, 65u8,
1u8, 116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8,
116u8, 101u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8,
97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8,
115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8,
116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 77u8, 1u8, 80u8, 97u8,
114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8, 118u8, 111u8,
116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8, 121u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 111u8,
116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8, 69u8, 120u8, 101u8, 99u8,
117u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 45u8,
1u8, 1u8, 56u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8,
108u8, 116u8, 0u8, 6u8, 8u8, 57u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8,
32u8, 119u8, 97u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 59u8,
32u8, 96u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8,
108u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 96u8, 79u8, 107u8, 40u8, 40u8, 41u8, 41u8, 96u8,
32u8, 105u8, 102u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 32u8, 119u8,
105u8, 116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 13u8,
1u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 114u8, 101u8, 115u8,
117u8, 108u8, 116u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 46u8, 100u8, 82u8, 101u8,
108u8, 101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 116u8, 1u8, 72u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 62u8, 0u8, 7u8, 8u8, 148u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8,
46u8, 220u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 68u8, 73u8, 68u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8,
32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 76u8,
69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 65u8, 102u8, 116u8, 101u8, 114u8, 85u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 53u8, 1u8, 1u8, 92u8, 77u8, 97u8, 121u8, 98u8, 101u8,
66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 62u8, 0u8, 8u8, 8u8, 152u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 46u8, 196u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 101u8,
119u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8,
40u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 41u8, 46u8, 80u8, 86u8, 111u8, 116u8, 101u8, 84u8,
104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 9u8, 8u8, 132u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 114u8,
101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 184u8, 80u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8,
44u8, 32u8, 100u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 8u8,
92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 69u8, 1u8, 8u8, 64u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 36u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 51u8, 0u8, 0u8, 0u8,
0u8, 73u8, 1u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8,
111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8,
115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 20u8, 103u8, 114u8, 111u8, 117u8, 112u8,
32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 12u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 1u8, 68u8,
4u8, 73u8, 1u8, 77u8, 1u8, 1u8, 28u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 65u8, 100u8,
100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 8u8, 224u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8,
100u8, 100u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8,
114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 108u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 46u8, 52u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 8u8, 232u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 160u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 52u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 82u8,
101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 8u8, 228u8, 84u8, 104u8, 101u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8,
32u8, 97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 116u8,
105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 46u8, 160u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8,
101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 46u8, 56u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 83u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 3u8, 8u8, 216u8, 84u8, 119u8, 111u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8,
115u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 148u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 97u8, 100u8, 100u8, 32u8, 68u8,
73u8, 68u8, 46u8, 48u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 82u8, 101u8, 115u8, 101u8,
116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 4u8, 8u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 119u8, 97u8, 115u8,
32u8, 114u8, 101u8, 115u8, 101u8, 116u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 115u8, 46u8, 128u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 76u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8,
32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 46u8, 72u8,
65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 5u8, 4u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8,
97u8, 110u8, 121u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
108u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8,
46u8, 20u8, 68u8, 117u8, 109u8, 109u8, 121u8, 0u8, 6u8, 4u8, 108u8, 80u8, 104u8, 97u8, 110u8,
116u8, 111u8, 109u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 44u8, 32u8, 110u8, 101u8,
118u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8,
110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 77u8, 1u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 36u8, 73u8, 110u8, 115u8, 116u8, 97u8,
110u8, 99u8, 101u8, 51u8, 0u8, 0u8, 0u8, 0u8, 81u8, 1u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 82u8,
97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 12u8, 16u8, 72u8, 97u8, 115u8, 104u8, 1u8, 36u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 4u8,
73u8, 1u8, 85u8, 1u8, 1u8, 40u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 8u8, 137u8,
1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 40u8, 98u8,
121u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 41u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 116u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8,
216u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 20u8, 86u8,
111u8, 116u8, 101u8, 100u8, 28u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8,
104u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8,
44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8,
1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 1u8,
12u8, 5u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 98u8,
121u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 44u8, 32u8, 108u8, 101u8, 97u8, 118u8, 105u8, 110u8, 103u8, 73u8, 1u8, 97u8, 32u8, 116u8,
97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8,
115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8,
118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 149u8, 1u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8,
121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8,
116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 52u8, 86u8,
111u8, 116u8, 101u8, 82u8, 101u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 16u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8,
120u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8,
111u8, 111u8, 108u8, 0u8, 2u8, 8u8, 204u8, 65u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 111u8,
110u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 46u8,
5u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8,
32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8,
32u8, 114u8, 101u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 40u8, 70u8, 105u8, 110u8,
97u8, 108u8, 86u8, 111u8, 116u8, 101u8, 115u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 36u8, 1u8, 16u8,
72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8,
86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
62u8, 0u8, 3u8, 8u8, 144u8, 70u8, 105u8, 110u8, 97u8, 108u8, 32u8, 118u8, 111u8, 116u8, 101u8,
115u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8,
40u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 41u8, 248u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 101u8,
115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8,
111u8, 116u8, 101u8, 114u8, 32u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 20u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 4u8, 12u8, 9u8, 1u8,
65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8,
112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8,
32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8, 105u8, 110u8, 103u8, 65u8, 1u8, 116u8, 97u8,
108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8,
44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 110u8, 100u8,
32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8,
101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8,
111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 77u8, 1u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8,
116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 104u8, 97u8,
115u8, 104u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8,
111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8,
32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8,
115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8,
100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8,
44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 5u8, 12u8,
9u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8,
114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 104u8, 114u8,
101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8, 105u8, 110u8, 103u8, 65u8, 1u8, 116u8,
97u8, 108u8, 108u8, 121u8, 32u8, 40u8, 121u8, 101u8, 115u8, 32u8, 118u8, 111u8, 116u8, 101u8,
115u8, 44u8, 32u8, 110u8, 111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8,
118u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 77u8, 1u8, 80u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 121u8, 97u8, 121u8, 32u8, 118u8, 111u8, 116u8, 101u8,
32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 110u8, 97u8, 121u8, 32u8, 118u8, 111u8,
116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8,
108u8, 32u8, 115u8, 101u8, 97u8, 116u8, 115u8, 46u8, 32u8, 69u8, 120u8, 101u8, 99u8, 117u8,
116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 0u8, 45u8, 1u8,
1u8, 56u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8, 108u8,
116u8, 0u8, 6u8, 8u8, 57u8, 1u8, 65u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8,
119u8, 97u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 59u8, 32u8,
96u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8, 108u8,
116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 96u8, 79u8, 107u8, 40u8, 40u8, 41u8, 41u8, 96u8, 32u8,
105u8, 102u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 32u8, 119u8, 105u8,
116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 13u8, 1u8,
80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8, 114u8, 101u8, 115u8, 117u8,
108u8, 116u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 46u8, 100u8, 82u8, 101u8, 108u8,
101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 62u8, 0u8, 7u8, 8u8, 148u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8,
111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 104u8, 97u8, 115u8,
32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8,
220u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 68u8, 73u8, 68u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 76u8, 69u8,
120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 65u8, 102u8, 116u8, 101u8, 114u8, 85u8, 112u8, 100u8,
97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 53u8, 1u8, 1u8, 92u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8,
108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 62u8, 0u8, 8u8, 8u8, 152u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 46u8, 196u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 101u8,
119u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8,
40u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 41u8, 46u8, 80u8, 86u8, 111u8, 116u8, 101u8, 84u8,
104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 9u8, 8u8, 132u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 114u8,
101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 184u8, 80u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8,
44u8, 32u8, 100u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 8u8,
92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 85u8, 1u8, 8u8, 64u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 36u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 52u8, 0u8, 0u8, 0u8,
0u8, 89u8, 1u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8,
111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8,
115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 20u8, 103u8, 114u8, 111u8, 117u8, 112u8,
32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 12u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 1u8, 68u8,
4u8, 73u8, 1u8, 93u8, 1u8, 1u8, 28u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 65u8, 100u8,
100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 8u8, 224u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8,
100u8, 100u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8,
114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 108u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 46u8, 52u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 8u8, 232u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 160u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 52u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 82u8,
101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 8u8, 228u8, 84u8, 104u8, 101u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8,
32u8, 97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 116u8,
105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 46u8, 160u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 114u8,
101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 46u8, 56u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 83u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 3u8, 8u8, 216u8, 84u8, 119u8, 111u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8,
115u8, 119u8, 97u8, 112u8, 112u8, 101u8, 100u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 148u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 97u8, 100u8, 100u8, 32u8, 68u8,
73u8, 68u8, 46u8, 48u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 82u8, 101u8, 115u8, 101u8,
116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 4u8, 8u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 119u8, 97u8, 115u8,
32u8, 114u8, 101u8, 115u8, 101u8, 116u8, 59u8, 32u8, 115u8, 101u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 115u8, 46u8, 128u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 76u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8,
32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 46u8, 72u8,
65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 5u8, 4u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8,
97u8, 110u8, 121u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
108u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8,
46u8, 20u8, 68u8, 117u8, 109u8, 109u8, 121u8, 0u8, 6u8, 4u8, 108u8, 80u8, 104u8, 97u8, 110u8,
116u8, 111u8, 109u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 44u8, 32u8, 110u8, 101u8,
118u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8,
110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 93u8, 1u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 36u8, 73u8, 110u8, 115u8, 116u8, 97u8,
110u8, 99u8, 101u8, 52u8, 0u8, 0u8, 0u8, 0u8, 97u8, 1u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 82u8, 97u8,
119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 1u8, 0u8, 1u8, 48u8, 60u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8,
67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 101u8, 1u8, 1u8, 100u8, 86u8, 101u8, 99u8, 60u8,
83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8,
0u8, 8u8, 172u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8,
101u8, 100u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 46u8, 101u8, 1u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8,
115u8, 115u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 32u8, 40u8, 112u8,
101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 97u8,
108u8, 41u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8,
32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 46u8, 52u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 65u8, 100u8, 100u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8,
54u8, 52u8, 0u8, 1u8, 8u8, 152u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 97u8, 100u8, 100u8,
105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
46u8, 180u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 73u8, 68u8, 46u8, 64u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 21u8,
1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 2u8, 8u8, 168u8, 69u8, 118u8, 101u8, 110u8,
116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 115u8,
32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 212u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 73u8, 68u8, 44u8, 32u8, 114u8,
101u8, 115u8, 117u8, 108u8, 116u8, 46u8, 76u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8,
103u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 65u8, 100u8, 100u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 105u8, 1u8,
1u8, 80u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 3u8, 8u8, 160u8, 69u8, 118u8, 101u8, 110u8,
116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 32u8, 105u8,
115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 46u8, 184u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 97u8,
100u8, 100u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 96u8, 77u8,
117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 105u8, 1u8, 1u8, 80u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 4u8, 8u8, 9u8, 1u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8,
101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8,
32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 115u8, 105u8, 103u8, 110u8,
97u8, 116u8, 111u8, 114u8, 121u8, 32u8, 105u8, 115u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8,
100u8, 101u8, 100u8, 46u8, 204u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 84u8,
77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8,
82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 105u8, 1u8, 1u8, 80u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 62u8, 0u8, 5u8, 8u8, 204u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8,
105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8,
111u8, 114u8, 121u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
46u8, 192u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 132u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8,
105u8, 103u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8, 82u8, 101u8,
113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 6u8, 8u8, 1u8, 1u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8,
101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 115u8, 32u8, 105u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
100u8, 46u8, 228u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8,
101u8, 115u8, 46u8, 64u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 65u8, 112u8,
112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 105u8, 1u8, 1u8, 80u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 7u8, 8u8, 180u8, 69u8, 118u8,
101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 103u8, 101u8, 116u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8,
46u8, 1u8, 1u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 44u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 46u8, 84u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 86u8,
111u8, 116u8, 101u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 0u8, 0u8, 105u8, 1u8, 1u8, 80u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8,
121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 8u8, 8u8, 13u8, 1u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8,
101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8,
32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 115u8, 116u8, 32u8,
105u8, 110u8, 32u8, 102u8, 97u8, 118u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8,
106u8, 101u8, 99u8, 116u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 46u8, 1u8, 1u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 44u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 46u8, 64u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 9u8, 8u8, 168u8, 69u8, 118u8, 101u8, 110u8,
116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 115u8,
32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 46u8, 180u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 73u8, 68u8, 46u8, 92u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 4u8, 0u8, 88u8, 1u8, 52u8, 68u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 10u8, 4u8, 228u8,
69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 97u8,
110u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 105u8, 110u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8,
110u8, 64u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 70u8, 97u8,
105u8, 108u8, 101u8, 100u8, 4u8, 0u8, 88u8, 1u8, 52u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 11u8, 4u8, 116u8, 83u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 102u8, 97u8, 105u8, 108u8, 115u8, 46u8, 8u8, 92u8, 69u8, 118u8,
101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 101u8, 1u8, 0u8, 0u8, 2u8, 105u8, 1u8, 0u8,
105u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 36u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 111u8, 114u8, 121u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 1u8, 0u8, 1u8, 8u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 4u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
0u8, 28u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 0u8, 0u8, 109u8, 1u8, 8u8, 52u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 82u8,
97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 1u8, 0u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 1u8, 16u8, 1u8, 64u8, 68u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8,
101u8, 114u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 4u8, 144u8, 67u8, 111u8, 110u8,
102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 115u8, 101u8, 116u8, 32u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 46u8, 48u8, 65u8, 100u8, 109u8, 105u8, 110u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 1u8, 4u8, 116u8, 67u8, 111u8, 110u8, 102u8, 105u8, 114u8, 109u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 65u8, 100u8, 109u8, 105u8, 110u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 60u8, 84u8, 105u8, 109u8, 101u8, 108u8, 111u8,
99u8, 107u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8,
108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 2u8, 4u8, 160u8, 67u8,
111u8, 110u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8,
32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8,
111u8, 99u8, 107u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 28u8, 66u8, 114u8, 105u8,
100u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8, 76u8, 66u8, 114u8, 105u8, 100u8, 103u8,
101u8, 84u8, 120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8,
3u8, 4u8, 29u8, 1u8, 67u8, 111u8, 110u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 117u8, 112u8, 103u8, 114u8,
97u8, 100u8, 101u8, 32u8, 111u8, 110u8, 32u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 80u8, 79u8, 76u8, 89u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 115u8, 32u8, 111u8, 110u8, 32u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8,
109u8, 46u8, 24u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 4u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 4u8, 4u8, 144u8, 78u8, 111u8,
116u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8,
102u8, 114u8, 101u8, 101u8, 122u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8,
114u8, 105u8, 100u8, 103u8, 101u8, 46u8, 32u8, 85u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8,
110u8, 4u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 5u8, 4u8, 152u8, 78u8, 111u8, 116u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 117u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 105u8,
110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 46u8,
32u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 84u8, 120u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8, 76u8,
66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 6u8, 4u8, 156u8, 78u8, 111u8, 116u8, 105u8, 102u8, 105u8,
99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 102u8, 114u8, 101u8, 101u8,
122u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 40u8, 85u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8,
84u8, 120u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8, 76u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8,
120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 7u8, 4u8,
164u8, 78u8, 111u8, 116u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
111u8, 102u8, 32u8, 117u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 105u8, 110u8, 103u8, 32u8,
97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 60u8,
69u8, 120u8, 101u8, 109u8, 112u8, 116u8, 101u8, 100u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 8u8, 4u8, 196u8, 69u8,
120u8, 101u8, 109u8, 112u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8,
115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 72u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 76u8,
105u8, 109u8, 105u8, 116u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 9u8, 4u8, 120u8, 66u8, 114u8, 105u8,
100u8, 103u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 40u8,
84u8, 120u8, 115u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 4u8, 0u8, 117u8, 1u8, 1u8,
152u8, 86u8, 101u8, 99u8, 60u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
44u8, 32u8, 117u8, 51u8, 50u8, 44u8, 32u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 84u8,
120u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 62u8, 0u8, 10u8, 8u8, 97u8, 1u8, 65u8,
110u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8,
100u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8,
111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 105u8, 115u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8,
100u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8,
101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8,
32u8, 111u8, 102u8, 81u8, 1u8, 116u8, 117u8, 112u8, 108u8, 101u8, 115u8, 32u8, 111u8, 102u8,
32u8, 114u8, 101u8, 99u8, 105u8, 112u8, 105u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 105u8, 116u8, 115u8, 32u8, 110u8, 111u8, 110u8, 99u8,
101u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8,
116u8, 117u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8,
99u8, 101u8, 115u8, 115u8, 101u8, 100u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 68u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8,
83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8, 76u8,
66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8,
78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 11u8, 4u8, 80u8, 66u8, 114u8, 105u8, 100u8, 103u8,
101u8, 32u8, 84u8, 120u8, 32u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8,
46u8, 88u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 83u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8,
76u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 0u8, 12u8, 4u8, 116u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 66u8, 114u8, 105u8, 100u8, 103u8,
101u8, 32u8, 84u8, 120u8, 46u8, 64u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 65u8, 100u8,
109u8, 105u8, 110u8, 65u8, 100u8, 100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 13u8, 4u8, 136u8, 65u8, 32u8, 110u8, 101u8,
119u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 97u8, 100u8, 109u8, 105u8, 110u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 100u8, 100u8, 101u8,
100u8, 46u8, 72u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 65u8, 100u8, 109u8, 105u8, 110u8,
82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 14u8, 4u8, 128u8, 65u8, 32u8, 102u8, 114u8, 101u8,
101u8, 122u8, 101u8, 32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 36u8,
84u8, 120u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 113u8, 1u8, 1u8, 76u8,
66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 15u8, 4u8, 156u8, 78u8, 111u8, 116u8, 105u8, 102u8, 105u8,
99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 113u8, 1u8, 8u8, 52u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8,
114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8,
4u8, 28u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 0u8, 16u8, 1u8, 20u8, 110u8,
111u8, 110u8, 99u8, 101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 36u8, 114u8, 101u8,
99u8, 105u8, 112u8, 105u8, 101u8, 110u8, 116u8, 0u8, 1u8, 28u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 28u8, 116u8, 120u8, 95u8, 104u8, 97u8, 115u8,
104u8, 36u8, 1u8, 16u8, 72u8, 50u8, 53u8, 54u8, 0u8, 0u8, 117u8, 1u8, 0u8, 0u8, 2u8, 121u8, 1u8,
0u8, 121u8, 1u8, 0u8, 0u8, 4u8, 12u8, 0u8, 16u8, 125u8, 1u8, 0u8, 125u8, 1u8, 8u8, 52u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 60u8, 72u8,
97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 84u8, 120u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8,
0u8, 1u8, 8u8, 28u8, 83u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 0u8, 0u8, 0u8, 20u8, 69u8,
114u8, 114u8, 111u8, 114u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 0u8, 1u8, 0u8, 0u8, 129u8, 1u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8,
110u8, 116u8, 8u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 68u8, 36u8, 69u8, 114u8,
97u8, 80u8, 97u8, 121u8, 111u8, 117u8, 116u8, 12u8, 0u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8,
73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8,
12u8, 85u8, 1u8, 84u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 112u8, 97u8, 121u8, 111u8,
117u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 101u8,
116u8, 59u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 45u8, 112u8, 97u8, 121u8, 111u8,
117u8, 116u8, 59u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8,
32u8, 105u8, 115u8, 192u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8,
100u8, 101u8, 114u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8,
97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 168u8, 92u8, 91u8, 101u8,
114u8, 97u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 44u8, 32u8,
114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 100u8, 101u8, 114u8, 92u8, 93u8, 24u8, 82u8, 101u8,
119u8, 97u8, 114u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
1u8, 4u8, 57u8, 1u8, 84u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 32u8,
104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8,
100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 109u8,
111u8, 117u8, 110u8, 116u8, 46u8, 32u8, 92u8, 91u8, 115u8, 116u8, 97u8, 115u8, 104u8, 95u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 115u8, 116u8, 97u8, 115u8,
104u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 92u8, 93u8, 20u8, 83u8, 108u8, 97u8,
115u8, 104u8, 8u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 2u8, 8u8,
33u8, 1u8, 79u8, 110u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
32u8, 40u8, 97u8, 110u8, 100u8, 32u8, 105u8, 116u8, 115u8, 32u8, 110u8, 111u8, 109u8, 105u8,
110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 46u8, 84u8, 92u8, 91u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 92u8, 93u8, 104u8, 79u8, 108u8,
100u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 82u8, 101u8, 112u8, 111u8, 114u8,
116u8, 68u8, 105u8, 115u8, 99u8, 97u8, 114u8, 100u8, 101u8, 100u8, 4u8, 0u8, 16u8, 1u8, 48u8,
83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 3u8, 8u8,
25u8, 1u8, 65u8, 110u8, 32u8, 111u8, 108u8, 100u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 97u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 32u8, 101u8, 114u8, 97u8, 32u8, 119u8, 97u8,
115u8, 32u8, 100u8, 105u8, 115u8, 99u8, 97u8, 114u8, 100u8, 101u8, 100u8, 32u8, 98u8, 101u8,
99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 105u8, 116u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8,
140u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8,
115u8, 101u8, 100u8, 46u8, 32u8, 92u8, 91u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8,
95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 92u8, 93u8, 60u8, 83u8, 116u8, 97u8, 107u8, 105u8,
110u8, 103u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 133u8, 1u8, 1u8,
60u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 109u8, 112u8, 117u8,
116u8, 101u8, 0u8, 4u8, 4u8, 240u8, 65u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 116u8,
32u8, 111u8, 102u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 32u8, 119u8, 97u8,
115u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 92u8, 91u8, 99u8,
111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 92u8, 93u8, 46u8, 56u8, 83u8, 111u8, 108u8, 117u8,
116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 4u8, 0u8, 133u8, 1u8, 1u8,
60u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 109u8, 112u8, 117u8,
116u8, 101u8, 0u8, 5u8, 4u8, 21u8, 1u8, 65u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 111u8,
108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 117u8, 112u8, 99u8, 111u8, 109u8, 105u8, 110u8, 103u8, 32u8, 101u8, 108u8, 101u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 46u8, 32u8, 92u8, 91u8, 99u8, 111u8, 109u8, 112u8,
117u8, 116u8, 101u8, 92u8, 93u8, 24u8, 66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 12u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8,
1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 6u8, 16u8, 228u8, 65u8, 110u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 111u8, 110u8,
100u8, 101u8, 100u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 46u8, 32u8, 92u8, 91u8, 100u8, 105u8, 100u8, 44u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8,
44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 92u8, 93u8, 0u8, 77u8, 1u8, 78u8, 79u8,
84u8, 69u8, 58u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8,
105u8, 115u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8,
100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 97u8,
114u8, 101u8, 32u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8, 118u8, 105u8, 97u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8,
32u8, 78u8, 111u8, 116u8, 97u8, 98u8, 108u8, 121u8, 44u8, 33u8, 1u8, 105u8, 116u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 101u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8,
110u8, 103u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 32u8, 119u8, 104u8, 101u8,
110u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 100u8, 100u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 46u8, 32u8, 85u8,
110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 7u8, 4u8, 236u8, 65u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8,
100u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 46u8,
32u8, 92u8, 91u8, 100u8, 105u8, 100u8, 44u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 44u8, 32u8,
97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 92u8, 93u8, 36u8, 78u8, 111u8, 109u8, 105u8, 110u8,
97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 0u8, 232u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 8u8, 4u8, 136u8, 85u8, 115u8, 101u8, 114u8, 32u8,
104u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8,
101u8, 105u8, 114u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8,
115u8, 36u8, 87u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 110u8, 8u8, 0u8, 0u8, 1u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 9u8, 8u8, 89u8, 1u8, 65u8, 110u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 96u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 95u8, 117u8,
110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 105u8,
110u8, 103u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 32u8, 119u8, 111u8, 114u8, 116u8,
104u8, 32u8, 96u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 172u8, 102u8, 114u8, 111u8,
109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 105u8, 110u8,
103u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 46u8, 32u8, 92u8, 91u8, 115u8, 116u8, 97u8,
115u8, 104u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 92u8, 93u8, 100u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 65u8, 100u8, 100u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 10u8, 8u8, 236u8, 65u8,
110u8, 32u8, 68u8, 73u8, 68u8, 32u8, 104u8, 97u8, 115u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8,
100u8, 32u8, 97u8, 32u8, 99u8, 97u8, 110u8, 100u8, 105u8, 100u8, 97u8, 99u8, 121u8, 46u8, 32u8,
83u8, 101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8,
140u8, 71u8, 67u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 44u8,
32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 39u8, 115u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 108u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 11u8, 8u8, 232u8, 84u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 32u8, 83u8,
101u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 46u8, 140u8,
71u8, 67u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 44u8, 32u8, 86u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 84u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 101u8, 100u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8,
232u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 0u8, 12u8, 8u8, 29u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 101u8,
120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 148u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8,
44u8, 32u8, 83u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 32u8, 111u8, 102u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 115u8, 80u8, 67u8, 111u8, 109u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 67u8,
97u8, 112u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 137u8, 1u8, 1u8, 28u8,
80u8, 101u8, 114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 0u8, 137u8, 1u8, 1u8, 28u8, 80u8, 101u8,
114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 13u8, 8u8, 128u8, 87u8, 104u8, 101u8, 110u8, 32u8, 99u8,
111u8, 109u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 112u8, 32u8,
103u8, 101u8, 116u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 88u8, 40u8,
111u8, 108u8, 100u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 44u8, 32u8, 110u8, 101u8, 119u8,
32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 41u8, 108u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8,
109u8, 66u8, 111u8, 110u8, 100u8, 84u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8,
85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 8u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
62u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 14u8, 4u8,
172u8, 77u8, 105u8, 110u8, 32u8, 98u8, 111u8, 110u8, 100u8, 32u8, 116u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8,
116u8, 101u8, 100u8, 32u8, 40u8, 110u8, 101u8, 119u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8,
41u8, 46u8, 136u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 97u8, 121u8, 109u8, 101u8,
110u8, 116u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 73u8, 110u8,
116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 12u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 32u8, 69u8, 114u8,
97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 88u8, 1u8, 52u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 15u8, 4u8, 204u8, 87u8, 104u8,
101u8, 110u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8,
111u8, 102u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 112u8, 97u8, 121u8, 109u8,
101u8, 110u8, 116u8, 115u8, 32u8, 103u8, 101u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8,
114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 46u8, 100u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 70u8, 111u8, 114u8, 67u8, 104u8,
97u8, 110u8, 103u8, 101u8, 100u8, 4u8, 0u8, 141u8, 1u8, 1u8, 56u8, 83u8, 108u8, 97u8, 115u8,
104u8, 105u8, 110u8, 103u8, 83u8, 119u8, 105u8, 116u8, 99u8, 104u8, 0u8, 16u8, 4u8, 144u8, 85u8,
112u8, 100u8, 97u8, 116u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 111u8, 109u8,
32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 103u8, 101u8, 116u8, 32u8, 115u8, 108u8,
97u8, 115u8, 104u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 133u8, 1u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 60u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 67u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 0u8, 1u8, 12u8, 28u8, 79u8, 110u8, 67u8,
104u8, 97u8, 105u8, 110u8, 0u8, 0u8, 0u8, 24u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 0u8,
1u8, 0u8, 32u8, 85u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 0u8, 2u8, 0u8, 0u8, 137u8,
1u8, 12u8, 52u8, 115u8, 112u8, 95u8, 97u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8,
105u8, 99u8, 40u8, 112u8, 101u8, 114u8, 95u8, 116u8, 104u8, 105u8, 110u8, 103u8, 115u8, 28u8,
80u8, 101u8, 114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 0u8, 141u8, 1u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 56u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8,
103u8, 83u8, 119u8, 105u8, 116u8, 99u8, 104u8, 0u8, 1u8, 12u8, 36u8, 86u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 0u8, 0u8, 0u8, 84u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 65u8, 110u8, 100u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 0u8, 1u8, 0u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 2u8, 0u8, 0u8, 145u8, 1u8, 12u8,
60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8,
101u8, 115u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8,
116u8, 0u8, 1u8, 4u8, 28u8, 79u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 8u8, 1u8, 16u8, 107u8,
105u8, 110u8, 100u8, 149u8, 1u8, 1u8, 16u8, 75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 32u8, 116u8,
105u8, 109u8, 101u8, 115u8, 108u8, 111u8, 116u8, 40u8, 1u8, 56u8, 79u8, 112u8, 97u8, 113u8,
117u8, 101u8, 84u8, 105u8, 109u8, 101u8, 83u8, 108u8, 111u8, 116u8, 0u8, 0u8, 12u8, 81u8, 1u8,
84u8, 104u8, 101u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 102u8,
102u8, 101u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
96u8, 107u8, 105u8, 110u8, 100u8, 96u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 101u8,
100u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 97u8, 110u8, 100u8,
53u8, 1u8, 40u8, 107u8, 105u8, 110u8, 100u8, 45u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 99u8, 41u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 115u8, 108u8, 111u8, 116u8, 46u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 100u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8,
32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 46u8, 76u8, 92u8, 91u8, 107u8, 105u8,
110u8, 100u8, 44u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 108u8, 111u8, 116u8, 92u8, 93u8,
46u8, 4u8, 48u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8,
149u8, 1u8, 0u8, 0u8, 3u8, 16u8, 0u8, 0u8, 0u8, 8u8, 0u8, 153u8, 1u8, 12u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 24u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 4u8, 40u8,
78u8, 101u8, 119u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 4u8, 1u8, 52u8, 115u8, 101u8,
115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 48u8,
83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 8u8,
57u8, 1u8, 78u8, 101u8, 119u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8,
104u8, 97u8, 115u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 101u8, 100u8, 46u8, 32u8,
78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8,
120u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 156u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 97u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 109u8, 105u8, 103u8, 104u8, 116u8, 32u8,
115u8, 117u8, 103u8, 103u8, 101u8, 115u8, 116u8, 46u8, 4u8, 153u8, 1u8, 10u8, 9u8, 9u8, 9u8,
84u8, 104u8, 101u8, 32u8, 91u8, 101u8, 118u8, 101u8, 110u8, 116u8, 93u8, 40u8, 104u8, 116u8,
116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8, 115u8, 117u8, 98u8,
115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8, 51u8, 47u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 45u8,
97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8, 32u8, 101u8, 109u8,
105u8, 116u8, 116u8, 101u8, 100u8, 10u8, 9u8, 9u8, 9u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 157u8, 1u8,
12u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8,
112u8, 97u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8,
116u8, 0u8, 1u8, 12u8, 56u8, 78u8, 101u8, 119u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
116u8, 105u8, 101u8, 115u8, 4u8, 1u8, 52u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
116u8, 121u8, 95u8, 115u8, 101u8, 116u8, 161u8, 1u8, 1u8, 52u8, 65u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 116u8, 121u8, 76u8, 105u8, 115u8, 116u8, 0u8, 0u8, 4u8, 140u8, 78u8, 101u8, 119u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8, 101u8, 116u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 112u8, 112u8, 108u8,
105u8, 101u8, 100u8, 46u8, 24u8, 80u8, 97u8, 117u8, 115u8, 101u8, 100u8, 0u8, 1u8, 4u8, 152u8,
67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 116u8, 121u8, 32u8, 115u8, 101u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8, 46u8, 28u8, 82u8, 101u8, 115u8,
117u8, 109u8, 101u8, 100u8, 0u8, 2u8, 4u8, 156u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8, 101u8, 116u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 115u8, 117u8,
109u8, 101u8, 100u8, 46u8, 4u8, 153u8, 1u8, 10u8, 9u8, 9u8, 9u8, 84u8, 104u8, 101u8, 32u8, 91u8,
101u8, 118u8, 101u8, 110u8, 116u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8,
47u8, 100u8, 111u8, 99u8, 115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8,
101u8, 46u8, 105u8, 111u8, 47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 47u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8,
114u8, 114u8, 111u8, 114u8, 115u8, 41u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8,
10u8, 9u8, 9u8, 9u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 161u8, 1u8, 0u8, 0u8, 2u8, 165u8, 1u8, 0u8,
165u8, 1u8, 0u8, 0u8, 4u8, 8u8, 169u8, 1u8, 32u8, 0u8, 169u8, 1u8, 12u8, 76u8, 115u8, 112u8,
95u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 95u8, 103u8, 114u8, 97u8, 110u8,
100u8, 112u8, 97u8, 12u8, 97u8, 112u8, 112u8, 24u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8,
0u8, 4u8, 0u8, 173u8, 1u8, 1u8, 60u8, 101u8, 100u8, 50u8, 53u8, 53u8, 49u8, 57u8, 58u8, 58u8,
80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 173u8, 1u8, 12u8, 28u8, 115u8, 112u8, 95u8,
99u8, 111u8, 114u8, 101u8, 28u8, 101u8, 100u8, 50u8, 53u8, 53u8, 49u8, 57u8, 24u8, 80u8, 117u8,
98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8,
51u8, 50u8, 93u8, 0u8, 0u8, 177u8, 1u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 24u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 4u8, 84u8, 0u8, 1u8, 12u8,
68u8, 72u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 82u8, 101u8, 99u8, 101u8, 105u8,
118u8, 101u8, 100u8, 4u8, 1u8, 48u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 95u8, 105u8, 100u8, 181u8, 1u8, 1u8, 56u8, 84u8, 58u8, 58u8, 65u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 4u8, 192u8, 65u8, 32u8, 110u8, 101u8,
119u8, 32u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 32u8, 119u8, 97u8,
115u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 73u8, 100u8,
96u8, 46u8, 28u8, 65u8, 108u8, 108u8, 71u8, 111u8, 111u8, 100u8, 0u8, 1u8, 4u8, 208u8, 65u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 44u8, 32u8, 110u8, 111u8,
32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 46u8, 44u8, 83u8, 111u8, 109u8, 101u8,
79u8, 102u8, 102u8, 108u8, 105u8, 110u8, 101u8, 4u8, 1u8, 28u8, 111u8, 102u8, 102u8, 108u8,
105u8, 110u8, 101u8, 189u8, 1u8, 1u8, 108u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 84u8, 117u8, 112u8, 108u8,
101u8, 60u8, 84u8, 62u8, 62u8, 0u8, 2u8, 4u8, 41u8, 1u8, 65u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8,
115u8, 115u8, 105u8, 111u8, 110u8, 44u8, 32u8, 97u8, 116u8, 32u8, 108u8, 101u8, 97u8, 115u8,
116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 111u8, 102u8, 102u8, 108u8, 105u8, 110u8, 101u8, 46u8, 4u8, 153u8, 1u8,
10u8, 9u8, 9u8, 9u8, 84u8, 104u8, 101u8, 32u8, 91u8, 101u8, 118u8, 101u8, 110u8, 116u8, 93u8,
40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8,
115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8,
51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8,
116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8,
32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 10u8, 9u8, 9u8, 9u8, 98u8, 121u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8,
9u8, 181u8, 1u8, 16u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 109u8, 95u8,
111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 28u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 44u8,
97u8, 112u8, 112u8, 95u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 24u8, 80u8, 117u8, 98u8,
108u8, 105u8, 99u8, 0u8, 0u8, 4u8, 0u8, 185u8, 1u8, 1u8, 60u8, 115u8, 114u8, 50u8, 53u8, 53u8,
49u8, 57u8, 58u8, 58u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 185u8, 1u8, 12u8, 28u8,
115u8, 112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 28u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8,
24u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8,
56u8, 59u8, 32u8, 51u8, 50u8, 93u8, 0u8, 0u8, 189u8, 1u8, 0u8, 0u8, 2u8, 193u8, 1u8, 0u8, 193u8,
1u8, 0u8, 0u8, 4u8, 8u8, 0u8, 197u8, 1u8, 0u8, 197u8, 1u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 69u8, 120u8, 112u8,
111u8, 115u8, 117u8, 114u8, 101u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 1u8, 0u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 12u8, 1u8,
20u8, 116u8, 111u8, 116u8, 97u8, 108u8, 201u8, 1u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 1u8, 12u8, 111u8, 119u8, 110u8, 201u8, 1u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 24u8, 111u8, 116u8, 104u8, 101u8, 114u8, 115u8, 205u8, 1u8, 1u8,
172u8, 86u8, 101u8, 99u8, 60u8, 73u8, 110u8, 100u8, 105u8, 118u8, 105u8, 100u8, 117u8, 97u8,
108u8, 69u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8, 101u8, 60u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 62u8,
62u8, 0u8, 0u8, 201u8, 1u8, 0u8, 0u8, 6u8, 24u8, 0u8, 205u8, 1u8, 0u8, 0u8, 2u8, 209u8, 1u8, 0u8,
209u8, 1u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8,
105u8, 110u8, 103u8, 72u8, 73u8, 110u8, 100u8, 105u8, 118u8, 105u8, 100u8, 117u8, 97u8, 108u8,
69u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8, 101u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8,
24u8, 0u8, 8u8, 1u8, 12u8, 119u8, 104u8, 111u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 213u8, 1u8, 8u8, 44u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 117u8, 100u8, 111u8, 32u8, 82u8, 97u8, 119u8, 69u8,
118u8, 101u8, 110u8, 116u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
1u8, 0u8, 1u8, 12u8, 20u8, 83u8, 117u8, 100u8, 105u8, 100u8, 4u8, 0u8, 45u8, 1u8, 1u8, 56u8,
68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8,
0u8, 0u8, 4u8, 136u8, 65u8, 32u8, 115u8, 117u8, 100u8, 111u8, 32u8, 106u8, 117u8, 115u8, 116u8,
32u8, 116u8, 111u8, 111u8, 107u8, 32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 46u8, 32u8, 92u8, 91u8,
114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 92u8, 93u8, 40u8, 75u8, 101u8, 121u8, 67u8, 104u8,
97u8, 110u8, 103u8, 101u8, 100u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 4u8, 252u8, 84u8, 104u8, 101u8, 32u8, 92u8, 91u8, 115u8,
117u8, 100u8, 111u8, 101u8, 114u8, 92u8, 93u8, 32u8, 106u8, 117u8, 115u8, 116u8, 32u8, 115u8,
119u8, 105u8, 116u8, 99u8, 104u8, 101u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 59u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 108u8, 100u8, 32u8, 107u8, 101u8,
121u8, 32u8, 105u8, 115u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 46u8,
40u8, 83u8, 117u8, 100u8, 111u8, 65u8, 115u8, 68u8, 111u8, 110u8, 101u8, 4u8, 0u8, 45u8, 1u8,
1u8, 56u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 82u8, 101u8, 115u8, 117u8, 108u8,
116u8, 0u8, 2u8, 4u8, 136u8, 65u8, 32u8, 115u8, 117u8, 100u8, 111u8, 32u8, 106u8, 117u8, 115u8,
116u8, 32u8, 116u8, 111u8, 111u8, 107u8, 32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 46u8, 32u8, 92u8,
91u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 92u8, 93u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8,
116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8,
100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 217u8, 1u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8,
20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8,
116u8, 8u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 1u8, 32u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 104u8, 32u8, 84u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8,
100u8, 0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8,
8u8, 116u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 115u8, 46u8, 220u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 44u8, 32u8, 116u8, 111u8, 32u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 44u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 24u8, 73u8, 115u8, 115u8, 117u8, 101u8, 100u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 221u8, 1u8, 1u8, 64u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8,
82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 8u8, 112u8, 69u8, 109u8, 105u8, 116u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 103u8, 101u8,
116u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 46u8, 117u8, 1u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
44u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8, 105u8, 97u8, 114u8, 121u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8,
105u8, 110u8, 103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 44u8, 32u8, 116u8, 111u8, 116u8,
97u8, 108u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 114u8, 111u8,
117u8, 110u8, 100u8, 32u8, 82u8, 101u8, 100u8, 101u8, 101u8, 109u8, 101u8, 100u8, 16u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 2u8, 8u8, 120u8, 69u8, 109u8, 105u8, 116u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 103u8, 101u8,
116u8, 32u8, 114u8, 101u8, 100u8, 101u8, 101u8, 109u8, 101u8, 100u8, 46u8, 144u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 44u8, 32u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 118u8,
97u8, 108u8, 117u8, 101u8, 48u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 114u8, 101u8, 97u8,
116u8, 101u8, 100u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8,
21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 225u8, 1u8, 1u8, 36u8, 65u8, 115u8,
115u8, 101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 3u8, 8u8, 128u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 149u8, 1u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 47u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 100u8, 105u8, 118u8,
105u8, 115u8, 105u8, 98u8, 105u8, 108u8, 105u8, 116u8, 121u8, 44u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 44u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8,
105u8, 99u8, 105u8, 97u8, 114u8, 121u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 32u8,
117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 72u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 233u8, 1u8,
1u8, 80u8, 86u8, 101u8, 99u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 62u8, 0u8, 4u8, 8u8, 212u8, 69u8, 118u8, 101u8, 110u8,
116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 97u8, 110u8, 121u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 117u8,
112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 13u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 97u8,
32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 40u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 32u8, 116u8, 121u8, 112u8, 101u8, 44u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 41u8, 76u8, 68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 105u8, 108u8,
105u8, 116u8, 121u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8,
108u8, 0u8, 5u8, 8u8, 132u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 105u8, 110u8, 32u8, 100u8, 105u8, 118u8, 105u8,
115u8, 105u8, 98u8, 105u8, 108u8, 105u8, 116u8, 121u8, 46u8, 128u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8,
32u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 105u8, 108u8, 105u8, 116u8, 121u8, 64u8,
84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 87u8, 105u8, 116u8, 104u8, 68u8, 97u8,
116u8, 97u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8,
1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 6u8, 8u8, 53u8, 1u8, 65u8, 110u8, 32u8, 97u8, 100u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8,
116u8, 111u8, 32u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 59u8, 32u8, 101u8,
109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 100u8,
97u8, 116u8, 97u8, 96u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 46u8,
200u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 44u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 116u8, 111u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8,
44u8, 32u8, 100u8, 97u8, 116u8, 97u8, 40u8, 73u8, 115u8, 73u8, 115u8, 115u8, 117u8, 97u8, 98u8,
108u8, 101u8, 8u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 21u8,
1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 7u8, 8u8, 80u8, 105u8, 115u8, 95u8, 105u8, 115u8,
115u8, 117u8, 97u8, 98u8, 108u8, 101u8, 40u8, 41u8, 32u8, 111u8, 117u8, 116u8, 112u8, 117u8,
116u8, 156u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 114u8, 101u8, 116u8, 117u8,
114u8, 110u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 40u8, 116u8, 114u8, 117u8, 101u8,
32u8, 105u8, 102u8, 32u8, 105u8, 115u8, 115u8, 117u8, 97u8, 98u8, 108u8, 101u8, 41u8, 64u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 240u8, 1u8,
56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
62u8, 0u8, 8u8, 8u8, 124u8, 69u8, 109u8, 105u8, 116u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 103u8, 105u8,
115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 46u8, 236u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 32u8, 47u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8,
119u8, 110u8, 101u8, 114u8, 32u8, 100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 44u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 68u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 9u8, 8u8, 128u8, 69u8,
109u8, 105u8, 116u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 105u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8,
101u8, 100u8, 46u8, 208u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 32u8,
47u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 114u8, 111u8, 109u8, 100u8, 65u8,
115u8, 115u8, 101u8, 116u8, 79u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 84u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 10u8, 8u8, 164u8, 69u8, 109u8, 105u8, 116u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 105u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 46u8, 244u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 32u8, 47u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 111u8,
119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 114u8, 111u8, 109u8, 44u8, 65u8,
115u8, 115u8, 101u8, 116u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 8u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 11u8, 8u8, 164u8, 65u8, 110u8, 32u8, 101u8, 118u8,
101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 105u8, 115u8,
32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 120u8, 80u8, 97u8, 114u8, 97u8, 109u8,
101u8, 116u8, 101u8, 114u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 52u8, 65u8, 115u8, 115u8, 101u8,
116u8, 85u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 12u8, 8u8, 172u8, 65u8, 110u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8,
110u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 105u8, 115u8, 32u8,
117u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 120u8, 80u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 48u8, 65u8, 115u8,
115u8, 101u8, 116u8, 82u8, 101u8, 110u8, 97u8, 109u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 249u8, 1u8, 1u8, 36u8, 65u8, 115u8, 115u8,
101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8, 13u8, 8u8, 164u8, 65u8, 110u8, 32u8, 101u8, 118u8,
101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 97u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 115u8, 32u8,
114u8, 101u8, 110u8, 97u8, 109u8, 101u8, 100u8, 46u8, 188u8, 80u8, 97u8, 114u8, 97u8, 109u8,
101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 110u8, 101u8,
119u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8, 60u8,
70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 83u8, 101u8,
116u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 221u8, 1u8,
1u8, 64u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8,
78u8, 97u8, 109u8, 101u8, 0u8, 14u8, 8u8, 17u8, 1u8, 65u8, 110u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 32u8, 99u8, 97u8, 114u8, 114u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 204u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8,
101u8, 114u8, 115u8, 58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8,
105u8, 110u8, 103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 32u8, 110u8, 97u8, 109u8, 101u8,
46u8, 52u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 65u8, 100u8, 100u8, 101u8,
100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 253u8, 1u8,
1u8, 40u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 1u8, 2u8,
1u8, 32u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 0u8, 15u8, 4u8, 140u8, 65u8,
32u8, 110u8, 101u8, 119u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8,
97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 60u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8,
82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 0u8, 253u8, 1u8, 1u8, 40u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8,
110u8, 116u8, 73u8, 100u8, 0u8, 16u8, 4u8, 128u8, 65u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8,
101u8, 110u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 64u8, 69u8, 120u8,
116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 0u8, 1u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 17u8, 8u8, 96u8, 65u8, 32u8,
101u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 32u8, 103u8, 111u8, 116u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 116u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 80u8, 67u8, 108u8, 97u8, 115u8, 115u8,
105u8, 99u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 67u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 45u8, 2u8,
1u8, 60u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 65u8, 100u8, 100u8, 114u8,
101u8, 115u8, 115u8, 0u8, 18u8, 4u8, 53u8, 1u8, 65u8, 32u8, 80u8, 111u8, 108u8, 121u8, 109u8,
97u8, 116u8, 104u8, 32u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 110u8, 111u8, 110u8, 45u8, 115u8,
121u8, 115u8, 116u8, 101u8, 109u8, 97u8, 116u8, 105u8, 99u8, 32u8, 68u8, 73u8, 68u8, 46u8, 72u8,
67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 84u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8,
100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 19u8, 8u8,
180u8, 69u8, 118u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 101u8,
110u8, 32u8, 97u8, 32u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 116u8, 97u8, 107u8, 101u8, 115u8, 32u8, 112u8, 108u8,
97u8, 99u8, 101u8, 46u8, 21u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 47u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 44u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 46u8, 84u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8,
116u8, 84u8, 121u8, 112u8, 101u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 229u8, 1u8,
1u8, 68u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8,
121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 20u8, 8u8, 176u8, 65u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 111u8, 110u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 49u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 110u8, 116u8,
115u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 46u8, 100u8,
67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8, 112u8,
101u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 12u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 229u8,
1u8, 1u8, 68u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8,
121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 21u8, 8u8, 176u8, 65u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 119u8, 97u8, 115u8,
32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 32u8, 111u8, 110u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 49u8, 1u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 110u8, 116u8,
115u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 46u8, 84u8,
83u8, 101u8, 116u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 0u8, 49u8, 2u8, 1u8, 72u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 0u8, 0u8, 53u8,
2u8, 1u8, 160u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8,
116u8, 97u8, 105u8, 108u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 62u8, 0u8, 22u8,
8u8, 100u8, 83u8, 101u8, 116u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 240u8, 40u8,
67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 44u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 44u8, 32u8, 111u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8,
108u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 41u8, 112u8, 83u8, 101u8, 116u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 57u8,
2u8, 1u8, 128u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 60u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 23u8, 8u8, 220u8, 83u8, 101u8, 116u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8,
97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 40u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 44u8, 32u8, 108u8, 111u8, 99u8, 107u8, 32u8, 115u8,
116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 46u8, 140u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 41u8,
120u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 84u8, 121u8,
112u8, 101u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 65u8,
2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 69u8, 2u8, 1u8, 84u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 75u8, 101u8,
121u8, 0u8, 0u8, 73u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 83u8, 112u8, 101u8, 99u8, 0u8, 24u8, 8u8, 140u8, 82u8, 101u8,
103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 108u8, 111u8, 99u8, 97u8, 108u8, 32u8, 116u8,
121u8, 112u8, 101u8, 46u8, 5u8, 1u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 76u8, 111u8, 99u8,
97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 44u8, 32u8, 76u8,
111u8, 99u8, 97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 107u8, 101u8, 121u8, 44u8,
32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 115u8, 41u8, 124u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 84u8, 121u8, 112u8,
101u8, 12u8, 0u8, 65u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 97u8, 2u8, 1u8, 88u8, 65u8,
115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 71u8, 108u8,
111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 0u8, 0u8, 73u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8,
101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 83u8, 112u8, 101u8, 99u8, 0u8,
25u8, 8u8, 144u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 103u8,
108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 188u8, 40u8, 71u8,
108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 110u8, 97u8, 109u8,
101u8, 44u8, 32u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8,
107u8, 101u8, 121u8, 44u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8,
115u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 221u8,
1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8,
105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8,
64u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8,
97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 0u8, 0u8, 225u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 20u8, 97u8, 115u8,
115u8, 101u8, 116u8, 36u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8,
44u8, 48u8, 69u8, 113u8, 117u8, 105u8, 116u8, 121u8, 67u8, 111u8, 109u8, 109u8, 111u8, 110u8,
0u8, 0u8, 0u8, 60u8, 69u8, 113u8, 117u8, 105u8, 116u8, 121u8, 80u8, 114u8, 101u8, 102u8, 101u8,
114u8, 114u8, 101u8, 100u8, 0u8, 1u8, 0u8, 36u8, 67u8, 111u8, 109u8, 109u8, 111u8, 100u8, 105u8,
116u8, 121u8, 0u8, 2u8, 0u8, 44u8, 70u8, 105u8, 120u8, 101u8, 100u8, 73u8, 110u8, 99u8, 111u8,
109u8, 101u8, 0u8, 3u8, 0u8, 16u8, 82u8, 69u8, 73u8, 84u8, 0u8, 4u8, 0u8, 16u8, 70u8, 117u8,
110u8, 100u8, 0u8, 5u8, 0u8, 84u8, 82u8, 101u8, 118u8, 101u8, 110u8, 117u8, 101u8, 83u8, 104u8,
97u8, 114u8, 101u8, 65u8, 103u8, 114u8, 101u8, 101u8, 109u8, 101u8, 110u8, 116u8, 0u8, 6u8, 0u8,
68u8, 83u8, 116u8, 114u8, 117u8, 99u8, 116u8, 117u8, 114u8, 101u8, 100u8, 80u8, 114u8, 111u8,
100u8, 117u8, 99u8, 116u8, 0u8, 7u8, 0u8, 40u8, 68u8, 101u8, 114u8, 105u8, 118u8, 97u8, 116u8,
105u8, 118u8, 101u8, 0u8, 8u8, 0u8, 24u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 4u8, 0u8,
229u8, 1u8, 1u8, 68u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8, 116u8,
84u8, 121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 9u8, 0u8, 40u8, 83u8, 116u8, 97u8, 98u8, 108u8,
101u8, 67u8, 111u8, 105u8, 110u8, 0u8, 10u8, 0u8, 0u8, 229u8, 1u8, 12u8, 76u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8,
118u8, 101u8, 115u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 68u8, 67u8, 117u8, 115u8, 116u8,
111u8, 109u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 0u8,
4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 233u8, 1u8, 0u8, 0u8, 2u8, 237u8, 1u8,
0u8, 237u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 64u8, 97u8, 115u8, 115u8, 101u8,
116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 60u8, 65u8,
115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8,
0u8, 1u8, 20u8, 20u8, 67u8, 85u8, 83u8, 73u8, 80u8, 4u8, 0u8, 241u8, 1u8, 1u8, 28u8, 91u8, 117u8,
56u8, 59u8, 32u8, 57u8, 93u8, 0u8, 0u8, 0u8, 16u8, 67u8, 73u8, 78u8, 83u8, 4u8, 0u8, 241u8, 1u8,
1u8, 28u8, 91u8, 117u8, 56u8, 59u8, 32u8, 57u8, 93u8, 0u8, 1u8, 0u8, 16u8, 73u8, 83u8, 73u8,
78u8, 4u8, 0u8, 160u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 49u8, 50u8, 93u8, 0u8, 2u8, 0u8,
12u8, 76u8, 69u8, 73u8, 4u8, 0u8, 245u8, 1u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 50u8,
48u8, 93u8, 0u8, 3u8, 0u8, 16u8, 70u8, 73u8, 71u8, 73u8, 4u8, 0u8, 160u8, 1u8, 32u8, 91u8, 117u8,
56u8, 59u8, 32u8, 49u8, 50u8, 93u8, 0u8, 4u8, 0u8, 0u8, 241u8, 1u8, 0u8, 0u8, 3u8, 9u8, 0u8, 0u8,
0u8, 8u8, 0u8, 245u8, 1u8, 0u8, 0u8, 3u8, 20u8, 0u8, 0u8, 0u8, 8u8, 0u8, 249u8, 1u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 36u8, 65u8, 115u8,
115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 253u8, 1u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 40u8, 68u8, 111u8, 99u8,
117u8, 109u8, 101u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 0u8, 1u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 100u8, 111u8,
99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8,
116u8, 0u8, 0u8, 20u8, 1u8, 12u8, 117u8, 114u8, 105u8, 5u8, 2u8, 1u8, 44u8, 68u8, 111u8, 99u8,
117u8, 109u8, 101u8, 110u8, 116u8, 85u8, 114u8, 105u8, 0u8, 1u8, 48u8, 99u8, 111u8, 110u8, 116u8,
101u8, 110u8, 116u8, 95u8, 104u8, 97u8, 115u8, 104u8, 9u8, 2u8, 1u8, 48u8, 68u8, 111u8, 99u8,
117u8, 109u8, 101u8, 110u8, 116u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 16u8, 110u8, 97u8, 109u8,
101u8, 33u8, 2u8, 1u8, 48u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 78u8, 97u8,
109u8, 101u8, 0u8, 1u8, 32u8, 100u8, 111u8, 99u8, 95u8, 116u8, 121u8, 112u8, 101u8, 37u8, 2u8,
1u8, 80u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8,
110u8, 116u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 1u8, 44u8, 102u8, 105u8, 108u8, 105u8, 110u8,
103u8, 95u8, 100u8, 97u8, 116u8, 101u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 5u8, 2u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8,
44u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 85u8, 114u8, 105u8, 0u8, 0u8, 4u8,
0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 9u8, 2u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8,
95u8, 104u8, 97u8, 115u8, 104u8, 48u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8,
72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 36u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8,
72u8, 53u8, 49u8, 50u8, 4u8, 0u8, 13u8, 2u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 54u8,
52u8, 93u8, 0u8, 1u8, 0u8, 16u8, 72u8, 51u8, 56u8, 52u8, 4u8, 0u8, 17u8, 2u8, 1u8, 32u8, 91u8,
117u8, 56u8, 59u8, 32u8, 52u8, 56u8, 93u8, 0u8, 2u8, 0u8, 16u8, 72u8, 51u8, 50u8, 48u8, 4u8, 0u8,
21u8, 2u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 52u8, 48u8, 93u8, 0u8, 3u8, 0u8, 16u8, 72u8,
50u8, 53u8, 54u8, 4u8, 0u8, 4u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 51u8, 50u8, 93u8, 0u8,
4u8, 0u8, 16u8, 72u8, 50u8, 50u8, 52u8, 4u8, 0u8, 25u8, 2u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8,
32u8, 50u8, 56u8, 93u8, 0u8, 5u8, 0u8, 16u8, 72u8, 49u8, 57u8, 50u8, 4u8, 0u8, 29u8, 2u8, 1u8,
32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 50u8, 52u8, 93u8, 0u8, 6u8, 0u8, 16u8, 72u8, 49u8, 54u8,
48u8, 4u8, 0u8, 245u8, 1u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 50u8, 48u8, 93u8, 0u8, 7u8,
0u8, 16u8, 72u8, 49u8, 50u8, 56u8, 4u8, 0u8, 149u8, 1u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8,
32u8, 49u8, 54u8, 93u8, 0u8, 8u8, 0u8, 0u8, 13u8, 2u8, 0u8, 0u8, 3u8, 64u8, 0u8, 0u8, 0u8, 8u8,
0u8, 17u8, 2u8, 0u8, 0u8, 3u8, 48u8, 0u8, 0u8, 0u8, 8u8, 0u8, 21u8, 2u8, 0u8, 0u8, 3u8, 40u8,
0u8, 0u8, 0u8, 8u8, 0u8, 25u8, 2u8, 0u8, 0u8, 3u8, 28u8, 0u8, 0u8, 0u8, 8u8, 0u8, 29u8, 2u8, 0u8,
0u8, 3u8, 24u8, 0u8, 0u8, 0u8, 8u8, 0u8, 33u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 48u8, 68u8, 111u8, 99u8,
117u8, 109u8, 101u8, 110u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8,
86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 37u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 41u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8,
0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 41u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8,
41u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 100u8, 111u8, 99u8, 117u8,
109u8, 101u8, 110u8, 116u8, 48u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 84u8,
121u8, 112u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 0u8, 0u8, 45u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 101u8, 116u8,
104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 60u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8,
109u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 0u8, 0u8, 4u8, 0u8, 245u8, 1u8, 1u8, 32u8,
91u8, 117u8, 56u8, 59u8, 32u8, 50u8, 48u8, 93u8, 0u8, 0u8, 49u8, 2u8, 12u8, 76u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8,
118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 72u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8,
86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 53u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 57u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8,
0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 57u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8,
57u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8, 101u8,
116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 96u8, 65u8, 115u8, 115u8,
101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8,
101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 4u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 1u8, 32u8, 0u8, 8u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 240u8, 1u8,
56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
62u8, 0u8, 1u8, 44u8, 108u8, 111u8, 99u8, 107u8, 95u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
61u8, 2u8, 1u8, 124u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 76u8, 111u8, 99u8, 107u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 60u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 61u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 92u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 76u8, 111u8, 99u8, 107u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 4u8, 24u8, 77u8,
111u8, 109u8, 101u8, 110u8, 116u8, 1u8, 32u8, 1u8, 12u8, 32u8, 85u8, 110u8, 108u8, 111u8, 99u8,
107u8, 101u8, 100u8, 0u8, 0u8, 0u8, 24u8, 76u8, 111u8, 99u8, 107u8, 101u8, 100u8, 0u8, 1u8, 0u8,
44u8, 76u8, 111u8, 99u8, 107u8, 101u8, 100u8, 85u8, 110u8, 116u8, 105u8, 108u8, 4u8, 0u8, 32u8,
1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 2u8, 0u8, 0u8, 65u8, 2u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8,
28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 69u8, 2u8, 12u8, 76u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8,
118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 84u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 75u8, 101u8, 121u8, 0u8, 0u8, 4u8, 0u8,
32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 73u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 83u8, 112u8, 101u8, 99u8, 0u8, 0u8, 12u8, 1u8, 12u8, 117u8, 114u8, 108u8, 77u8, 2u8,
1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 85u8, 114u8, 108u8, 62u8, 0u8, 1u8,
44u8, 100u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 85u8, 2u8, 1u8,
128u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 68u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8,
116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 1u8, 32u8, 116u8, 121u8, 112u8, 101u8, 95u8, 100u8, 101u8,
102u8, 93u8, 2u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 86u8, 101u8, 99u8,
60u8, 117u8, 56u8, 62u8, 62u8, 0u8, 0u8, 77u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 4u8, 4u8, 84u8, 1u8, 81u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8,
16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 81u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8, 81u8, 2u8, 8u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 12u8, 85u8, 114u8, 108u8, 0u8, 0u8, 4u8, 0u8, 40u8,
1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 85u8, 2u8, 4u8, 24u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 89u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 89u8, 2u8, 0u8, 0u8, 1u8,
0u8, 0u8, 89u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8,
101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 96u8, 65u8, 115u8,
115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 68u8, 101u8, 115u8,
99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8,
101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 93u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 40u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8,
0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 40u8, 0u8, 0u8, 1u8, 0u8, 0u8, 97u8, 2u8, 12u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 88u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8,
121u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 101u8, 2u8, 12u8, 96u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 48u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 20u8, 69u8, 118u8, 101u8, 110u8,
116u8, 0u8, 1u8, 16u8, 28u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 105u8,
2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8,
16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 117u8, 2u8, 1u8, 48u8, 68u8, 105u8, 115u8, 116u8, 114u8,
105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 16u8, 184u8, 65u8, 32u8, 99u8, 97u8,
112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 44u8,
49u8, 1u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 40u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
41u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 67u8,
65u8, 73u8, 100u8, 96u8, 46u8, 0u8, 168u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 100u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 41u8, 56u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 24u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8,
110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8,
116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8,
117u8, 2u8, 1u8, 48u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 121u8,
2u8, 1u8, 12u8, 84u8, 97u8, 120u8, 0u8, 1u8, 12u8, 81u8, 1u8, 65u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 39u8, 115u8, 32u8, 98u8, 101u8,
110u8, 101u8, 102u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 97u8, 112u8,
105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 96u8, 67u8, 65u8, 73u8, 100u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8,
99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8, 0u8, 145u8, 1u8, 40u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 72u8, 111u8, 108u8, 100u8, 101u8, 114u8,
47u8, 67u8, 108u8, 97u8, 105u8, 109u8, 97u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8,
32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 44u8, 32u8, 68u8, 73u8, 68u8, 39u8, 115u8,
32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 44u8, 32u8, 68u8, 73u8, 68u8, 39u8, 115u8,
32u8, 116u8, 97u8, 120u8, 32u8, 37u8, 41u8, 36u8, 82u8, 101u8, 99u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 12u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8,
100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 2u8, 12u8, 152u8, 83u8, 116u8, 97u8, 116u8, 115u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 112u8, 117u8, 115u8, 104u8, 95u8, 98u8, 101u8,
110u8, 101u8, 102u8, 105u8, 116u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 101u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 46u8, 0u8, 21u8, 1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 109u8, 97u8,
120u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 32u8, 68u8, 73u8,
68u8, 115u8, 44u8, 32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 101u8, 100u8, 32u8,
68u8, 73u8, 68u8, 115u8, 44u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 68u8, 73u8,
68u8, 115u8, 41u8, 28u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 105u8, 2u8,
1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8,
67u8, 65u8, 73u8, 100u8, 0u8, 3u8, 12u8, 140u8, 65u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8,
97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8,
0u8, 80u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8,
65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 0u8, 105u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 101u8,
118u8, 101u8, 110u8, 116u8, 95u8, 111u8, 110u8, 108u8, 121u8, 36u8, 69u8, 118u8, 101u8, 110u8,
116u8, 79u8, 110u8, 108u8, 121u8, 4u8, 4u8, 84u8, 1u8, 120u8, 0u8, 4u8, 0u8, 120u8, 1u8, 4u8,
84u8, 0u8, 0u8, 109u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 32u8, 108u8,
111u8, 99u8, 97u8, 108u8, 95u8, 105u8, 100u8, 113u8, 2u8, 1u8, 36u8, 76u8, 111u8, 99u8, 97u8,
108u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 113u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 36u8, 76u8, 111u8, 99u8, 97u8, 108u8, 67u8, 65u8, 73u8,
100u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 117u8, 2u8, 12u8, 96u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 48u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 48u8, 68u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 32u8, 1u8, 16u8, 102u8, 114u8,
111u8, 109u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
73u8, 100u8, 0u8, 1u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 156u8, 1u8,
24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 36u8, 112u8, 101u8, 114u8, 95u8, 115u8,
104u8, 97u8, 114u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8,
24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 114u8, 101u8, 99u8,
108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
1u8, 40u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 32u8, 1u8, 24u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 40u8, 101u8, 120u8, 112u8, 105u8, 114u8,
101u8, 115u8, 95u8, 97u8, 116u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 121u8, 2u8, 12u8, 52u8, 115u8, 112u8,
95u8, 97u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8, 40u8, 112u8, 101u8,
114u8, 95u8, 116u8, 104u8, 105u8, 110u8, 103u8, 115u8, 28u8, 80u8, 101u8, 114u8, 109u8, 105u8,
108u8, 108u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 125u8, 2u8, 16u8,
100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8,
111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8,
114u8, 97u8, 105u8, 116u8, 115u8, 40u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8,
110u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 16u8, 68u8, 67u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8,
20u8, 0u8, 129u8, 2u8, 1u8, 64u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 69u8, 118u8,
101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 62u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 0u8, 133u8, 2u8, 1u8, 48u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8,
111u8, 105u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 0u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8,
12u8, 100u8, 65u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 29u8,
1u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8,
105u8, 110u8, 116u8, 32u8, 73u8, 68u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8,
117u8, 112u8, 112u8, 108u8, 121u8, 44u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8,
105u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 41u8,
132u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 115u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 67u8,
104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8,
12u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 110u8, 32u8, 97u8, 114u8, 98u8, 105u8, 116u8, 114u8, 97u8, 114u8, 121u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 39u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 100u8, 46u8, 0u8, 100u8, 40u8, 71u8, 67u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8,
117u8, 109u8, 41u8, 60u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 67u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8,
116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 137u8, 2u8, 1u8, 56u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 2u8, 12u8, 136u8, 65u8, 32u8, 99u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8,
120u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 41u8, 60u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 137u8, 2u8, 1u8, 56u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 3u8, 12u8, 136u8, 65u8, 32u8, 99u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8,
0u8, 120u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
0u8, 129u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 105u8,
2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8,
4u8, 0u8, 105u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8, 133u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8,
121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8,
101u8, 115u8, 32u8, 99u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 48u8, 67u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 137u8, 2u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8,
40u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 56u8, 83u8, 116u8,
111u8, 114u8, 101u8, 100u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 0u8, 16u8,
1u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 141u8, 2u8, 1u8, 72u8, 67u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 83u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 0u8, 1u8, 8u8, 105u8, 100u8, 153u8, 2u8, 1u8, 40u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 73u8, 100u8, 0u8, 1u8, 8u8, 97u8, 116u8, 32u8, 1u8, 24u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 36u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8,
105u8, 110u8, 103u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 141u8, 2u8, 12u8, 76u8, 112u8,
111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8,
105u8, 118u8, 101u8, 115u8, 32u8, 99u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 72u8,
67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 83u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 0u8, 0u8, 8u8, 1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8,
1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 24u8, 112u8, 101u8, 114u8, 105u8,
111u8, 100u8, 145u8, 2u8, 1u8, 56u8, 67u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 80u8,
101u8, 114u8, 105u8, 111u8, 100u8, 0u8, 0u8, 145u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 32u8, 99u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 56u8, 67u8, 97u8, 108u8, 101u8,
110u8, 100u8, 97u8, 114u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 0u8, 0u8, 8u8, 1u8, 16u8,
117u8, 110u8, 105u8, 116u8, 149u8, 2u8, 1u8, 48u8, 67u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8,
114u8, 85u8, 110u8, 105u8, 116u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 149u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 32u8, 99u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 48u8, 67u8, 97u8, 108u8, 101u8,
110u8, 100u8, 97u8, 114u8, 85u8, 110u8, 105u8, 116u8, 0u8, 1u8, 28u8, 24u8, 83u8, 101u8, 99u8,
111u8, 110u8, 100u8, 0u8, 0u8, 0u8, 24u8, 77u8, 105u8, 110u8, 117u8, 116u8, 101u8, 0u8, 1u8, 0u8,
16u8, 72u8, 111u8, 117u8, 114u8, 0u8, 2u8, 0u8, 12u8, 68u8, 97u8, 121u8, 0u8, 3u8, 0u8, 16u8,
87u8, 101u8, 101u8, 107u8, 0u8, 4u8, 0u8, 20u8, 77u8, 111u8, 110u8, 116u8, 104u8, 0u8, 5u8, 0u8,
16u8, 89u8, 101u8, 97u8, 114u8, 0u8, 6u8, 0u8, 0u8, 153u8, 2u8, 16u8, 100u8, 112u8, 111u8, 108u8,
121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8,
116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8,
115u8, 40u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 40u8, 83u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8,
117u8, 54u8, 52u8, 0u8, 0u8, 157u8, 2u8, 8u8, 100u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 95u8, 109u8, 97u8,
110u8, 97u8, 103u8, 101u8, 114u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 36u8, 112u8,
67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8,
105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 161u8, 2u8, 1u8,
84u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8, 8u8, 204u8, 69u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 110u8, 101u8, 119u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 176u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 67u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 41u8, 46u8, 112u8, 67u8, 111u8, 109u8, 112u8, 108u8,
105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8,
110u8, 116u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 8u8,
196u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8,
97u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 148u8, 40u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8,
32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 105u8,
100u8, 41u8, 46u8, 92u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8, 109u8, 112u8, 108u8,
105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 112u8, 108u8, 97u8, 99u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 205u8, 2u8, 1u8, 104u8, 86u8,
101u8, 99u8, 60u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 2u8, 8u8, 180u8,
69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8,
110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8,
97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 112u8, 108u8, 97u8, 99u8,
101u8, 100u8, 46u8, 212u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8,
58u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 46u8,
80u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 82u8, 101u8, 115u8, 101u8, 116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 3u8, 8u8, 216u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8,
97u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8,
115u8, 101u8, 116u8, 46u8, 84u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 46u8, 88u8, 65u8, 115u8, 115u8,
101u8, 116u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8,
115u8, 117u8, 109u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 4u8, 8u8, 1u8, 1u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 99u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8,
97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 114u8, 101u8, 115u8, 117u8, 109u8, 101u8, 46u8, 84u8,
40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 41u8, 46u8, 84u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 80u8, 97u8, 117u8, 115u8, 101u8, 100u8,
8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 5u8, 8u8, 1u8, 1u8,
69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8,
110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8,
97u8, 110u8, 99u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 103u8, 101u8, 116u8, 115u8,
32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8, 46u8, 84u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 46u8,
112u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 161u8, 2u8,
1u8, 84u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 0u8, 6u8, 8u8, 224u8, 69u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 99u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
109u8, 101u8, 110u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 109u8, 111u8, 100u8, 105u8, 102u8,
105u8, 101u8, 100u8, 47u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 176u8, 40u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 44u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 41u8, 46u8, 120u8, 84u8,
114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 65u8, 100u8, 100u8, 101u8,
100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 189u8, 2u8,
1u8, 52u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 73u8, 115u8, 115u8, 117u8, 101u8,
114u8, 0u8, 7u8, 8u8, 21u8, 1u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 99u8, 108u8,
97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 108u8, 105u8, 115u8,
116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 97u8, 100u8,
100u8, 101u8, 100u8, 46u8, 168u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 65u8, 100u8, 100u8, 101u8,
100u8, 32u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 73u8, 115u8, 115u8, 117u8, 101u8,
114u8, 41u8, 46u8, 128u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 68u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 67u8, 108u8, 97u8, 105u8, 109u8, 73u8, 115u8, 115u8, 117u8, 101u8,
114u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 8u8, 8u8, 25u8, 1u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8,
100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8,
32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8,
108u8, 105u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 103u8, 101u8, 116u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 176u8, 40u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8,
32u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 84u8, 114u8, 117u8, 115u8, 116u8,
101u8, 100u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 41u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8,
110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 161u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 72u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 95u8, 109u8,
97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 84u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8,
110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8,
0u8, 0u8, 12u8, 1u8, 68u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 95u8, 99u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 165u8, 2u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8,
67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 1u8, 76u8, 114u8, 101u8,
99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 95u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8,
111u8, 110u8, 115u8, 165u8, 2u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 67u8, 111u8, 110u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 1u8, 8u8, 105u8, 100u8, 16u8, 1u8, 12u8, 117u8,
51u8, 50u8, 0u8, 0u8, 165u8, 2u8, 0u8, 0u8, 2u8, 169u8, 2u8, 0u8, 169u8, 2u8, 12u8, 76u8, 112u8,
111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8,
105u8, 118u8, 101u8, 115u8, 36u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8,
36u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 8u8, 1u8, 56u8,
99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 95u8, 116u8, 121u8, 112u8, 101u8,
173u8, 2u8, 1u8, 52u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 84u8, 121u8,
112u8, 101u8, 0u8, 1u8, 28u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 115u8, 185u8, 2u8, 1u8,
72u8, 86u8, 101u8, 99u8, 60u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 73u8, 115u8,
115u8, 117u8, 101u8, 114u8, 62u8, 0u8, 0u8, 173u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 36u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 52u8, 67u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8, 20u8, 36u8,
73u8, 115u8, 80u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 4u8, 0u8, 244u8, 1u8, 20u8, 67u8,
108u8, 97u8, 105u8, 109u8, 0u8, 0u8, 0u8, 32u8, 73u8, 115u8, 65u8, 98u8, 115u8, 101u8, 110u8,
116u8, 4u8, 0u8, 244u8, 1u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 1u8, 0u8, 28u8, 73u8,
115u8, 65u8, 110u8, 121u8, 79u8, 102u8, 4u8, 0u8, 177u8, 2u8, 1u8, 40u8, 86u8, 101u8, 99u8, 60u8,
67u8, 108u8, 97u8, 105u8, 109u8, 62u8, 0u8, 2u8, 0u8, 32u8, 73u8, 115u8, 78u8, 111u8, 110u8,
101u8, 79u8, 102u8, 4u8, 0u8, 177u8, 2u8, 1u8, 40u8, 86u8, 101u8, 99u8, 60u8, 67u8, 108u8, 97u8,
105u8, 109u8, 62u8, 0u8, 3u8, 0u8, 40u8, 73u8, 115u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 4u8, 0u8, 181u8, 2u8, 1u8, 56u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 4u8, 0u8, 0u8, 177u8, 2u8, 0u8, 0u8, 2u8,
244u8, 0u8, 181u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 36u8, 99u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 56u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 1u8, 8u8, 52u8, 69u8, 120u8, 116u8, 101u8,
114u8, 110u8, 97u8, 108u8, 65u8, 103u8, 101u8, 110u8, 116u8, 0u8, 0u8, 0u8, 32u8, 83u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 4u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 0u8, 0u8, 185u8, 2u8, 0u8, 0u8, 2u8, 189u8,
2u8, 0u8, 189u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 36u8, 99u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 52u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8,
73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 0u8, 0u8, 8u8, 1u8, 24u8, 105u8, 115u8, 115u8, 117u8,
101u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 1u8, 44u8, 116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 95u8, 102u8, 111u8,
114u8, 193u8, 2u8, 1u8, 40u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 70u8, 111u8, 114u8,
0u8, 0u8, 193u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 36u8, 99u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 40u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8,
70u8, 111u8, 114u8, 0u8, 1u8, 8u8, 12u8, 65u8, 110u8, 121u8, 0u8, 0u8, 0u8, 32u8, 83u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 4u8, 0u8, 197u8, 2u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8,
67u8, 108u8, 97u8, 105u8, 109u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 1u8, 0u8, 0u8, 197u8, 2u8,
0u8, 0u8, 2u8, 201u8, 2u8, 0u8, 201u8, 2u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8,
36u8, 67u8, 108u8, 97u8, 105u8, 109u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8, 48u8, 40u8, 65u8,
99u8, 99u8, 114u8, 101u8, 100u8, 105u8, 116u8, 101u8, 100u8, 0u8, 0u8, 0u8, 36u8, 65u8, 102u8,
102u8, 105u8, 108u8, 105u8, 97u8, 116u8, 101u8, 0u8, 1u8, 0u8, 36u8, 66u8, 117u8, 121u8, 76u8,
111u8, 99u8, 107u8, 117u8, 112u8, 0u8, 2u8, 0u8, 40u8, 83u8, 101u8, 108u8, 108u8, 76u8, 111u8,
99u8, 107u8, 117u8, 112u8, 0u8, 3u8, 0u8, 80u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 101u8,
114u8, 68u8, 117u8, 101u8, 68u8, 105u8, 108u8, 105u8, 103u8, 101u8, 110u8, 99u8, 101u8, 0u8, 4u8,
0u8, 64u8, 75u8, 110u8, 111u8, 119u8, 89u8, 111u8, 117u8, 114u8, 67u8, 117u8, 115u8, 116u8,
111u8, 109u8, 101u8, 114u8, 0u8, 5u8, 0u8, 48u8, 74u8, 117u8, 114u8, 105u8, 115u8, 100u8, 105u8,
99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 6u8, 0u8, 32u8, 69u8, 120u8, 101u8, 109u8, 112u8, 116u8,
101u8, 100u8, 0u8, 7u8, 0u8, 28u8, 66u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 0u8, 8u8, 0u8,
72u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8,
101u8, 110u8, 101u8, 115u8, 115u8, 0u8, 9u8, 0u8, 24u8, 78u8, 111u8, 84u8, 121u8, 112u8, 101u8,
0u8, 10u8, 0u8, 80u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8,
113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 86u8, 50u8, 0u8, 11u8, 0u8, 0u8, 205u8, 2u8,
0u8, 0u8, 2u8, 161u8, 2u8, 0u8, 209u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 36u8, 92u8, 77u8,
97u8, 120u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 76u8, 101u8, 110u8, 103u8, 116u8,
104u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 0u8, 8u8, 212u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8,
109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 100u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 105u8, 110u8, 32u8, 98u8, 121u8, 116u8,
101u8, 115u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8,
46u8, 80u8, 40u8, 71u8, 67u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8,
108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 41u8, 120u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
105u8, 101u8, 115u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 213u8, 2u8, 1u8, 64u8, 84u8, 97u8, 114u8,
103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 0u8,
1u8, 8u8, 236u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 100u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 96u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 96u8, 32u8, 102u8, 111u8,
114u8, 32u8, 97u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 99u8, 104u8, 97u8, 110u8,
103u8, 101u8, 100u8, 46u8, 164u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 84u8,
97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8,
115u8, 41u8, 112u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 87u8, 105u8, 116u8, 104u8,
104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 84u8, 97u8, 120u8, 67u8, 104u8, 97u8, 110u8,
103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8,
121u8, 2u8, 1u8, 12u8, 84u8, 97u8, 120u8, 0u8, 2u8, 8u8, 196u8, 84u8, 104u8, 101u8, 32u8, 100u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8,
100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
100u8, 46u8, 116u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 84u8, 97u8, 120u8,
41u8, 46u8, 96u8, 68u8, 105u8, 100u8, 87u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8,
105u8, 110u8, 103u8, 84u8, 97u8, 120u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 16u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 221u8, 2u8, 1u8, 44u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 97u8, 120u8, 62u8, 0u8, 3u8, 8u8, 236u8,
84u8, 104u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8,
32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
100u8, 46u8, 160u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 84u8, 97u8, 120u8, 101u8, 100u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 84u8, 97u8, 120u8, 41u8, 46u8, 56u8, 67u8,
65u8, 65u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 4u8, 8u8, 108u8, 65u8, 32u8,
110u8, 101u8, 119u8, 32u8, 68u8, 73u8, 68u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 97u8, 100u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 65u8, 46u8, 140u8, 40u8, 78u8, 101u8, 119u8,
32u8, 67u8, 65u8, 65u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 67u8, 65u8, 65u8, 32u8, 68u8, 73u8, 68u8, 41u8,
46u8, 44u8, 67u8, 65u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8,
105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8,
2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 225u8, 2u8, 1u8, 60u8, 67u8, 111u8, 114u8,
112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 253u8,
2u8, 1u8, 36u8, 67u8, 65u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 5u8, 8u8, 76u8,
65u8, 32u8, 67u8, 65u8, 32u8, 119u8, 97u8, 115u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8,
116u8, 101u8, 100u8, 46u8, 168u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8,
44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 41u8, 52u8, 67u8, 65u8, 76u8, 105u8, 110u8, 107u8, 101u8, 100u8, 84u8, 111u8, 68u8, 111u8,
99u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 1u8, 3u8, 1u8, 60u8,
86u8, 101u8, 99u8, 60u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 73u8, 100u8, 62u8,
0u8, 6u8, 8u8, 132u8, 65u8, 32u8, 67u8, 65u8, 32u8, 119u8, 97u8, 115u8, 32u8, 108u8, 105u8,
110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 115u8, 101u8, 116u8, 32u8,
111u8, 102u8, 32u8, 100u8, 111u8, 99u8, 115u8, 46u8, 172u8, 40u8, 65u8, 103u8, 101u8, 110u8,
116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 32u8, 73u8, 100u8, 44u8, 32u8, 76u8,
105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 100u8, 111u8, 99u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 41u8, 36u8, 67u8, 65u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8,
116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 7u8,
8u8, 68u8, 65u8, 32u8, 67u8, 65u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 46u8, 72u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8,
44u8, 32u8, 67u8, 65u8, 32u8, 73u8, 100u8, 41u8, 68u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8,
68u8, 97u8, 116u8, 101u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 105u8, 2u8,
1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8,
67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 225u8, 2u8, 1u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 8u8, 4u8, 108u8, 65u8,
32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 32u8, 100u8, 97u8,
116u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8,
101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 213u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 64u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 0u8, 0u8, 8u8, 1u8, 40u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 33u8, 1u8, 1u8, 60u8, 86u8,
101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8,
1u8, 36u8, 116u8, 114u8, 101u8, 97u8, 116u8, 109u8, 101u8, 110u8, 116u8, 217u8, 2u8, 1u8, 60u8,
84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 84u8, 114u8, 101u8, 97u8, 116u8, 109u8, 101u8, 110u8,
116u8, 0u8, 0u8, 217u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 60u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 84u8, 114u8, 101u8, 97u8, 116u8,
109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 8u8, 28u8, 73u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
0u8, 0u8, 0u8, 28u8, 69u8, 120u8, 99u8, 108u8, 117u8, 100u8, 101u8, 0u8, 1u8, 0u8, 0u8, 221u8,
2u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 121u8, 2u8, 1u8,
8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8,
121u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8, 225u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8,
101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 24u8, 1u8, 16u8, 107u8, 105u8, 110u8,
100u8, 229u8, 2u8, 1u8, 24u8, 67u8, 65u8, 75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 36u8, 100u8,
101u8, 99u8, 108u8, 95u8, 100u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 0u8, 1u8, 44u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8,
101u8, 233u8, 2u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 82u8, 101u8, 99u8,
111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 62u8, 0u8, 1u8, 28u8, 116u8, 97u8, 114u8, 103u8,
101u8, 116u8, 115u8, 213u8, 2u8, 1u8, 64u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 0u8, 1u8, 92u8, 100u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 95u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8,
110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 121u8, 2u8, 1u8, 12u8, 84u8, 97u8, 120u8, 0u8, 1u8, 60u8,
119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8,
120u8, 245u8, 2u8, 1u8, 88u8, 86u8, 101u8, 99u8, 60u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 84u8, 97u8, 120u8, 41u8, 62u8, 0u8, 0u8, 229u8,
2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 67u8, 65u8,
75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 20u8, 72u8, 80u8, 114u8, 101u8, 100u8, 105u8, 99u8, 116u8,
97u8, 98u8, 108u8, 101u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 0u8, 0u8, 0u8, 80u8,
85u8, 110u8, 112u8, 114u8, 101u8, 100u8, 105u8, 99u8, 116u8, 97u8, 98u8, 108u8, 101u8, 66u8,
101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 0u8, 1u8, 0u8, 48u8, 73u8, 115u8, 115u8, 117u8, 101u8,
114u8, 78u8, 111u8, 116u8, 105u8, 99u8, 101u8, 0u8, 2u8, 0u8, 56u8, 82u8, 101u8, 111u8, 114u8,
103u8, 97u8, 110u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 3u8, 0u8, 20u8, 79u8,
116u8, 104u8, 101u8, 114u8, 0u8, 4u8, 0u8, 0u8, 233u8, 2u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 237u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8,
0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 237u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8, 237u8,
2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 40u8, 82u8,
101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 0u8, 0u8, 8u8, 1u8, 16u8, 100u8,
97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 40u8,
99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 241u8, 2u8, 1u8, 48u8, 67u8,
65u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 0u8, 0u8, 241u8, 2u8,
8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 48u8, 67u8, 65u8,
67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 0u8, 1u8, 8u8, 36u8, 83u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 8u8, 0u8, 153u8, 2u8, 1u8, 40u8, 83u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8,
54u8, 52u8, 0u8, 0u8, 0u8, 32u8, 69u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 4u8, 0u8,
133u8, 2u8, 1u8, 48u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 73u8,
100u8, 0u8, 1u8, 0u8, 0u8, 245u8, 2u8, 0u8, 0u8, 2u8, 249u8, 2u8, 0u8, 249u8, 2u8, 0u8, 0u8, 4u8,
8u8, 120u8, 121u8, 2u8, 0u8, 253u8, 2u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 36u8, 67u8, 65u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8,
0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 1u8, 3u8,
0u8, 0u8, 2u8, 253u8, 1u8, 0u8, 5u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 20u8, 69u8, 118u8,
101u8, 110u8, 116u8, 0u8, 1u8, 24u8, 28u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 20u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 9u8, 3u8, 1u8, 60u8, 66u8, 97u8,
108u8, 108u8, 111u8, 116u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8, 103u8, 101u8, 0u8, 0u8,
13u8, 3u8, 1u8, 40u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 0u8,
21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 12u8, 124u8, 65u8, 32u8, 99u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8,
32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 21u8,
1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8,
39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 115u8,
116u8, 97u8, 114u8, 116u8, 47u8, 101u8, 110u8, 100u8, 44u8, 32u8, 66u8, 97u8, 108u8, 108u8,
111u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 44u8, 32u8, 82u8, 67u8,
86u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 63u8, 41u8, 32u8, 86u8, 111u8, 116u8,
101u8, 67u8, 97u8, 115u8, 116u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8,
0u8, 45u8, 3u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 86u8,
111u8, 116u8, 101u8, 62u8, 0u8, 1u8, 12u8, 152u8, 65u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8,
119u8, 97u8, 115u8, 32u8, 99u8, 97u8, 115u8, 116u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8,
116u8, 46u8, 0u8, 96u8, 40u8, 118u8, 111u8, 116u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 67u8, 65u8, 73u8, 100u8, 44u8, 32u8, 86u8, 111u8, 116u8, 101u8, 115u8, 41u8, 48u8, 82u8,
97u8, 110u8, 103u8, 101u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 109u8, 2u8,
1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 9u8, 3u8, 1u8, 60u8, 66u8, 97u8, 108u8, 108u8,
111u8, 116u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8, 103u8, 101u8, 0u8, 2u8, 12u8, 208u8,
65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 32u8, 105u8, 116u8,
115u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 47u8, 101u8, 110u8, 100u8, 32u8, 100u8, 97u8,
116u8, 101u8, 32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8, 0u8, 152u8, 40u8, 65u8, 103u8, 101u8,
110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8,
44u8, 32u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8,
47u8, 101u8, 110u8, 100u8, 41u8, 44u8, 77u8, 101u8, 116u8, 97u8, 67u8, 104u8, 97u8, 110u8, 103u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 13u8, 3u8, 1u8,
40u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 3u8, 12u8, 160u8,
65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 32u8, 105u8, 116u8,
115u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 46u8, 0u8, 136u8, 40u8, 65u8,
103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8,
73u8, 68u8, 44u8, 32u8, 78u8, 101u8, 119u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 41u8, 40u8, 82u8, 67u8, 86u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 4u8, 12u8, 172u8, 65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 99u8, 104u8, 97u8, 110u8,
103u8, 101u8, 100u8, 32u8, 105u8, 116u8, 115u8, 32u8, 82u8, 67u8, 86u8, 32u8, 115u8, 117u8,
112u8, 112u8, 111u8, 114u8, 116u8, 46u8, 0u8, 132u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 78u8,
101u8, 119u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 41u8, 28u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 8u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8,
116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 5u8,
12u8, 124u8, 65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8,
97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 46u8, 0u8, 80u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 73u8, 68u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8,
110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 9u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 60u8,
66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8, 103u8,
101u8, 0u8, 0u8, 8u8, 1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 1u8, 24u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 12u8, 101u8, 110u8, 100u8, 32u8, 1u8, 24u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 0u8, 0u8, 13u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 40u8, 66u8,
97u8, 108u8, 108u8, 111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 0u8, 8u8, 1u8, 20u8, 116u8,
105u8, 116u8, 108u8, 101u8, 17u8, 3u8, 1u8, 44u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 84u8,
105u8, 116u8, 108u8, 101u8, 0u8, 1u8, 28u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 115u8,
21u8, 3u8, 1u8, 44u8, 86u8, 101u8, 99u8, 60u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 62u8,
0u8, 0u8, 17u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 44u8, 66u8, 97u8, 108u8, 108u8, 111u8,
116u8, 84u8, 105u8, 116u8, 108u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8,
60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 21u8, 3u8, 0u8, 0u8, 2u8, 25u8, 3u8, 0u8, 25u8, 3u8, 12u8,
96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8,
97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 24u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 12u8, 1u8, 20u8,
116u8, 105u8, 116u8, 108u8, 101u8, 29u8, 3u8, 1u8, 44u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8,
84u8, 105u8, 116u8, 108u8, 101u8, 0u8, 1u8, 36u8, 105u8, 110u8, 102u8, 111u8, 95u8, 108u8, 105u8,
110u8, 107u8, 33u8, 3u8, 1u8, 56u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 73u8, 110u8, 102u8,
111u8, 76u8, 105u8, 110u8, 107u8, 0u8, 1u8, 28u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8,
37u8, 3u8, 1u8, 64u8, 86u8, 101u8, 99u8, 60u8, 67u8, 104u8, 111u8, 105u8, 99u8, 101u8, 84u8,
105u8, 116u8, 108u8, 101u8, 62u8, 0u8, 0u8, 29u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 44u8,
77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 84u8, 105u8, 116u8, 108u8, 101u8, 0u8, 0u8, 4u8, 0u8,
40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 33u8, 3u8, 12u8, 96u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 56u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 73u8, 110u8, 102u8, 111u8,
76u8, 105u8, 110u8, 107u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 0u8, 37u8, 3u8, 0u8, 0u8, 2u8, 41u8, 3u8, 0u8, 41u8, 3u8, 12u8, 96u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8,
101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8,
111u8, 116u8, 44u8, 67u8, 104u8, 111u8, 105u8, 99u8, 101u8, 84u8, 105u8, 116u8, 108u8, 101u8,
0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 45u8,
3u8, 0u8, 0u8, 2u8, 49u8, 3u8, 0u8, 49u8, 3u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 40u8, 66u8,
97u8, 108u8, 108u8, 111u8, 116u8, 86u8, 111u8, 116u8, 101u8, 0u8, 0u8, 8u8, 1u8, 20u8, 112u8,
111u8, 119u8, 101u8, 114u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
1u8, 32u8, 102u8, 97u8, 108u8, 108u8, 98u8, 97u8, 99u8, 107u8, 53u8, 3u8, 1u8, 44u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 49u8, 54u8, 62u8, 0u8, 0u8, 53u8, 3u8, 4u8, 24u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 57u8, 3u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 57u8, 3u8, 0u8, 0u8, 1u8,
0u8, 0u8, 57u8, 3u8, 0u8, 0u8, 5u8, 4u8, 0u8, 61u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8,
110u8, 116u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 1u8,
80u8, 80u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 105u8, 99u8, 97u8, 108u8, 80u8, 105u8,
112u8, 115u8, 80u8, 114u8, 117u8, 110u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8,
111u8, 111u8, 108u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 4u8,
69u8, 1u8, 80u8, 114u8, 117u8, 110u8, 105u8, 110u8, 103u8, 32u8, 72u8, 105u8, 115u8, 116u8,
111u8, 114u8, 105u8, 99u8, 97u8, 108u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 105u8, 115u8, 32u8,
101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 44u8, 32u8,
110u8, 101u8, 119u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 41u8, 60u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
65u8, 3u8, 1u8, 76u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 60u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8,
112u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
0u8, 77u8, 2u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 85u8, 114u8, 108u8,
62u8, 0u8, 0u8, 77u8, 3u8, 1u8, 88u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 80u8, 105u8,
112u8, 68u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 0u8,
53u8, 1u8, 1u8, 92u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 0u8, 85u8,
3u8, 1u8, 48u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 97u8, 116u8, 97u8,
0u8, 1u8, 20u8, 152u8, 65u8, 32u8, 80u8, 73u8, 80u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 97u8,
100u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 96u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 96u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8,
80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 0u8, 81u8, 1u8, 67u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 114u8, 44u8, 32u8, 80u8, 73u8, 80u8, 32u8, 73u8, 68u8, 44u8, 32u8, 100u8,
101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 44u8, 32u8, 85u8, 82u8, 76u8, 44u8, 32u8, 100u8, 101u8,
115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 101u8, 120u8, 112u8,
105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 100u8, 97u8, 116u8, 97u8, 46u8, 80u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 85u8, 112u8, 100u8, 97u8, 116u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 0u8, 89u8,
3u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8,
101u8, 0u8, 2u8, 4u8, 216u8, 84u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 101u8, 100u8, 32u8,
101u8, 97u8, 99u8, 104u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 97u8, 116u8, 101u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 115u8, 32u8, 97u8, 109u8, 101u8, 110u8, 100u8,
101u8, 100u8, 20u8, 86u8, 111u8, 116u8, 101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8,
112u8, 73u8, 100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 24u8,
1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 3u8, 4u8, 248u8, 96u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8,
32u8, 96u8, 98u8, 111u8, 111u8, 108u8, 96u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8,
101u8, 110u8, 99u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 80u8, 105u8, 112u8, 73u8, 100u8,
96u8, 36u8, 80u8, 105u8, 112u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8,
1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8,
108u8, 0u8, 4u8, 4u8, 232u8, 80u8, 105u8, 112u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 99u8, 108u8, 111u8, 115u8, 101u8, 100u8, 44u8, 32u8, 98u8, 111u8, 111u8,
108u8, 32u8, 105u8, 110u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 115u8, 32u8, 119u8, 104u8,
101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 105u8, 115u8, 32u8,
112u8, 114u8, 117u8, 110u8, 101u8, 100u8, 72u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8,
1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 5u8, 4u8, 224u8, 69u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8,
104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 99u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 116u8, 68u8, 101u8, 102u8, 97u8, 117u8,
108u8, 116u8, 69u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8, 110u8, 116u8, 80u8, 101u8, 114u8,
105u8, 111u8, 100u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 0u8, 16u8, 1u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 6u8, 8u8,
216u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8,
109u8, 101u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 40u8, 105u8,
110u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 144u8, 40u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8,
32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8,
101u8, 114u8, 105u8, 111u8, 100u8, 41u8, 116u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 7u8, 8u8, 124u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 100u8, 101u8,
112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 109u8,
111u8, 100u8, 105u8, 102u8, 105u8, 101u8, 100u8, 144u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
41u8, 92u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 80u8, 105u8, 112u8, 69u8, 120u8,
112u8, 105u8, 114u8, 121u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 53u8, 1u8,
1u8, 92u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8,
111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 0u8, 53u8, 1u8, 1u8, 92u8,
77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 8u8, 8u8, 204u8, 65u8, 109u8, 111u8,
117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8,
97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 97u8, 32u8,
112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 80u8, 73u8, 80u8, 32u8, 101u8, 120u8,
112u8, 105u8, 114u8, 101u8, 115u8, 46u8, 144u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8,
121u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 41u8,
88u8, 77u8, 97u8, 120u8, 80u8, 105u8, 112u8, 83u8, 107u8, 105u8, 112u8, 67u8, 111u8, 117u8,
110u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 8u8, 1u8, 48u8, 83u8,
107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 8u8, 1u8,
48u8, 83u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 9u8,
8u8, 204u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8,
116u8, 105u8, 109u8, 101u8, 115u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 119u8, 97u8,
115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 136u8, 40u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8, 108u8, 100u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8,
41u8, 84u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 80u8, 105u8, 112u8, 76u8, 105u8, 109u8,
105u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8,
51u8, 50u8, 0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 10u8, 8u8, 184u8, 84u8, 104u8,
101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 80u8, 73u8,
80u8, 115u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8,
136u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 111u8,
108u8, 100u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 41u8, 56u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 82u8, 101u8, 102u8, 117u8, 110u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8,
112u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
11u8, 8u8, 60u8, 82u8, 101u8, 102u8, 117u8, 110u8, 100u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 72u8, 40u8, 105u8, 100u8, 44u8, 32u8, 116u8, 111u8, 116u8, 97u8,
108u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 41u8, 60u8, 83u8, 110u8, 97u8, 112u8,
115u8, 104u8, 111u8, 116u8, 67u8, 108u8, 101u8, 97u8, 114u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 93u8, 3u8,
1u8, 40u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 73u8, 100u8, 0u8, 12u8, 4u8,
100u8, 84u8, 104u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8,
119u8, 97u8, 115u8, 32u8, 99u8, 108u8, 101u8, 97u8, 114u8, 101u8, 100u8, 46u8, 52u8, 83u8, 110u8,
97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 84u8, 97u8, 107u8, 101u8, 110u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 93u8, 3u8,
1u8, 40u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 73u8, 100u8, 0u8, 0u8, 97u8,
3u8, 1u8, 76u8, 86u8, 101u8, 99u8, 60u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8,
116u8, 101u8, 100u8, 80u8, 105u8, 112u8, 62u8, 0u8, 13u8, 4u8, 100u8, 65u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 119u8, 97u8, 115u8,
32u8, 116u8, 97u8, 107u8, 101u8, 110u8, 46u8, 40u8, 80u8, 105u8, 112u8, 83u8, 107u8, 105u8,
112u8, 112u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8,
0u8, 8u8, 1u8, 48u8, 83u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8,
116u8, 0u8, 14u8, 8u8, 160u8, 65u8, 32u8, 80u8, 73u8, 80u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 113u8, 117u8,
101u8, 117u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8,
100u8, 46u8, 128u8, 40u8, 103u8, 99u8, 95u8, 100u8, 105u8, 100u8, 44u8, 32u8, 112u8, 105u8,
112u8, 95u8, 105u8, 100u8, 44u8, 32u8, 110u8, 101u8, 119u8, 95u8, 115u8, 107u8, 105u8, 112u8,
95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 88u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 69u8, 110u8, 97u8, 99u8, 116u8,
101u8, 100u8, 20u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 109u8, 3u8, 1u8, 72u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 113u8, 3u8,
1u8, 104u8, 86u8, 101u8, 99u8, 60u8, 40u8, 80u8, 105u8, 112u8, 73u8, 100u8, 44u8, 32u8, 83u8,
107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8, 116u8, 41u8, 62u8, 0u8, 0u8,
121u8, 3u8, 1u8, 40u8, 86u8, 101u8, 99u8, 60u8, 80u8, 105u8, 112u8, 73u8, 100u8, 62u8, 0u8, 0u8,
121u8, 3u8, 1u8, 40u8, 86u8, 101u8, 99u8, 60u8, 80u8, 105u8, 112u8, 73u8, 100u8, 62u8, 0u8, 15u8,
8u8, 49u8, 1u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 32u8, 40u8, 101u8, 46u8, 103u8,
46u8, 44u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 44u8, 32u8, 114u8,
101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 115u8,
107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 41u8, 44u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8,
101u8, 110u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 115u8, 111u8,
109u8, 101u8, 32u8, 80u8, 73u8, 80u8, 115u8, 46u8, 81u8, 1u8, 40u8, 103u8, 99u8, 95u8, 100u8,
105u8, 100u8, 44u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 95u8, 105u8,
100u8, 95u8, 111u8, 112u8, 116u8, 44u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8,
95u8, 112u8, 105u8, 112u8, 115u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 110u8, 101u8, 119u8,
95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8,
101u8, 100u8, 95u8, 112u8, 105u8, 112u8, 115u8, 44u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 101u8, 100u8, 95u8, 112u8, 105u8, 112u8, 115u8, 41u8, 100u8, 69u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 111u8, 110u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8,
103u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8,
112u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 0u8, 16u8, 4u8, 13u8, 1u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8,
80u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8,
110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 32u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 46u8, 60u8, 69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 83u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8,
112u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 0u8, 17u8, 4u8, 152u8, 84u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 46u8, 88u8, 69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 83u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8,
111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 18u8, 4u8, 1u8, 1u8, 83u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 100u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 108u8, 105u8, 110u8, 103u8, 70u8, 97u8,
105u8, 108u8, 101u8, 100u8, 4u8, 0u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8,
19u8, 4u8, 240u8, 67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 108u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 65u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8,
105u8, 112u8, 115u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 4u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 8u8, 36u8, 67u8, 111u8,
109u8, 109u8, 117u8, 110u8, 105u8, 116u8, 121u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 36u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 69u8, 3u8, 1u8, 36u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 0u8, 1u8, 0u8, 0u8, 69u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 36u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 0u8, 1u8, 8u8, 36u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8,
108u8, 0u8, 0u8, 0u8, 28u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 0u8, 1u8, 0u8, 0u8,
73u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8,
20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 0u8, 77u8, 3u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8,
81u8, 3u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8,
101u8, 4u8, 0u8, 81u8, 3u8, 0u8, 0u8, 1u8, 0u8, 0u8, 81u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 56u8, 80u8, 105u8, 112u8, 68u8, 101u8,
115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8,
28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 85u8, 3u8, 8u8, 44u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 48u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 68u8, 97u8, 116u8, 97u8, 0u8, 1u8, 8u8, 16u8, 72u8, 97u8, 115u8,
104u8, 4u8, 0u8, 36u8, 1u8, 16u8, 72u8, 50u8, 53u8, 54u8, 0u8, 0u8, 0u8, 32u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8,
117u8, 56u8, 62u8, 0u8, 1u8, 0u8, 0u8, 89u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 0u8, 1u8, 24u8, 28u8, 80u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 0u8, 0u8, 0u8, 32u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 0u8,
1u8, 0u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 0u8, 2u8, 0u8, 24u8,
70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 3u8, 0u8, 32u8, 69u8, 120u8, 101u8, 99u8, 117u8,
116u8, 101u8, 100u8, 0u8, 4u8, 0u8, 28u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8,
5u8, 0u8, 0u8, 93u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8,
112u8, 115u8, 40u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 73u8, 100u8, 0u8, 0u8,
4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 97u8, 3u8, 0u8, 0u8, 2u8, 101u8, 3u8,
0u8, 101u8, 3u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8,
115u8, 56u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 116u8, 101u8, 100u8, 80u8,
105u8, 112u8, 0u8, 0u8, 8u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8,
73u8, 100u8, 0u8, 1u8, 24u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 105u8, 3u8, 1u8, 60u8,
40u8, 98u8, 111u8, 111u8, 108u8, 44u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 41u8,
0u8, 0u8, 105u8, 3u8, 0u8, 0u8, 4u8, 8u8, 21u8, 1u8, 24u8, 0u8, 109u8, 3u8, 4u8, 24u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 93u8, 3u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 93u8, 3u8, 0u8, 0u8, 1u8,
0u8, 0u8, 113u8, 3u8, 0u8, 0u8, 2u8, 117u8, 3u8, 0u8, 117u8, 3u8, 0u8, 0u8, 4u8, 8u8, 73u8, 3u8,
8u8, 0u8, 121u8, 3u8, 0u8, 0u8, 2u8, 73u8, 3u8, 0u8, 125u8, 3u8, 16u8, 100u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8,
117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8,
116u8, 115u8, 36u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 20u8, 69u8,
118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 24u8, 64u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 220u8, 1u8, 60u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
0u8, 0u8, 129u8, 3u8, 1u8, 52u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 24u8, 176u8, 84u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 108u8, 121u8,
32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8,
114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 48u8, 42u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 68u8, 73u8, 68u8, 72u8, 42u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 64u8, 42u8, 32u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 97u8, 109u8, 101u8,
64u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 68u8, 101u8, 108u8, 101u8,
116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 220u8, 1u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 20u8, 176u8, 84u8, 104u8, 101u8,
32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 104u8, 97u8, 115u8,
32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8,
117u8, 108u8, 108u8, 121u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 0u8,
48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 48u8, 42u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 68u8, 73u8, 68u8, 72u8, 42u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 88u8, 77u8, 111u8, 118u8, 101u8, 100u8, 66u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 24u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 212u8, 1u8, 44u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 0u8, 212u8, 1u8,
44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 0u8, 156u8,
1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 124u8, 1u8, 48u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 77u8, 101u8, 109u8, 111u8, 62u8, 0u8, 2u8, 32u8, 240u8, 65u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 111u8, 110u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 46u8, 0u8, 48u8,
35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 48u8, 42u8, 32u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 68u8, 73u8, 68u8, 72u8, 42u8, 32u8, 115u8, 111u8,
117u8, 114u8, 99u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
92u8, 42u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 56u8, 42u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 120u8, 42u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 111u8, 118u8, 101u8, 100u8, 64u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 82u8, 101u8, 110u8, 97u8, 109u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 220u8, 1u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 0u8, 129u8, 3u8, 1u8, 52u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 97u8, 109u8, 101u8, 0u8, 3u8, 24u8, 252u8,
84u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8,
104u8, 32u8, 96u8, 110u8, 117u8, 109u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 114u8, 101u8, 110u8, 97u8, 109u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8,
110u8, 97u8, 109u8, 101u8, 96u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8,
101u8, 116u8, 101u8, 114u8, 115u8, 48u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
32u8, 68u8, 73u8, 68u8, 72u8, 42u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 64u8, 42u8, 32u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 97u8, 109u8, 101u8, 56u8, 85u8, 115u8,
101u8, 114u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
133u8, 3u8, 1u8, 148u8, 86u8, 101u8, 99u8, 60u8, 40u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 44u8, 32u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 97u8, 109u8, 101u8, 41u8, 62u8, 0u8, 4u8, 20u8,
212u8, 65u8, 108u8, 108u8, 32u8, 110u8, 111u8, 110u8, 45u8, 100u8, 101u8, 102u8, 97u8, 117u8,
108u8, 116u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 110u8, 97u8, 109u8,
101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 48u8, 35u8,
32u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 48u8, 42u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 68u8, 73u8, 68u8, 116u8, 42u8, 32u8, 118u8, 101u8, 99u8,
116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 45u8,
110u8, 97u8, 109u8, 101u8, 32u8, 112u8, 97u8, 105u8, 114u8, 115u8, 100u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 67u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8,
110u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 5u8, 24u8, 244u8, 67u8, 117u8,
115u8, 116u8, 111u8, 100u8, 121u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8,
105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8,
114u8, 115u8, 48u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 68u8, 73u8, 68u8,
56u8, 42u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 105u8,
100u8, 100u8, 42u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8,
99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8, 100u8, 105u8, 100u8, 8u8,
92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 129u8, 3u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
95u8, 105u8, 100u8, 52u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8,
97u8, 109u8, 101u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 0u8, 0u8, 133u8, 3u8, 0u8, 0u8, 2u8, 137u8, 3u8, 0u8, 137u8, 3u8, 0u8, 0u8, 4u8, 8u8,
220u8, 129u8, 3u8, 0u8, 141u8, 3u8, 8u8, 76u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 95u8, 102u8, 101u8, 101u8, 32u8, 82u8,
97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 24u8, 70u8, 101u8, 101u8, 83u8, 101u8, 116u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 4u8, 132u8, 84u8, 104u8,
101u8, 32u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 32u8, 102u8, 101u8, 101u8,
32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 56u8, 67u8, 111u8, 101u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 83u8, 101u8, 116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 145u8, 3u8, 1u8, 32u8, 80u8, 111u8, 115u8, 82u8, 97u8,
116u8, 105u8, 111u8, 0u8, 1u8, 4u8, 80u8, 84u8, 104u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8,
99u8, 111u8, 101u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 46u8, 40u8, 70u8,
101u8, 101u8, 67u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 8u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 2u8, 4u8, 48u8, 70u8, 101u8, 101u8, 32u8, 99u8, 104u8,
97u8, 114u8, 103u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 145u8, 3u8, 8u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 80u8, 111u8,
115u8, 82u8, 97u8, 116u8, 105u8, 111u8, 0u8, 0u8, 8u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 149u8, 3u8, 12u8, 64u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8,
24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 4u8,
84u8, 0u8, 1u8, 16u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 8u8,
1u8, 16u8, 119u8, 104u8, 101u8, 110u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8,
120u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 4u8, 80u8, 83u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 100u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 116u8, 97u8, 115u8, 107u8,
46u8, 32u8, 67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 101u8, 100u8, 8u8, 1u8, 16u8, 119u8, 104u8,
101u8, 110u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 1u8, 4u8, 76u8, 67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 101u8, 100u8,
32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 116u8, 97u8, 115u8, 107u8, 46u8, 40u8, 68u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 12u8, 1u8, 16u8, 116u8, 97u8, 115u8, 107u8,
153u8, 3u8, 1u8, 108u8, 84u8, 97u8, 115u8, 107u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
62u8, 0u8, 1u8, 8u8, 105u8, 100u8, 93u8, 2u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 62u8, 0u8, 1u8, 24u8, 114u8, 101u8, 115u8,
117u8, 108u8, 116u8, 45u8, 1u8, 1u8, 56u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 0u8, 2u8, 4u8, 84u8, 68u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 101u8, 100u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 116u8, 97u8, 115u8,
107u8, 46u8, 64u8, 67u8, 97u8, 108u8, 108u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 70u8, 97u8,
105u8, 108u8, 101u8, 100u8, 12u8, 1u8, 16u8, 116u8, 97u8, 115u8, 107u8, 153u8, 3u8, 1u8, 108u8,
84u8, 97u8, 115u8, 107u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 60u8, 84u8, 58u8, 58u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 1u8, 8u8,
105u8, 100u8, 93u8, 2u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 62u8, 0u8, 1u8, 20u8, 101u8, 114u8, 114u8, 111u8, 114u8, 157u8,
3u8, 1u8, 44u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8,
3u8, 4u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
97u8, 115u8, 107u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 98u8,
111u8, 114u8, 116u8, 101u8, 100u8, 46u8, 4u8, 48u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8,
32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 153u8, 3u8, 0u8, 0u8, 4u8, 8u8, 16u8, 16u8, 0u8, 157u8,
3u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8,
114u8, 116u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 44u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 69u8, 114u8, 114u8,
111u8, 114u8, 0u8, 1u8, 8u8, 28u8, 85u8, 110u8, 107u8, 110u8, 111u8, 119u8, 110u8, 0u8, 0u8, 0u8,
36u8, 66u8, 97u8, 100u8, 70u8, 111u8, 114u8, 109u8, 97u8, 116u8, 0u8, 1u8, 0u8, 0u8, 161u8, 3u8,
8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8,
12u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 1u8, 32u8, 44u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 76u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8, 67u8,
114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8,
117u8, 101u8, 73u8, 100u8, 0u8, 0u8, 169u8, 3u8, 1u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8,
68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 0u8, 173u8, 3u8, 1u8, 36u8, 86u8, 101u8,
110u8, 117u8, 101u8, 84u8, 121u8, 112u8, 101u8, 0u8, 0u8, 4u8, 236u8, 65u8, 32u8, 110u8, 101u8,
119u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 40u8, 100u8, 105u8,
100u8, 44u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 44u8, 32u8, 100u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 44u8, 32u8, 116u8, 121u8, 112u8, 101u8, 41u8, 76u8,
86u8, 101u8, 110u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 85u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8,
101u8, 73u8, 100u8, 0u8, 0u8, 169u8, 3u8, 1u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8, 68u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 1u8, 4u8, 21u8, 1u8, 65u8, 110u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 39u8,
115u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 40u8,
100u8, 105u8, 100u8, 44u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 44u8,
32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 41u8, 64u8, 86u8, 101u8, 110u8, 117u8,
101u8, 84u8, 121u8, 112u8, 101u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 12u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 0u8, 173u8, 3u8, 1u8,
36u8, 86u8, 101u8, 110u8, 117u8, 101u8, 84u8, 121u8, 112u8, 101u8, 0u8, 2u8, 4u8, 252u8, 65u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 101u8, 110u8,
117u8, 101u8, 39u8, 115u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 40u8,
100u8, 105u8, 100u8, 44u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 44u8,
32u8, 116u8, 121u8, 112u8, 101u8, 41u8, 72u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 28u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 165u8, 3u8,
1u8, 28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 0u8,
181u8, 3u8, 1u8, 108u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8,
84u8, 121u8, 112u8, 101u8, 60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 62u8, 0u8, 0u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 185u8, 3u8,
1u8, 32u8, 86u8, 101u8, 99u8, 60u8, 76u8, 101u8, 103u8, 62u8, 0u8, 3u8, 8u8, 136u8, 65u8, 32u8,
110u8, 101u8, 119u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 114u8, 101u8, 97u8,
116u8, 101u8, 100u8, 57u8, 1u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 118u8, 101u8, 110u8,
117u8, 101u8, 95u8, 105u8, 100u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 44u8, 32u8, 115u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 44u8, 32u8, 116u8, 114u8,
97u8, 100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 44u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 44u8, 32u8, 108u8, 101u8, 103u8, 115u8, 41u8, 76u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 65u8, 102u8, 102u8, 105u8,
114u8, 109u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 4u8, 4u8, 5u8, 1u8, 65u8,
110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8,
109u8, 101u8, 100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 41u8, 80u8, 65u8, 102u8, 102u8, 105u8, 114u8,
109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 87u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8,
110u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 5u8, 4u8, 9u8, 1u8, 65u8, 110u8, 32u8, 97u8, 102u8,
102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 110u8,
32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 95u8, 105u8, 100u8, 41u8, 76u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8,
1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8,
100u8, 0u8, 6u8, 4u8, 216u8, 65u8, 110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8,
100u8, 41u8, 56u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 67u8, 108u8, 97u8, 105u8,
109u8, 101u8, 100u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 0u8, 193u8, 3u8, 1u8, 20u8, 76u8, 101u8,
103u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 197u8, 3u8, 1u8, 60u8, 82u8,
101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 0u8,
7u8, 4u8, 125u8, 1u8, 65u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 44u8, 32u8, 108u8, 101u8, 103u8, 95u8,
105u8, 100u8, 44u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8,
100u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 44u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 41u8,
88u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 86u8, 97u8, 108u8, 105u8, 100u8, 105u8,
116u8, 121u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8,
52u8, 0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 8u8, 4u8, 13u8, 1u8, 65u8,
32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8,
100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
44u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8, 100u8, 44u8,
32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 41u8, 64u8, 82u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 85u8, 110u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 20u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 73u8, 100u8, 0u8, 0u8, 193u8, 3u8, 1u8, 20u8, 76u8, 101u8, 103u8, 73u8, 100u8, 0u8, 0u8,
32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 9u8, 4u8, 61u8, 1u8, 65u8, 32u8, 114u8, 101u8, 99u8, 101u8,
105u8, 112u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8,
110u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8,
100u8, 44u8, 32u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 44u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8, 100u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 41u8, 56u8, 86u8, 101u8, 110u8, 117u8, 101u8, 70u8, 105u8, 108u8, 116u8, 101u8,
114u8, 105u8, 110u8, 103u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 10u8, 4u8, 105u8, 1u8, 86u8,
101u8, 110u8, 117u8, 101u8, 32u8, 102u8, 105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8,
101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 40u8,
100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8,
105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 101u8, 110u8, 97u8, 98u8, 108u8,
101u8, 100u8, 41u8, 52u8, 86u8, 101u8, 110u8, 117u8, 101u8, 115u8, 65u8, 108u8, 108u8, 111u8,
119u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8,
201u8, 3u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8,
62u8, 0u8, 11u8, 4u8, 220u8, 86u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 97u8, 100u8, 100u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 108u8, 105u8,
115u8, 116u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 44u8, 32u8, 118u8, 101u8, 99u8, 60u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8,
100u8, 62u8, 41u8, 52u8, 86u8, 101u8, 110u8, 117u8, 101u8, 115u8, 66u8, 108u8, 111u8, 99u8,
107u8, 101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8,
201u8, 3u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8,
62u8, 0u8, 12u8, 4u8, 220u8, 86u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 97u8, 100u8, 100u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 108u8, 105u8,
115u8, 116u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 44u8, 32u8, 118u8, 101u8, 99u8, 60u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8,
100u8, 62u8, 41u8, 72u8, 76u8, 101u8, 103u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 69u8, 120u8,
101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 0u8, 193u8, 3u8,
1u8, 20u8, 76u8, 101u8, 103u8, 73u8, 100u8, 0u8, 13u8, 4u8, 220u8, 69u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 108u8, 101u8, 103u8,
32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8,
44u8, 32u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 41u8, 68u8, 73u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 8u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8,
177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
73u8, 100u8, 0u8, 14u8, 4u8, 200u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 101u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 41u8, 76u8,
73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8,
99u8, 117u8, 116u8, 101u8, 100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 15u8, 4u8, 216u8, 73u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 101u8, 120u8, 101u8, 99u8,
117u8, 116u8, 101u8, 100u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8,
108u8, 108u8, 121u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 41u8, 68u8, 86u8, 101u8, 110u8,
117u8, 101u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 165u8, 3u8, 1u8,
28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 16u8, 4u8, 1u8, 1u8, 86u8, 101u8,
110u8, 117u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 39u8, 115u8, 32u8,
97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 40u8, 100u8, 105u8,
100u8, 44u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 118u8, 101u8, 110u8,
117u8, 101u8, 95u8, 105u8, 100u8, 41u8, 64u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
105u8, 110u8, 103u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 4u8, 0u8, 88u8, 1u8, 52u8, 68u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 17u8, 4u8,
128u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
97u8, 105u8, 108u8, 115u8, 46u8, 88u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 82u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8,
8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 73u8, 100u8, 0u8, 18u8, 8u8, 108u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 100u8, 46u8, 112u8, 40u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 95u8, 105u8, 100u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 165u8, 3u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 28u8, 86u8, 101u8, 110u8, 117u8,
101u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 169u8, 3u8,
8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8, 68u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 0u8, 173u8, 3u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 36u8, 86u8, 101u8, 110u8,
117u8, 101u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8, 16u8, 20u8, 79u8, 116u8, 104u8, 101u8, 114u8,
0u8, 0u8, 0u8, 48u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 0u8, 1u8, 0u8, 12u8, 83u8, 116u8, 111u8, 0u8, 2u8, 0u8, 32u8, 69u8, 120u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 0u8, 3u8, 0u8, 0u8, 177u8, 3u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 52u8,
73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 0u8,
4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 181u8, 3u8, 8u8, 68u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8,
116u8, 56u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 84u8, 121u8,
112u8, 101u8, 4u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
1u8, 16u8, 1u8, 8u8, 76u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 79u8, 110u8, 65u8, 102u8,
102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 0u8, 52u8, 83u8, 101u8,
116u8, 116u8, 108u8, 101u8, 79u8, 110u8, 66u8, 108u8, 111u8, 99u8, 107u8, 4u8, 0u8, 16u8, 1u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 0u8,
0u8, 185u8, 3u8, 0u8, 0u8, 2u8, 189u8, 3u8, 0u8, 189u8, 3u8, 8u8, 68u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8,
12u8, 76u8, 101u8, 103u8, 0u8, 0u8, 16u8, 1u8, 16u8, 102u8, 114u8, 111u8, 109u8, 212u8, 1u8,
44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 8u8,
116u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
73u8, 100u8, 0u8, 1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 193u8, 3u8, 8u8, 68u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8,
116u8, 20u8, 76u8, 101u8, 103u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8,
52u8, 0u8, 0u8, 197u8, 3u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 60u8, 82u8, 101u8, 99u8, 101u8,
105u8, 112u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 0u8, 0u8, 4u8, 0u8,
40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 201u8, 3u8, 0u8, 0u8, 2u8,
165u8, 3u8, 0u8, 205u8, 3u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8,
105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 40u8, 115u8, 116u8, 97u8,
116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8,
24u8, 56u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 115u8, 65u8, 100u8, 100u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8,
111u8, 112u8, 101u8, 0u8, 0u8, 213u8, 3u8, 1u8, 52u8, 86u8, 101u8, 99u8, 60u8, 83u8, 116u8, 97u8,
116u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 0u8, 12u8, 104u8, 83u8, 116u8, 97u8, 116u8, 32u8,
116u8, 121u8, 112u8, 101u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 0u8, 124u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8, 32u8, 83u8,
116u8, 97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 41u8, 64u8, 83u8, 116u8, 97u8,
116u8, 84u8, 121u8, 112u8, 101u8, 115u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 12u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8,
0u8, 0u8, 213u8, 3u8, 1u8, 52u8, 86u8, 101u8, 99u8, 60u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8,
112u8, 101u8, 62u8, 0u8, 1u8, 12u8, 120u8, 83u8, 116u8, 97u8, 116u8, 32u8, 116u8, 121u8, 112u8,
101u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 0u8, 124u8, 40u8, 67u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8, 32u8,
83u8, 116u8, 97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 41u8, 68u8, 65u8, 115u8,
115u8, 101u8, 116u8, 83u8, 116u8, 97u8, 116u8, 115u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8,
112u8, 101u8, 0u8, 0u8, 217u8, 3u8, 1u8, 32u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8,
101u8, 0u8, 0u8, 233u8, 3u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 83u8, 116u8, 97u8, 116u8, 85u8,
112u8, 100u8, 97u8, 116u8, 101u8, 62u8, 0u8, 2u8, 12u8, 80u8, 65u8, 115u8, 115u8, 101u8, 116u8,
32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8,
46u8, 0u8, 156u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8, 32u8, 83u8, 116u8, 97u8, 116u8, 32u8, 116u8, 121u8,
112u8, 101u8, 44u8, 32u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 115u8, 41u8, 104u8, 83u8,
101u8, 116u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 12u8, 0u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 209u8, 3u8,
1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 0u8, 1u8, 4u8,
1u8, 88u8, 86u8, 101u8, 99u8, 60u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8,
111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 3u8, 12u8, 160u8, 83u8, 101u8,
116u8, 32u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 117u8, 108u8, 101u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 0u8, 160u8, 40u8, 67u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
44u8, 32u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 41u8, 128u8, 84u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8,
101u8, 109u8, 112u8, 116u8, 105u8, 111u8, 110u8, 115u8, 65u8, 100u8, 100u8, 101u8, 100u8, 12u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 9u8, 4u8, 1u8, 104u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8, 109u8, 112u8, 116u8, 75u8,
101u8, 121u8, 0u8, 0u8, 33u8, 1u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 83u8, 99u8, 111u8, 112u8,
101u8, 73u8, 100u8, 62u8, 0u8, 4u8, 12u8, 9u8, 1u8, 65u8, 100u8, 100u8, 32u8, 96u8, 83u8, 99u8,
111u8, 112u8, 101u8, 73u8, 100u8, 96u8, 115u8, 32u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8,
99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 109u8, 97u8, 116u8,
99u8, 104u8, 105u8, 110u8, 103u8, 32u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 32u8, 107u8,
101u8, 121u8, 46u8, 0u8, 136u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 69u8, 120u8, 101u8, 109u8, 112u8, 116u8, 32u8, 107u8, 101u8, 121u8, 44u8, 32u8,
69u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 41u8, 136u8, 84u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8,
120u8, 101u8, 109u8, 112u8, 116u8, 105u8, 111u8, 110u8, 115u8, 82u8, 101u8, 109u8, 111u8, 118u8,
101u8, 100u8, 12u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 9u8, 4u8, 1u8, 104u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8, 109u8,
112u8, 116u8, 75u8, 101u8, 121u8, 0u8, 0u8, 33u8, 1u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 83u8,
99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 62u8, 0u8, 5u8, 12u8, 21u8, 1u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 96u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 96u8, 115u8, 32u8,
101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 105u8, 110u8, 103u8, 32u8, 101u8, 120u8,
101u8, 109u8, 112u8, 116u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 136u8, 40u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 69u8, 120u8, 101u8, 109u8, 112u8, 116u8,
32u8, 107u8, 101u8, 121u8, 44u8, 32u8, 69u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8,
41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 209u8, 3u8, 12u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8,
105u8, 99u8, 115u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8,
1u8, 4u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 4u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 0u8, 0u8, 213u8, 3u8, 0u8, 0u8, 2u8, 217u8, 3u8, 0u8, 217u8,
3u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8,
105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8, 97u8, 116u8, 105u8,
115u8, 116u8, 105u8, 99u8, 115u8, 32u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8,
0u8, 8u8, 1u8, 8u8, 111u8, 112u8, 221u8, 3u8, 1u8, 40u8, 83u8, 116u8, 97u8, 116u8, 79u8, 112u8,
84u8, 121u8, 112u8, 101u8, 0u8, 1u8, 48u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 225u8, 3u8, 1u8, 124u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 40u8, 67u8, 108u8, 97u8, 105u8, 109u8, 84u8, 121u8, 112u8, 101u8, 44u8, 32u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 41u8, 62u8, 0u8, 0u8, 221u8, 3u8, 12u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8,
105u8, 99u8, 115u8, 40u8, 83u8, 116u8, 97u8, 116u8, 79u8, 112u8, 84u8, 121u8, 112u8, 101u8, 0u8,
1u8, 8u8, 20u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 0u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 0u8, 0u8, 225u8, 3u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 4u8, 4u8, 84u8, 1u8, 229u8, 3u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8,
16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 229u8, 3u8, 0u8, 0u8, 1u8, 0u8, 0u8, 229u8, 3u8, 0u8,
0u8, 4u8, 8u8, 201u8, 2u8, 120u8, 0u8, 233u8, 3u8, 0u8, 0u8, 2u8, 237u8, 3u8, 0u8, 237u8, 3u8,
12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8,
109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8,
116u8, 105u8, 99u8, 115u8, 40u8, 83u8, 116u8, 97u8, 116u8, 85u8, 112u8, 100u8, 97u8, 116u8,
101u8, 0u8, 0u8, 8u8, 1u8, 16u8, 107u8, 101u8, 121u8, 50u8, 241u8, 3u8, 1u8, 40u8, 83u8, 116u8,
97u8, 116u8, 50u8, 110u8, 100u8, 75u8, 101u8, 121u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8,
101u8, 253u8, 3u8, 1u8, 48u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 49u8, 50u8,
56u8, 62u8, 0u8, 0u8, 241u8, 3u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8,
116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 40u8, 83u8, 116u8, 97u8, 116u8,
50u8, 110u8, 100u8, 75u8, 101u8, 121u8, 0u8, 1u8, 8u8, 44u8, 78u8, 111u8, 67u8, 108u8, 97u8,
105u8, 109u8, 83u8, 116u8, 97u8, 116u8, 0u8, 0u8, 0u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8,
4u8, 0u8, 245u8, 3u8, 1u8, 36u8, 83u8, 116u8, 97u8, 116u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8,
1u8, 0u8, 0u8, 245u8, 3u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8,
97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 36u8, 83u8, 116u8, 97u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 0u8, 1u8, 12u8, 40u8, 65u8, 99u8, 99u8, 114u8, 101u8, 100u8, 105u8,
116u8, 101u8, 100u8, 4u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 0u8,
36u8, 65u8, 102u8, 102u8, 105u8, 108u8, 105u8, 97u8, 116u8, 101u8, 4u8, 0u8, 21u8, 1u8, 1u8,
16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 0u8, 48u8, 74u8, 117u8, 114u8, 105u8, 115u8, 100u8,
105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 249u8, 3u8, 1u8, 76u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 67u8, 111u8, 117u8, 110u8, 116u8, 114u8, 121u8, 67u8, 111u8, 100u8,
101u8, 62u8, 0u8, 2u8, 0u8, 0u8, 249u8, 3u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
4u8, 4u8, 84u8, 1u8, 1u8, 1u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8,
83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 1u8, 1u8, 0u8, 0u8, 1u8, 0u8, 0u8, 253u8, 3u8, 4u8, 24u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 24u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 24u8, 0u8, 0u8, 1u8, 0u8,
0u8, 1u8, 4u8, 0u8, 0u8, 2u8, 5u8, 4u8, 0u8, 5u8, 4u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8,
115u8, 76u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 68u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 0u8, 1u8, 16u8, 64u8,
77u8, 97u8, 120u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 0u8, 80u8, 77u8, 97u8,
120u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 79u8, 119u8, 110u8, 101u8, 114u8,
115u8, 104u8, 105u8, 112u8, 4u8, 0u8, 121u8, 2u8, 1u8, 40u8, 80u8, 101u8, 114u8, 99u8, 101u8,
110u8, 116u8, 97u8, 103u8, 101u8, 0u8, 1u8, 0u8, 40u8, 67u8, 108u8, 97u8, 105u8, 109u8, 67u8,
111u8, 117u8, 110u8, 116u8, 16u8, 0u8, 245u8, 3u8, 1u8, 36u8, 83u8, 116u8, 97u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 240u8, 1u8,
44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 54u8, 52u8, 62u8, 0u8, 2u8, 0u8,
56u8, 67u8, 108u8, 97u8, 105u8, 109u8, 79u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8,
112u8, 16u8, 0u8, 245u8, 3u8, 1u8, 36u8, 83u8, 116u8, 97u8, 116u8, 67u8, 108u8, 97u8, 105u8,
109u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 121u8, 2u8, 1u8, 40u8, 80u8, 101u8, 114u8, 99u8, 101u8, 110u8, 116u8, 97u8,
103u8, 101u8, 0u8, 0u8, 121u8, 2u8, 1u8, 40u8, 80u8, 101u8, 114u8, 99u8, 101u8, 110u8, 116u8,
97u8, 103u8, 101u8, 0u8, 3u8, 0u8, 0u8, 9u8, 4u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8,
76u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 104u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8, 109u8,
112u8, 116u8, 75u8, 101u8, 121u8, 0u8, 0u8, 12u8, 1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8,
209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8,
1u8, 8u8, 111u8, 112u8, 221u8, 3u8, 1u8, 40u8, 83u8, 116u8, 97u8, 116u8, 79u8, 112u8, 84u8,
121u8, 112u8, 101u8, 0u8, 1u8, 40u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 116u8, 121u8, 112u8,
101u8, 13u8, 4u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 67u8, 108u8, 97u8,
105u8, 109u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 0u8, 13u8, 4u8, 4u8, 24u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 201u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8,
101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 201u8, 2u8, 0u8, 0u8, 1u8, 0u8,
0u8, 17u8, 4u8, 8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8,
32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 24u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 1u8, 32u8, 1u8, 24u8, 68u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 21u8, 4u8, 1u8, 48u8,
70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 0u8, 25u8,
4u8, 1u8, 56u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 78u8, 97u8,
109u8, 101u8, 0u8, 0u8, 29u8, 4u8, 1u8, 72u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8,
115u8, 101u8, 114u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 8u8, 136u8,
65u8, 32u8, 110u8, 101u8, 119u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 252u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 32u8, 105u8, 100u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 32u8, 110u8, 97u8, 109u8, 101u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8,
97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 41u8,
32u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 101u8, 100u8, 24u8, 0u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 21u8, 4u8, 1u8, 48u8,
70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 0u8, 156u8,
1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 8u8, 156u8, 65u8,
110u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 32u8, 105u8, 110u8, 118u8,
101u8, 115u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8,
117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 46u8, 133u8, 1u8, 40u8, 73u8,
110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8,
97u8, 105u8, 115u8, 101u8, 114u8, 95u8, 105u8, 100u8, 44u8, 32u8, 111u8, 102u8, 102u8, 101u8,
114u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 44u8, 32u8, 114u8, 97u8,
105u8, 115u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 44u8, 32u8, 111u8, 102u8, 102u8,
101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 116u8, 111u8, 107u8, 101u8, 110u8, 95u8, 97u8, 109u8,
111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 114u8, 97u8, 105u8, 115u8, 101u8, 95u8, 116u8, 111u8,
107u8, 101u8, 110u8, 95u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 41u8, 64u8, 70u8, 117u8,
110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8,
8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
0u8, 0u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 73u8, 100u8, 0u8, 2u8, 8u8, 116u8, 65u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 104u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 32u8, 105u8, 100u8, 41u8, 72u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 85u8, 110u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 8u8, 0u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 21u8, 4u8, 1u8,
48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 3u8,
8u8, 124u8, 65u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 110u8, 102u8, 114u8,
111u8, 122u8, 101u8, 110u8, 46u8, 104u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8,
73u8, 68u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8,
32u8, 105u8, 100u8, 41u8, 96u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 87u8, 105u8, 110u8, 100u8, 111u8, 119u8, 77u8, 111u8, 100u8, 105u8, 102u8, 105u8, 101u8,
100u8, 24u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8,
0u8, 0u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 62u8, 0u8, 0u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 62u8, 0u8, 4u8, 8u8, 152u8, 65u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 109u8, 111u8, 100u8, 105u8, 102u8, 105u8, 101u8,
100u8, 46u8, 9u8, 1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 105u8, 100u8,
44u8, 32u8, 111u8, 108u8, 100u8, 95u8, 115u8, 116u8, 97u8, 114u8, 116u8, 44u8, 32u8, 111u8,
108u8, 100u8, 95u8, 101u8, 110u8, 100u8, 44u8, 32u8, 110u8, 101u8, 119u8, 95u8, 115u8, 116u8,
97u8, 114u8, 116u8, 44u8, 32u8, 110u8, 101u8, 119u8, 95u8, 101u8, 110u8, 100u8, 41u8, 64u8, 70u8,
117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 67u8, 108u8, 111u8, 115u8, 101u8,
100u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 73u8, 100u8, 0u8, 5u8, 8u8, 120u8, 65u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8,
97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8,
32u8, 115u8, 116u8, 111u8, 112u8, 112u8, 101u8, 100u8, 46u8, 104u8, 40u8, 65u8, 103u8, 101u8,
110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8,
115u8, 101u8, 114u8, 32u8, 105u8, 100u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8,
117u8, 108u8, 101u8, 46u8, 0u8, 21u8, 4u8, 8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 115u8, 116u8, 111u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 25u8, 4u8,
8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 56u8, 70u8, 117u8,
110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 4u8,
0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 29u8, 4u8, 8u8, 40u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 40u8, 70u8, 117u8, 110u8,
100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 4u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 1u8, 32u8, 0u8, 44u8, 1u8, 28u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 72u8,
111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 56u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8,
103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 68u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 52u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8,
103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 20u8, 116u8, 105u8, 101u8, 114u8, 115u8, 33u8, 4u8, 1u8, 76u8, 86u8, 101u8,
99u8, 60u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 84u8, 105u8,
101u8, 114u8, 62u8, 0u8, 1u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 165u8,
3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 1u8, 20u8, 115u8, 116u8,
97u8, 114u8, 116u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 12u8,
101u8, 110u8, 100u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8,
111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 24u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
41u8, 4u8, 1u8, 64u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 72u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8,
109u8, 95u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 33u8, 4u8, 0u8, 0u8, 2u8, 37u8, 4u8,
0u8, 37u8, 4u8, 8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8,
56u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 84u8, 105u8, 101u8,
114u8, 0u8, 0u8, 12u8, 1u8, 20u8, 116u8, 111u8, 116u8, 97u8, 108u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 20u8, 112u8, 114u8, 105u8, 99u8, 101u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 114u8, 101u8, 109u8, 97u8,
105u8, 110u8, 105u8, 110u8, 103u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 0u8, 41u8, 4u8, 8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8,
111u8, 64u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 83u8, 116u8,
97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 16u8, 16u8, 76u8, 105u8, 118u8, 101u8, 0u8, 0u8, 0u8, 24u8,
70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 0u8, 1u8, 0u8, 24u8, 67u8, 108u8, 111u8, 115u8, 101u8,
100u8, 0u8, 2u8, 0u8, 44u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 69u8, 97u8, 114u8, 108u8,
121u8, 0u8, 3u8, 0u8, 0u8, 45u8, 4u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8,
101u8, 110u8, 116u8, 8u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 80u8, 84u8,
114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 68u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8,
101u8, 109u8, 101u8, 110u8, 116u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 12u8, 136u8, 68u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8,
110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 1u8, 1u8, 40u8, 116u8,
114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 44u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8,
112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 44u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 41u8, 104u8, 84u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8,
121u8, 68u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8, 110u8, 116u8, 70u8,
97u8, 105u8, 108u8, 101u8, 100u8, 16u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 1u8, 12u8, 164u8, 68u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8,
110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 102u8, 97u8, 105u8, 108u8,
101u8, 100u8, 46u8, 0u8, 1u8, 1u8, 40u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 116u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8,
32u8, 107u8, 101u8, 121u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 41u8, 84u8, 84u8,
114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 82u8, 101u8, 105u8, 109u8, 98u8, 117u8, 114u8,
115u8, 101u8, 109u8, 101u8, 110u8, 116u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 2u8, 12u8, 92u8, 84u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8,
32u8, 114u8, 101u8, 105u8, 109u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8, 110u8, 116u8,
46u8, 0u8, 100u8, 40u8, 115u8, 111u8, 117u8, 114u8, 99u8, 101u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 41u8,
8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 49u8, 4u8, 8u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8,
121u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 12u8, 64u8, 66u8, 97u8, 116u8, 99u8,
104u8, 73u8, 110u8, 116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 8u8, 0u8,
53u8, 4u8, 1u8, 44u8, 69u8, 118u8, 101u8, 110u8, 116u8, 67u8, 111u8, 117u8, 110u8, 116u8, 115u8,
0u8, 0u8, 57u8, 4u8, 1u8, 28u8, 69u8, 114u8, 114u8, 111u8, 114u8, 65u8, 116u8, 0u8, 0u8, 12u8,
172u8, 66u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 102u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 100u8, 105u8, 100u8, 32u8, 110u8, 111u8, 116u8,
32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 32u8, 102u8, 117u8, 108u8, 108u8,
121u8, 46u8, 220u8, 73u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 32u8, 97u8, 32u8,
118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 118u8, 101u8, 110u8,
116u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
97u8, 99u8, 104u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 97u8, 110u8,
100u8, 244u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 102u8, 97u8, 105u8,
108u8, 105u8, 110u8, 103u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8,
97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 84u8, 66u8, 97u8, 116u8, 99u8, 104u8, 79u8, 112u8,
116u8, 105u8, 109u8, 105u8, 115u8, 116u8, 105u8, 99u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8,
8u8, 0u8, 53u8, 4u8, 1u8, 44u8, 69u8, 118u8, 101u8, 110u8, 116u8, 67u8, 111u8, 117u8, 110u8,
116u8, 115u8, 0u8, 0u8, 61u8, 4u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 69u8, 114u8, 114u8, 111u8,
114u8, 65u8, 116u8, 62u8, 0u8, 1u8, 12u8, 172u8, 66u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8,
102u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 100u8,
105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8,
101u8, 32u8, 102u8, 117u8, 108u8, 108u8, 121u8, 46u8, 204u8, 73u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 115u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8,
102u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8,
32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
97u8, 110u8, 100u8, 41u8, 1u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8,
102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8,
32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8,
100u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 56u8, 66u8, 97u8, 116u8, 99u8, 104u8, 67u8,
111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 100u8, 4u8, 0u8, 53u8, 4u8, 1u8, 44u8, 69u8,
118u8, 101u8, 110u8, 116u8, 67u8, 111u8, 117u8, 110u8, 116u8, 115u8, 0u8, 2u8, 8u8, 200u8, 66u8,
97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 102u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 101u8, 115u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 100u8,
32u8, 102u8, 117u8, 108u8, 108u8, 121u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 110u8, 111u8,
32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 208u8, 73u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 115u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8,
32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 46u8, 12u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8,
46u8, 0u8, 48u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8,
53u8, 4u8, 0u8, 0u8, 2u8, 16u8, 0u8, 57u8, 4u8, 0u8, 0u8, 4u8, 8u8, 16u8, 88u8, 0u8, 61u8, 4u8,
0u8, 0u8, 2u8, 57u8, 4u8, 0u8, 65u8, 4u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8,
105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 16u8, 98u8,
97u8, 115u8, 101u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 4u8, 60u8, 85u8, 110u8,
101u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8,
0u8, 69u8, 4u8, 1u8, 84u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 68u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 69u8, 114u8, 114u8, 111u8, 114u8, 62u8, 0u8, 0u8, 4u8, 228u8,
65u8, 110u8, 32u8, 117u8, 110u8, 101u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8,
101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 101u8, 100u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 105u8, 103u8, 97u8, 116u8, 101u8, 100u8,
46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 69u8, 4u8, 4u8,
24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 88u8, 1u8, 8u8, 16u8, 78u8,
111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 88u8, 0u8, 0u8,
1u8, 0u8, 0u8, 73u8, 4u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8,
105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 60u8, 101u8, 120u8, 116u8,
101u8, 114u8, 110u8, 97u8, 108u8, 95u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 20u8, 69u8,
118u8, 101u8, 110u8, 116u8, 0u8, 1u8, 20u8, 48u8, 71u8, 114u8, 111u8, 117u8, 112u8, 67u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8,
116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 0u8, 17u8, 1u8, 1u8, 16u8, 65u8, 71u8, 73u8, 100u8, 0u8, 0u8, 172u8, 1u8, 80u8, 69u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 0u8, 0u8, 12u8, 108u8, 65u8, 110u8, 32u8, 65u8, 103u8, 101u8, 110u8,
116u8, 32u8, 71u8, 114u8, 111u8, 117u8, 112u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 208u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 71u8, 39u8, 115u8, 32u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 32u8, 65u8, 71u8, 39u8, 115u8, 32u8, 73u8, 68u8, 44u8, 32u8, 65u8, 71u8,
39u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
41u8, 92u8, 71u8, 114u8, 111u8, 117u8, 112u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 16u8, 0u8, 105u8, 2u8,
1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 17u8, 1u8, 1u8, 16u8, 65u8, 71u8, 73u8, 100u8,
0u8, 0u8, 172u8, 1u8, 80u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 12u8, 164u8,
65u8, 110u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 71u8, 114u8, 111u8, 117u8, 112u8,
39u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 224u8,
40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 71u8,
39u8, 115u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 65u8, 71u8, 39u8, 115u8,
32u8, 73u8, 68u8, 44u8, 32u8, 65u8, 71u8, 39u8, 115u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 41u8, 40u8, 65u8, 103u8,
101u8, 110u8, 116u8, 65u8, 100u8, 100u8, 101u8, 100u8, 12u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8,
118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 0u8, 13u8, 1u8, 1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 71u8,
114u8, 111u8, 117u8, 112u8, 0u8, 2u8, 12u8, 76u8, 65u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 46u8, 0u8, 196u8, 40u8,
67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 47u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8,
68u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 39u8, 115u8, 32u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 39u8, 115u8, 32u8, 103u8, 114u8,
111u8, 117u8, 112u8, 41u8, 48u8, 65u8, 103u8, 101u8, 110u8, 116u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 12u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8,
105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 3u8,
12u8, 84u8, 65u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 0u8, 164u8, 40u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 39u8,
115u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8,
116u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 41u8, 48u8, 71u8, 114u8, 111u8, 117u8, 112u8, 67u8,
104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 16u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8,
110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 0u8, 13u8, 1u8, 1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 71u8, 114u8, 111u8,
117u8, 112u8, 0u8, 4u8, 12u8, 116u8, 65u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 39u8,
115u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 100u8, 46u8, 0u8, 21u8, 1u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 39u8, 115u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 39u8,
115u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8,
103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 77u8, 4u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8,
95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8,
105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 28u8, 114u8, 101u8, 108u8,
97u8, 121u8, 101u8, 114u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 16u8, 76u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 80u8, 97u8, 121u8, 105u8, 110u8,
103u8, 75u8, 101u8, 121u8, 20u8, 0u8, 105u8, 2u8, 1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8,
68u8, 105u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 32u8, 1u8, 12u8,
117u8, 54u8, 52u8, 0u8, 0u8, 12u8, 204u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 102u8, 111u8,
114u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8,
32u8, 116u8, 111u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8,
46u8, 0u8, 1u8, 1u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 85u8, 115u8, 101u8, 114u8, 32u8, 75u8, 101u8, 121u8, 44u8, 32u8, 80u8, 97u8, 121u8, 105u8,
110u8, 103u8, 32u8, 75u8, 101u8, 121u8, 44u8, 32u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8,
108u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 44u8, 32u8,
65u8, 117u8, 116u8, 104u8, 32u8, 73u8, 68u8, 41u8, 68u8, 65u8, 99u8, 99u8, 101u8, 112u8, 116u8,
101u8, 100u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 12u8, 0u8, 105u8, 2u8,
1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 12u8, 80u8, 65u8, 99u8, 99u8, 101u8, 112u8,
116u8, 101u8, 100u8, 32u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 32u8, 107u8, 101u8, 121u8,
46u8, 0u8, 136u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8,
32u8, 85u8, 115u8, 101u8, 114u8, 32u8, 75u8, 101u8, 121u8, 44u8, 32u8, 80u8, 97u8, 121u8, 105u8,
110u8, 103u8, 32u8, 75u8, 101u8, 121u8, 41u8, 64u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8,
100u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 12u8, 0u8, 105u8, 2u8, 1u8,
32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 2u8, 12u8, 76u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8,
100u8, 32u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8,
136u8, 40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 85u8,
115u8, 101u8, 114u8, 32u8, 75u8, 101u8, 121u8, 44u8, 32u8, 80u8, 97u8, 121u8, 105u8, 110u8,
103u8, 32u8, 75u8, 101u8, 121u8, 41u8, 68u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 80u8,
111u8, 108u8, 121u8, 120u8, 76u8, 105u8, 109u8, 105u8, 116u8, 20u8, 0u8, 105u8, 2u8, 1u8, 32u8,
69u8, 118u8, 101u8, 110u8, 116u8, 68u8, 105u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 3u8,
12u8, 80u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 112u8, 111u8, 108u8, 121u8,
120u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 0u8, 17u8, 1u8, 40u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 85u8, 115u8, 101u8, 114u8, 32u8, 75u8,
101u8, 121u8, 44u8, 32u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 32u8, 75u8, 101u8, 121u8, 44u8,
32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 44u8, 32u8, 111u8,
108u8, 100u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 80u8,
79u8, 76u8, 89u8, 88u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8,
46u8, 0u8, 81u8, 4u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 114u8, 101u8,
119u8, 97u8, 114u8, 100u8, 115u8, 32u8, 82u8, 97u8, 119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 4u8, 64u8, 73u8,
116u8, 110u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 67u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 8u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 4u8, 92u8, 73u8,
116u8, 110u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 119u8, 97u8, 115u8, 32u8,
99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8,
117u8, 108u8, 101u8, 46u8, 0u8, 85u8, 4u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 24u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8,
48u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 8u8, 1u8,
32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 101u8, 114u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 4u8, 216u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 97u8, 100u8,
100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 40u8, 84u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8,
116u8, 101u8, 100u8, 8u8, 1u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 4u8,
132u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 116u8, 101u8, 114u8, 109u8, 105u8,
110u8, 97u8, 116u8, 101u8, 100u8, 46u8, 1u8, 44u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8,
105u8, 97u8, 114u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 4u8, 228u8, 84u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8,
101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 115u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 104u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 0u8, 24u8, 35u8, 32u8, 78u8, 111u8, 116u8, 101u8, 0u8,
61u8, 1u8, 84u8, 104u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 119u8, 97u8, 121u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
97u8, 110u8, 100u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 98u8,
121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8, 68u8, 96u8, 115u8, 101u8, 97u8,
108u8, 95u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 96u8, 46u8, 40u8,
67u8, 111u8, 100u8, 101u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 4u8, 1u8, 36u8, 99u8, 111u8,
100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8,
115u8, 104u8, 0u8, 2u8, 4u8, 180u8, 67u8, 111u8, 100u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8,
32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 46u8, 60u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 69u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 8u8, 1u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 4u8, 144u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 101u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8,
46u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 8u8, 53u8, 1u8, 68u8, 97u8, 116u8, 97u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 46u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8,
103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 100u8, 117u8, 114u8, 105u8,
110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 99u8, 111u8,
109u8, 112u8, 105u8, 108u8, 97u8, 116u8, 105u8, 111u8, 110u8, 92u8, 105u8, 115u8, 32u8, 110u8,
101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8,
101u8, 32u8, 105u8, 116u8, 46u8, 3u8, 4u8, 156u8, 65u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8,
109u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 46u8, 44u8, 67u8, 111u8, 100u8, 101u8, 82u8, 101u8, 109u8, 111u8, 118u8,
101u8, 100u8, 4u8, 1u8, 36u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8,
1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8, 0u8, 4u8, 4u8, 172u8, 65u8, 32u8, 99u8,
111u8, 100u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8,
119u8, 97u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 76u8, 67u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 67u8, 111u8, 100u8, 101u8, 85u8, 112u8, 100u8,
97u8, 116u8, 101u8, 100u8, 12u8, 1u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 4u8,
140u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 1u8, 52u8, 110u8, 101u8, 119u8, 95u8, 99u8,
111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8,
97u8, 115u8, 104u8, 4u8, 176u8, 78u8, 101u8, 119u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8,
97u8, 115u8, 104u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 115u8,
101u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 1u8, 52u8, 111u8, 108u8, 100u8, 95u8, 99u8, 111u8, 100u8,
101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8,
104u8, 4u8, 140u8, 80u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 32u8, 99u8, 111u8,
100u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 5u8, 4u8, 120u8, 65u8, 32u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 39u8, 115u8, 32u8, 99u8, 111u8, 100u8,
101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 4u8,
153u8, 1u8, 10u8, 9u8, 9u8, 9u8, 84u8, 104u8, 101u8, 32u8, 91u8, 101u8, 118u8, 101u8, 110u8,
116u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8,
115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8,
47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8,
101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8,
115u8, 41u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 10u8, 9u8, 9u8, 9u8, 98u8,
121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8,
10u8, 9u8, 9u8, 9u8, 89u8, 4u8, 8u8, 72u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 20u8, 69u8, 118u8,
101u8, 110u8, 116u8, 0u8, 1u8, 0u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 93u8, 4u8, 12u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8,
114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
20u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 4u8, 84u8, 0u8, 1u8, 12u8, 20u8, 78u8, 111u8, 116u8,
101u8, 100u8, 4u8, 1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8,
97u8, 115u8, 104u8, 0u8, 0u8, 4u8, 104u8, 65u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8,
103u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 110u8, 111u8,
116u8, 101u8, 100u8, 46u8, 36u8, 82u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8,
4u8, 1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8,
104u8, 0u8, 1u8, 4u8, 120u8, 65u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 113u8, 117u8,
101u8, 115u8, 116u8, 101u8, 100u8, 46u8, 28u8, 67u8, 108u8, 101u8, 97u8, 114u8, 101u8, 100u8,
4u8, 1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8,
104u8, 0u8, 2u8, 4u8, 108u8, 65u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 110u8, 32u8, 99u8, 108u8, 101u8, 97u8, 114u8, 101u8,
100u8, 46u8, 4u8, 153u8, 1u8, 10u8, 9u8, 9u8, 9u8, 84u8, 104u8, 101u8, 32u8, 91u8, 101u8, 118u8,
101u8, 110u8, 116u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8,
111u8, 99u8, 115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8,
105u8, 111u8, 47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8,
101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8,
111u8, 114u8, 115u8, 41u8, 32u8, 101u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 10u8, 9u8, 9u8,
9u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 97u8, 4u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 116u8, 101u8, 115u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 115u8, 32u8, 82u8, 97u8,
119u8, 69u8, 118u8, 101u8, 110u8, 116u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 88u8, 77u8, 111u8, 99u8, 107u8, 73u8, 110u8, 118u8, 101u8,
115u8, 116u8, 111u8, 114u8, 85u8, 73u8, 68u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 8u8,
0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
0u8, 101u8, 4u8, 1u8, 44u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 105u8,
100u8, 0u8, 0u8, 8u8, 13u8, 1u8, 65u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 111u8, 99u8,
107u8, 101u8, 100u8, 32u8, 96u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8,
105u8, 100u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 116u8, 40u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8,
78u8, 101u8, 119u8, 32u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 105u8,
100u8, 41u8, 36u8, 68u8, 105u8, 100u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 8u8, 0u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 0u8, 0u8,
1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 8u8, 228u8, 69u8,
109u8, 105u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 46u8, 112u8,
40u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 67u8, 97u8,
108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 36u8, 67u8,
100u8, 100u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 12u8, 0u8, 116u8, 1u8, 72u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 62u8, 0u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
0u8, 0u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 2u8, 12u8, 85u8, 1u8, 83u8,
104u8, 111u8, 119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 68u8, 73u8, 68u8, 96u8, 32u8,
97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8,
44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 32u8, 102u8, 108u8, 97u8, 103u8, 32u8, 105u8, 110u8,
100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 115u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 68u8, 73u8, 68u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 64u8, 118u8, 97u8, 108u8,
105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 216u8, 40u8,
84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 68u8, 73u8, 68u8, 44u8, 32u8, 84u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 97u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 41u8, 8u8, 92u8, 69u8, 118u8, 101u8, 110u8,
116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 111u8,
100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 101u8, 4u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8,
24u8, 99u8, 100u8, 100u8, 95u8, 105u8, 100u8, 44u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8,
111u8, 114u8, 85u8, 105u8, 100u8, 0u8, 0u8, 4u8, 0u8, 149u8, 1u8, 1u8, 32u8, 91u8, 117u8, 56u8,
59u8, 32u8, 49u8, 54u8, 93u8, 0u8, 0u8, 105u8, 4u8, 8u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8,
95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 20u8, 80u8, 104u8, 97u8, 115u8, 101u8, 0u8, 1u8,
12u8, 56u8, 65u8, 112u8, 112u8, 108u8, 121u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 0u8, 48u8, 70u8, 105u8,
110u8, 97u8, 108u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 1u8, 0u8, 56u8, 73u8,
110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8,
2u8, 0u8, 0u8, 109u8, 4u8, 0u8, 0u8, 2u8, 36u8, 0u8, 113u8, 4u8, 0u8, 0u8, 2u8, 153u8, 3u8, 0u8,
117u8, 4u8, 8u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8,
109u8, 88u8, 76u8, 97u8, 115u8, 116u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 85u8,
112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 73u8, 110u8, 102u8, 111u8, 0u8, 0u8, 8u8, 1u8, 48u8,
115u8, 112u8, 101u8, 99u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 121u8, 4u8,
1u8, 76u8, 99u8, 111u8, 100u8, 101u8, 99u8, 58u8, 58u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8,
116u8, 60u8, 117u8, 51u8, 50u8, 62u8, 0u8, 1u8, 36u8, 115u8, 112u8, 101u8, 99u8, 95u8, 110u8,
97u8, 109u8, 101u8, 125u8, 4u8, 1u8, 100u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 58u8, 58u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 83u8, 116u8,
114u8, 105u8, 110u8, 103u8, 0u8, 0u8, 121u8, 4u8, 0u8, 0u8, 6u8, 16u8, 0u8, 125u8, 4u8, 0u8, 0u8,
5u8, 2u8, 0u8, 129u8, 4u8, 12u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8,
115u8, 116u8, 101u8, 109u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8,
108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 36u8, 40u8, 102u8, 105u8, 108u8, 108u8, 95u8, 98u8,
108u8, 111u8, 99u8, 107u8, 4u8, 1u8, 20u8, 114u8, 97u8, 116u8, 105u8, 111u8, 137u8, 1u8, 1u8,
28u8, 80u8, 101u8, 114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 0u8, 4u8, 5u8, 1u8, 65u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 102u8, 105u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8,
108u8, 111u8, 99u8, 107u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 117u8, 112u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
114u8, 97u8, 116u8, 105u8, 111u8, 46u8, 24u8, 114u8, 101u8, 109u8, 97u8, 114u8, 107u8, 4u8, 1u8,
24u8, 114u8, 101u8, 109u8, 97u8, 114u8, 107u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 1u8, 20u8, 104u8, 77u8, 97u8, 107u8, 101u8, 32u8, 115u8, 111u8, 109u8, 101u8,
32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 114u8, 101u8, 109u8, 97u8,
114u8, 107u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8,
32u8, 45u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 56u8, 115u8, 101u8, 116u8, 95u8, 104u8, 101u8, 97u8, 112u8,
95u8, 112u8, 97u8, 103u8, 101u8, 115u8, 4u8, 1u8, 20u8, 112u8, 97u8, 103u8, 101u8, 115u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 2u8, 4u8, 248u8, 83u8, 101u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 112u8, 97u8,
103u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 87u8, 101u8, 98u8,
65u8, 115u8, 115u8, 101u8, 109u8, 98u8, 108u8, 121u8, 32u8, 101u8, 110u8, 118u8, 105u8, 114u8,
111u8, 110u8, 109u8, 101u8, 110u8, 116u8, 39u8, 115u8, 32u8, 104u8, 101u8, 97u8, 112u8, 46u8,
32u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 100u8, 101u8, 4u8, 1u8, 16u8, 99u8, 111u8, 100u8,
101u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 3u8, 48u8, 100u8, 83u8,
101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 49u8, 1u8, 45u8, 32u8, 96u8, 79u8, 40u8, 67u8,
32u8, 43u8, 32u8, 83u8, 41u8, 96u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 67u8,
96u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8,
111u8, 100u8, 101u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 83u8, 96u8, 32u8, 99u8, 111u8,
109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8,
97u8, 110u8, 95u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 69u8, 1u8, 45u8,
32u8, 49u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 96u8, 99u8, 97u8, 110u8,
95u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 58u8, 32u8, 96u8, 79u8, 40u8,
83u8, 41u8, 96u8, 32u8, 40u8, 99u8, 97u8, 108u8, 108u8, 115u8, 32u8, 96u8, 115u8, 112u8, 95u8,
105u8, 111u8, 58u8, 58u8, 109u8, 105u8, 115u8, 99u8, 58u8, 58u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 96u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 52u8, 32u8, 32u8, 101u8, 120u8, 112u8, 101u8,
110u8, 115u8, 105u8, 118u8, 101u8, 41u8, 46u8, 132u8, 45u8, 32u8, 49u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 99u8,
111u8, 100u8, 101u8, 99u8, 32u8, 96u8, 79u8, 40u8, 67u8, 41u8, 96u8, 41u8, 46u8, 64u8, 45u8,
32u8, 49u8, 32u8, 100u8, 105u8, 103u8, 101u8, 115u8, 116u8, 32u8, 105u8, 116u8, 101u8, 109u8,
46u8, 40u8, 45u8, 32u8, 49u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 46u8, 77u8, 1u8, 84u8,
104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8,
98u8, 117u8, 116u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 118u8, 101u8, 114u8, 121u8, 184u8, 101u8,
120u8, 112u8, 101u8, 110u8, 115u8, 105u8, 118u8, 101u8, 46u8, 32u8, 87u8, 101u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 116u8, 114u8, 101u8, 97u8, 116u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 92u8,
115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 100u8, 101u8, 95u8, 119u8, 105u8, 116u8, 104u8, 111u8,
117u8, 116u8, 95u8, 99u8, 104u8, 101u8, 99u8, 107u8, 115u8, 4u8, 1u8, 16u8, 99u8, 111u8, 100u8,
101u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 4u8, 36u8, 25u8, 1u8,
83u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 119u8, 105u8, 116u8,
104u8, 111u8, 117u8, 116u8, 32u8, 100u8, 111u8, 105u8, 110u8, 103u8, 32u8, 97u8, 110u8, 121u8,
32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 46u8, 0u8,
40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 140u8, 45u8, 32u8, 96u8,
79u8, 40u8, 67u8, 41u8, 96u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 67u8, 96u8,
32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 111u8,
100u8, 101u8, 96u8, 132u8, 45u8, 32u8, 49u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 99u8, 111u8, 100u8, 101u8, 99u8,
32u8, 96u8, 79u8, 40u8, 67u8, 41u8, 96u8, 41u8, 46u8, 64u8, 45u8, 32u8, 49u8, 32u8, 100u8, 105u8,
103u8, 101u8, 115u8, 116u8, 32u8, 105u8, 116u8, 101u8, 109u8, 46u8, 40u8, 45u8, 32u8, 49u8, 32u8,
101u8, 118u8, 101u8, 110u8, 116u8, 46u8, 85u8, 1u8, 84u8, 104u8, 101u8, 32u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8,
101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 46u8, 32u8, 87u8, 101u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 116u8, 114u8, 101u8, 97u8, 116u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
97u8, 115u8, 32u8, 97u8, 32u8, 102u8, 117u8, 108u8, 108u8, 72u8, 98u8, 108u8, 111u8, 99u8, 107u8,
46u8, 32u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 44u8, 115u8,
101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 4u8, 1u8, 20u8, 105u8, 116u8,
101u8, 109u8, 115u8, 133u8, 4u8, 1u8, 52u8, 86u8, 101u8, 99u8, 60u8, 75u8, 101u8, 121u8, 86u8,
97u8, 108u8, 117u8, 101u8, 62u8, 0u8, 5u8, 4u8, 104u8, 83u8, 101u8, 116u8, 32u8, 115u8, 111u8,
109u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 48u8, 107u8, 105u8, 108u8, 108u8, 95u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 4u8, 1u8, 16u8, 107u8, 101u8, 121u8, 115u8, 141u8, 4u8, 1u8,
32u8, 86u8, 101u8, 99u8, 60u8, 75u8, 101u8, 121u8, 62u8, 0u8, 6u8, 4u8, 116u8, 75u8, 105u8,
108u8, 108u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 44u8,
107u8, 105u8, 108u8, 108u8, 95u8, 112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 8u8, 1u8, 24u8,
112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 40u8, 1u8, 12u8, 75u8, 101u8, 121u8, 0u8, 1u8, 28u8,
115u8, 117u8, 98u8, 107u8, 101u8, 121u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 7u8,
16u8, 17u8, 1u8, 75u8, 105u8, 108u8, 108u8, 32u8, 97u8, 108u8, 108u8, 32u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 32u8, 119u8, 105u8, 116u8,
104u8, 32u8, 97u8, 32u8, 107u8, 101u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8,
116u8, 97u8, 114u8, 116u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 46u8,
0u8, 57u8, 1u8, 42u8, 42u8, 78u8, 79u8, 84u8, 69u8, 58u8, 42u8, 42u8, 32u8, 87u8, 101u8, 32u8,
114u8, 101u8, 108u8, 121u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 82u8, 111u8,
111u8, 116u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 116u8, 111u8, 32u8, 112u8,
114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 32u8, 117u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 117u8, 98u8, 107u8,
101u8, 121u8, 115u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 61u8, 1u8, 116u8, 104u8, 101u8,
32u8, 112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 32u8, 119u8, 101u8, 32u8, 97u8, 114u8, 101u8,
32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 97u8,
99u8, 99u8, 117u8, 114u8, 97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8,
108u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 68u8, 114u8, 101u8, 109u8, 97u8, 114u8, 107u8, 95u8, 119u8,
105u8, 116u8, 104u8, 95u8, 101u8, 118u8, 101u8, 110u8, 116u8, 4u8, 1u8, 24u8, 114u8, 101u8,
109u8, 97u8, 114u8, 107u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 8u8,
4u8, 164u8, 77u8, 97u8, 107u8, 101u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 111u8, 110u8, 45u8,
99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 114u8, 101u8, 109u8, 97u8, 114u8, 107u8, 32u8, 97u8,
110u8, 100u8, 32u8, 101u8, 109u8, 105u8, 116u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 46u8,
4u8, 37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8,
32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8,
115u8, 105u8, 99u8, 46u8, 133u8, 4u8, 0u8, 0u8, 2u8, 137u8, 4u8, 0u8, 137u8, 4u8, 0u8, 0u8, 4u8,
8u8, 40u8, 40u8, 0u8, 141u8, 4u8, 0u8, 0u8, 2u8, 40u8, 0u8, 145u8, 4u8, 12u8, 48u8, 102u8, 114u8,
97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 24u8, 108u8, 105u8, 109u8,
105u8, 116u8, 115u8, 48u8, 66u8, 108u8, 111u8, 99u8, 107u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 115u8, 0u8, 0u8, 12u8, 1u8, 40u8, 98u8, 97u8, 115u8, 101u8, 95u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 36u8, 109u8,
97u8, 120u8, 95u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 36u8, 112u8, 101u8, 114u8, 95u8, 99u8, 108u8, 97u8, 115u8, 115u8, 149u8,
4u8, 1u8, 132u8, 80u8, 101u8, 114u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 67u8,
108u8, 97u8, 115u8, 115u8, 60u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 80u8, 101u8,
114u8, 67u8, 108u8, 97u8, 115u8, 115u8, 62u8, 0u8, 0u8, 149u8, 4u8, 12u8, 52u8, 102u8, 114u8,
97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 115u8, 64u8, 80u8, 101u8, 114u8, 68u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 4u8, 4u8, 84u8, 1u8, 153u8, 4u8, 0u8, 12u8,
1u8, 24u8, 110u8, 111u8, 114u8, 109u8, 97u8, 108u8, 153u8, 4u8, 1u8, 4u8, 84u8, 0u8, 1u8, 44u8,
111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 153u8, 4u8, 1u8, 4u8,
84u8, 0u8, 1u8, 36u8, 109u8, 97u8, 110u8, 100u8, 97u8, 116u8, 111u8, 114u8, 121u8, 153u8, 4u8,
1u8, 4u8, 84u8, 0u8, 0u8, 153u8, 4u8, 12u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8,
121u8, 115u8, 116u8, 101u8, 109u8, 24u8, 108u8, 105u8, 109u8, 105u8, 116u8, 115u8, 60u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 80u8, 101u8, 114u8, 67u8, 108u8, 97u8, 115u8, 115u8,
0u8, 0u8, 16u8, 1u8, 56u8, 98u8, 97u8, 115u8, 101u8, 95u8, 101u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8,
52u8, 109u8, 97u8, 120u8, 95u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 0u8, 1u8, 36u8, 109u8, 97u8, 120u8, 95u8, 116u8, 111u8, 116u8, 97u8, 108u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 0u8, 1u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 0u8, 0u8, 157u8, 4u8, 12u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8,
115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 24u8, 108u8, 105u8, 109u8, 105u8, 116u8, 115u8, 44u8,
66u8, 108u8, 111u8, 99u8, 107u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 0u8, 0u8, 4u8, 1u8,
12u8, 109u8, 97u8, 120u8, 161u8, 4u8, 1u8, 84u8, 80u8, 101u8, 114u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 60u8, 117u8, 51u8, 50u8, 62u8, 0u8,
0u8, 161u8, 4u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8,
111u8, 114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 64u8, 80u8, 101u8,
114u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 4u8,
4u8, 84u8, 1u8, 16u8, 0u8, 12u8, 1u8, 24u8, 110u8, 111u8, 114u8, 109u8, 97u8, 108u8, 16u8, 1u8,
4u8, 84u8, 0u8, 1u8, 44u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8,
108u8, 16u8, 1u8, 4u8, 84u8, 0u8, 1u8, 36u8, 109u8, 97u8, 110u8, 100u8, 97u8, 116u8, 111u8,
114u8, 121u8, 16u8, 1u8, 4u8, 84u8, 0u8, 0u8, 165u8, 4u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 115u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 68u8, 98u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 0u8, 8u8, 1u8, 16u8, 114u8, 101u8, 97u8, 100u8, 32u8,
1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 20u8, 119u8, 114u8, 105u8, 116u8,
101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 0u8, 169u8, 4u8, 8u8, 40u8,
115u8, 112u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 56u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 32u8, 1u8,
36u8, 115u8, 112u8, 101u8, 99u8, 95u8, 110u8, 97u8, 109u8, 101u8, 125u8, 4u8, 1u8, 52u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 83u8, 116u8, 114u8, 105u8, 110u8, 103u8, 0u8, 1u8,
36u8, 105u8, 109u8, 112u8, 108u8, 95u8, 110u8, 97u8, 109u8, 101u8, 125u8, 4u8, 1u8, 52u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 83u8, 116u8, 114u8, 105u8, 110u8, 103u8, 0u8, 1u8,
68u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 110u8, 103u8, 95u8, 118u8, 101u8, 114u8,
115u8, 105u8, 111u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 48u8, 115u8, 112u8,
101u8, 99u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 1u8, 48u8, 105u8, 109u8, 112u8, 108u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 16u8, 97u8, 112u8, 105u8, 115u8, 173u8, 4u8,
1u8, 28u8, 65u8, 112u8, 105u8, 115u8, 86u8, 101u8, 99u8, 0u8, 1u8, 76u8, 116u8, 114u8, 97u8,
110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8,
111u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 52u8, 115u8, 116u8, 97u8, 116u8,
101u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8,
0u8, 173u8, 4u8, 4u8, 12u8, 67u8, 111u8, 119u8, 4u8, 4u8, 84u8, 1u8, 177u8, 4u8, 0u8, 4u8, 0u8,
177u8, 4u8, 0u8, 0u8, 0u8, 177u8, 4u8, 0u8, 0u8, 2u8, 181u8, 4u8, 0u8, 181u8, 4u8, 0u8, 0u8, 4u8,
8u8, 185u8, 4u8, 16u8, 0u8, 185u8, 4u8, 0u8, 0u8, 3u8, 8u8, 0u8, 0u8, 0u8, 8u8, 0u8, 189u8, 4u8,
12u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8,
24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8,
84u8, 0u8, 1u8, 24u8, 60u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 112u8, 101u8,
99u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 8u8, 17u8, 1u8, 84u8, 104u8, 101u8, 32u8, 110u8, 97u8,
109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 80u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8,
32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 46u8, 104u8,
83u8, 112u8, 101u8, 99u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 78u8, 101u8, 101u8,
100u8, 115u8, 84u8, 111u8, 73u8, 110u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 0u8, 1u8, 8u8,
65u8, 1u8, 84u8, 104u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 100u8, 101u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 32u8, 98u8, 101u8,
116u8, 119u8, 101u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 80u8, 97u8, 110u8,
100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 46u8, 116u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 69u8,
120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 86u8,
101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 2u8, 12u8, 236u8, 70u8, 97u8, 105u8, 108u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 32u8, 118u8, 101u8, 114u8,
115u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 101u8, 119u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 46u8, 0u8, 9u8, 1u8,
69u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 99u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8,
32u8, 96u8, 67u8, 111u8, 114u8, 101u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
96u8, 32u8, 111u8, 114u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 32u8,
96u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 96u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 46u8, 76u8, 78u8, 111u8, 110u8, 68u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 67u8, 111u8, 109u8, 112u8, 111u8, 115u8, 105u8, 116u8,
101u8, 0u8, 3u8, 4u8, 252u8, 83u8, 117u8, 105u8, 99u8, 105u8, 100u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8,
110u8, 45u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8,
111u8, 115u8, 105u8, 116u8, 101u8, 32u8, 100u8, 97u8, 116u8, 97u8, 46u8, 60u8, 78u8, 111u8,
110u8, 90u8, 101u8, 114u8, 111u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 4u8,
4u8, 53u8, 1u8, 84u8, 104u8, 101u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 110u8,
111u8, 110u8, 45u8, 122u8, 101u8, 114u8, 111u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8,
110u8, 99u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 112u8, 114u8, 101u8, 118u8,
101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 98u8, 101u8, 105u8, 110u8,
103u8, 32u8, 112u8, 117u8, 114u8, 103u8, 101u8, 100u8, 46u8, 48u8, 67u8, 97u8, 108u8, 108u8,
70u8, 105u8, 108u8, 116u8, 101u8, 114u8, 101u8, 100u8, 0u8, 5u8, 4u8, 208u8, 84u8, 104u8, 101u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 105u8, 108u8, 116u8, 101u8, 114u8,
32u8, 112u8, 114u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 46u8, 4u8, 108u8, 69u8, 114u8, 114u8, 111u8, 114u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8,
32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 193u8, 4u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 64u8, 119u8, 101u8, 97u8, 107u8, 95u8, 98u8, 111u8, 117u8, 110u8, 100u8,
101u8, 100u8, 95u8, 118u8, 101u8, 99u8, 56u8, 87u8, 101u8, 97u8, 107u8, 66u8, 111u8, 117u8,
110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 197u8, 4u8, 4u8, 83u8, 0u8,
0u8, 4u8, 0u8, 205u8, 4u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8, 197u8, 4u8,
0u8, 0u8, 4u8, 8u8, 201u8, 4u8, 32u8, 0u8, 201u8, 4u8, 12u8, 68u8, 115u8, 112u8, 95u8, 99u8,
111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 95u8, 98u8, 97u8, 98u8, 101u8, 12u8,
97u8, 112u8, 112u8, 24u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 4u8, 0u8, 185u8, 1u8,
1u8, 60u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 58u8, 58u8, 80u8, 117u8, 98u8, 108u8,
105u8, 99u8, 0u8, 0u8, 205u8, 4u8, 0u8, 0u8, 2u8, 197u8, 4u8, 0u8, 209u8, 4u8, 8u8, 72u8, 115u8,
112u8, 95u8, 99u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 95u8, 115u8, 108u8,
111u8, 116u8, 115u8, 16u8, 83u8, 108u8, 111u8, 116u8, 0u8, 0u8, 4u8, 0u8, 32u8, 1u8, 12u8, 117u8,
54u8, 52u8, 0u8, 0u8, 213u8, 4u8, 12u8, 68u8, 115u8, 112u8, 95u8, 99u8, 111u8, 110u8, 115u8,
101u8, 110u8, 115u8, 117u8, 115u8, 95u8, 98u8, 97u8, 98u8, 101u8, 28u8, 100u8, 105u8, 103u8,
101u8, 115u8, 116u8, 115u8, 80u8, 78u8, 101u8, 120u8, 116u8, 67u8, 111u8, 110u8, 102u8, 105u8,
103u8, 68u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 111u8, 114u8, 0u8, 1u8, 4u8, 8u8,
86u8, 49u8, 8u8, 1u8, 4u8, 99u8, 217u8, 4u8, 1u8, 40u8, 40u8, 117u8, 54u8, 52u8, 44u8, 32u8,
117u8, 54u8, 52u8, 41u8, 0u8, 1u8, 52u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 95u8,
115u8, 108u8, 111u8, 116u8, 115u8, 221u8, 4u8, 1u8, 48u8, 65u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 83u8, 108u8, 111u8, 116u8, 115u8, 0u8, 1u8, 0u8, 0u8, 217u8, 4u8, 0u8, 0u8, 4u8,
8u8, 32u8, 32u8, 0u8, 221u8, 4u8, 8u8, 68u8, 115u8, 112u8, 95u8, 99u8, 111u8, 110u8, 115u8,
101u8, 110u8, 115u8, 117u8, 115u8, 95u8, 98u8, 97u8, 98u8, 101u8, 48u8, 65u8, 108u8, 108u8,
111u8, 119u8, 101u8, 100u8, 83u8, 108u8, 111u8, 116u8, 115u8, 0u8, 1u8, 12u8, 48u8, 80u8, 114u8,
105u8, 109u8, 97u8, 114u8, 121u8, 83u8, 108u8, 111u8, 116u8, 115u8, 0u8, 0u8, 0u8, 116u8, 80u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 65u8, 110u8, 100u8, 83u8, 101u8, 99u8, 111u8, 110u8,
100u8, 97u8, 114u8, 121u8, 80u8, 108u8, 97u8, 105u8, 110u8, 83u8, 108u8, 111u8, 116u8, 115u8,
0u8, 1u8, 0u8, 108u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 65u8, 110u8, 100u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 86u8, 82u8, 70u8, 83u8, 108u8, 111u8,
116u8, 115u8, 0u8, 2u8, 0u8, 0u8, 225u8, 4u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8,
115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 44u8, 98u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 95u8, 118u8, 101u8, 99u8, 40u8,
66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 4u8, 4u8,
83u8, 0u8, 0u8, 4u8, 0u8, 229u8, 4u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8,
229u8, 4u8, 0u8, 0u8, 2u8, 4u8, 0u8, 233u8, 4u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 4u8, 4u8, 84u8, 1u8, 4u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8,
83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 4u8, 0u8, 0u8, 1u8, 0u8, 0u8, 237u8, 4u8, 8u8, 68u8, 115u8,
112u8, 95u8, 99u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 95u8, 98u8, 97u8,
98u8, 101u8, 88u8, 66u8, 97u8, 98u8, 101u8, 69u8, 112u8, 111u8, 99u8, 104u8, 67u8, 111u8, 110u8,
102u8, 105u8, 103u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 8u8, 1u8, 4u8,
99u8, 217u8, 4u8, 1u8, 40u8, 40u8, 117u8, 54u8, 52u8, 44u8, 32u8, 117u8, 54u8, 52u8, 41u8, 0u8,
1u8, 52u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 95u8, 115u8, 108u8, 111u8, 116u8,
115u8, 221u8, 4u8, 1u8, 48u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 83u8, 108u8, 111u8,
116u8, 115u8, 0u8, 0u8, 241u8, 4u8, 12u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
98u8, 97u8, 98u8, 101u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8,
108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 12u8, 76u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 95u8,
101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 8u8, 1u8, 72u8,
101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 112u8,
114u8, 111u8, 111u8, 102u8, 245u8, 4u8, 1u8, 132u8, 66u8, 111u8, 120u8, 60u8, 69u8, 113u8, 117u8,
105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8,
60u8, 84u8, 58u8, 58u8, 72u8, 101u8, 97u8, 100u8, 101u8, 114u8, 62u8, 62u8, 0u8, 1u8, 60u8,
107u8, 101u8, 121u8, 95u8, 111u8, 119u8, 110u8, 101u8, 114u8, 95u8, 112u8, 114u8, 111u8, 111u8,
102u8, 1u8, 5u8, 1u8, 64u8, 84u8, 58u8, 58u8, 75u8, 101u8, 121u8, 79u8, 119u8, 110u8, 101u8,
114u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 0u8, 16u8, 9u8, 1u8, 82u8, 101u8, 112u8, 111u8,
114u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 101u8,
113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 47u8, 109u8, 105u8,
115u8, 98u8, 101u8, 104u8, 97u8, 118u8, 105u8, 111u8, 114u8, 46u8, 32u8, 84u8, 104u8, 105u8,
115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
118u8, 101u8, 114u8, 105u8, 102u8, 121u8, 5u8, 1u8, 116u8, 104u8, 101u8, 32u8, 101u8, 113u8,
117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 114u8, 111u8,
111u8, 102u8, 32u8, 97u8, 110u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 112u8, 114u8,
111u8, 111u8, 102u8, 13u8, 1u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 111u8,
102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8, 102u8, 32u8, 98u8, 111u8,
116u8, 104u8, 32u8, 97u8, 114u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 44u8, 32u8,
116u8, 104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 32u8, 119u8, 105u8,
108u8, 108u8, 48u8, 98u8, 101u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8,
46u8, 112u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 95u8, 101u8, 113u8, 117u8, 105u8, 118u8,
111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 8u8, 1u8, 72u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8,
111u8, 110u8, 95u8, 112u8, 114u8, 111u8, 111u8, 102u8, 245u8, 4u8, 1u8, 132u8, 66u8, 111u8,
120u8, 60u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
80u8, 114u8, 111u8, 111u8, 102u8, 60u8, 84u8, 58u8, 58u8, 72u8, 101u8, 97u8, 100u8, 101u8, 114u8,
62u8, 62u8, 0u8, 1u8, 60u8, 107u8, 101u8, 121u8, 95u8, 111u8, 119u8, 110u8, 101u8, 114u8, 95u8,
112u8, 114u8, 111u8, 111u8, 102u8, 1u8, 5u8, 1u8, 64u8, 84u8, 58u8, 58u8, 75u8, 101u8, 121u8,
79u8, 119u8, 110u8, 101u8, 114u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 1u8, 32u8, 9u8, 1u8,
82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
116u8, 121u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8,
110u8, 47u8, 109u8, 105u8, 115u8, 98u8, 101u8, 104u8, 97u8, 118u8, 105u8, 111u8, 114u8, 46u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 118u8, 101u8, 114u8, 105u8, 102u8, 121u8, 5u8, 1u8, 116u8, 104u8,
101u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 97u8, 110u8, 100u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8,
112u8, 32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 13u8, 1u8, 97u8, 103u8, 97u8, 105u8, 110u8,
115u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8,
101u8, 100u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8,
102u8, 32u8, 98u8, 111u8, 116u8, 104u8, 32u8, 97u8, 114u8, 101u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8,
101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 48u8, 98u8, 101u8, 32u8, 114u8, 101u8, 112u8, 111u8,
114u8, 116u8, 101u8, 100u8, 46u8, 13u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 117u8, 110u8, 115u8, 105u8, 103u8,
110u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8,
101u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
111u8, 110u8, 108u8, 121u8, 21u8, 1u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 105u8, 116u8, 32u8, 40u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 100u8,
32u8, 105u8, 110u8, 32u8, 96u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 85u8, 110u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 96u8, 41u8, 44u8, 32u8, 97u8, 115u8, 32u8, 115u8,
117u8, 99u8, 104u8, 21u8, 1u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 100u8,
101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 97u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8,
105u8, 111u8, 110u8, 36u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 114u8, 46u8, 72u8,
112u8, 108u8, 97u8, 110u8, 95u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 95u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 4u8, 1u8, 24u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 213u8, 4u8,
1u8, 80u8, 78u8, 101u8, 120u8, 116u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 68u8, 101u8,
115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 111u8, 114u8, 0u8, 2u8, 16u8, 93u8, 1u8, 80u8, 108u8,
97u8, 110u8, 32u8, 97u8, 110u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 99u8, 111u8, 110u8,
102u8, 105u8, 103u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 32u8, 84u8, 104u8,
101u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8,
32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 99u8,
111u8, 114u8, 100u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 81u8,
1u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
116u8, 111u8, 32u8, 96u8, 101u8, 110u8, 97u8, 99u8, 116u8, 95u8, 101u8, 112u8, 111u8, 99u8,
104u8, 95u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 96u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8,
99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8,
32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 97u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 101u8,
32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 46u8, 89u8, 1u8,
77u8, 117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8,
100u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8, 112u8, 108u8, 97u8, 99u8, 101u8,
32u8, 97u8, 110u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8,
112u8, 108u8, 97u8, 110u8, 110u8, 101u8, 100u8, 32u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8,
32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
100u8, 84u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 110u8, 97u8,
99u8, 116u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 46u8, 4u8, 37u8, 1u8, 67u8, 111u8, 110u8,
116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 118u8, 97u8, 114u8, 105u8,
97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 245u8, 4u8, 8u8,
72u8, 115u8, 112u8, 95u8, 99u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 95u8,
115u8, 108u8, 111u8, 116u8, 115u8, 68u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 8u8, 24u8, 72u8, 101u8, 97u8,
100u8, 101u8, 114u8, 1u8, 249u8, 4u8, 8u8, 73u8, 100u8, 1u8, 201u8, 4u8, 0u8, 16u8, 1u8, 32u8,
111u8, 102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 201u8, 4u8, 1u8, 8u8, 73u8, 100u8, 0u8,
1u8, 16u8, 115u8, 108u8, 111u8, 116u8, 209u8, 4u8, 1u8, 16u8, 83u8, 108u8, 111u8, 116u8, 0u8,
1u8, 48u8, 102u8, 105u8, 114u8, 115u8, 116u8, 95u8, 104u8, 101u8, 97u8, 100u8, 101u8, 114u8,
249u8, 4u8, 1u8, 24u8, 72u8, 101u8, 97u8, 100u8, 101u8, 114u8, 0u8, 1u8, 52u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 95u8, 104u8, 101u8, 97u8, 100u8, 101u8, 114u8, 249u8, 4u8, 1u8, 24u8,
72u8, 101u8, 97u8, 100u8, 101u8, 114u8, 0u8, 0u8, 249u8, 4u8, 16u8, 40u8, 115u8, 112u8, 95u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 28u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8,
99u8, 24u8, 104u8, 101u8, 97u8, 100u8, 101u8, 114u8, 24u8, 72u8, 101u8, 97u8, 100u8, 101u8,
114u8, 8u8, 24u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 16u8, 72u8, 97u8, 115u8,
104u8, 1u8, 253u8, 4u8, 0u8, 20u8, 1u8, 44u8, 112u8, 97u8, 114u8, 101u8, 110u8, 116u8, 95u8,
104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 48u8, 72u8, 97u8, 115u8, 104u8, 58u8, 58u8, 79u8, 117u8,
116u8, 112u8, 117u8, 116u8, 0u8, 1u8, 24u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 121u8, 4u8,
1u8, 24u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 40u8, 115u8, 116u8, 97u8, 116u8,
101u8, 95u8, 114u8, 111u8, 111u8, 116u8, 36u8, 1u8, 48u8, 72u8, 97u8, 115u8, 104u8, 58u8, 58u8,
79u8, 117u8, 116u8, 112u8, 117u8, 116u8, 0u8, 1u8, 60u8, 101u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 115u8, 95u8, 114u8, 111u8, 111u8, 116u8, 36u8, 1u8, 48u8, 72u8, 97u8,
115u8, 104u8, 58u8, 58u8, 79u8, 117u8, 116u8, 112u8, 117u8, 116u8, 0u8, 1u8, 24u8, 100u8, 105u8,
103u8, 101u8, 115u8, 116u8, 44u8, 1u8, 24u8, 68u8, 105u8, 103u8, 101u8, 115u8, 116u8, 0u8, 0u8,
253u8, 4u8, 12u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 44u8, 66u8, 108u8, 97u8, 107u8, 101u8, 84u8,
119u8, 111u8, 50u8, 53u8, 54u8, 0u8, 0u8, 0u8, 0u8, 1u8, 5u8, 8u8, 40u8, 115u8, 112u8, 95u8,
115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 60u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 104u8, 105u8, 112u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 0u8, 12u8, 1u8, 28u8, 115u8,
101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 16u8, 1u8, 48u8, 83u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 40u8, 116u8, 114u8, 105u8, 101u8, 95u8,
110u8, 111u8, 100u8, 101u8, 115u8, 141u8, 4u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 62u8, 0u8, 1u8, 60u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 56u8, 86u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 5u8, 5u8,
12u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8, 98u8, 101u8, 24u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8,
1u8, 12u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 69u8, 113u8, 117u8, 105u8, 118u8,
111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 0u8, 4u8,
49u8, 1u8, 65u8, 110u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8,
100u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8,
32u8, 97u8, 110u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 105u8, 115u8, 32u8, 105u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 75u8, 101u8, 121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 80u8,
114u8, 111u8, 111u8, 102u8, 0u8, 1u8, 4u8, 49u8, 1u8, 65u8, 32u8, 107u8, 101u8, 121u8, 32u8,
111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 112u8, 114u8, 111u8, 111u8,
102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8,
112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 101u8, 113u8, 117u8,
105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 111u8,
114u8, 116u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8,
88u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 79u8, 102u8, 102u8, 101u8,
110u8, 99u8, 101u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 0u8, 2u8, 4u8, 21u8, 1u8, 65u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 105u8,
115u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 98u8, 117u8, 116u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8,
108u8, 121u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8, 46u8, 4u8, 173u8,
1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 91u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 93u8,
40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8,
115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8,
51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8,
116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8,
10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 9u8, 5u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 24u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 4u8,
12u8, 115u8, 101u8, 116u8, 4u8, 1u8, 12u8, 110u8, 111u8, 119u8, 13u8, 5u8, 1u8, 36u8, 84u8, 58u8,
58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8, 64u8, 84u8, 83u8, 101u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 105u8,
109u8, 101u8, 46u8, 0u8, 85u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 118u8,
111u8, 107u8, 101u8, 100u8, 32u8, 101u8, 120u8, 97u8, 99u8, 116u8, 108u8, 121u8, 32u8, 111u8,
110u8, 99u8, 101u8, 32u8, 112u8, 101u8, 114u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 32u8,
73u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 112u8, 97u8, 110u8, 105u8, 99u8, 32u8, 97u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 212u8, 112u8, 104u8, 97u8, 115u8, 101u8, 44u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 104u8, 97u8, 115u8,
110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 105u8, 110u8, 118u8, 111u8, 107u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 105u8, 109u8,
101u8, 46u8, 0u8, 65u8, 1u8, 84u8, 104u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8,
97u8, 109u8, 112u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8,
103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 32u8, 111u8, 110u8,
101u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8,
64u8, 96u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 80u8, 101u8, 114u8, 105u8, 111u8,
100u8, 96u8, 46u8, 0u8, 212u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8,
32u8, 98u8, 101u8, 32u8, 96u8, 73u8, 110u8, 104u8, 101u8, 114u8, 101u8, 110u8, 116u8, 96u8, 46u8,
0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 49u8, 1u8, 45u8,
32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 32u8, 40u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 105u8, 109u8, 112u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 97u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 111u8, 102u8, 32u8, 96u8, 79u8, 110u8, 84u8, 105u8,
109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 83u8, 101u8, 116u8, 96u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 98u8, 101u8, 32u8, 96u8, 79u8, 40u8, 49u8,
41u8, 96u8, 41u8, 97u8, 1u8, 45u8, 32u8, 49u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 114u8, 101u8, 97u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 49u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 40u8, 99u8, 111u8, 100u8, 101u8, 99u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 41u8,
46u8, 32u8, 40u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 111u8, 102u8, 32u8, 96u8,
68u8, 105u8, 100u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 58u8, 58u8, 116u8, 97u8, 107u8,
101u8, 96u8, 32u8, 105u8, 110u8, 64u8, 32u8, 32u8, 96u8, 111u8, 110u8, 95u8, 102u8, 105u8, 110u8,
97u8, 108u8, 105u8, 122u8, 101u8, 96u8, 41u8, 212u8, 45u8, 32u8, 49u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 114u8, 32u8, 96u8, 111u8, 110u8,
95u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 95u8, 115u8, 101u8, 116u8,
96u8, 46u8, 32u8, 77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 96u8, 79u8, 40u8, 49u8,
41u8, 96u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8,
4u8, 37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8,
32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8,
115u8, 105u8, 99u8, 46u8, 13u8, 5u8, 0u8, 0u8, 6u8, 32u8, 0u8, 17u8, 5u8, 0u8, 0u8, 4u8, 12u8,
0u8, 24u8, 21u8, 1u8, 0u8, 21u8, 5u8, 12u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 20u8, 99u8, 108u8, 97u8, 105u8,
109u8, 4u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 60u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 72u8,
152u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 32u8, 97u8, 110u8, 32u8, 112u8, 114u8, 101u8,
118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 117u8, 110u8, 97u8, 115u8, 115u8, 105u8,
103u8, 110u8, 101u8, 100u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 0u8, 220u8, 80u8,
97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 58u8, 32u8, 96u8, 68u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8,
100u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 204u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8,
105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 46u8, 0u8, 240u8, 45u8, 32u8, 96u8, 105u8, 110u8, 100u8,
101u8, 120u8, 96u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 110u8, 111u8, 116u8,
32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 32u8, 117u8, 115u8, 101u8, 46u8, 0u8, 144u8, 69u8, 109u8,
105u8, 116u8, 115u8, 32u8, 96u8, 73u8, 110u8, 100u8, 101u8, 120u8, 65u8, 115u8, 115u8, 105u8,
103u8, 110u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8,
115u8, 115u8, 102u8, 117u8, 108u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 36u8, 45u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 46u8, 152u8, 45u8,
32u8, 79u8, 110u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8,
117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 99u8, 111u8, 100u8, 101u8, 99u8,
32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 41u8, 46u8, 96u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8,
114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8,
105u8, 111u8, 110u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 46u8, 76u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 144u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 49u8, 32u8, 82u8, 101u8, 97u8, 100u8, 47u8, 87u8, 114u8,
105u8, 116u8, 101u8, 32u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 41u8, 44u8,
35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 8u8, 1u8, 12u8, 110u8, 101u8, 119u8, 0u8, 1u8, 48u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 20u8, 105u8,
110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 80u8, 93u8, 1u8, 65u8, 115u8, 115u8,
105u8, 103u8, 110u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 116u8,
111u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 97u8, 116u8, 105u8, 111u8, 110u8, 184u8,
105u8, 115u8, 32u8, 101u8, 102u8, 102u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8,
32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 46u8, 0u8, 204u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 46u8,
0u8, 37u8, 1u8, 45u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 58u8, 32u8, 116u8,
104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 114u8, 101u8, 45u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 32u8,
84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 111u8,
119u8, 110u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8,
110u8, 100u8, 101u8, 114u8, 46u8, 93u8, 1u8, 45u8, 32u8, 96u8, 110u8, 101u8, 119u8, 96u8, 58u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 110u8, 111u8, 45u8, 111u8, 112u8, 32u8, 105u8, 102u8, 32u8,
105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 113u8, 117u8, 97u8, 108u8, 32u8, 116u8, 111u8,
32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 0u8, 144u8, 69u8, 109u8, 105u8, 116u8,
115u8, 32u8, 96u8, 73u8, 110u8, 100u8, 101u8, 120u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8,
102u8, 117u8, 108u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 36u8, 45u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 46u8, 152u8, 45u8, 32u8, 79u8, 110u8,
101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 117u8, 116u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 99u8, 111u8, 100u8, 101u8, 99u8, 32u8, 96u8, 79u8, 40u8,
49u8, 41u8, 96u8, 41u8, 46u8, 100u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 46u8,
76u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 48u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 58u8, 224u8, 32u8, 32u8, 32u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8,
73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 115u8, 44u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 40u8, 114u8, 101u8, 99u8, 105u8, 112u8, 105u8, 101u8, 110u8, 116u8,
41u8, 228u8, 32u8, 32u8, 32u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8,
73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 115u8, 44u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 40u8, 114u8, 101u8, 99u8, 105u8, 112u8, 105u8, 101u8, 110u8, 116u8,
41u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 16u8, 102u8,
114u8, 101u8, 101u8, 4u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 60u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8,
2u8, 72u8, 148u8, 70u8, 114u8, 101u8, 101u8, 32u8, 117u8, 112u8, 32u8, 97u8, 110u8, 32u8, 105u8,
110u8, 100u8, 101u8, 120u8, 32u8, 111u8, 119u8, 110u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 0u8, 93u8, 1u8, 80u8,
97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 58u8, 32u8, 65u8, 110u8, 121u8, 32u8, 112u8, 114u8,
101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 105u8, 115u8, 32u8, 117u8, 110u8, 114u8,
101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 0u8, 85u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8,
32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 111u8, 119u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8,
100u8, 101u8, 120u8, 46u8, 0u8, 13u8, 1u8, 45u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8,
96u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8,
111u8, 32u8, 98u8, 101u8, 32u8, 102u8, 114u8, 101u8, 101u8, 100u8, 46u8, 32u8, 84u8, 104u8,
105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 111u8, 119u8, 110u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8,
101u8, 114u8, 46u8, 0u8, 132u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 73u8, 110u8, 100u8,
101u8, 120u8, 70u8, 114u8, 101u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 115u8, 117u8,
99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 36u8, 45u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8,
46u8, 152u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 109u8, 117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 99u8, 111u8,
100u8, 101u8, 99u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 41u8, 46u8, 96u8, 45u8, 32u8, 79u8,
110u8, 101u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 111u8, 112u8, 101u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8,
118u8, 101u8, 110u8, 116u8, 46u8, 76u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 144u8, 45u8, 32u8, 68u8, 66u8, 32u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 49u8, 32u8, 82u8, 101u8, 97u8, 100u8, 47u8,
87u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
115u8, 41u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 56u8,
102u8, 111u8, 114u8, 99u8, 101u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
12u8, 1u8, 12u8, 110u8, 101u8, 119u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8,
60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8,
120u8, 0u8, 1u8, 24u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8,
111u8, 111u8, 108u8, 0u8, 3u8, 84u8, 85u8, 1u8, 70u8, 111u8, 114u8, 99u8, 101u8, 32u8, 97u8,
110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 100u8,
111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
32u8, 97u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 46u8, 32u8, 73u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 232u8, 104u8, 101u8, 108u8, 100u8, 44u8, 32u8, 116u8,
104u8, 101u8, 110u8, 32u8, 97u8, 110u8, 121u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 105u8, 109u8, 98u8, 117u8, 114u8, 115u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8, 115u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 46u8, 0u8, 196u8, 84u8, 104u8, 101u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 82u8, 111u8,
111u8, 116u8, 95u8, 46u8, 0u8, 164u8, 45u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8,
58u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 40u8, 114u8, 101u8, 45u8, 41u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 46u8, 93u8, 1u8, 45u8, 32u8, 96u8, 110u8, 101u8, 119u8, 96u8, 58u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 32u8, 84u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 97u8, 32u8, 110u8, 111u8, 45u8, 111u8, 112u8, 32u8, 105u8, 102u8, 32u8, 105u8,
116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 113u8, 117u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8,
115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 65u8, 1u8, 45u8, 32u8, 96u8, 102u8, 114u8, 101u8,
101u8, 122u8, 101u8, 96u8, 58u8, 32u8, 105u8, 102u8, 32u8, 115u8, 101u8, 116u8, 32u8, 116u8,
111u8, 32u8, 96u8, 116u8, 114u8, 117u8, 101u8, 96u8, 44u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8,
100u8, 101u8, 120u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 110u8,
111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
114u8, 101u8, 100u8, 46u8, 0u8, 144u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 73u8, 110u8,
100u8, 101u8, 120u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 96u8, 32u8, 105u8,
102u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 46u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 36u8, 45u8, 32u8, 96u8, 79u8,
40u8, 49u8, 41u8, 96u8, 46u8, 152u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
40u8, 99u8, 111u8, 100u8, 101u8, 99u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 41u8, 46u8,
120u8, 45u8, 32u8, 85u8, 112u8, 32u8, 116u8, 111u8, 32u8, 111u8, 110u8, 101u8, 32u8, 114u8,
101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8,
116u8, 46u8, 76u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 58u8, 244u8, 32u8, 32u8, 32u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8,
58u8, 32u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 115u8, 44u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 40u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 97u8, 108u8,
32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 41u8, 248u8, 32u8, 32u8, 32u8, 45u8, 32u8, 87u8, 114u8,
105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 44u8, 32u8, 83u8, 121u8, 115u8, 116u8,
101u8, 109u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 40u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 97u8, 108u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 41u8, 44u8,
35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 24u8, 102u8, 114u8,
101u8, 101u8, 122u8, 101u8, 4u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 60u8,
84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8,
0u8, 4u8, 72u8, 65u8, 1u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 97u8, 110u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 97u8, 108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 112u8, 111u8, 105u8, 110u8,
116u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8,
114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 46u8, 0u8, 89u8, 1u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8,
110u8, 101u8, 100u8, 95u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
105u8, 103u8, 110u8, 105u8, 110u8, 103u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 108u8, 110u8,
111u8, 110u8, 45u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 46u8, 0u8, 172u8, 45u8,
32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 102u8, 114u8,
111u8, 122u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 46u8, 0u8,
136u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 73u8, 110u8, 100u8, 101u8, 120u8, 70u8,
114u8, 111u8, 122u8, 101u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 115u8, 117u8, 99u8, 99u8,
101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 36u8, 45u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 46u8, 152u8,
45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
109u8, 117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 40u8, 99u8, 111u8, 100u8, 101u8,
99u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 41u8, 46u8, 112u8, 45u8, 32u8, 85u8, 112u8, 32u8,
116u8, 111u8, 32u8, 111u8, 110u8, 101u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 32u8, 111u8,
112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8,
101u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 46u8, 76u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 144u8, 45u8, 32u8,
68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 49u8, 32u8, 82u8, 101u8,
97u8, 100u8, 47u8, 87u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 115u8, 41u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 4u8, 37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8,
110u8, 101u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8,
105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 25u8, 5u8, 12u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 24u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 44u8, 78u8,
111u8, 116u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 0u8, 0u8, 4u8, 140u8, 84u8,
104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 97u8, 115u8, 115u8,
105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 32u8, 78u8, 111u8, 116u8, 79u8, 119u8, 110u8, 101u8,
114u8, 0u8, 1u8, 4u8, 164u8, 84u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8,
105u8, 115u8, 32u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 46u8, 20u8, 73u8, 110u8, 85u8, 115u8, 101u8, 0u8, 2u8, 4u8, 112u8, 84u8, 104u8,
101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 46u8, 44u8, 78u8, 111u8,
116u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 0u8, 3u8, 4u8, 200u8, 84u8, 104u8,
101u8, 32u8, 115u8, 111u8, 117u8, 114u8, 99u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 100u8,
101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 99u8, 97u8, 108u8, 46u8, 36u8, 80u8, 101u8, 114u8, 109u8, 97u8, 110u8, 101u8,
110u8, 116u8, 0u8, 4u8, 4u8, 208u8, 84u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
32u8, 105u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 97u8, 110u8, 101u8, 110u8, 116u8, 32u8,
97u8, 110u8, 100u8, 32u8, 109u8, 97u8, 121u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8,
102u8, 114u8, 101u8, 101u8, 100u8, 47u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 46u8,
4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 91u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8,
93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8,
115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8,
51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8,
116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8,
10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 29u8, 5u8, 0u8, 0u8, 2u8, 33u8, 5u8, 0u8, 33u8,
5u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 115u8, 104u8, 105u8, 112u8, 56u8, 85u8, 110u8, 99u8, 108u8, 101u8, 69u8, 110u8, 116u8,
114u8, 121u8, 73u8, 116u8, 101u8, 109u8, 12u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8,
117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 16u8, 72u8, 97u8, 115u8, 104u8, 1u8, 36u8, 24u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 1u8, 0u8, 1u8, 8u8, 60u8, 73u8, 110u8, 99u8, 108u8,
117u8, 115u8, 105u8, 111u8, 110u8, 72u8, 101u8, 105u8, 103u8, 104u8, 116u8, 4u8, 0u8, 16u8, 1u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 0u8, 0u8,
20u8, 85u8, 110u8, 99u8, 108u8, 101u8, 8u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8,
0u8, 5u8, 1u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 62u8, 0u8, 1u8, 0u8, 0u8, 37u8, 5u8, 12u8, 68u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8, 24u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8,
1u8, 4u8, 40u8, 115u8, 101u8, 116u8, 95u8, 117u8, 110u8, 99u8, 108u8, 101u8, 115u8, 4u8, 1u8,
40u8, 110u8, 101u8, 119u8, 95u8, 117u8, 110u8, 99u8, 108u8, 101u8, 115u8, 41u8, 5u8, 1u8, 56u8,
86u8, 101u8, 99u8, 60u8, 84u8, 58u8, 58u8, 72u8, 101u8, 97u8, 100u8, 101u8, 114u8, 62u8, 0u8,
0u8, 4u8, 96u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 32u8, 97u8, 32u8, 115u8, 101u8,
116u8, 32u8, 111u8, 102u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 115u8, 46u8, 4u8, 37u8, 1u8,
67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
46u8, 41u8, 5u8, 0u8, 0u8, 2u8, 249u8, 4u8, 0u8, 45u8, 5u8, 12u8, 68u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8,
24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8,
84u8, 0u8, 1u8, 28u8, 72u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 85u8, 110u8, 99u8,
108u8, 101u8, 80u8, 97u8, 114u8, 101u8, 110u8, 116u8, 0u8, 0u8, 4u8, 136u8, 84u8, 104u8, 101u8,
32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 32u8, 112u8, 97u8, 114u8, 101u8, 110u8, 116u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8,
105u8, 110u8, 46u8, 64u8, 85u8, 110u8, 99u8, 108u8, 101u8, 115u8, 65u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 83u8, 101u8, 116u8, 0u8, 1u8, 4u8, 128u8, 85u8, 110u8, 99u8, 108u8, 101u8,
115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 115u8, 101u8, 116u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 52u8, 84u8,
111u8, 111u8, 77u8, 97u8, 110u8, 121u8, 85u8, 110u8, 99u8, 108u8, 101u8, 115u8, 0u8, 2u8, 4u8,
64u8, 84u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 117u8, 110u8, 99u8, 108u8,
101u8, 115u8, 46u8, 48u8, 71u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 85u8, 110u8, 99u8,
108u8, 101u8, 0u8, 3u8, 4u8, 84u8, 84u8, 104u8, 101u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8,
32u8, 105u8, 115u8, 32u8, 103u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 46u8, 48u8, 84u8,
111u8, 111u8, 72u8, 105u8, 103u8, 104u8, 85u8, 110u8, 99u8, 108u8, 101u8, 0u8, 4u8, 4u8, 124u8,
84u8, 104u8, 101u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8,
111u8, 111u8, 32u8, 104u8, 105u8, 103u8, 104u8, 32u8, 105u8, 110u8, 32u8, 99u8, 104u8, 97u8,
105u8, 110u8, 46u8, 80u8, 85u8, 110u8, 99u8, 108u8, 101u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 73u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 0u8, 5u8, 4u8, 120u8, 84u8,
104u8, 101u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8,
46u8, 32u8, 79u8, 108u8, 100u8, 85u8, 110u8, 99u8, 108u8, 101u8, 0u8, 6u8, 4u8, 180u8, 84u8,
104u8, 101u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8,
32u8, 114u8, 101u8, 99u8, 101u8, 110u8, 116u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
100u8, 46u8, 4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
91u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8,
99u8, 115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8,
111u8, 47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8,
118u8, 101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 41u8, 10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 49u8, 5u8, 0u8, 0u8, 2u8,
53u8, 5u8, 0u8, 53u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 44u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 76u8,
111u8, 99u8, 107u8, 4u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 12u8,
1u8, 8u8, 105u8, 100u8, 185u8, 4u8, 1u8, 56u8, 76u8, 111u8, 99u8, 107u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 28u8,
114u8, 101u8, 97u8, 115u8, 111u8, 110u8, 115u8, 57u8, 5u8, 1u8, 28u8, 82u8, 101u8, 97u8, 115u8,
111u8, 110u8, 115u8, 0u8, 0u8, 57u8, 5u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8,
105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 28u8, 82u8, 101u8, 97u8, 115u8, 111u8, 110u8,
115u8, 0u8, 1u8, 12u8, 12u8, 70u8, 101u8, 101u8, 0u8, 0u8, 0u8, 16u8, 77u8, 105u8, 115u8, 99u8,
0u8, 1u8, 0u8, 12u8, 65u8, 108u8, 108u8, 0u8, 2u8, 0u8, 0u8, 61u8, 5u8, 8u8, 60u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 16u8, 67u8,
97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 8u8, 1u8, 16u8, 100u8, 101u8, 115u8, 116u8, 65u8, 5u8, 1u8, 140u8, 60u8,
84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8,
97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8,
117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 88u8, 212u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 108u8, 105u8, 113u8,
117u8, 105u8, 100u8, 32u8, 102u8, 114u8, 101u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 5u8, 1u8, 96u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 115u8, 101u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 70u8, 114u8, 101u8, 101u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8,
110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8,
118u8, 101u8, 114u8, 46u8, 29u8, 1u8, 73u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 100u8,
101u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8,
116u8, 97u8, 108u8, 32u8, 105u8, 115u8, 115u8, 117u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 70u8, 101u8, 101u8, 96u8, 46u8, 0u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 96u8, 83u8, 105u8, 103u8, 110u8, 101u8,
100u8, 96u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 111u8, 114u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 45u8, 1u8, 45u8, 32u8, 68u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8,
110u8, 116u8, 32u8, 111u8, 110u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 32u8, 98u8, 117u8, 116u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 114u8, 105u8, 116u8,
105u8, 99u8, 97u8, 108u8, 44u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8, 114u8,
111u8, 112u8, 101u8, 114u8, 32u8, 105u8, 109u8, 112u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8,
97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8, 111u8, 114u8, 200u8, 32u8, 32u8, 105u8,
110u8, 112u8, 117u8, 116u8, 32u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 32u8, 116u8, 121u8,
112u8, 101u8, 115u8, 46u8, 32u8, 83u8, 101u8, 101u8, 32u8, 114u8, 101u8, 108u8, 97u8, 116u8,
101u8, 100u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 98u8,
101u8, 108u8, 111u8, 119u8, 46u8, 101u8, 1u8, 45u8, 32u8, 73u8, 116u8, 32u8, 99u8, 111u8, 110u8,
116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8,
100u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8,
97u8, 100u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 115u8,
32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 108u8, 121u8, 32u8, 97u8, 110u8,
100u8, 32u8, 110u8, 111u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 32u8, 99u8,
111u8, 109u8, 112u8, 117u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 72u8, 82u8,
101u8, 108u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 58u8, 0u8, 77u8, 1u8, 32u8, 32u8, 45u8, 32u8, 96u8, 101u8, 110u8, 115u8, 117u8,
114u8, 101u8, 95u8, 99u8, 97u8, 110u8, 95u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8,
119u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 108u8,
121u8, 32u8, 98u8, 117u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 32u8, 98u8, 111u8, 117u8,
110u8, 100u8, 101u8, 100u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8,
121u8, 46u8, 41u8, 1u8, 32u8, 32u8, 45u8, 32u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 114u8, 105u8, 110u8, 103u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8,
32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 100u8, 105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 99u8, 97u8, 117u8, 115u8, 101u8, 208u8, 32u8, 32u8, 32u8, 32u8, 32u8, 96u8, 84u8,
58u8, 58u8, 79u8, 110u8, 78u8, 101u8, 119u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 58u8,
58u8, 111u8, 110u8, 95u8, 110u8, 101u8, 119u8, 95u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
46u8, 132u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 65u8, 1u8, 45u8, 32u8, 66u8, 97u8, 115u8, 101u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 58u8, 32u8, 55u8, 51u8, 46u8, 54u8, 52u8, 32u8, 194u8, 181u8, 115u8, 44u8,
32u8, 119u8, 111u8, 114u8, 115u8, 116u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 115u8, 99u8,
101u8, 110u8, 97u8, 114u8, 105u8, 111u8, 32u8, 40u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 44u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 41u8, 220u8, 45u8,
32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 49u8, 32u8, 82u8,
101u8, 97u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 49u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8,
32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 17u8, 1u8, 45u8, 32u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 105u8, 110u8, 32u8,
109u8, 101u8, 109u8, 111u8, 114u8, 121u8, 44u8, 32u8, 115u8, 111u8, 32u8, 110u8, 111u8, 32u8,
68u8, 66u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 109u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 72u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 109u8, 101u8, 109u8, 111u8, 12u8, 1u8, 16u8,
100u8, 101u8, 115u8, 116u8, 65u8, 5u8, 1u8, 140u8, 60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8,
107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8,
111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 1u8,
20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 1u8, 16u8, 109u8, 101u8, 109u8, 111u8, 124u8, 1u8, 48u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 77u8, 101u8, 109u8, 111u8, 62u8, 0u8, 1u8, 32u8, 252u8, 84u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 97u8, 116u8,
105u8, 118u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 104u8, 101u8, 108u8, 112u8, 32u8, 111u8,
102u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 32u8, 115u8,
116u8, 114u8, 105u8, 110u8, 103u8, 236u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8,
99u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 32u8, 99u8, 97u8, 110u8,
32u8, 104u8, 101u8, 108u8, 112u8, 32u8, 116u8, 111u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8,
114u8, 101u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 65u8, 1u8, 45u8, 32u8, 66u8, 97u8, 115u8, 101u8, 32u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 55u8, 51u8, 46u8, 54u8, 52u8, 32u8, 194u8,
181u8, 115u8, 44u8, 32u8, 119u8, 111u8, 114u8, 115u8, 116u8, 32u8, 99u8, 97u8, 115u8, 101u8,
32u8, 115u8, 99u8, 101u8, 110u8, 97u8, 114u8, 105u8, 111u8, 32u8, 40u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 44u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 41u8,
220u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 49u8,
32u8, 82u8, 101u8, 97u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 49u8, 32u8, 87u8, 114u8, 105u8,
116u8, 101u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 17u8, 1u8, 45u8,
32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 105u8,
110u8, 32u8, 109u8, 101u8, 109u8, 111u8, 114u8, 121u8, 44u8, 32u8, 115u8, 111u8, 32u8, 110u8,
111u8, 32u8, 68u8, 66u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 109u8, 46u8, 44u8, 35u8, 32u8, 60u8,
47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 144u8, 100u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 95u8, 98u8, 108u8, 111u8, 99u8, 107u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8,
100u8, 95u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 95u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 4u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 2u8, 4u8, 220u8, 77u8, 111u8, 118u8, 101u8,
32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 115u8, 101u8,
108u8, 102u8, 32u8, 116u8, 111u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8,
102u8, 32u8, 66u8, 82u8, 82u8, 46u8, 44u8, 115u8, 101u8, 116u8, 95u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 12u8, 1u8, 12u8, 119u8, 104u8, 111u8, 65u8, 5u8, 1u8, 140u8, 60u8, 84u8,
58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8, 97u8,
116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8,
117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 32u8, 110u8, 101u8, 119u8, 95u8, 102u8, 114u8, 101u8, 101u8,
201u8, 1u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 48u8, 110u8, 101u8,
119u8, 95u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 201u8, 1u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 3u8, 24u8, 144u8, 83u8, 101u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8,
97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 0u8, 29u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
97u8, 108u8, 116u8, 101u8, 114u8, 32u8, 96u8, 70u8, 114u8, 101u8, 101u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 114u8,
118u8, 101u8, 100u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 110u8, 32u8,
115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8,
108u8, 108u8, 5u8, 1u8, 97u8, 108u8, 115u8, 111u8, 32u8, 100u8, 101u8, 99u8, 114u8, 101u8, 97u8,
115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 105u8,
115u8, 115u8, 117u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 40u8, 96u8, 84u8, 111u8, 116u8, 97u8,
108u8, 73u8, 115u8, 115u8, 117u8, 97u8, 110u8, 99u8, 101u8, 96u8, 41u8, 46u8, 0u8, 176u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 105u8, 115u8, 32u8, 96u8, 114u8, 111u8, 111u8, 116u8, 96u8, 46u8,
56u8, 102u8, 111u8, 114u8, 99u8, 101u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 12u8, 1u8, 24u8, 115u8, 111u8, 117u8, 114u8, 99u8, 101u8, 65u8, 5u8, 1u8, 140u8, 60u8,
84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8,
97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8,
117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 16u8, 100u8, 101u8, 115u8, 116u8, 65u8, 5u8, 1u8, 140u8,
60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8,
116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8,
111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8,
1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 4u8, 28u8, 77u8, 1u8, 69u8, 120u8,
97u8, 99u8, 116u8, 108u8, 121u8, 32u8, 97u8, 115u8, 32u8, 96u8, 116u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 96u8, 44u8, 32u8, 101u8, 120u8, 99u8, 101u8, 112u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8,
32u8, 98u8, 101u8, 32u8, 114u8, 111u8, 111u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 111u8, 117u8, 114u8, 99u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 40u8, 115u8, 112u8, 101u8,
99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 61u8, 1u8, 45u8, 32u8, 83u8, 97u8, 109u8, 101u8, 32u8, 97u8, 115u8,
32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 44u8, 32u8, 98u8, 117u8, 116u8,
32u8, 97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 114u8, 101u8,
97u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 32u8, 98u8,
101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 111u8, 117u8,
114u8, 99u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 115u8,
140u8, 32u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 115u8, 115u8, 117u8, 109u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
111u8, 118u8, 101u8, 114u8, 108u8, 97u8, 121u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 80u8, 98u8, 117u8, 114u8, 110u8, 95u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 4u8, 1u8, 24u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 5u8, 4u8, 41u8, 1u8, 66u8, 117u8, 114u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 102u8,
114u8, 101u8, 101u8, 44u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8,
85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8,
97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 65u8, 5u8, 12u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 48u8, 109u8, 117u8, 108u8, 116u8, 105u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
48u8, 77u8, 117u8, 108u8, 116u8, 105u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 8u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 48u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 1u8, 16u8, 1u8, 20u8, 8u8,
73u8, 100u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
0u8, 0u8, 0u8, 20u8, 73u8, 110u8, 100u8, 101u8, 120u8, 4u8, 0u8, 121u8, 4u8, 1u8, 48u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 0u8, 12u8,
82u8, 97u8, 119u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8,
2u8, 0u8, 36u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 51u8, 50u8, 4u8, 0u8, 4u8, 1u8,
32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 51u8, 50u8, 93u8, 0u8, 3u8, 0u8, 36u8, 65u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 50u8, 48u8, 4u8, 0u8, 245u8, 1u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8,
32u8, 50u8, 48u8, 93u8, 0u8, 4u8, 0u8, 0u8, 69u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 20u8, 69u8, 114u8, 114u8,
111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 84u8, 76u8, 105u8, 113u8, 117u8, 105u8, 100u8,
105u8, 116u8, 121u8, 82u8, 101u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8,
115u8, 0u8, 0u8, 4u8, 196u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 108u8, 105u8,
113u8, 117u8, 105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 114u8, 101u8, 115u8, 116u8, 114u8, 105u8,
99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 112u8, 114u8, 101u8, 118u8, 101u8, 110u8, 116u8,
32u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 97u8, 108u8, 32u8, 79u8, 118u8,
101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 1u8, 4u8, 112u8, 71u8, 111u8, 116u8, 32u8, 97u8,
110u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 32u8, 97u8, 102u8, 116u8,
101u8, 114u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8, 103u8, 76u8, 73u8, 110u8, 115u8, 117u8,
102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 2u8, 4u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8,
111u8, 32u8, 108u8, 111u8, 119u8, 32u8, 116u8, 111u8, 32u8, 115u8, 101u8, 110u8, 100u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 72u8, 69u8, 120u8, 105u8, 115u8, 116u8, 101u8, 110u8, 116u8,
105u8, 97u8, 108u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 0u8, 3u8, 4u8, 232u8, 86u8,
97u8, 108u8, 117u8, 101u8, 32u8, 116u8, 111u8, 111u8, 32u8, 108u8, 111u8, 119u8, 32u8, 116u8,
111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 100u8, 117u8, 101u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
72u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 67u8, 100u8, 100u8, 77u8, 105u8,
115u8, 115u8, 105u8, 110u8, 103u8, 0u8, 4u8, 4u8, 136u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8,
101u8, 114u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8, 97u8,
118u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 0u8,
73u8, 5u8, 12u8, 52u8, 115u8, 112u8, 95u8, 97u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8,
105u8, 99u8, 44u8, 102u8, 105u8, 120u8, 101u8, 100u8, 95u8, 112u8, 111u8, 105u8, 110u8, 116u8,
36u8, 70u8, 105u8, 120u8, 101u8, 100u8, 85u8, 49u8, 50u8, 56u8, 0u8, 0u8, 4u8, 0u8, 24u8, 1u8,
16u8, 117u8, 49u8, 50u8, 56u8, 0u8, 0u8, 77u8, 5u8, 8u8, 104u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8,
112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8,
101u8, 115u8, 0u8, 1u8, 8u8, 36u8, 86u8, 49u8, 65u8, 110u8, 99u8, 105u8, 101u8, 110u8, 116u8,
0u8, 0u8, 0u8, 8u8, 86u8, 50u8, 0u8, 1u8, 0u8, 0u8, 81u8, 5u8, 0u8, 0u8, 2u8, 85u8, 5u8, 0u8,
85u8, 5u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8,
114u8, 116u8, 28u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 88u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 84u8, 111u8, 70u8, 101u8, 101u8, 67u8, 111u8, 101u8, 102u8, 102u8, 105u8,
99u8, 105u8, 101u8, 110u8, 116u8, 4u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8,
24u8, 0u8, 16u8, 1u8, 52u8, 99u8, 111u8, 101u8, 102u8, 102u8, 95u8, 105u8, 110u8, 116u8, 101u8,
103u8, 101u8, 114u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8,
40u8, 99u8, 111u8, 101u8, 102u8, 102u8, 95u8, 102u8, 114u8, 97u8, 99u8, 137u8, 1u8, 1u8, 28u8,
80u8, 101u8, 114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 1u8, 32u8, 110u8, 101u8, 103u8, 97u8, 116u8,
105u8, 118u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 24u8, 100u8,
101u8, 103u8, 114u8, 101u8, 101u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 89u8, 5u8, 12u8, 76u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8,
116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
36u8, 68u8, 105u8, 100u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 4u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 4u8, 1u8, 44u8, 112u8, 114u8, 105u8,
109u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 5u8, 1u8, 1u8, 68u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8,
0u8, 93u8, 5u8, 0u8, 0u8, 4u8, 8u8, 97u8, 5u8, 101u8, 5u8, 0u8, 97u8, 5u8, 12u8, 60u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
20u8, 116u8, 121u8, 112u8, 101u8, 115u8, 44u8, 67u8, 108u8, 97u8, 105u8, 109u8, 49u8, 115u8,
116u8, 75u8, 101u8, 121u8, 0u8, 0u8, 8u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8,
40u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 116u8, 121u8, 112u8, 101u8, 201u8, 2u8, 1u8, 36u8,
67u8, 108u8, 97u8, 105u8, 109u8, 84u8, 121u8, 112u8, 101u8, 0u8, 0u8, 101u8, 5u8, 12u8, 60u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 20u8, 116u8, 121u8, 112u8, 101u8, 115u8, 44u8, 67u8, 108u8, 97u8, 105u8, 109u8, 50u8,
110u8, 100u8, 75u8, 101u8, 121u8, 0u8, 0u8, 8u8, 1u8, 24u8, 105u8, 115u8, 115u8, 117u8, 101u8,
114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
1u8, 20u8, 115u8, 99u8, 111u8, 112u8, 101u8, 105u8, 5u8, 1u8, 52u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 60u8, 83u8, 99u8, 111u8, 112u8, 101u8, 62u8, 0u8, 0u8, 105u8, 5u8, 4u8, 24u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 248u8, 1u8, 8u8, 16u8, 78u8, 111u8,
110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 248u8, 0u8, 0u8, 1u8,
0u8, 0u8, 109u8, 5u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 36u8, 75u8, 101u8, 121u8,
82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 40u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8,
101u8, 121u8, 4u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 0u8, 0u8, 48u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8,
75u8, 101u8, 121u8, 8u8, 0u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 0u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 0u8, 68u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8,
103u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 75u8, 101u8, 121u8, 4u8, 0u8, 0u8, 1u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 2u8, 0u8, 0u8, 113u8, 5u8, 0u8,
0u8, 4u8, 8u8, 120u8, 0u8, 0u8, 117u8, 5u8, 0u8, 0u8, 4u8, 8u8, 105u8, 1u8, 32u8, 0u8, 121u8,
5u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8,
105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 52u8, 65u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 1u8, 32u8,
0u8, 20u8, 1u8, 72u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 95u8, 100u8, 97u8, 116u8, 97u8, 9u8, 1u8, 1u8, 112u8, 65u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 68u8, 97u8, 116u8, 97u8, 60u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 52u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 95u8, 98u8, 121u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 28u8, 97u8, 117u8, 116u8, 104u8, 95u8,
105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 20u8, 99u8, 111u8, 117u8, 110u8,
116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 125u8, 5u8, 0u8, 0u8, 4u8, 8u8, 120u8, 32u8,
0u8, 129u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8,
0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 133u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 16u8, 67u8,
97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 100u8, 64u8, 99u8, 100u8, 100u8, 95u8, 114u8,
101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 95u8, 100u8, 105u8, 100u8, 8u8, 1u8, 56u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
56u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8,
115u8, 140u8, 1u8, 124u8, 86u8, 101u8, 99u8, 60u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 75u8, 101u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 0u8, 44u8, 184u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8,
101u8, 114u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 110u8, 101u8,
119u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 36u8, 35u8, 32u8,
70u8, 97u8, 105u8, 108u8, 117u8, 114u8, 101u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
97u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8, 110u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
114u8, 115u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 97u8, 100u8, 100u8, 32u8,
110u8, 101u8, 119u8, 28u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 46u8, 93u8, 1u8, 45u8, 32u8,
96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 40u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 41u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8,
101u8, 32u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 106u8, 117u8,
115u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 111u8, 110u8, 108u8,
121u8, 52u8, 111u8, 110u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 244u8, 45u8, 32u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8,
99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 106u8, 117u8, 115u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 192u8, 96u8, 55u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8,
48u8, 48u8, 32u8, 43u8, 32u8, 54u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 42u8, 32u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 46u8,
108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 84u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 101u8, 95u8, 99u8, 100u8, 100u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 12u8,
1u8, 12u8, 99u8, 100u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 1u8, 48u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 95u8, 102u8,
114u8, 111u8, 109u8, 32u8, 1u8, 36u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8,
1u8, 16u8, 33u8, 1u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 115u8,
32u8, 97u8, 110u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 103u8, 101u8, 110u8,
101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 100u8, 100u8, 96u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8,
95u8, 102u8, 114u8, 111u8, 109u8, 96u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8,
109u8, 112u8, 115u8, 46u8, 0u8, 156u8, 89u8, 111u8, 117u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8,
108u8, 115u8, 111u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 32u8, 97u8, 110u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 105u8, 109u8,
101u8, 44u8, 109u8, 1u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 97u8, 108u8,
108u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8,
97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 99u8,
100u8, 100u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
32u8, 105u8, 116u8, 32u8, 97u8, 115u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 100u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8,
101u8, 121u8, 115u8, 95u8, 111u8, 108u8, 100u8, 4u8, 1u8, 56u8, 107u8, 101u8, 121u8, 115u8, 95u8,
116u8, 111u8, 95u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 101u8, 1u8, 1u8, 112u8, 86u8,
101u8, 99u8, 60u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8, 58u8,
58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 2u8, 4u8,
192u8, 68u8, 101u8, 112u8, 114u8, 101u8, 99u8, 97u8, 116u8, 101u8, 100u8, 46u8, 32u8, 85u8,
115u8, 101u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 96u8, 32u8, 105u8,
110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 46u8, 72u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 95u8,
112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 8u8, 1u8, 64u8, 114u8,
111u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8,
100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 80u8, 111u8, 112u8, 116u8, 105u8, 111u8,
110u8, 97u8, 108u8, 95u8, 99u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8,
100u8, 240u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 54u8, 52u8, 62u8,
0u8, 3u8, 52u8, 101u8, 1u8, 67u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 46u8, 32u8, 66u8, 121u8,
32u8, 105u8, 110u8, 118u8, 111u8, 107u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 44u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 115u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 101u8, 1u8, 116u8, 111u8, 32u8,
98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 115u8, 115u8, 117u8, 105u8, 110u8, 103u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 32u8, 73u8, 102u8, 32u8, 97u8,
32u8, 67u8, 68u8, 68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8,
100u8, 37u8, 1u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8,
40u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 41u8, 44u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8,
116u8, 101u8, 100u8, 46u8, 0u8, 93u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 40u8, 110u8, 101u8, 119u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 41u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8,
32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 105u8, 115u8, 115u8, 117u8, 105u8, 110u8, 103u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 111u8, 114u8, 100u8, 117u8, 110u8, 108u8, 105u8,
110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 121u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 93u8, 1u8, 68u8, 105u8, 102u8, 102u8, 101u8,
114u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 114u8, 111u8, 116u8, 97u8, 116u8, 101u8,
95u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 95u8, 116u8,
111u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 105u8, 110u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
117u8, 110u8, 108u8, 105u8, 110u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 108u8, 100u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 164u8, 105u8,
110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8, 111u8, 102u8, 32u8, 108u8, 101u8, 97u8, 118u8,
105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 29u8, 1u8, 42u8, 32u8, 96u8, 111u8,
119u8, 110u8, 101u8, 114u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8,
32u8, 119u8, 104u8, 111u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 228u8, 42u8, 32u8, 96u8,
99u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 65u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8, 99u8,
101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 152u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 95u8, 99u8, 100u8, 100u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 102u8, 111u8, 114u8, 95u8, 109u8, 107u8, 95u8, 114u8,
111u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 4u8, 1u8, 52u8, 97u8, 117u8, 116u8, 104u8, 95u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8,
108u8, 0u8, 4u8, 20u8, 53u8, 1u8, 83u8, 101u8, 116u8, 32u8, 105u8, 102u8, 32u8, 67u8, 68u8, 68u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8, 114u8,
105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 97u8,
110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 120u8, 67u8, 97u8,
108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 118u8, 105u8, 97u8, 32u8, 114u8, 111u8, 111u8,
116u8, 32u8, 40u8, 103u8, 111u8, 118u8, 101u8, 114u8, 110u8, 97u8, 110u8, 99u8, 101u8, 41u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 204u8, 42u8,
32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
100u8, 96u8, 32u8, 67u8, 68u8, 68u8, 32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8,
32u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 80u8, 106u8, 111u8, 105u8, 110u8, 95u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 97u8, 115u8, 95u8, 107u8, 101u8, 121u8,
4u8, 1u8, 28u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8,
52u8, 0u8, 5u8, 4u8, 144u8, 74u8, 111u8, 105u8, 110u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 46u8, 84u8, 108u8,
101u8, 97u8, 118u8, 101u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8,
97u8, 115u8, 95u8, 107u8, 101u8, 121u8, 0u8, 6u8, 4u8, 140u8, 76u8, 101u8, 97u8, 118u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8,
32u8, 107u8, 101u8, 121u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 46u8, 36u8, 97u8, 100u8, 100u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 12u8, 1u8, 24u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 20u8, 99u8, 108u8, 97u8, 105u8, 109u8, 244u8, 1u8,
20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8,
240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 7u8, 12u8, 196u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8,
32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 114u8, 101u8, 99u8,
111u8, 114u8, 100u8, 32u8, 111u8, 114u8, 32u8, 101u8, 100u8, 105u8, 116u8, 115u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 111u8, 110u8, 101u8,
46u8, 0u8, 168u8, 79u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 100u8, 105u8, 100u8, 95u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 39u8,
115u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 46u8, 48u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 95u8, 99u8, 108u8, 97u8, 105u8,
109u8, 8u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 20u8, 99u8, 108u8, 97u8, 105u8,
109u8, 244u8, 1u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 8u8, 4u8, 148u8, 77u8, 97u8,
114u8, 107u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 97u8, 115u8, 32u8, 114u8,
101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 46u8, 96u8, 115u8, 101u8, 116u8, 95u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 116u8, 111u8, 95u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 8u8, 1u8, 12u8, 107u8, 101u8, 121u8, 105u8, 1u8, 1u8, 92u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 20u8, 112u8, 101u8, 114u8, 109u8, 115u8,
148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
0u8, 9u8, 4u8, 224u8, 68u8, 101u8, 112u8, 114u8, 101u8, 99u8, 97u8, 116u8, 101u8, 100u8, 46u8,
32u8, 85u8, 115u8, 101u8, 32u8, 96u8, 115u8, 101u8, 116u8, 95u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 95u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 96u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8,
97u8, 100u8, 46u8, 172u8, 112u8, 108u8, 97u8, 99u8, 101u8, 104u8, 111u8, 108u8, 100u8, 101u8,
114u8, 95u8, 108u8, 101u8, 103u8, 97u8, 99u8, 121u8, 95u8, 115u8, 101u8, 116u8, 95u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 116u8, 111u8, 95u8, 115u8,
105u8, 103u8, 110u8, 101u8, 114u8, 0u8, 10u8, 4u8, 232u8, 80u8, 108u8, 97u8, 99u8, 101u8, 104u8,
111u8, 108u8, 100u8, 101u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 32u8, 96u8, 108u8, 101u8, 103u8, 97u8, 99u8, 121u8, 95u8, 115u8, 101u8,
116u8, 95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 116u8,
111u8, 95u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 96u8, 46u8, 84u8, 102u8, 114u8, 101u8,
101u8, 122u8, 101u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8,
107u8, 101u8, 121u8, 115u8, 0u8, 11u8, 16u8, 196u8, 73u8, 116u8, 32u8, 100u8, 105u8, 115u8, 97u8,
98u8, 108u8, 101u8, 115u8, 32u8, 97u8, 108u8, 108u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8,
100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 97u8, 116u8, 32u8, 96u8,
100u8, 105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8,
0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 0u8, 92u8, 117u8, 110u8, 102u8,
114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 0u8, 12u8, 4u8, 220u8, 82u8, 101u8, 45u8, 101u8, 110u8,
97u8, 98u8, 108u8, 101u8, 115u8, 32u8, 97u8, 108u8, 108u8, 32u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 68u8, 97u8, 100u8, 100u8, 95u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 12u8, 1u8,
24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 105u8, 1u8, 1u8, 92u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8, 9u8, 1u8, 1u8, 124u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 68u8, 97u8,
116u8, 97u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
62u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
62u8, 0u8, 13u8, 4u8, 88u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 80u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 12u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
105u8, 1u8, 1u8, 92u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 28u8,
97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8,
68u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 95u8,
112u8, 97u8, 121u8, 115u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 14u8, 8u8,
100u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 117u8, 1u8,
95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 95u8, 112u8,
97u8, 121u8, 115u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 115u8,
32u8, 119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8,
115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 115u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8,
97u8, 121u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 101u8, 101u8, 164u8, 97u8, 100u8, 100u8, 95u8,
115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8,
95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 111u8, 108u8, 100u8, 8u8, 1u8, 60u8, 97u8, 100u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 95u8, 107u8, 101u8, 121u8, 115u8, 137u8, 5u8,
1u8, 164u8, 86u8, 101u8, 99u8, 60u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8,
75u8, 101u8, 121u8, 87u8, 105u8, 116u8, 104u8, 65u8, 117u8, 116u8, 104u8, 86u8, 49u8, 60u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 1u8,
40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 116u8, 32u8, 1u8, 36u8, 84u8,
58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 15u8, 4u8, 1u8, 1u8, 68u8, 101u8,
112u8, 114u8, 101u8, 99u8, 97u8, 116u8, 101u8, 100u8, 46u8, 32u8, 85u8, 115u8, 101u8, 32u8, 96u8,
97u8, 100u8, 100u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8,
107u8, 101u8, 121u8, 115u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8, 105u8, 110u8, 115u8,
116u8, 101u8, 97u8, 100u8, 46u8, 116u8, 97u8, 100u8, 100u8, 95u8, 105u8, 110u8, 118u8, 101u8,
115u8, 116u8, 111u8, 114u8, 95u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8,
115u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 16u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
1u8, 20u8, 99u8, 108u8, 97u8, 105u8, 109u8, 244u8, 1u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8,
0u8, 1u8, 20u8, 112u8, 114u8, 111u8, 111u8, 102u8, 153u8, 5u8, 1u8, 76u8, 73u8, 110u8, 118u8,
101u8, 115u8, 116u8, 111u8, 114u8, 90u8, 75u8, 80u8, 114u8, 111u8, 111u8, 102u8, 68u8, 97u8,
116u8, 97u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 62u8, 0u8, 16u8, 80u8, 9u8, 1u8, 65u8, 100u8, 100u8, 32u8, 96u8, 67u8, 108u8, 97u8, 105u8,
109u8, 58u8, 58u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8,
113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 96u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8,
97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 65u8, 1u8,
32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 32u8, 111u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 37u8, 1u8, 32u8, 116u8, 104u8,
101u8, 32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 111u8, 102u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 44u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 32u8,
105u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 105u8, 110u8, 112u8, 117u8, 116u8, 115u8, 46u8, 44u8,
35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 181u8, 1u8, 42u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 87u8, 104u8, 111u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8,
63u8, 32u8, 73u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 115u8, 101u8, 44u8,
32u8, 105u8, 116u8, 39u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8,
39u8, 115u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 100u8, 32u8, 97u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 115u8, 46u8, 228u8, 42u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 32u8, 45u8, 32u8, 96u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 96u8, 32u8, 116u8, 111u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 97u8,
115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 180u8, 42u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 45u8, 32u8, 96u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8,
85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 96u8, 32u8, 99u8, 108u8,
97u8, 105u8, 109u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 46u8, 172u8, 42u8,
32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 45u8, 32u8, 84u8, 111u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 108u8, 102u8,
32u8, 97u8, 116u8, 116u8, 101u8, 115u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 108u8,
42u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 45u8, 32u8, 69u8, 120u8, 112u8,
105u8, 114u8, 121u8, 32u8, 111u8, 102u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 0u8, 32u8,
35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 68u8, 105u8,
100u8, 77u8, 117u8, 115u8, 116u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8,
105u8, 115u8, 116u8, 96u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 101u8, 99u8, 111u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 46u8,
145u8, 1u8, 42u8, 32u8, 96u8, 67u8, 108u8, 97u8, 105u8, 109u8, 86u8, 97u8, 114u8, 105u8, 97u8,
110u8, 116u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 96u8, 32u8,
87u8, 104u8, 101u8, 110u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 116u8, 114u8,
121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 115u8, 115u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8,
116u8, 104u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 96u8, 73u8, 110u8, 118u8,
101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8,
115u8, 96u8, 46u8, 185u8, 1u8, 42u8, 32u8, 96u8, 67u8, 111u8, 110u8, 102u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 97u8, 108u8, 83u8, 99u8, 111u8, 112u8, 101u8, 67u8, 108u8, 97u8, 105u8,
109u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 96u8, 32u8, 87u8,
104u8, 101u8, 110u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8,
100u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 111u8, 114u8, 32u8, 67u8, 68u8, 68u8, 95u8,
73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8,
102u8, 111u8, 114u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 117u8, 115u8, 101u8, 114u8,
46u8, 172u8, 42u8, 32u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 99u8, 111u8,
112u8, 101u8, 67u8, 108u8, 97u8, 105u8, 109u8, 32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 112u8,
114u8, 111u8, 111u8, 102u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 46u8, 236u8, 42u8, 32u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 67u8, 68u8,
68u8, 73u8, 100u8, 96u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 121u8, 111u8, 117u8, 32u8, 97u8,
114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 67u8, 68u8, 68u8, 95u8,
73u8, 68u8, 46u8, 64u8, 103u8, 99u8, 95u8, 97u8, 100u8, 100u8, 95u8, 99u8, 100u8, 100u8, 95u8,
99u8, 108u8, 97u8, 105u8, 109u8, 4u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8,
1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 17u8, 4u8,
69u8, 1u8, 65u8, 115u8, 115u8, 117u8, 109u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 71u8, 67u8, 32u8, 118u8, 111u8, 116u8, 105u8,
110u8, 103u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 44u8, 32u8, 97u8,
100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 100u8, 100u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 46u8, 76u8, 103u8,
99u8, 95u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 95u8, 99u8, 100u8, 100u8, 95u8, 99u8,
108u8, 97u8, 105u8, 109u8, 4u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 18u8, 4u8, 105u8,
1u8, 65u8, 115u8, 115u8, 117u8, 109u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 71u8, 67u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8,
103u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 44u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
105u8, 110u8, 103u8, 32u8, 99u8, 100u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8,
114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 46u8, 128u8, 97u8, 100u8, 100u8, 95u8, 105u8, 110u8,
118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 95u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8,
101u8, 115u8, 115u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 118u8, 50u8, 20u8, 1u8, 24u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 20u8, 115u8, 99u8, 111u8, 112u8, 101u8, 248u8, 1u8,
20u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 20u8, 99u8, 108u8, 97u8, 105u8, 109u8, 244u8,
1u8, 20u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 1u8, 20u8, 112u8, 114u8, 111u8, 111u8, 102u8,
157u8, 5u8, 1u8, 60u8, 83u8, 99u8, 111u8, 112u8, 101u8, 67u8, 108u8, 97u8, 105u8, 109u8, 80u8,
114u8, 111u8, 111u8, 102u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8,
68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 62u8, 0u8, 19u8, 0u8, 84u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 95u8, 99u8,
108u8, 97u8, 105u8, 109u8, 95u8, 98u8, 121u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 12u8, 1u8,
24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 40u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
116u8, 121u8, 112u8, 101u8, 201u8, 2u8, 1u8, 36u8, 67u8, 108u8, 97u8, 105u8, 109u8, 84u8, 121u8,
112u8, 101u8, 0u8, 1u8, 20u8, 115u8, 99u8, 111u8, 112u8, 101u8, 105u8, 5u8, 1u8, 52u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 83u8, 99u8, 111u8, 112u8, 101u8, 62u8, 0u8, 20u8, 32u8,
245u8, 1u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 117u8,
115u8, 105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 115u8, 32u8, 91u8, 67u8, 108u8, 97u8, 105u8,
109u8, 32u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 32u8, 73u8, 110u8, 100u8, 101u8, 120u8,
93u8, 40u8, 47u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 47u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 104u8, 116u8, 109u8,
108u8, 35u8, 99u8, 108u8, 97u8, 105u8, 109u8, 45u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8,
45u8, 105u8, 110u8, 100u8, 101u8, 120u8, 41u8, 32u8, 99u8, 111u8, 109u8, 112u8, 111u8, 115u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 96u8, 44u8,
104u8, 96u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8, 44u8, 32u8,
97u8, 110u8, 100u8, 32u8, 96u8, 115u8, 99u8, 111u8, 112u8, 101u8, 96u8, 46u8, 0u8, 5u8, 1u8,
80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 110u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 115u8, 115u8, 117u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 97u8, 114u8, 103u8,
101u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 77u8, 1u8, 45u8, 32u8, 96u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
72u8, 97u8, 115u8, 78u8, 111u8, 110u8, 90u8, 101u8, 114u8, 111u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 65u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 96u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 121u8, 111u8, 117u8, 32u8, 116u8, 114u8, 121u8, 32u8, 116u8, 111u8, 32u8,
114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 32u8, 97u8, 32u8, 96u8, 73u8, 110u8, 118u8, 101u8,
115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8,
42u8, 96u8, 37u8, 1u8, 99u8, 108u8, 97u8, 105u8, 109u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8,
96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 104u8, 97u8, 118u8, 101u8,
32u8, 97u8, 110u8, 121u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 115u8, 99u8,
111u8, 112u8, 101u8, 96u8, 46u8, 124u8, 114u8, 111u8, 116u8, 97u8, 116u8, 101u8, 95u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 95u8, 116u8, 111u8, 95u8,
115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 8u8, 1u8, 28u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 80u8, 111u8, 112u8,
116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 95u8, 99u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 240u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
117u8, 54u8, 52u8, 62u8, 0u8, 21u8, 56u8, 101u8, 1u8, 67u8, 97u8, 108u8, 108u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
101u8, 119u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8,
46u8, 32u8, 66u8, 121u8, 32u8, 105u8, 110u8, 118u8, 111u8, 107u8, 105u8, 110u8, 103u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 44u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 115u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 101u8, 1u8,
116u8, 111u8, 32u8, 98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 101u8, 119u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 115u8, 115u8, 117u8, 105u8,
110u8, 103u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 32u8, 73u8,
102u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8,
32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 32u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 101u8, 100u8, 41u8, 1u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 44u8, 32u8, 40u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
100u8, 41u8, 44u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 105u8, 115u8,
32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 93u8, 1u8, 84u8, 104u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 40u8, 110u8, 101u8, 119u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 41u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8,
32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 115u8, 115u8, 117u8, 105u8, 110u8,
103u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 44u8, 32u8, 111u8, 114u8,
100u8, 117u8, 110u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8,
110u8, 121u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 97u8, 1u8,
68u8, 105u8, 102u8, 102u8, 101u8, 114u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8,
99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 95u8,
107u8, 101u8, 121u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 116u8,
32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 108u8, 101u8, 97u8, 118u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 111u8, 108u8, 100u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8,
100u8, 97u8, 114u8, 121u8, 133u8, 1u8, 107u8, 101u8, 121u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 105u8,
110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 115u8, 112u8, 111u8,
110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 82u8, 111u8, 116u8, 97u8, 116u8, 101u8, 80u8, 114u8,
105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 84u8, 111u8, 83u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 164u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8,
111u8, 102u8, 32u8, 117u8, 110u8, 108u8, 105u8, 110u8, 107u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 111u8, 108u8, 100u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8,
32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 29u8, 1u8, 42u8, 32u8, 96u8, 111u8, 119u8, 110u8, 101u8, 114u8, 95u8, 97u8,
117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8,
104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 119u8, 104u8, 111u8, 32u8, 105u8,
110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 228u8, 42u8, 32u8, 96u8, 99u8, 100u8, 100u8, 95u8, 97u8, 117u8,
116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 32u8,
67u8, 68u8, 68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 148u8, 97u8, 100u8, 100u8, 95u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 95u8, 119u8, 105u8,
116u8, 104u8, 95u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 8u8, 1u8, 60u8, 97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8,
95u8, 107u8, 101u8, 121u8, 115u8, 173u8, 5u8, 1u8, 156u8, 86u8, 101u8, 99u8, 60u8, 83u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 87u8, 105u8, 116u8, 104u8,
65u8, 117u8, 116u8, 104u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 62u8, 62u8, 0u8, 1u8, 40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8,
97u8, 116u8, 32u8, 1u8, 36u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8,
22u8, 52u8, 176u8, 65u8, 100u8, 100u8, 115u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 97u8,
114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8,
96u8, 105u8, 100u8, 96u8, 46u8, 0u8, 57u8, 1u8, 75u8, 101u8, 121u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 100u8, 105u8, 114u8, 101u8, 99u8, 116u8, 108u8, 121u8, 32u8, 97u8, 100u8, 100u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 109u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8,
48u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 9u8, 1u8,
32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 32u8, 96u8, 105u8, 100u8, 96u8, 46u8, 212u8, 32u8, 32u8, 32u8, 32u8, 45u8,
32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 116u8, 111u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 97u8,
100u8, 100u8, 101u8, 100u8, 46u8, 216u8, 32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 96u8, 97u8, 100u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 95u8, 107u8, 101u8, 121u8, 115u8, 96u8,
32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 115u8, 44u8, 9u8, 1u8, 32u8, 32u8, 32u8, 32u8, 32u8, 32u8, 32u8, 99u8, 111u8, 117u8,
112u8, 108u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 97u8, 116u8, 97u8,
44u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 172u8, 32u8, 32u8, 32u8, 32u8, 45u8,
32u8, 67u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8,
101u8, 121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 46u8, 208u8, 32u8, 32u8, 32u8, 32u8, 45u8,
32u8, 75u8, 101u8, 121u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 108u8, 105u8, 110u8, 107u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 121u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 46u8, 116u8, 115u8, 101u8, 116u8, 95u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 95u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 8u8, 1u8, 12u8, 107u8, 101u8, 121u8, 0u8, 1u8,
48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
20u8, 112u8, 101u8, 114u8, 109u8, 115u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 23u8, 12u8, 200u8, 83u8, 101u8, 116u8, 115u8,
32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8,
32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8,
107u8, 101u8, 121u8, 46u8, 0u8, 53u8, 1u8, 79u8, 110u8, 108u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
102u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8,
105u8, 115u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 115u8, 101u8, 116u8,
32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8,
32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 84u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 4u8, 1u8, 56u8, 107u8, 101u8, 121u8, 115u8, 95u8,
116u8, 111u8, 95u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 232u8, 1u8, 68u8, 86u8, 101u8,
99u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8,
0u8, 24u8, 20u8, 212u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 115u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 68u8,
73u8, 68u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 0u8, 204u8, 84u8, 104u8, 101u8, 32u8,
101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8, 99u8, 97u8, 110u8, 32u8,
111u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
119u8, 110u8, 101u8, 114u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
137u8, 5u8, 0u8, 0u8, 2u8, 141u8, 5u8, 0u8, 141u8, 5u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 88u8, 83u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 87u8, 105u8, 116u8, 104u8, 65u8, 117u8,
116u8, 104u8, 86u8, 49u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
1u8, 0u8, 0u8, 8u8, 1u8, 52u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8,
107u8, 101u8, 121u8, 145u8, 5u8, 1u8, 108u8, 118u8, 49u8, 58u8, 58u8, 83u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 56u8, 97u8, 117u8, 116u8, 104u8, 95u8, 115u8, 105u8,
103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 149u8, 5u8, 1u8, 16u8, 72u8, 53u8, 49u8, 50u8,
0u8, 0u8, 145u8, 5u8, 16u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 52u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 8u8, 118u8, 49u8, 48u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 4u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 8u8, 1u8, 24u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 105u8, 1u8, 1u8, 80u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8,
114u8, 121u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8,
44u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 148u8, 1u8,
44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 0u8,
149u8, 5u8, 8u8, 60u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 95u8,
116u8, 121u8, 112u8, 101u8, 115u8, 16u8, 72u8, 53u8, 49u8, 50u8, 0u8, 0u8, 4u8, 0u8, 13u8, 2u8,
1u8, 88u8, 91u8, 117u8, 56u8, 59u8, 32u8, 47u8, 42u8, 194u8, 171u8, 42u8, 47u8, 32u8, 54u8, 52u8,
32u8, 47u8, 42u8, 194u8, 187u8, 42u8, 47u8, 93u8, 0u8, 0u8, 153u8, 5u8, 0u8, 0u8, 3u8, 64u8, 0u8,
0u8, 0u8, 8u8, 0u8, 157u8, 5u8, 12u8, 96u8, 99u8, 111u8, 110u8, 102u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 97u8, 108u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
95u8, 118u8, 50u8, 48u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 112u8, 114u8, 111u8, 111u8,
102u8, 115u8, 60u8, 83u8, 99u8, 111u8, 112u8, 101u8, 67u8, 108u8, 97u8, 105u8, 109u8, 80u8,
114u8, 111u8, 111u8, 102u8, 0u8, 0u8, 12u8, 1u8, 100u8, 112u8, 114u8, 111u8, 111u8, 102u8, 95u8,
115u8, 99u8, 111u8, 112u8, 101u8, 95u8, 105u8, 100u8, 95u8, 119u8, 101u8, 108u8, 108u8, 102u8,
111u8, 114u8, 109u8, 101u8, 100u8, 161u8, 5u8, 1u8, 36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 0u8, 1u8, 108u8, 112u8, 114u8, 111u8, 111u8, 102u8, 95u8, 115u8, 99u8,
111u8, 112u8, 101u8, 95u8, 105u8, 100u8, 95u8, 99u8, 100u8, 100u8, 95u8, 105u8, 100u8, 95u8,
109u8, 97u8, 116u8, 99u8, 104u8, 165u8, 5u8, 1u8, 44u8, 90u8, 107u8, 80u8, 114u8, 111u8, 111u8,
102u8, 68u8, 97u8, 116u8, 97u8, 0u8, 1u8, 32u8, 115u8, 99u8, 111u8, 112u8, 101u8, 95u8, 105u8,
100u8, 4u8, 1u8, 76u8, 67u8, 111u8, 109u8, 112u8, 114u8, 101u8, 115u8, 115u8, 101u8, 100u8, 82u8,
105u8, 115u8, 116u8, 114u8, 101u8, 116u8, 116u8, 111u8, 0u8, 0u8, 161u8, 5u8, 12u8, 96u8, 99u8,
111u8, 110u8, 102u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 95u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 95u8, 118u8, 50u8, 16u8, 115u8, 105u8, 103u8, 110u8,
36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 8u8, 1u8, 4u8,
114u8, 4u8, 1u8, 76u8, 67u8, 111u8, 109u8, 112u8, 114u8, 101u8, 115u8, 115u8, 101u8, 100u8, 82u8,
105u8, 115u8, 116u8, 114u8, 101u8, 116u8, 116u8, 111u8, 0u8, 1u8, 4u8, 115u8, 4u8, 1u8, 24u8,
83u8, 99u8, 97u8, 108u8, 97u8, 114u8, 0u8, 0u8, 165u8, 5u8, 12u8, 96u8, 99u8, 111u8, 110u8,
102u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 95u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 95u8, 118u8, 50u8, 48u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
112u8, 114u8, 111u8, 111u8, 102u8, 115u8, 44u8, 90u8, 107u8, 80u8, 114u8, 111u8, 111u8, 102u8,
68u8, 97u8, 116u8, 97u8, 0u8, 0u8, 12u8, 1u8, 76u8, 99u8, 104u8, 97u8, 108u8, 108u8, 101u8,
110u8, 103u8, 101u8, 95u8, 114u8, 101u8, 115u8, 112u8, 111u8, 110u8, 115u8, 101u8, 115u8, 169u8,
5u8, 1u8, 148u8, 91u8, 83u8, 99u8, 97u8, 108u8, 97u8, 114u8, 59u8, 32u8, 90u8, 75u8, 95u8, 80u8,
82u8, 79u8, 79u8, 70u8, 95u8, 68u8, 65u8, 84u8, 65u8, 95u8, 67u8, 72u8, 71u8, 95u8, 82u8, 69u8,
83u8, 80u8, 79u8, 78u8, 83u8, 69u8, 83u8, 93u8, 0u8, 1u8, 96u8, 115u8, 117u8, 98u8, 116u8, 114u8,
97u8, 99u8, 116u8, 95u8, 101u8, 120u8, 112u8, 114u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 95u8, 114u8, 101u8, 115u8, 4u8, 1u8, 76u8, 67u8, 111u8, 109u8, 112u8, 114u8, 101u8, 115u8,
115u8, 101u8, 100u8, 82u8, 105u8, 115u8, 116u8, 114u8, 101u8, 116u8, 116u8, 111u8, 0u8, 1u8,
88u8, 98u8, 108u8, 105u8, 110u8, 100u8, 101u8, 100u8, 95u8, 115u8, 99u8, 111u8, 112u8, 101u8,
95u8, 100u8, 105u8, 100u8, 95u8, 104u8, 97u8, 115u8, 104u8, 4u8, 1u8, 76u8, 67u8, 111u8, 109u8,
112u8, 114u8, 101u8, 115u8, 115u8, 101u8, 100u8, 82u8, 105u8, 115u8, 116u8, 114u8, 101u8, 116u8,
116u8, 111u8, 0u8, 0u8, 169u8, 5u8, 0u8, 0u8, 3u8, 2u8, 0u8, 0u8, 0u8, 4u8, 0u8, 173u8, 5u8, 0u8,
0u8, 2u8, 177u8, 5u8, 0u8, 177u8, 5u8, 16u8, 100u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8, 117u8, 116u8, 105u8, 108u8,
105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 80u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 87u8, 105u8, 116u8, 104u8, 65u8, 117u8, 116u8, 104u8,
4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 8u8, 1u8,
52u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8,
144u8, 1u8, 92u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8,
60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 56u8, 97u8,
117u8, 116u8, 104u8, 95u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 149u8,
5u8, 1u8, 16u8, 72u8, 53u8, 49u8, 50u8, 0u8, 0u8, 181u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 20u8, 69u8,
114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 132u8, 52u8, 65u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 76u8, 105u8, 110u8, 107u8, 101u8, 100u8, 0u8, 0u8, 4u8, 220u8, 79u8, 110u8,
101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 111u8, 114u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8,
97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8, 103u8,
32u8, 116u8, 111u8, 32u8, 111u8, 110u8, 101u8, 32u8, 68u8, 73u8, 68u8, 88u8, 77u8, 105u8, 115u8,
115u8, 105u8, 110u8, 103u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 1u8, 4u8, 172u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8,
103u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 48u8, 85u8, 110u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 0u8, 2u8, 4u8, 188u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
112u8, 114u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 75u8, 101u8, 121u8, 0u8, 3u8, 4u8, 168u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 73u8, 100u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8,
32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 92u8, 85u8, 110u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 100u8, 100u8, 80u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 114u8, 0u8, 4u8, 4u8, 156u8, 79u8, 110u8, 108u8, 121u8, 32u8, 67u8, 68u8,
68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 114u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 108u8, 108u8, 111u8,
119u8, 101u8, 100u8, 46u8, 116u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 65u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 70u8, 114u8, 111u8,
109u8, 79u8, 119u8, 110u8, 101u8, 114u8, 0u8, 5u8, 4u8, 160u8, 65u8, 110u8, 32u8, 105u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 46u8, 140u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
70u8, 114u8, 111u8, 109u8, 67u8, 100u8, 100u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
114u8, 0u8, 6u8, 4u8, 188u8, 65u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8,
114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 46u8, 100u8, 78u8, 111u8, 116u8, 67u8, 100u8,
100u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 65u8, 116u8, 116u8, 101u8, 115u8,
116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 7u8, 4u8, 184u8, 65u8, 116u8, 116u8, 101u8, 115u8,
116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 98u8, 121u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 115u8, 101u8, 114u8, 118u8, 105u8,
99u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 46u8, 112u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 78u8,
111u8, 116u8, 70u8, 111u8, 114u8, 83u8, 97u8, 109u8, 101u8, 68u8, 105u8, 100u8, 115u8, 0u8, 8u8,
4u8, 160u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 68u8, 73u8, 68u8, 46u8, 76u8,
68u8, 105u8, 100u8, 77u8, 117u8, 115u8, 116u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
69u8, 120u8, 105u8, 115u8, 116u8, 0u8, 9u8, 4u8, 108u8, 84u8, 104u8, 101u8, 32u8, 68u8, 73u8,
68u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 128u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 67u8, 97u8, 110u8, 110u8, 111u8,
116u8, 66u8, 101u8, 70u8, 111u8, 114u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 0u8, 10u8, 4u8,
77u8, 1u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8,
32u8, 102u8, 111u8, 114u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 44u8, 32u8, 105u8, 116u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8,
97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 80u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8,
110u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 11u8, 4u8, 156u8, 84u8, 104u8, 101u8,
32u8, 111u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 56u8, 84u8, 97u8, 114u8, 103u8, 101u8,
116u8, 72u8, 97u8, 115u8, 78u8, 111u8, 67u8, 100u8, 100u8, 0u8, 12u8, 4u8, 128u8, 84u8, 104u8,
101u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 68u8, 73u8, 68u8, 32u8, 104u8, 97u8,
115u8, 32u8, 110u8, 111u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 46u8,
108u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
72u8, 97u8, 115u8, 66u8, 101u8, 101u8, 110u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8,
0u8, 13u8, 4u8, 168u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8,
112u8, 108u8, 105u8, 99u8, 105u8, 116u8, 108u8, 121u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8,
101u8, 100u8, 46u8, 116u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 14u8, 4u8, 140u8, 65u8, 110u8, 32u8, 105u8, 110u8, 118u8,
97u8, 108u8, 105u8, 100u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8,
46u8, 52u8, 75u8, 101u8, 121u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8,
100u8, 0u8, 15u8, 4u8, 212u8, 84u8, 104u8, 105u8, 115u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 97u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8,
46u8, 52u8, 78u8, 111u8, 116u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8,
121u8, 0u8, 16u8, 4u8, 97u8, 1u8, 79u8, 110u8, 108u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 115u8,
32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8,
118u8, 111u8, 107u8, 101u8, 32u8, 97u8, 110u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 32u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 32u8, 111u8,
102u8, 102u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 60u8, 68u8, 105u8, 100u8, 68u8,
111u8, 101u8, 115u8, 78u8, 111u8, 116u8, 69u8, 120u8, 105u8, 115u8, 116u8, 0u8, 17u8, 4u8, 92u8,
84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 64u8, 68u8, 105u8, 100u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 0u8, 18u8, 4u8, 92u8,
84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8, 120u8, 83u8, 101u8, 99u8, 111u8, 110u8,
100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8,
110u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 0u8, 19u8, 4u8, 172u8,
84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 115u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8,
46u8, 68u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 67u8, 104u8, 97u8, 114u8, 103u8,
101u8, 70u8, 101u8, 101u8, 0u8, 20u8, 4u8, 160u8, 67u8, 111u8, 117u8, 108u8, 100u8, 110u8, 39u8,
116u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8, 83u8, 105u8, 103u8, 110u8,
101u8, 114u8, 0u8, 21u8, 4u8, 216u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 108u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 68u8, 101u8, 99u8, 111u8,
100u8, 101u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 22u8, 4u8, 21u8, 1u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
99u8, 111u8, 110u8, 118u8, 101u8, 114u8, 116u8, 32u8, 97u8, 32u8, 96u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 32u8, 116u8, 111u8, 32u8, 96u8, 65u8,
110u8, 121u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 58u8, 58u8, 83u8,
105u8, 103u8, 110u8, 101u8, 114u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 96u8, 46u8, 72u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 72u8, 97u8,
115u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 23u8, 4u8, 33u8, 1u8, 77u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8,
32u8, 98u8, 101u8, 32u8, 117u8, 110u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 32u8, 119u8, 104u8, 105u8, 108u8, 101u8, 32u8, 105u8, 116u8, 32u8, 115u8, 116u8, 105u8,
108u8, 108u8, 32u8, 104u8, 111u8, 108u8, 100u8, 115u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 128u8,
67u8, 111u8, 110u8, 102u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 83u8, 99u8,
111u8, 112u8, 101u8, 67u8, 108u8, 97u8, 105u8, 109u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8,
111u8, 119u8, 101u8, 100u8, 0u8, 24u8, 4u8, 5u8, 1u8, 67u8, 111u8, 110u8, 102u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 83u8, 99u8, 111u8, 112u8, 101u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8,
100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8, 45u8, 115u8, 101u8, 108u8,
102u8, 46u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 99u8, 111u8, 112u8,
101u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 25u8, 4u8, 188u8, 65u8, 100u8, 100u8, 105u8, 116u8,
105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8,
99u8, 111u8, 112u8, 101u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 103u8, 101u8, 116u8,
115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8,
88u8, 67u8, 108u8, 97u8, 105u8, 109u8, 86u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 78u8, 111u8,
116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 0u8, 26u8, 4u8, 228u8, 84u8, 114u8, 121u8,
32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 97u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8,
32u8, 117u8, 110u8, 45u8, 100u8, 101u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 101u8, 100u8,
32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 128u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 72u8, 97u8, 115u8, 78u8, 111u8, 110u8, 90u8, 101u8, 114u8, 111u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 65u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8,
100u8, 0u8, 27u8, 4u8, 81u8, 1u8, 84u8, 114u8, 121u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8,
108u8, 101u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 73u8, 85u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 101u8, 118u8, 101u8, 110u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8,
110u8, 32u8, 122u8, 101u8, 114u8, 111u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8,
97u8, 116u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 115u8, 99u8, 111u8, 112u8, 101u8,
73u8, 100u8, 46u8, 100u8, 67u8, 68u8, 68u8, 73u8, 100u8, 78u8, 111u8, 116u8, 85u8, 110u8, 105u8,
113u8, 117u8, 101u8, 70u8, 111u8, 114u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
0u8, 28u8, 4u8, 29u8, 1u8, 67u8, 68u8, 68u8, 73u8, 100u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 32u8, 38u8,
32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 105u8, 110u8, 32u8, 97u8,
108u8, 108u8, 32u8, 99u8, 100u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8,
112u8, 111u8, 115u8, 115u8, 101u8, 115u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8,
32u8, 68u8, 73u8, 68u8, 46u8, 48u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 67u8, 68u8,
68u8, 73u8, 100u8, 0u8, 29u8, 4u8, 9u8, 1u8, 78u8, 111u8, 110u8, 32u8, 115u8, 121u8, 115u8,
116u8, 101u8, 109u8, 97u8, 116u8, 105u8, 99u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 114u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8,
32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 99u8, 100u8, 100u8, 95u8, 105u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
115u8, 46u8, 124u8, 67u8, 108u8, 97u8, 105u8, 109u8, 65u8, 110u8, 100u8, 80u8, 114u8, 111u8,
111u8, 102u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 115u8, 68u8, 111u8, 78u8, 111u8,
116u8, 77u8, 97u8, 116u8, 99u8, 104u8, 0u8, 30u8, 4u8, 156u8, 67u8, 108u8, 97u8, 105u8, 109u8,
32u8, 97u8, 110u8, 100u8, 32u8, 80u8, 114u8, 111u8, 111u8, 102u8, 32u8, 118u8, 101u8, 114u8,
115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 100u8, 105u8, 102u8, 102u8,
101u8, 114u8, 101u8, 110u8, 116u8, 46u8, 84u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
75u8, 101u8, 121u8, 73u8, 115u8, 66u8, 101u8, 105u8, 110u8, 103u8, 85u8, 115u8, 101u8, 100u8,
0u8, 31u8, 4u8, 208u8, 84u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8,
117u8, 115u8, 101u8, 100u8, 44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 39u8, 116u8, 32u8,
98u8, 101u8, 32u8, 117u8, 110u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 46u8, 72u8, 67u8,
117u8, 115u8, 116u8, 111u8, 109u8, 83u8, 99u8, 111u8, 112u8, 101u8, 84u8, 111u8, 111u8, 76u8,
111u8, 110u8, 103u8, 0u8, 32u8, 8u8, 108u8, 65u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8,
32u8, 115u8, 99u8, 111u8, 112u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8,
108u8, 111u8, 110u8, 103u8, 46u8, 156u8, 73u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 116u8,
32u8, 109u8, 111u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 96u8, 51u8, 50u8, 96u8, 32u8, 99u8,
104u8, 97u8, 114u8, 97u8, 99u8, 116u8, 101u8, 114u8, 115u8, 32u8, 108u8, 111u8, 110u8, 103u8,
46u8, 0u8, 185u8, 5u8, 0u8, 0u8, 2u8, 189u8, 5u8, 0u8, 189u8, 5u8, 16u8, 100u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8,
117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 24u8, 116u8, 114u8, 97u8, 105u8,
116u8, 115u8, 20u8, 103u8, 114u8, 111u8, 117u8, 112u8, 56u8, 73u8, 110u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 24u8, 77u8, 111u8, 109u8,
101u8, 110u8, 116u8, 1u8, 32u8, 0u8, 12u8, 1u8, 8u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 56u8, 100u8, 101u8, 97u8, 99u8,
116u8, 105u8, 118u8, 97u8, 116u8, 101u8, 100u8, 95u8, 97u8, 116u8, 32u8, 1u8, 24u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8,
56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
62u8, 0u8, 0u8, 193u8, 5u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8,
114u8, 111u8, 117u8, 112u8, 16u8, 67u8, 97u8, 108u8, 108u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8,
1u8, 28u8, 96u8, 115u8, 101u8, 116u8, 95u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 4u8, 1u8, 20u8,
108u8, 105u8, 109u8, 105u8, 116u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8,
111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 53u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 39u8, 115u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 104u8, 111u8, 119u8, 32u8,
109u8, 97u8, 110u8, 121u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 13u8,
1u8, 42u8, 32u8, 96u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8,
104u8, 101u8, 114u8, 101u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8,
110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 46u8, 56u8, 100u8, 105u8,
115u8, 97u8, 98u8, 108u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 12u8, 1u8, 12u8,
119u8, 104u8, 111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 62u8, 0u8, 1u8, 8u8, 97u8, 116u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 64u8,
148u8, 68u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 32u8, 97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 99u8, 32u8, 109u8, 111u8, 109u8, 101u8, 110u8, 116u8, 46u8, 0u8, 65u8, 1u8, 80u8, 108u8,
101u8, 97u8, 115u8, 101u8, 32u8, 110u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 105u8, 102u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8,
97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8,
100u8, 32u8, 40u8, 97u8, 32u8, 34u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 34u8, 41u8, 44u8, 32u8, 105u8, 116u8, 115u8, 32u8, 114u8, 101u8, 118u8,
111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 108u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8,
116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8,
112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 77u8, 1u8, 65u8, 110u8, 121u8, 32u8, 100u8,
105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 78u8, 79u8, 84u8, 32u8, 97u8, 108u8, 108u8,
111u8, 119u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 108u8, 105u8, 107u8, 101u8,
32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8,
112u8, 46u8, 32u8, 70u8, 111u8, 114u8, 93u8, 1u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8,
101u8, 44u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 67u8,
68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 78u8, 79u8, 84u8, 32u8, 98u8, 101u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8,
116u8, 111u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 32u8,
67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 72u8, 111u8, 119u8, 101u8,
118u8, 101u8, 114u8, 32u8, 97u8, 110u8, 121u8, 25u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8,
97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8,
117u8, 101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 96u8, 97u8, 116u8,
96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8,
115u8, 105u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 32u8, 111u8, 110u8, 101u8, 46u8, 0u8, 81u8, 1u8, 73u8, 102u8, 32u8,
121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 117u8,
115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 124u8, 42u8, 32u8, 96u8, 97u8,
116u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 46u8, 148u8, 42u8,
32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 85u8, 1u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8,
105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8,
109u8, 112u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8,
105u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 67u8, 68u8, 68u8, 46u8, 32u8, 65u8, 115u8, 32u8, 115u8, 111u8, 111u8, 110u8, 32u8,
97u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8,
101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 81u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8,
97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 34u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
34u8, 32u8, 97u8, 115u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8,
97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 40u8, 97u8, 100u8, 100u8, 95u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 20u8, 57u8, 1u8, 65u8,
100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8,
119u8, 104u8, 111u8, 96u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8,
111u8, 117u8, 112u8, 46u8, 32u8, 77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8,
32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 208u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8,
114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 65u8, 100u8, 100u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8,
116u8, 184u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 46u8, 52u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 3u8, 40u8, 81u8, 1u8, 82u8,
101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 46u8, 32u8, 77u8, 97u8, 121u8, 32u8, 111u8, 110u8,
108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 65u8,
1u8, 65u8, 110u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 112u8, 114u8, 101u8, 118u8,
105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 70u8, 111u8, 114u8, 89u8, 1u8, 105u8, 110u8, 115u8, 116u8,
97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 105u8, 102u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 97u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 97u8, 110u8, 100u8,
32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 97u8, 1u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 32u8, 32u8, 73u8, 110u8, 32u8, 99u8, 97u8, 115u8,
101u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8,
107u8, 101u8, 101u8, 112u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8,
101u8, 100u8, 220u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 44u8, 32u8, 121u8, 111u8, 117u8,
32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 116u8, 111u8, 32u8, 117u8, 115u8, 101u8, 32u8, 96u8, 83u8,
101u8, 108u8, 102u8, 58u8, 58u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 95u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8,
110u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
220u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 200u8,
42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 44u8, 115u8, 119u8, 97u8, 112u8, 95u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 8u8, 1u8, 24u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8,
12u8, 97u8, 100u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 4u8, 32u8, 220u8, 83u8, 119u8, 97u8, 112u8, 115u8, 32u8, 111u8, 117u8,
116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8,
111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8,
97u8, 100u8, 100u8, 96u8, 46u8, 0u8, 180u8, 77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8,
32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8,
101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 83u8,
119u8, 97u8, 112u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8,
114u8, 111u8, 111u8, 116u8, 212u8, 42u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8,
46u8, 216u8, 42u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 112u8, 108u8, 97u8, 99u8, 101u8,
32u8, 111u8, 102u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 46u8, 52u8,
114u8, 101u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 4u8,
1u8, 28u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 33u8, 1u8, 1u8, 60u8, 86u8, 101u8,
99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8, 5u8,
24u8, 41u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 116u8, 44u8, 32u8, 100u8, 105u8, 115u8,
114u8, 101u8, 103u8, 97u8, 114u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 104u8, 105u8, 112u8, 46u8, 184u8, 77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 216u8, 42u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8,
32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 140u8, 42u8, 32u8, 96u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8, 119u8, 32u8, 115u8, 101u8,
116u8, 32u8, 111u8, 102u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8,
115u8, 76u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 0u8, 6u8, 40u8, 77u8, 1u8, 65u8, 108u8, 108u8, 111u8,
119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 42u8, 117u8, 110u8,
105u8, 108u8, 97u8, 116u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8, 32u8, 113u8, 117u8, 105u8,
116u8, 42u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 115u8, 117u8, 98u8, 106u8, 101u8, 99u8,
116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 71u8, 67u8, 20u8, 118u8, 111u8, 116u8, 101u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 204u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 32u8, 119u8, 104u8, 111u8, 32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8, 116u8,
111u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 0u8, 28u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 0u8, 128u8, 42u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8,
114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 98u8, 100u8, 105u8,
99u8, 97u8, 116u8, 101u8, 46u8, 164u8, 42u8, 32u8, 76u8, 97u8, 115u8, 116u8, 32u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 103u8, 114u8, 111u8, 117u8,
112u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8,
116u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8,
108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8,
104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8,
108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8,
116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 197u8, 5u8, 8u8, 48u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 20u8, 69u8,
114u8, 114u8, 111u8, 114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 84u8, 79u8, 110u8,
108u8, 121u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 65u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 0u8, 0u8, 4u8, 176u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 105u8,
115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 68u8, 117u8, 112u8,
108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 4u8,
124u8, 71u8, 114u8, 111u8, 117u8, 112u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
119u8, 97u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 97u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 46u8, 48u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 0u8, 2u8, 4u8, 164u8, 67u8, 97u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 46u8, 80u8, 76u8, 97u8, 115u8, 116u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 81u8, 117u8, 105u8, 116u8, 0u8, 3u8, 4u8, 168u8,
76u8, 97u8, 115u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 88u8,
77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 4u8, 4u8, 76u8, 77u8, 105u8, 115u8,
115u8, 105u8, 110u8, 103u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 68u8,
73u8, 68u8, 104u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 0u8, 5u8, 4u8, 93u8, 1u8, 84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8, 114u8,
111u8, 117u8, 112u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8,
120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 46u8, 104u8, 65u8, 99u8, 116u8, 105u8, 118u8,
101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 79u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 6u8, 4u8, 21u8, 1u8, 65u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8,
32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 0u8, 201u8, 5u8, 12u8, 96u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 95u8, 100u8, 101u8, 118u8, 101u8, 108u8, 111u8, 112u8, 28u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 16u8, 67u8, 97u8, 108u8, 108u8, 0u8, 1u8, 176u8, 24u8, 83u8, 121u8,
115u8, 116u8, 101u8, 109u8, 4u8, 0u8, 129u8, 4u8, 1u8, 173u8, 1u8, 115u8, 101u8, 108u8, 102u8,
58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8,
67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8,
60u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 0u8, 0u8, 16u8, 66u8, 97u8, 98u8, 101u8, 4u8, 0u8, 241u8, 4u8, 1u8,
165u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8,
97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 66u8, 97u8, 98u8, 101u8, 44u8, 32u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 1u8, 0u8, 36u8, 84u8, 105u8, 109u8, 101u8, 115u8,
116u8, 97u8, 109u8, 112u8, 4u8, 0u8, 9u8, 5u8, 1u8, 185u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8,
58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8,
58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8,
97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8,
84u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 2u8, 0u8, 28u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8,
115u8, 4u8, 0u8, 21u8, 5u8, 1u8, 177u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8,
112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8,
105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8,
58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8,
108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 73u8, 110u8,
100u8, 105u8, 99u8, 101u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
62u8, 0u8, 3u8, 0u8, 40u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8,
4u8, 0u8, 37u8, 5u8, 1u8, 189u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8,
97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8,
98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 4u8, 0u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 4u8,
0u8, 61u8, 5u8, 1u8, 181u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8,
97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8,
98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8,
5u8, 0u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 4u8, 0u8, 133u8, 5u8, 1u8,
181u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8,
97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 7u8, 0u8, 76u8,
67u8, 100u8, 100u8, 83u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 80u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 114u8, 115u8, 4u8, 0u8, 193u8, 5u8, 1u8, 225u8, 1u8, 115u8, 101u8, 108u8,
102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8,
111u8, 114u8, 60u8, 67u8, 100u8, 100u8, 83u8, 101u8, 114u8, 118u8, 105u8, 99u8, 101u8, 80u8,
114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 62u8, 0u8, 8u8, 0u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 205u8, 5u8, 1u8,
217u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8,
97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 44u8, 32u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 9u8, 0u8, 76u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8,
4u8, 0u8, 209u8, 5u8, 1u8, 225u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8,
95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8,
99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8,
100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8,
97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 67u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8,
105u8, 112u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 10u8, 0u8,
72u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 213u8, 5u8, 1u8, 221u8, 1u8, 115u8, 101u8, 108u8,
102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8,
111u8, 114u8, 60u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 11u8, 0u8, 112u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8,
108u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 4u8, 0u8, 217u8, 5u8, 1u8, 5u8, 2u8, 115u8, 101u8,
108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8,
111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8,
70u8, 111u8, 114u8, 60u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
104u8, 105u8, 112u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 12u8,
0u8, 64u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 221u8, 5u8, 1u8, 213u8, 1u8, 115u8, 101u8, 108u8, 102u8,
58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8,
67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8,
60u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 13u8,
0u8, 104u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8,
4u8, 0u8, 225u8, 5u8, 1u8, 253u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8,
95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8,
99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8,
100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8,
97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 85u8, 112u8, 103u8,
114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 14u8, 0u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8,
105u8, 103u8, 4u8, 0u8, 229u8, 5u8, 1u8, 181u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8,
115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8,
108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 77u8,
117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 15u8, 0u8, 24u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 4u8, 0u8,
233u8, 5u8, 1u8, 173u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8,
112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8,
108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 66u8, 114u8, 105u8, 100u8,
103u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 16u8, 0u8,
28u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 4u8, 0u8, 249u8, 5u8, 1u8, 177u8, 1u8,
115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8,
105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8,
95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8,
108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 44u8,
32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 17u8, 0u8, 28u8, 83u8, 101u8,
115u8, 115u8, 105u8, 111u8, 110u8, 4u8, 0u8, 237u8, 6u8, 1u8, 177u8, 1u8, 115u8, 101u8, 108u8,
102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8,
111u8, 114u8, 60u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 44u8, 32u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 19u8, 0u8, 28u8, 71u8, 114u8, 97u8, 110u8, 100u8,
112u8, 97u8, 4u8, 0u8, 249u8, 6u8, 1u8, 177u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8,
115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8,
108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 71u8,
114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 62u8, 0u8, 21u8, 0u8, 32u8, 73u8, 109u8, 79u8, 110u8, 108u8, 105u8, 110u8, 101u8, 4u8,
0u8, 37u8, 7u8, 1u8, 181u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8,
97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8,
98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 73u8, 109u8, 79u8, 110u8,
108u8, 105u8, 110u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8,
0u8, 23u8, 0u8, 16u8, 83u8, 117u8, 100u8, 111u8, 4u8, 0u8, 69u8, 7u8, 1u8, 165u8, 1u8, 115u8,
101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8,
100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8,
99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8,
99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8,
108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 117u8, 100u8, 111u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 25u8, 0u8, 20u8, 65u8, 115u8, 115u8, 101u8, 116u8, 4u8,
0u8, 73u8, 7u8, 1u8, 169u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8,
97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8,
98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 65u8, 115u8, 115u8,
101u8, 116u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 26u8, 0u8,
76u8, 67u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 105u8, 7u8, 1u8, 225u8, 1u8, 115u8, 101u8,
108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8,
111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8,
70u8, 111u8, 114u8, 60u8, 67u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 68u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 27u8, 0u8, 40u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8,
111u8, 105u8, 110u8, 116u8, 4u8, 0u8, 113u8, 7u8, 1u8, 189u8, 1u8, 115u8, 101u8, 108u8, 102u8,
58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8,
67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8,
60u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 44u8, 32u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 28u8, 0u8, 68u8, 67u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 77u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 4u8, 0u8,
121u8, 7u8, 1u8, 217u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8,
112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8,
108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 67u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 77u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 44u8, 32u8,
82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 29u8, 0u8, 60u8, 67u8, 111u8, 114u8,
112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 0u8, 125u8,
7u8, 1u8, 209u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8,
105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8,
101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 30u8, 0u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 4u8, 0u8, 149u8, 7u8, 1u8,
209u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8,
97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 62u8, 0u8, 31u8, 0u8, 16u8, 80u8, 105u8, 112u8, 115u8, 4u8, 0u8, 153u8, 7u8,
1u8, 165u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8,
95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8,
67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 80u8, 105u8, 112u8, 115u8, 44u8, 32u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 33u8, 0u8, 36u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 4u8, 0u8, 169u8, 7u8, 1u8, 185u8, 1u8, 115u8, 101u8, 108u8,
102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8,
111u8, 114u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 44u8, 32u8,
82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 34u8, 0u8, 44u8, 80u8, 114u8, 111u8,
116u8, 111u8, 99u8, 111u8, 108u8, 70u8, 101u8, 101u8, 4u8, 0u8, 181u8, 7u8, 1u8, 193u8, 1u8,
115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8,
105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8,
95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8,
108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 80u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8,
70u8, 101u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 35u8,
0u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 4u8, 0u8, 189u8, 7u8,
1u8, 185u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8,
95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8,
67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 114u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 36u8,
0u8, 40u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 4u8, 0u8, 201u8,
7u8, 1u8, 189u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8,
105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8,
101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
62u8, 0u8, 37u8, 0u8, 40u8, 83u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8,
4u8, 0u8, 221u8, 7u8, 1u8, 189u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8,
95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8,
99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8,
100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8,
97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 116u8, 97u8,
116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 38u8, 0u8, 12u8, 83u8, 116u8, 111u8, 4u8, 0u8, 241u8, 7u8, 1u8, 161u8,
1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8,
105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8,
95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8,
108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 83u8, 116u8, 111u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 39u8, 0u8, 32u8, 84u8, 114u8, 101u8, 97u8, 115u8, 117u8,
114u8, 121u8, 4u8, 0u8, 1u8, 8u8, 1u8, 181u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8,
112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8,
105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8,
58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8,
108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 84u8, 114u8,
101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 62u8, 0u8, 40u8, 0u8, 28u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 4u8, 0u8,
13u8, 8u8, 1u8, 177u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8,
112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8,
108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 85u8, 116u8, 105u8, 108u8,
105u8, 116u8, 121u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 41u8,
0u8, 16u8, 66u8, 97u8, 115u8, 101u8, 4u8, 0u8, 25u8, 8u8, 1u8, 165u8, 1u8, 115u8, 101u8, 108u8,
102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8,
101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8,
111u8, 114u8, 60u8, 66u8, 97u8, 115u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 62u8, 0u8, 42u8, 0u8, 56u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8,
65u8, 103u8, 101u8, 110u8, 116u8, 115u8, 4u8, 0u8, 29u8, 8u8, 1u8, 205u8, 1u8, 115u8, 101u8,
108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8,
111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8,
70u8, 111u8, 114u8, 60u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 65u8, 103u8,
101u8, 110u8, 116u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8,
0u8, 43u8, 0u8, 28u8, 82u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 4u8, 0u8, 33u8, 8u8, 1u8,
177u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8,
104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8,
105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8,
97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 82u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8,
44u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 44u8, 0u8, 28u8, 82u8,
101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 4u8, 0u8, 37u8, 8u8, 1u8, 177u8, 1u8, 115u8, 101u8,
108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8,
100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8,
111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8,
108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8,
70u8, 111u8, 114u8, 60u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 44u8, 32u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 45u8, 0u8, 36u8, 67u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 4u8, 0u8, 45u8, 8u8, 1u8, 185u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8,
58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8,
58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8,
97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8,
67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 46u8, 0u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 4u8, 0u8, 53u8, 8u8,
1u8, 217u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8,
95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8,
67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 44u8, 32u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 47u8, 0u8, 32u8, 80u8, 114u8, 101u8, 105u8,
109u8, 97u8, 103u8, 101u8, 4u8, 0u8, 57u8, 8u8, 1u8, 181u8, 1u8, 115u8, 101u8, 108u8, 102u8,
58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8,
110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8,
67u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8,
60u8, 80u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 48u8, 0u8, 36u8, 84u8, 101u8, 115u8, 116u8, 85u8, 116u8,
105u8, 108u8, 115u8, 4u8, 0u8, 61u8, 8u8, 1u8, 185u8, 1u8, 115u8, 101u8, 108u8, 102u8, 58u8,
58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8,
95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8, 99u8, 111u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 58u8,
58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8,
101u8, 58u8, 58u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 10u8, 58u8, 58u8, 67u8,
97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8, 67u8, 97u8, 108u8, 108u8, 70u8, 111u8, 114u8, 60u8,
84u8, 101u8, 115u8, 116u8, 85u8, 116u8, 105u8, 108u8, 115u8, 44u8, 32u8, 82u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 50u8, 0u8, 0u8, 205u8, 5u8, 8u8, 64u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 16u8,
67u8, 97u8, 108u8, 108u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 20u8, 72u8, 115u8, 101u8,
116u8, 95u8, 118u8, 111u8, 116u8, 101u8, 95u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8,
108u8, 100u8, 8u8, 1u8, 4u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 4u8, 100u8,
16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 24u8, 248u8, 67u8, 104u8, 97u8, 110u8, 103u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8,
101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 116u8,
101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 105u8,
110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
46u8, 85u8, 1u8, 70u8, 111u8, 114u8, 32u8, 101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 102u8, 111u8,
114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 109u8, 112u8, 108u8, 101u8, 32u8, 109u8, 97u8, 106u8,
111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 117u8, 115u8, 101u8, 32u8, 40u8, 49u8, 44u8, 32u8, 50u8,
41u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8,
101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 45u8, 101u8, 113u8,
117u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 34u8, 62u8, 61u8, 32u8, 49u8, 47u8, 50u8, 34u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 248u8,
42u8, 32u8, 96u8, 110u8, 96u8, 32u8, 45u8, 32u8, 78u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8,
111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 114u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8,
105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8,
104u8, 111u8, 108u8, 100u8, 46u8, 1u8, 1u8, 42u8, 32u8, 96u8, 100u8, 96u8, 32u8, 45u8, 32u8,
68u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 114u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8,
111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 46u8,
92u8, 115u8, 101u8, 116u8, 95u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 95u8, 99u8,
111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 4u8, 1u8, 8u8, 105u8, 100u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8,
28u8, 128u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8,
110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 192u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8,
104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
101u8, 119u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8,
114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
101u8, 119u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8,
32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 97u8,
114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 68u8, 115u8, 101u8, 116u8, 95u8, 101u8, 120u8, 112u8,
105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 102u8, 116u8, 101u8, 114u8, 4u8, 1u8, 24u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 53u8, 1u8, 1u8, 104u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8,
111u8, 99u8, 107u8, 60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 62u8, 0u8, 2u8, 16u8, 192u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8,
114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 132u8, 42u8,
32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8,
32u8, 110u8, 101u8, 119u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8,
109u8, 101u8, 46u8, 60u8, 118u8, 111u8, 116u8, 101u8, 95u8, 111u8, 114u8, 95u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 101u8, 8u8, 1u8, 28u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8,
101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8,
201u8, 5u8, 1u8, 152u8, 66u8, 111u8, 120u8, 60u8, 60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 102u8,
114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 58u8, 58u8, 67u8,
111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 3u8,
68u8, 21u8, 1u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 115u8, 104u8, 111u8,
117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8,
100u8, 32u8, 105u8, 110u8, 32u8, 105u8, 116u8, 115u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8,
93u8, 1u8, 65u8, 108u8, 116u8, 101u8, 114u8, 110u8, 97u8, 116u8, 105u8, 118u8, 101u8, 108u8,
121u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8,
32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8,
97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8,
101u8, 99u8, 111u8, 114u8, 100u8, 101u8, 100u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8,
97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
101u8, 100u8, 44u8, 29u8, 1u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 97u8, 115u8,
32u8, 97u8, 32u8, 118u8, 111u8, 116u8, 101u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8,
97u8, 115u8, 32u8, 105u8, 102u8, 32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 95u8, 98u8, 121u8, 95u8,
104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 45u8, 1u8,
84u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8,
98u8, 108u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 111u8, 102u8,
32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8,
32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8,
120u8, 105u8, 116u8, 121u8, 120u8, 102u8, 111u8, 114u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8,
105u8, 116u8, 115u8, 101u8, 108u8, 102u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 160u8, 42u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8,
116u8, 101u8, 63u8, 97u8, 1u8, 32u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8,
116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 44u8, 32u8, 112u8, 97u8, 115u8, 115u8, 105u8,
110u8, 103u8, 32u8, 96u8, 102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 105u8, 110u8, 32u8, 101u8, 114u8,
114u8, 111u8, 114u8, 32u8, 96u8, 70u8, 105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8,
82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 96u8, 46u8, 180u8, 42u8, 32u8, 96u8, 99u8, 97u8, 108u8,
108u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8,
111u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 70u8, 105u8, 114u8, 115u8, 116u8,
86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 96u8, 44u8, 32u8, 105u8,
102u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8,
32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8,
32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 32u8, 61u8,
61u8, 32u8, 102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8,
111u8, 116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 46u8, 16u8, 118u8, 111u8, 116u8, 101u8, 12u8, 1u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8,
115u8, 104u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 52u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 28u8, 97u8,
112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
4u8, 40u8, 164u8, 86u8, 111u8, 116u8, 101u8, 115u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 101u8, 96u8, 105u8, 110u8, 103u8, 108u8, 121u8, 32u8, 40u8, 111u8, 114u8, 32u8, 110u8,
111u8, 116u8, 44u8, 32u8, 105u8, 102u8, 32u8, 96u8, 102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 41u8,
212u8, 111u8, 110u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8,
103u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 121u8, 32u8, 105u8, 116u8, 115u8, 32u8, 104u8, 97u8,
115u8, 104u8, 44u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 46u8, 0u8, 44u8, 35u8,
32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8, 32u8, 96u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 65u8, 32u8, 104u8,
97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8, 111u8,
116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 46u8, 124u8, 42u8, 32u8, 96u8, 105u8, 110u8, 100u8,
101u8, 120u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 45u8, 1u8, 42u8, 32u8,
96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 102u8, 32u8,
96u8, 116u8, 114u8, 117u8, 101u8, 96u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 96u8, 102u8, 111u8, 114u8, 96u8, 32u8, 118u8,
111u8, 116u8, 101u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 97u8, 103u8, 97u8, 105u8, 110u8,
115u8, 116u8, 96u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 46u8,
0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8,
111u8, 116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
209u8, 5u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8,
112u8, 16u8, 67u8, 97u8, 108u8, 108u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 96u8,
115u8, 101u8, 116u8, 95u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 4u8, 1u8, 20u8, 108u8, 105u8,
109u8, 105u8, 116u8, 16u8, 1u8, 44u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 0u8, 0u8, 16u8, 53u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 39u8, 115u8, 32u8, 108u8, 105u8,
109u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8,
110u8, 121u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 13u8, 1u8, 42u8, 32u8,
96u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8,
114u8, 101u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 46u8, 56u8, 100u8, 105u8, 115u8, 97u8, 98u8,
108u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 12u8, 1u8, 12u8, 119u8, 104u8,
111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8,
8u8, 97u8, 116u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8,
58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 64u8, 148u8, 68u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
97u8, 116u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 109u8, 111u8,
109u8, 101u8, 110u8, 116u8, 46u8, 0u8, 65u8, 1u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
110u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 102u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 40u8, 97u8, 32u8,
34u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 34u8,
41u8, 44u8, 32u8, 105u8, 116u8, 115u8, 32u8, 114u8, 101u8, 118u8, 111u8, 99u8, 97u8, 116u8,
105u8, 111u8, 110u8, 108u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8,
32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8,
101u8, 100u8, 46u8, 0u8, 77u8, 1u8, 65u8, 110u8, 121u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8,
108u8, 101u8, 100u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 115u8, 104u8, 111u8,
117u8, 108u8, 100u8, 32u8, 78u8, 79u8, 84u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 116u8,
111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 108u8, 105u8, 107u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8,
99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 70u8,
111u8, 114u8, 93u8, 1u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 97u8,
32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 78u8,
79u8, 84u8, 32u8, 98u8, 101u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 72u8, 111u8, 119u8, 101u8, 118u8, 101u8, 114u8, 32u8,
97u8, 110u8, 121u8, 25u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8,
32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8,
98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 119u8, 111u8,
117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8,
114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8,
111u8, 110u8, 101u8, 46u8, 0u8, 81u8, 1u8, 73u8, 102u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8,
97u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8,
116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 44u8, 32u8, 121u8, 111u8, 117u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 117u8, 115u8, 101u8, 32u8, 96u8, 83u8,
101u8, 108u8, 102u8, 58u8, 58u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 124u8, 42u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 45u8, 32u8, 82u8,
101u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 105u8, 109u8, 101u8,
45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 46u8, 148u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8,
46u8, 85u8, 1u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8,
32u8, 84u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 67u8, 68u8, 68u8,
46u8, 32u8, 65u8, 115u8, 32u8, 115u8, 111u8, 111u8, 110u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8,
32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 44u8, 32u8, 116u8,
104u8, 101u8, 81u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8,
99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8,
32u8, 34u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 34u8, 32u8, 97u8, 115u8, 32u8, 96u8,
119u8, 104u8, 111u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 111u8,
110u8, 115u8, 105u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8,
117u8, 112u8, 46u8, 40u8, 97u8, 100u8, 100u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8,
1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 2u8, 20u8, 57u8, 1u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 116u8,
111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 77u8,
97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 208u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8,
110u8, 103u8, 32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 184u8, 42u8, 32u8, 96u8, 119u8, 104u8,
111u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 52u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8,
1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 3u8, 40u8, 81u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 46u8,
32u8, 77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8,
114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 65u8, 1u8, 65u8, 110u8, 121u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8,
103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8,
103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 70u8,
111u8, 114u8, 89u8, 1u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 105u8,
102u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8,
100u8, 32u8, 97u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 105u8, 116u8,
32u8, 105u8, 115u8, 97u8, 1u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 44u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 32u8, 32u8,
73u8, 110u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8,
116u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 103u8, 101u8,
110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 220u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8,
44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 116u8, 111u8, 32u8,
117u8, 115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 220u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8,
32u8, 114u8, 111u8, 111u8, 116u8, 200u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 44u8,
115u8, 119u8, 97u8, 112u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 8u8, 1u8, 24u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 12u8, 97u8, 100u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 4u8, 32u8, 220u8, 83u8, 119u8, 97u8,
112u8, 115u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8, 46u8, 0u8, 180u8, 77u8, 97u8, 121u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8,
110u8, 103u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 212u8, 42u8, 32u8, 96u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 216u8, 42u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8,
32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 96u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 96u8, 46u8, 52u8, 114u8, 101u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 4u8, 1u8, 28u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 62u8, 0u8, 5u8, 24u8, 41u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8,
105u8, 112u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8,
116u8, 44u8, 32u8, 100u8, 105u8, 115u8, 114u8, 101u8, 103u8, 97u8, 114u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 46u8, 184u8, 77u8,
97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8,
116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
216u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 140u8, 42u8,
32u8, 96u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8,
119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 76u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8,
95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 0u8, 6u8, 40u8, 77u8,
1u8, 65u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 105u8, 110u8, 103u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 111u8,
32u8, 42u8, 117u8, 110u8, 105u8, 108u8, 97u8, 116u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8,
32u8, 113u8, 117u8, 105u8, 116u8, 42u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 115u8, 117u8,
98u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 71u8, 67u8, 20u8, 118u8,
111u8, 116u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 204u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
45u8, 32u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 119u8, 104u8, 111u8, 32u8, 119u8, 97u8, 110u8,
116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 0u8, 28u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 128u8, 42u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8,
32u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 164u8, 42u8, 32u8, 76u8, 97u8,
115u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8,
0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8,
109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 213u8, 5u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 16u8, 67u8, 97u8, 108u8, 108u8, 8u8, 4u8,
84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 20u8, 72u8, 115u8, 101u8, 116u8, 95u8, 118u8, 111u8, 116u8,
101u8, 95u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 8u8, 1u8, 4u8, 110u8,
16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 4u8, 100u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 0u8, 24u8, 248u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 85u8, 1u8, 70u8, 111u8, 114u8, 32u8,
101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 109u8,
112u8, 108u8, 101u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 117u8,
115u8, 101u8, 32u8, 40u8, 49u8, 44u8, 32u8, 50u8, 41u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8,
32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 105u8, 110u8, 45u8, 101u8, 113u8, 117u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
34u8, 62u8, 61u8, 32u8, 49u8, 47u8, 50u8, 34u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 248u8, 42u8, 32u8, 96u8, 110u8, 96u8, 32u8, 45u8, 32u8,
78u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 114u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8,
101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 46u8, 1u8, 1u8, 42u8,
32u8, 96u8, 100u8, 96u8, 32u8, 45u8, 32u8, 68u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 114u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 46u8, 92u8, 115u8, 101u8, 116u8, 95u8, 114u8, 101u8, 108u8,
101u8, 97u8, 115u8, 101u8, 95u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 4u8, 1u8, 8u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 28u8, 128u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 0u8, 44u8, 35u8,
32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 192u8, 42u8, 32u8, 96u8,
105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 101u8, 108u8, 101u8,
97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 42u8,
32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8,
73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 111u8,
114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
46u8, 68u8, 115u8, 101u8, 116u8, 95u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8,
97u8, 102u8, 116u8, 101u8, 114u8, 4u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 53u8,
1u8, 1u8, 104u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8,
2u8, 16u8, 192u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 109u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 132u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8,
120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 60u8, 118u8, 111u8,
116u8, 101u8, 95u8, 111u8, 114u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 8u8,
1u8, 28u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 201u8, 5u8, 1u8, 152u8, 66u8, 111u8,
120u8, 60u8, 60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8,
121u8, 115u8, 116u8, 101u8, 109u8, 58u8, 58u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 3u8, 68u8, 21u8, 1u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8,
99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
105u8, 116u8, 115u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8, 93u8, 1u8, 65u8, 108u8, 116u8, 101u8,
114u8, 110u8, 97u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 44u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 101u8,
100u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 44u8, 29u8, 1u8, 116u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 118u8, 111u8,
116u8, 101u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8, 97u8, 115u8, 32u8, 105u8, 102u8,
32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 95u8, 98u8, 121u8, 95u8, 104u8, 97u8, 115u8, 104u8, 96u8,
32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 46u8, 0u8, 32u8, 35u8,
32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8,
96u8, 32u8, 97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 120u8, 102u8,
111u8, 114u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 105u8, 116u8, 115u8, 101u8, 108u8, 102u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 160u8,
42u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 63u8, 97u8, 1u8, 32u8, 32u8,
73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8,
116u8, 44u8, 32u8, 112u8, 97u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 96u8, 102u8, 97u8,
108u8, 115u8, 101u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8, 115u8, 117u8,
108u8, 116u8, 32u8, 105u8, 110u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 96u8, 70u8,
105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8,
96u8, 46u8, 180u8, 42u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 45u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
45u8, 1u8, 42u8, 32u8, 96u8, 70u8, 105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 108u8,
108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8,
97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 32u8, 61u8, 61u8, 32u8, 102u8, 97u8, 108u8,
115u8, 101u8, 96u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
16u8, 118u8, 111u8, 116u8, 101u8, 12u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 20u8, 105u8,
110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 28u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8,
101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 4u8, 40u8, 164u8, 86u8, 111u8,
116u8, 101u8, 115u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 96u8, 105u8,
110u8, 103u8, 108u8, 121u8, 32u8, 40u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 44u8, 32u8,
105u8, 102u8, 32u8, 96u8, 102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 41u8, 212u8, 111u8, 110u8,
32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 98u8, 121u8, 32u8, 105u8, 116u8, 115u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8,
96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 65u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8,
111u8, 110u8, 46u8, 124u8, 42u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 45u8,
32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 45u8, 1u8, 42u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 102u8, 32u8, 96u8, 116u8, 114u8, 117u8, 101u8,
96u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8,
32u8, 97u8, 32u8, 96u8, 102u8, 111u8, 114u8, 96u8, 32u8, 118u8, 111u8, 116u8, 101u8, 44u8, 32u8,
97u8, 110u8, 100u8, 32u8, 96u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 96u8, 32u8, 111u8,
116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 217u8, 5u8, 8u8, 48u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 16u8, 67u8, 97u8, 108u8, 108u8,
8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 96u8, 115u8, 101u8, 116u8, 95u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 4u8, 1u8, 20u8, 108u8, 105u8, 109u8, 105u8, 116u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 53u8,
1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 39u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8,
111u8, 114u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 99u8, 111u8,
110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8,
101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 121u8,
32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 13u8, 1u8, 42u8, 32u8, 96u8, 108u8, 105u8, 109u8,
105u8, 116u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 109u8,
97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 108u8, 121u8, 46u8, 56u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 95u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 12u8, 1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 8u8, 97u8, 116u8,
240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 64u8, 148u8, 68u8, 105u8, 115u8, 97u8, 98u8, 108u8,
101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 97u8, 116u8, 32u8,
115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 109u8, 111u8, 109u8, 101u8, 110u8,
116u8, 46u8, 0u8, 65u8, 1u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 110u8, 111u8, 116u8,
101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 102u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 40u8, 97u8, 32u8, 34u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 34u8, 41u8, 44u8, 32u8,
105u8, 116u8, 115u8, 32u8, 114u8, 101u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
108u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8,
77u8, 1u8, 65u8, 110u8, 121u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
78u8, 79u8, 84u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
116u8, 32u8, 108u8, 105u8, 107u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 70u8, 111u8, 114u8, 93u8, 1u8,
105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 97u8, 32u8, 100u8, 105u8,
115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 78u8, 79u8, 84u8, 32u8, 98u8,
101u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 103u8, 101u8, 110u8, 101u8,
114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 46u8, 32u8, 72u8, 111u8, 119u8, 101u8, 118u8, 101u8, 114u8, 32u8, 97u8, 110u8, 121u8,
25u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8,
114u8, 101u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 97u8,
115u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 111u8, 110u8, 101u8, 46u8, 0u8,
81u8, 1u8, 73u8, 102u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8,
111u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 97u8,
110u8, 121u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 117u8, 115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 124u8,
42u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 118u8, 111u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8,
112u8, 46u8, 148u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 85u8, 1u8, 42u8, 32u8,
96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 105u8, 109u8,
101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8,
119u8, 104u8, 111u8, 96u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 67u8, 68u8, 68u8, 46u8, 32u8, 65u8, 115u8, 32u8,
115u8, 111u8, 111u8, 110u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 81u8, 1u8,
103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 34u8, 105u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 34u8, 32u8, 97u8, 115u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8,
101u8, 114u8, 101u8, 100u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 40u8,
97u8, 100u8, 100u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8, 104u8,
111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
2u8, 20u8, 57u8, 1u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 77u8, 97u8, 121u8, 32u8, 111u8,
110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 208u8, 42u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8,
32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8,
114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 184u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 52u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8,
104u8, 111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 3u8, 40u8, 81u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 46u8, 32u8,
77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8,
111u8, 111u8, 116u8, 46u8, 0u8, 65u8, 1u8, 65u8, 110u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 70u8, 111u8,
114u8, 89u8, 1u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 105u8, 102u8,
32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8,
32u8, 97u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 105u8, 116u8, 32u8,
105u8, 115u8, 97u8, 1u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 44u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 32u8, 32u8, 73u8,
110u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8,
116u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 103u8, 101u8,
110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 220u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8,
44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 116u8, 111u8, 32u8,
117u8, 115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 220u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8,
32u8, 114u8, 111u8, 111u8, 116u8, 200u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 44u8,
115u8, 119u8, 97u8, 112u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 8u8, 1u8, 24u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 12u8, 97u8, 100u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 4u8, 32u8, 220u8, 83u8, 119u8, 97u8,
112u8, 115u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8, 46u8, 0u8, 180u8, 77u8, 97u8, 121u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8,
110u8, 103u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 212u8, 42u8, 32u8, 96u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 216u8, 42u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8,
32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 96u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 96u8, 46u8, 52u8, 114u8, 101u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 4u8, 1u8, 28u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 62u8, 0u8, 5u8, 24u8, 41u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8,
105u8, 112u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8,
116u8, 44u8, 32u8, 100u8, 105u8, 115u8, 114u8, 101u8, 103u8, 97u8, 114u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 46u8, 184u8, 77u8,
97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8,
116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
216u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 140u8, 42u8,
32u8, 96u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8,
119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 76u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8,
95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 0u8, 6u8, 40u8, 77u8,
1u8, 65u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 105u8, 110u8, 103u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 111u8,
32u8, 42u8, 117u8, 110u8, 105u8, 108u8, 97u8, 116u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8,
32u8, 113u8, 117u8, 105u8, 116u8, 42u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 115u8, 117u8,
98u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 71u8, 67u8, 20u8, 118u8,
111u8, 116u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 204u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
45u8, 32u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 119u8, 104u8, 111u8, 32u8, 119u8, 97u8, 110u8,
116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 0u8, 28u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 128u8, 42u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8,
32u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 164u8, 42u8, 32u8, 76u8, 97u8,
115u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8,
0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8,
109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 221u8, 5u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 16u8, 67u8, 97u8, 108u8, 108u8, 8u8, 4u8,
84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 20u8, 72u8, 115u8, 101u8, 116u8, 95u8, 118u8, 111u8, 116u8,
101u8, 95u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 8u8, 1u8, 4u8, 110u8,
16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 4u8, 100u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 0u8, 24u8, 248u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 85u8, 1u8, 70u8, 111u8, 114u8, 32u8,
101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 109u8,
112u8, 108u8, 101u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 117u8,
115u8, 101u8, 32u8, 40u8, 49u8, 44u8, 32u8, 50u8, 41u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8,
32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 105u8, 110u8, 45u8, 101u8, 113u8, 117u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
34u8, 62u8, 61u8, 32u8, 49u8, 47u8, 50u8, 34u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 248u8, 42u8, 32u8, 96u8, 110u8, 96u8, 32u8, 45u8, 32u8,
78u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 114u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8,
101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 46u8, 1u8, 1u8, 42u8,
32u8, 96u8, 100u8, 96u8, 32u8, 45u8, 32u8, 68u8, 101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 114u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 46u8, 92u8, 115u8, 101u8, 116u8, 95u8, 114u8, 101u8, 108u8,
101u8, 97u8, 115u8, 101u8, 95u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 4u8, 1u8, 8u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 28u8, 128u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 0u8, 44u8, 35u8,
32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 192u8, 42u8, 32u8, 96u8,
105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 114u8, 101u8, 108u8, 101u8,
97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 42u8,
32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8,
73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 111u8,
114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
46u8, 68u8, 115u8, 101u8, 116u8, 95u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8,
97u8, 102u8, 116u8, 101u8, 114u8, 4u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 53u8,
1u8, 1u8, 104u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8,
2u8, 16u8, 192u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 109u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 132u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8,
120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 60u8, 118u8, 111u8,
116u8, 101u8, 95u8, 111u8, 114u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 8u8,
1u8, 28u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 201u8, 5u8, 1u8, 152u8, 66u8, 111u8,
120u8, 60u8, 60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8,
121u8, 115u8, 116u8, 101u8, 109u8, 58u8, 58u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8,
58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 3u8, 68u8, 21u8, 1u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8,
99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
105u8, 116u8, 115u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8, 93u8, 1u8, 65u8, 108u8, 116u8, 101u8,
114u8, 110u8, 97u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 44u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 101u8,
100u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 44u8, 29u8, 1u8, 116u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 118u8, 111u8,
116u8, 101u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 44u8, 32u8, 97u8, 115u8, 32u8, 105u8, 102u8,
32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 95u8, 98u8, 121u8, 95u8, 104u8, 97u8, 115u8, 104u8, 96u8,
32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 46u8, 0u8, 32u8, 35u8,
32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8,
96u8, 32u8, 97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 120u8, 102u8,
111u8, 114u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 105u8, 116u8, 115u8, 101u8, 108u8, 102u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 160u8,
42u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 63u8, 97u8, 1u8, 32u8, 32u8,
73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8,
116u8, 44u8, 32u8, 112u8, 97u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 96u8, 102u8, 97u8,
108u8, 115u8, 101u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8, 115u8, 117u8,
108u8, 116u8, 32u8, 105u8, 110u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 96u8, 70u8,
105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8,
96u8, 46u8, 180u8, 42u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 45u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
45u8, 1u8, 42u8, 32u8, 96u8, 70u8, 105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 108u8,
108u8, 96u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8,
97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 32u8, 61u8, 61u8, 32u8, 102u8, 97u8, 108u8,
115u8, 101u8, 96u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
16u8, 118u8, 111u8, 116u8, 101u8, 12u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 20u8, 105u8,
110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 28u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8,
101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 4u8, 40u8, 164u8, 86u8, 111u8,
116u8, 101u8, 115u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 96u8, 105u8,
110u8, 103u8, 108u8, 121u8, 32u8, 40u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 44u8, 32u8,
105u8, 102u8, 32u8, 96u8, 102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 41u8, 212u8, 111u8, 110u8,
32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 98u8, 121u8, 32u8, 105u8, 116u8, 115u8, 32u8, 104u8, 97u8, 115u8, 104u8, 44u8, 32u8,
96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 65u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8,
111u8, 110u8, 46u8, 124u8, 42u8, 32u8, 96u8, 105u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 45u8,
32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 45u8, 1u8, 42u8, 32u8, 96u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 102u8, 32u8, 96u8, 116u8, 114u8, 117u8, 101u8,
96u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8,
32u8, 97u8, 32u8, 96u8, 102u8, 111u8, 114u8, 96u8, 32u8, 118u8, 111u8, 116u8, 101u8, 44u8, 32u8,
97u8, 110u8, 100u8, 32u8, 96u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 96u8, 32u8, 111u8,
116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 9u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 225u8, 5u8, 8u8, 48u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 16u8, 67u8, 97u8, 108u8, 108u8,
8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 96u8, 115u8, 101u8, 116u8, 95u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 4u8, 1u8, 20u8, 108u8, 105u8, 109u8, 105u8, 116u8, 16u8, 1u8, 44u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 53u8,
1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 39u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8,
111u8, 114u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 99u8, 111u8,
110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8,
101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 121u8,
32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 13u8, 1u8, 42u8, 32u8, 96u8, 108u8, 105u8, 109u8,
105u8, 116u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 109u8,
97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 108u8, 121u8, 46u8, 56u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 95u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 12u8, 1u8, 12u8, 119u8, 104u8, 111u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 8u8, 97u8, 116u8,
240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 64u8, 148u8, 68u8, 105u8, 115u8, 97u8, 98u8, 108u8,
101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 97u8, 116u8, 32u8,
115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 109u8, 111u8, 109u8, 101u8, 110u8,
116u8, 46u8, 0u8, 65u8, 1u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 110u8, 111u8, 116u8,
101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 102u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
114u8, 101u8, 118u8, 111u8, 107u8, 101u8, 100u8, 32u8, 40u8, 97u8, 32u8, 34u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 34u8, 41u8, 44u8, 32u8,
105u8, 116u8, 115u8, 32u8, 114u8, 101u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
108u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8,
77u8, 1u8, 65u8, 110u8, 121u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
78u8, 79u8, 84u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
116u8, 32u8, 108u8, 105u8, 107u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 70u8, 111u8, 114u8, 93u8, 1u8,
105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 97u8, 32u8, 100u8, 105u8,
115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 78u8, 79u8, 84u8, 32u8, 98u8,
101u8, 32u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 103u8, 101u8, 110u8, 101u8,
114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 46u8, 32u8, 72u8, 111u8, 119u8, 101u8, 118u8, 101u8, 114u8, 32u8, 97u8, 110u8, 121u8,
25u8, 1u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8,
114u8, 101u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 97u8,
115u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 111u8, 110u8, 101u8, 46u8, 0u8,
81u8, 1u8, 73u8, 102u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8,
111u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 97u8,
110u8, 121u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 117u8, 115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 124u8,
42u8, 32u8, 96u8, 97u8, 116u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 118u8, 111u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 105u8, 109u8, 101u8, 45u8, 115u8, 116u8, 97u8, 109u8,
112u8, 46u8, 148u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 85u8, 1u8, 42u8, 32u8,
96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 84u8, 105u8, 109u8,
101u8, 45u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8,
119u8, 104u8, 111u8, 96u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 67u8, 68u8, 68u8, 46u8, 32u8, 65u8, 115u8, 32u8,
115u8, 111u8, 111u8, 110u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 81u8, 1u8,
103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 34u8, 105u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 34u8, 32u8, 97u8, 115u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8,
101u8, 114u8, 101u8, 100u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 40u8,
97u8, 100u8, 100u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8, 104u8,
111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
2u8, 20u8, 57u8, 1u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 32u8, 77u8, 97u8, 121u8, 32u8, 111u8,
110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 208u8, 42u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8,
32u8, 96u8, 65u8, 100u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8,
114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 184u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8,
32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 52u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 4u8, 1u8, 12u8, 119u8,
104u8, 111u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8,
100u8, 0u8, 3u8, 40u8, 81u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 46u8, 32u8,
77u8, 97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8,
111u8, 111u8, 116u8, 46u8, 0u8, 65u8, 1u8, 65u8, 110u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 32u8, 70u8, 111u8,
114u8, 89u8, 1u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 44u8, 32u8, 105u8, 102u8,
32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8,
32u8, 97u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 105u8, 116u8, 32u8,
105u8, 115u8, 97u8, 1u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 44u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 32u8, 32u8, 73u8,
110u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 97u8, 110u8,
116u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 103u8, 101u8,
110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 220u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8,
44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 116u8, 111u8, 32u8,
117u8, 115u8, 101u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 220u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8,
32u8, 114u8, 111u8, 111u8, 116u8, 200u8, 42u8, 32u8, 96u8, 119u8, 104u8, 111u8, 96u8, 32u8, 45u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 44u8,
115u8, 119u8, 97u8, 112u8, 95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 8u8, 1u8, 24u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 12u8, 97u8, 100u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 4u8, 32u8, 220u8, 83u8, 119u8, 97u8,
112u8, 115u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8, 46u8, 0u8, 180u8, 77u8, 97u8, 121u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8,
110u8, 103u8, 32u8, 96u8, 83u8, 119u8, 97u8, 112u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 212u8, 42u8, 32u8, 96u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 46u8, 216u8, 42u8, 32u8, 96u8, 97u8, 100u8, 100u8, 96u8,
32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 112u8, 108u8, 97u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 96u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 96u8, 46u8, 52u8, 114u8, 101u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 4u8, 1u8, 28u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 62u8, 0u8, 5u8, 24u8, 41u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8,
105u8, 112u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8,
116u8, 44u8, 32u8, 100u8, 105u8, 115u8, 114u8, 101u8, 103u8, 97u8, 114u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 46u8, 184u8, 77u8,
97u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8,
116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
216u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8,
116u8, 105u8, 110u8, 103u8, 32u8, 96u8, 82u8, 101u8, 115u8, 101u8, 116u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 111u8, 114u8, 32u8, 114u8, 111u8, 111u8, 116u8, 140u8, 42u8,
32u8, 96u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8,
119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 76u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8,
95u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 0u8, 6u8, 40u8, 77u8,
1u8, 65u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 105u8, 110u8, 103u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 111u8,
32u8, 42u8, 117u8, 110u8, 105u8, 108u8, 97u8, 116u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8,
32u8, 113u8, 117u8, 105u8, 116u8, 42u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 115u8, 117u8,
98u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 71u8, 67u8, 20u8, 118u8,
111u8, 116u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 204u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
45u8, 32u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 119u8, 104u8, 111u8, 32u8, 119u8, 97u8, 110u8,
116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 0u8, 28u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 0u8, 128u8, 42u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8,
32u8, 97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 164u8, 42u8, 32u8, 76u8, 97u8,
115u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
97u8, 98u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8,
0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8,
109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 229u8, 5u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8,
0u8, 1u8, 76u8, 60u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 8u8, 1u8, 28u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8,
101u8, 1u8, 1u8, 112u8, 86u8, 101u8, 99u8, 60u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8,
114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
62u8, 62u8, 0u8, 1u8, 52u8, 115u8, 105u8, 103u8, 115u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 0u8, 20u8, 72u8, 67u8, 114u8,
101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 165u8, 1u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 96u8, 32u8,
45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 40u8, 84u8,
104u8, 101u8, 121u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
99u8, 101u8, 112u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8,
101u8, 121u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 108u8,
121u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 41u8, 46u8, 25u8, 1u8, 42u8, 32u8, 96u8, 115u8,
105u8, 103u8, 115u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 96u8, 32u8,
45u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 105u8,
103u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 45u8, 115u8, 105u8, 103u8, 32u8, 116u8, 120u8, 46u8, 152u8, 99u8, 114u8, 101u8,
97u8, 116u8, 101u8, 95u8, 111u8, 114u8, 95u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8,
95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 97u8, 115u8, 95u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 16u8, 1u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
201u8, 5u8, 1u8, 64u8, 66u8, 111u8, 120u8, 60u8, 84u8, 58u8, 58u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 62u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8,
1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8,
101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8,
115u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 32u8, 61u8, 1u8, 67u8,
114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8,
102u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8,
97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 102u8,
32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8,
105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 156u8, 42u8, 32u8,
96u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8,
111u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 46u8, 172u8, 42u8, 32u8, 96u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 5u8, 1u8, 42u8, 32u8, 96u8,
97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8, 115u8, 101u8, 96u8, 32u8, 45u8, 32u8, 67u8,
108u8, 111u8, 115u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
111u8, 110u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 105u8, 110u8, 103u8, 32u8, 101u8,
110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 118u8,
111u8, 116u8, 101u8, 115u8, 46u8, 49u8, 1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
105u8, 115u8, 32u8, 49u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 109u8, 96u8,
32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 116u8, 104u8, 101u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8, 108u8,
121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 132u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 95u8, 111u8, 114u8, 95u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8,
101u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 97u8, 115u8, 95u8,
107u8, 101u8, 121u8, 16u8, 1u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 201u8, 5u8, 1u8, 64u8, 66u8,
111u8, 120u8, 60u8, 84u8, 58u8, 58u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 62u8,
0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8,
1u8, 40u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8, 115u8, 101u8, 21u8, 1u8, 1u8,
16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 2u8, 32u8, 61u8, 1u8, 67u8, 114u8, 101u8, 97u8, 116u8,
101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8,
32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 101u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8, 104u8,
97u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8,
32u8, 45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 46u8, 156u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8, 111u8,
110u8, 46u8, 172u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8,
32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8,
109u8, 101u8, 46u8, 5u8, 1u8, 42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8,
111u8, 115u8, 101u8, 96u8, 32u8, 45u8, 32u8, 67u8, 108u8, 111u8, 115u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 111u8, 110u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 118u8, 105u8, 110u8, 103u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8,
114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 46u8, 49u8,
1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 49u8, 32u8, 111u8,
117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 109u8, 96u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8,
109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 101u8, 120u8, 101u8,
99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 108u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 97u8, 115u8, 95u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 16u8, 1u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 201u8,
5u8, 1u8, 64u8, 66u8, 111u8, 120u8, 60u8, 84u8, 58u8, 58u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 62u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8,
68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8, 115u8,
101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 3u8, 32u8, 108u8, 67u8, 114u8,
101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 128u8, 42u8, 32u8, 96u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 77u8, 117u8, 108u8,
116u8, 105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8,
156u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8, 32u8, 45u8,
32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 98u8,
101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 46u8, 172u8, 42u8, 32u8,
96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8, 32u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 5u8, 1u8,
42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8, 115u8, 101u8, 96u8, 32u8,
45u8, 32u8, 67u8, 108u8, 111u8, 115u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 111u8, 110u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 105u8, 110u8,
103u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8,
116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 46u8, 49u8, 1u8, 73u8, 102u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 49u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8,
32u8, 96u8, 109u8, 96u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8,
32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8,
97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8,
46u8, 88u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 95u8, 97u8, 115u8, 95u8, 107u8, 101u8, 121u8, 16u8, 1u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 201u8, 5u8, 1u8, 64u8, 66u8, 111u8, 120u8, 60u8, 84u8, 58u8, 58u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 62u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 97u8, 117u8, 116u8, 111u8, 95u8,
99u8, 108u8, 111u8, 115u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 4u8,
32u8, 108u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8, 32u8,
45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 46u8, 156u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8, 111u8,
110u8, 46u8, 172u8, 42u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 45u8,
32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8,
109u8, 101u8, 46u8, 5u8, 1u8, 42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8,
111u8, 115u8, 101u8, 96u8, 32u8, 45u8, 32u8, 67u8, 108u8, 111u8, 115u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 111u8, 110u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 118u8, 105u8, 110u8, 103u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8,
114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 46u8, 49u8,
1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 49u8, 32u8, 111u8,
117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 109u8, 96u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8,
109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 101u8, 120u8, 101u8,
99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 76u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8,
95u8, 97u8, 115u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 8u8, 1u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 5u8,
24u8, 228u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8,
32u8, 45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 46u8, 164u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 101u8, 46u8, 1u8, 1u8, 73u8, 102u8, 32u8, 113u8, 117u8, 111u8, 114u8, 117u8, 109u8,
32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 44u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8,
101u8, 108u8, 121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 56u8,
97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 95u8, 97u8, 115u8, 95u8, 107u8, 101u8, 121u8,
8u8, 1u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8,
52u8, 0u8, 6u8, 24u8, 49u8, 1u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 115u8, 32u8,
97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 40u8, 96u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 41u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 128u8, 42u8, 32u8, 96u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 77u8, 117u8, 108u8, 116u8,
105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 164u8,
42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8,
96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8,
32u8, 116u8, 111u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 46u8, 1u8, 1u8, 73u8,
102u8, 32u8, 113u8, 117u8, 111u8, 114u8, 117u8, 109u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8,
97u8, 99u8, 104u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8,
105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 101u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 72u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8,
95u8, 97u8, 115u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 8u8, 1u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 7u8,
24u8, 224u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8, 32u8,
45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 46u8, 160u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8,
99u8, 116u8, 46u8, 1u8, 1u8, 73u8, 102u8, 32u8, 113u8, 117u8, 111u8, 114u8, 117u8, 109u8, 32u8,
105u8, 115u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8,
101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8,
108u8, 121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 52u8, 114u8,
101u8, 106u8, 101u8, 99u8, 116u8, 95u8, 97u8, 115u8, 95u8, 107u8, 101u8, 121u8, 8u8, 1u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 8u8,
24u8, 45u8, 1u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 40u8, 96u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 96u8, 41u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 128u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 32u8,
97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 160u8, 42u8, 32u8, 96u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8,
101u8, 106u8, 101u8, 99u8, 116u8, 46u8, 1u8, 1u8, 73u8, 102u8, 32u8, 113u8, 117u8, 111u8, 114u8,
117u8, 109u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 44u8,
32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8,
97u8, 116u8, 101u8, 108u8, 121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8,
46u8, 136u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 95u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 95u8, 97u8, 115u8, 95u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 4u8, 1u8, 28u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 9u8, 16u8, 13u8, 1u8, 65u8,
99u8, 99u8, 101u8, 112u8, 116u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 116u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 39u8, 115u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 172u8, 42u8, 32u8, 96u8, 97u8, 117u8,
116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 65u8, 117u8, 116u8, 104u8, 32u8, 105u8,
100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 116u8, 97u8, 99u8, 99u8, 101u8,
112u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 95u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 95u8, 97u8, 115u8, 95u8, 107u8, 101u8, 121u8, 4u8, 1u8, 28u8, 97u8,
117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 10u8, 16u8,
41u8, 1u8, 65u8, 99u8, 99u8, 101u8, 112u8, 116u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
39u8, 115u8, 32u8, 107u8, 101u8, 121u8, 32u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 41u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 172u8, 42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8,
45u8, 32u8, 65u8, 117u8, 116u8, 104u8, 32u8, 105u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 76u8, 97u8, 100u8, 100u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 95u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 4u8, 1u8, 24u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 105u8, 1u8, 1u8, 92u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8,
114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
62u8, 0u8, 11u8, 16u8, 41u8, 1u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
32u8, 105u8, 116u8, 115u8, 101u8, 108u8, 102u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 120u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8,
121u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 46u8, 88u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 95u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 4u8, 1u8, 24u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 105u8, 1u8,
1u8, 92u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 12u8, 16u8, 61u8, 1u8,
82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
32u8, 105u8, 116u8, 115u8, 101u8, 108u8, 102u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 132u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8,
121u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 46u8, 128u8, 97u8,
100u8, 100u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 95u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 115u8, 95u8, 118u8, 105u8, 97u8, 95u8, 99u8, 114u8, 101u8, 97u8,
116u8, 111u8, 114u8, 8u8, 1u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
28u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 101u8, 1u8, 1u8, 112u8, 86u8, 101u8, 99u8,
60u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 13u8, 36u8, 69u8, 1u8,
65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 36u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 156u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 32u8,
115u8, 105u8, 103u8, 132u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8,
96u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 105u8, 101u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 164u8, 96u8, 57u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8,
48u8, 48u8, 32u8, 43u8, 32u8, 51u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 42u8,
32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8,
96u8, 140u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 95u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 95u8, 118u8, 105u8,
97u8, 95u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 8u8, 1u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 28u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
115u8, 101u8, 1u8, 1u8, 112u8, 86u8, 101u8, 99u8, 60u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8,
111u8, 114u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 62u8, 0u8, 14u8, 36u8, 140u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8,
97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 240u8,
84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 111u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 156u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8,
32u8, 45u8, 32u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 144u8,
42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 111u8, 114u8, 105u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 164u8, 96u8, 57u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8,
32u8, 43u8, 32u8, 51u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 42u8, 32u8, 115u8,
105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 80u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 115u8, 105u8, 103u8, 115u8, 95u8, 114u8, 101u8,
113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 4u8, 1u8, 52u8, 115u8, 105u8, 103u8, 115u8, 95u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8,
15u8, 20u8, 77u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8,
98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 64u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 105u8, 116u8, 115u8,
101u8, 108u8, 102u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 216u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 115u8, 95u8, 114u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 100u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8, 119u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8,
46u8, 92u8, 109u8, 97u8, 107u8, 101u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 95u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 4u8, 1u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 16u8, 20u8, 105u8, 1u8, 65u8, 100u8, 100u8,
115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 97u8,
115u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 100u8, 105u8, 100u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 100u8, 105u8, 100u8, 32u8, 105u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 36u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 128u8, 42u8,
32u8, 96u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 32u8, 115u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8,
101u8, 115u8, 115u8, 84u8, 109u8, 97u8, 107u8, 101u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 95u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 8u8, 1u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 80u8, 111u8, 112u8, 116u8, 105u8, 111u8,
110u8, 97u8, 108u8, 95u8, 99u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8,
100u8, 240u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 54u8, 52u8, 62u8,
0u8, 17u8, 20u8, 93u8, 1u8, 65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 100u8, 105u8,
100u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 64u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 132u8, 42u8, 32u8, 96u8, 109u8, 117u8, 108u8,
116u8, 105u8, 95u8, 115u8, 105u8, 103u8, 96u8, 32u8, 45u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 32u8, 115u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 104u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 100u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 16u8, 1u8,
32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8,
1u8, 48u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 95u8, 100u8, 105u8, 100u8,
120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8,
64u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 95u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 18u8, 4u8,
113u8, 1u8, 82u8, 111u8, 111u8, 116u8, 32u8, 99u8, 97u8, 108u8, 108u8, 97u8, 98u8, 108u8, 101u8,
32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 44u8, 32u8, 117u8, 115u8,
101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8,
110u8, 97u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 110u8, 103u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 100u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8,
46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8,
32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8,
117u8, 108u8, 101u8, 46u8, 233u8, 5u8, 8u8, 52u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8,
1u8, 68u8, 68u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8,
111u8, 108u8, 108u8, 101u8, 114u8, 4u8, 1u8, 40u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8,
108u8, 108u8, 101u8, 114u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 16u8, 160u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8,
114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 100u8,
109u8, 105u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8,
105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 48u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 97u8, 100u8, 109u8, 105u8, 110u8, 4u8, 1u8, 20u8,
97u8, 100u8, 109u8, 105u8, 110u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 16u8, 116u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 97u8,
100u8, 109u8, 105u8, 110u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8,
109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 60u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 116u8,
105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 4u8, 1u8, 32u8, 116u8, 105u8, 109u8, 101u8,
108u8, 111u8, 99u8, 107u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8,
78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 2u8, 16u8, 112u8, 67u8, 104u8, 97u8, 110u8, 103u8,
101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8,
107u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8,
109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 24u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 0u8, 3u8, 20u8,
93u8, 1u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 105u8,
110u8, 103u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8,
103u8, 101u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 32u8, 105u8, 102u8, 32u8, 105u8,
116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 32u8, 87u8, 104u8, 101u8,
110u8, 32u8, 116u8, 104u8, 101u8, 73u8, 1u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8,
105u8, 115u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 44u8, 32u8, 97u8, 116u8, 116u8,
101u8, 109u8, 112u8, 116u8, 101u8, 100u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 103u8, 101u8, 116u8, 32u8, 112u8, 111u8, 115u8, 116u8,
112u8, 111u8, 110u8, 101u8, 100u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8,
111u8, 102u8, 32u8, 103u8, 101u8, 116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 104u8, 97u8, 110u8,
100u8, 108u8, 101u8, 100u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8,
105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 32u8,
117u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 0u8, 4u8, 16u8, 17u8, 1u8, 85u8, 110u8,
102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 105u8, 110u8, 103u8,
32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8,
105u8, 115u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8,
109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 76u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 98u8,
114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 8u8, 1u8, 24u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 1u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 16u8, 1u8, 56u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 5u8,
20u8, 104u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 115u8, 46u8,
0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8,
66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 164u8, 45u8, 32u8, 96u8, 68u8, 105u8,
118u8, 105u8, 115u8, 105u8, 111u8, 110u8, 66u8, 121u8, 90u8, 101u8, 114u8, 111u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8,
105u8, 115u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 88u8, 99u8, 104u8, 97u8, 110u8, 103u8,
101u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 101u8, 120u8, 101u8, 109u8, 112u8,
116u8, 101u8, 100u8, 4u8, 1u8, 32u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 101u8, 100u8,
237u8, 5u8, 1u8, 92u8, 86u8, 101u8, 99u8, 60u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 98u8, 111u8, 111u8, 108u8, 41u8, 62u8, 0u8, 6u8, 16u8,
156u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8,
114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 101u8, 120u8,
101u8, 109u8, 112u8, 116u8, 101u8, 100u8, 32u8, 108u8, 105u8, 115u8, 116u8, 46u8, 0u8, 36u8,
35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8,
100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8,
83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 88u8, 102u8, 111u8, 114u8, 99u8, 101u8, 95u8,
104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8,
116u8, 120u8, 4u8, 1u8, 36u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 113u8,
1u8, 1u8, 88u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 7u8, 20u8, 37u8, 1u8, 70u8,
111u8, 114u8, 99u8, 101u8, 115u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 105u8, 110u8, 103u8,
32u8, 97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
98u8, 121u8, 32u8, 98u8, 121u8, 112u8, 97u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8,
46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8, 45u8, 32u8,
96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8,
96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8,
78u8, 111u8, 86u8, 97u8, 108u8, 105u8, 100u8, 67u8, 100u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 46u8, 114u8, 101u8, 99u8,
105u8, 112u8, 105u8, 101u8, 110u8, 116u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 46u8, 92u8, 98u8, 97u8,
116u8, 99u8, 104u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 95u8, 98u8, 114u8,
105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 4u8, 1u8, 40u8, 98u8, 114u8, 105u8, 100u8, 103u8,
101u8, 95u8, 116u8, 120u8, 115u8, 245u8, 5u8, 1u8, 108u8, 86u8, 101u8, 99u8, 60u8, 66u8, 114u8,
105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 8u8, 36u8, 69u8, 1u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 115u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8,
111u8, 102u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8,
118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 112u8, 114u8, 111u8, 99u8,
101u8, 115u8, 115u8, 101u8, 100u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 77u8, 1u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 99u8, 97u8, 117u8, 115u8,
101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 44u8, 32u8, 105u8,
110u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8,
116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8,
32u8, 114u8, 101u8, 115u8, 116u8, 32u8, 111u8, 102u8, 112u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8,
114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 101u8, 100u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 200u8, 45u8, 32u8, 96u8, 67u8, 111u8, 110u8, 116u8, 114u8,
111u8, 108u8, 108u8, 101u8, 114u8, 78u8, 111u8, 116u8, 83u8, 101u8, 116u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 115u8,
96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 115u8, 101u8, 116u8, 46u8, 0u8,
32u8, 35u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 176u8, 96u8, 53u8, 48u8, 48u8, 95u8,
48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 43u8, 32u8, 55u8, 95u8, 48u8, 48u8, 48u8, 95u8,
48u8, 48u8, 48u8, 32u8, 42u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8,
115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 68u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 101u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 4u8, 1u8, 36u8,
98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 113u8, 1u8, 1u8, 88u8, 66u8, 114u8,
105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 9u8, 24u8, 73u8, 1u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 101u8, 115u8, 32u8, 97u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8,
32u8, 109u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 85u8, 1u8, 98u8, 114u8, 105u8, 100u8, 103u8,
101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 110u8, 101u8, 119u8, 32u8, 111u8, 114u8,
32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 97u8, 110u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 152u8, 116u8, 114u8, 97u8,
110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 200u8, 45u8, 32u8, 96u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8,
108u8, 101u8, 114u8, 78u8, 111u8, 116u8, 83u8, 101u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 115u8, 96u8, 32u8,
119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 115u8, 101u8, 116u8, 46u8, 64u8, 104u8,
97u8, 110u8, 100u8, 108u8, 101u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8,
120u8, 4u8, 1u8, 36u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 113u8, 1u8,
1u8, 88u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 10u8, 24u8, 192u8, 72u8, 97u8,
110u8, 100u8, 108u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 101u8, 100u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
25u8, 1u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 99u8, 111u8,
110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 96u8, 32u8, 111u8, 114u8, 32u8, 32u8,
96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8, 110u8, 96u8, 46u8, 236u8,
45u8, 32u8, 96u8, 84u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 84u8,
120u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
32u8, 105u8, 115u8, 32u8, 96u8, 84u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 101u8,
100u8, 96u8, 46u8, 9u8, 1u8, 45u8, 32u8, 96u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8,
100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
32u8, 105u8, 115u8, 32u8, 96u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 96u8, 46u8, 40u8,
102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 116u8, 120u8, 115u8, 4u8, 1u8, 40u8, 98u8, 114u8,
105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 115u8, 245u8, 5u8, 1u8, 108u8, 86u8, 101u8, 99u8,
60u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 11u8, 32u8, 136u8, 70u8, 114u8,
101u8, 101u8, 122u8, 101u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 114u8,
105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 115u8, 46u8, 133u8, 1u8, 73u8, 102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 98u8, 114u8,
105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 120u8, 110u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 32u8,
116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 106u8, 117u8, 115u8, 116u8,
32u8, 105u8, 103u8, 110u8, 111u8, 114u8, 101u8, 32u8, 105u8, 116u8, 32u8, 97u8, 110u8, 100u8,
32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8,
111u8, 110u8, 101u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8,
105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8,
32u8, 35u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 176u8, 96u8, 52u8, 48u8, 48u8, 95u8,
48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 43u8, 32u8, 50u8, 95u8, 48u8, 48u8, 48u8, 95u8,
48u8, 48u8, 48u8, 32u8, 42u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8,
115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 48u8, 117u8, 110u8, 102u8, 114u8, 101u8,
101u8, 122u8, 101u8, 95u8, 116u8, 120u8, 115u8, 4u8, 1u8, 40u8, 98u8, 114u8, 105u8, 100u8, 103u8,
101u8, 95u8, 116u8, 120u8, 115u8, 245u8, 5u8, 1u8, 108u8, 86u8, 101u8, 99u8, 60u8, 66u8, 114u8,
105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 12u8, 32u8, 144u8, 85u8, 110u8, 102u8, 114u8, 101u8,
101u8, 122u8, 101u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 46u8, 133u8, 1u8, 73u8, 102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 32u8, 116u8, 120u8, 110u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 32u8, 116u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 106u8, 117u8, 115u8, 116u8, 32u8,
105u8, 103u8, 110u8, 111u8, 114u8, 101u8, 32u8, 105u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8,
112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 111u8,
110u8, 101u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8,
45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8,
110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 32u8,
35u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 176u8, 96u8, 52u8, 48u8, 48u8, 95u8, 48u8,
48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 43u8, 32u8, 55u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8,
48u8, 48u8, 32u8, 42u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 115u8,
46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 104u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8,
95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 95u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 4u8, 1u8, 36u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8,
95u8, 116u8, 120u8, 113u8, 1u8, 1u8, 88u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8,
60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8,
13u8, 24u8, 153u8, 1u8, 82u8, 111u8, 111u8, 116u8, 32u8, 99u8, 97u8, 108u8, 108u8, 97u8, 98u8,
108u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 44u8, 32u8,
117u8, 115u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 116u8,
101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8,
104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 100u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 101u8,
100u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 152u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 248u8,
45u8, 32u8, 96u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 65u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 32u8, 105u8, 115u8, 32u8, 96u8, 72u8, 97u8, 110u8,
100u8, 108u8, 101u8, 100u8, 96u8, 46u8, 188u8, 45u8, 32u8, 96u8, 70u8, 114u8, 111u8, 122u8,
101u8, 110u8, 84u8, 120u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 32u8,
105u8, 115u8, 32u8, 96u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 96u8, 46u8, 64u8, 97u8, 100u8,
100u8, 95u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 97u8, 100u8, 109u8, 105u8, 110u8,
4u8, 1u8, 48u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 97u8, 100u8, 109u8, 105u8, 110u8,
0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
14u8, 16u8, 76u8, 65u8, 100u8, 100u8, 32u8, 97u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8,
32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8,
110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8,
97u8, 100u8, 109u8, 105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 76u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 102u8, 114u8, 101u8, 101u8,
122u8, 101u8, 95u8, 97u8, 100u8, 109u8, 105u8, 110u8, 4u8, 1u8, 48u8, 102u8, 114u8, 101u8, 101u8,
122u8, 101u8, 95u8, 97u8, 100u8, 109u8, 105u8, 110u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 15u8, 16u8, 88u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 97u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 97u8,
100u8, 109u8, 105u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 224u8, 45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8,
105u8, 110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 40u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 116u8, 120u8, 115u8, 4u8, 1u8, 40u8, 98u8, 114u8,
105u8, 100u8, 103u8, 101u8, 95u8, 116u8, 120u8, 115u8, 245u8, 5u8, 1u8, 108u8, 86u8, 101u8, 99u8,
60u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 62u8, 0u8, 16u8, 20u8, 132u8, 82u8, 101u8,
109u8, 111u8, 118u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 224u8,
45u8, 32u8, 96u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 97u8, 100u8, 109u8, 105u8,
110u8, 40u8, 41u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 208u8, 45u8,
32u8, 96u8, 78u8, 111u8, 116u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 96u8, 32u8, 105u8,
102u8, 32u8, 97u8, 32u8, 116u8, 120u8, 32u8, 105u8, 110u8, 32u8, 96u8, 98u8, 114u8, 105u8, 100u8,
103u8, 101u8, 95u8, 116u8, 120u8, 115u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8,
0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8,
109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 237u8, 5u8, 0u8, 0u8, 2u8, 241u8, 5u8, 0u8, 241u8, 5u8, 0u8, 0u8, 4u8, 8u8,
120u8, 21u8, 1u8, 0u8, 245u8, 5u8, 0u8, 0u8, 2u8, 113u8, 1u8, 0u8, 249u8, 5u8, 8u8, 56u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 16u8,
67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 128u8, 16u8, 98u8, 111u8, 110u8, 100u8, 12u8,
1u8, 40u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 65u8, 5u8, 1u8,
140u8, 60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8,
83u8, 116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8,
83u8, 111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8,
1u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8,
1u8, 20u8, 112u8, 97u8, 121u8, 101u8, 101u8, 253u8, 5u8, 1u8, 124u8, 82u8, 101u8, 119u8, 97u8,
114u8, 100u8, 68u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 60u8,
84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8,
88u8, 97u8, 1u8, 84u8, 97u8, 107u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 115u8, 32u8,
97u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 110u8, 100u8, 32u8, 108u8, 111u8, 99u8,
107u8, 32u8, 117u8, 112u8, 32u8, 96u8, 118u8, 97u8, 108u8, 117u8, 101u8, 96u8, 32u8, 111u8,
102u8, 32u8, 105u8, 116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 32u8,
96u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 96u8, 32u8, 119u8,
105u8, 108u8, 108u8, 128u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 111u8, 108u8, 115u8, 32u8, 105u8, 116u8, 46u8, 0u8, 45u8, 1u8, 96u8, 118u8, 97u8, 108u8,
117u8, 101u8, 96u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 109u8, 111u8,
114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 109u8,
105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 96u8, 84u8, 58u8, 58u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 46u8,
0u8, 33u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8,
101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 46u8, 0u8, 60u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 66u8, 111u8, 110u8,
100u8, 101u8, 100u8, 96u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 208u8, 45u8, 32u8, 73u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 32u8, 77u8, 111u8, 100u8, 101u8, 114u8, 97u8, 116u8,
101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 28u8,
45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 100u8, 45u8, 32u8, 84u8, 104u8, 114u8, 101u8, 101u8,
32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 32u8, 68u8, 66u8, 32u8, 101u8, 110u8, 116u8, 114u8,
105u8, 101u8, 115u8, 46u8, 0u8, 77u8, 1u8, 78u8, 79u8, 84u8, 69u8, 58u8, 32u8, 84u8, 119u8,
111u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 40u8, 96u8, 83u8, 101u8,
108u8, 102u8, 58u8, 58u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 44u8, 32u8, 96u8, 83u8,
101u8, 108u8, 102u8, 58u8, 58u8, 112u8, 97u8, 121u8, 101u8, 101u8, 96u8, 41u8, 32u8, 97u8, 114u8,
101u8, 32u8, 95u8, 110u8, 101u8, 118u8, 101u8, 114u8, 95u8, 32u8, 99u8, 108u8, 101u8, 97u8,
110u8, 101u8, 100u8, 61u8, 1u8, 117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 102u8, 97u8, 108u8,
108u8, 115u8, 32u8, 98u8, 101u8, 108u8, 111u8, 119u8, 32u8, 95u8, 101u8, 120u8, 105u8, 115u8,
116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 95u8, 32u8, 97u8, 110u8, 100u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 100u8, 117u8, 115u8, 116u8, 46u8,
72u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 48u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8,
41u8, 40u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 45u8, 1u8, 45u8,
32u8, 82u8, 101u8, 97u8, 100u8, 58u8, 32u8, 66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8,
76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 67u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 32u8, 69u8, 114u8, 97u8, 44u8, 32u8, 72u8, 105u8, 115u8, 116u8,
111u8, 114u8, 121u8, 32u8, 68u8, 101u8, 112u8, 116u8, 104u8, 44u8, 32u8, 76u8, 111u8, 99u8,
107u8, 115u8, 220u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 66u8, 111u8,
110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 80u8, 97u8, 121u8, 101u8, 101u8, 44u8, 32u8, 91u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8,
44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8,
44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 40u8, 98u8, 111u8,
110u8, 100u8, 95u8, 101u8, 120u8, 116u8, 114u8, 97u8, 4u8, 1u8, 56u8, 109u8, 97u8, 120u8, 95u8,
97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 201u8, 1u8, 1u8, 48u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 1u8, 84u8, 97u8, 1u8,
65u8, 100u8, 100u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8,
32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8,
97u8, 118u8, 101u8, 32u8, 97u8, 112u8, 112u8, 101u8, 97u8, 114u8, 101u8, 100u8, 32u8, 105u8,
110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 96u8, 102u8,
114u8, 101u8, 101u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 110u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8,
117u8, 112u8, 48u8, 102u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8,
46u8, 0u8, 77u8, 1u8, 85u8, 115u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 100u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 32u8,
105u8, 110u8, 32u8, 121u8, 111u8, 117u8, 114u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 121u8,
111u8, 117u8, 32u8, 119u8, 105u8, 115u8, 104u8, 32u8, 116u8, 111u8, 32u8, 98u8, 111u8, 110u8,
100u8, 46u8, 97u8, 1u8, 85u8, 110u8, 108u8, 105u8, 107u8, 101u8, 32u8, 91u8, 96u8, 98u8, 111u8,
110u8, 100u8, 96u8, 93u8, 32u8, 111u8, 114u8, 32u8, 91u8, 96u8, 117u8, 110u8, 98u8, 111u8, 110u8,
100u8, 96u8, 93u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8,
109u8, 112u8, 111u8, 115u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 72u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8,
110u8, 32u8, 98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 46u8, 0u8, 93u8, 1u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8,
105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 97u8, 115u8, 104u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 110u8,
100u8, 244u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 111u8, 110u8,
108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8,
115u8, 101u8, 100u8, 96u8, 46u8, 0u8, 60u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 66u8,
111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 228u8, 45u8, 32u8, 73u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8,
100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 32u8, 73u8, 110u8, 115u8, 105u8, 103u8,
110u8, 105u8, 102u8, 105u8, 99u8, 97u8, 110u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8,
101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 28u8, 45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 60u8,
45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 68u8, 66u8, 32u8, 101u8, 110u8, 116u8, 114u8, 121u8, 46u8,
48u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 40u8, 68u8, 66u8,
32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 17u8, 1u8, 45u8, 32u8, 82u8, 101u8, 97u8,
100u8, 58u8, 32u8, 69u8, 114u8, 97u8, 32u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 44u8, 32u8, 66u8, 111u8, 110u8, 100u8, 101u8,
100u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 91u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 76u8,
111u8, 99u8, 107u8, 115u8, 160u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 91u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
93u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8,
114u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 24u8, 117u8,
110u8, 98u8, 111u8, 110u8, 100u8, 4u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8,
1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 2u8,
128u8, 81u8, 1u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 97u8, 32u8, 112u8,
111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 117u8, 110u8,
108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 111u8, 117u8,
116u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 111u8,
110u8, 100u8, 252u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 101u8, 110u8, 100u8, 115u8,
46u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 108u8, 101u8, 97u8, 118u8,
101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8,
108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 33u8, 1u8, 84u8, 58u8, 58u8, 67u8,
117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 58u8, 58u8, 109u8, 105u8, 110u8, 105u8, 109u8,
117u8, 109u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 40u8, 41u8, 44u8, 32u8, 116u8,
104u8, 101u8, 110u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 99u8, 114u8,
101u8, 97u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8,
117u8, 108u8, 108u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 69u8, 1u8, 79u8,
110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8,
32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 105u8, 115u8, 32u8, 100u8, 111u8, 110u8,
101u8, 44u8, 32u8, 121u8, 111u8, 117u8, 32u8, 99u8, 97u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 96u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 95u8, 117u8, 110u8, 98u8,
111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 117u8,
97u8, 108u8, 108u8, 121u8, 32u8, 109u8, 111u8, 118u8, 101u8, 188u8, 116u8, 104u8, 101u8, 32u8,
102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 109u8,
97u8, 110u8, 97u8, 103u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
46u8, 0u8, 57u8, 1u8, 78u8, 111u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8,
110u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8,
105u8, 110u8, 103u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 32u8, 40u8, 115u8, 101u8,
101u8, 32u8, 96u8, 77u8, 65u8, 88u8, 95u8, 85u8, 78u8, 76u8, 79u8, 67u8, 75u8, 73u8, 78u8, 71u8,
95u8, 67u8, 72u8, 85u8, 78u8, 75u8, 83u8, 96u8, 41u8, 57u8, 1u8, 99u8, 97u8, 110u8, 32u8, 99u8,
111u8, 45u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 32u8, 73u8,
110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 115u8, 101u8, 44u8, 32u8, 91u8, 96u8,
67u8, 97u8, 108u8, 108u8, 58u8, 58u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8,
95u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 93u8, 32u8, 110u8, 101u8,
101u8, 100u8, 248u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 32u8, 40u8, 105u8, 102u8, 32u8, 112u8,
111u8, 115u8, 115u8, 105u8, 98u8, 108u8, 101u8, 41u8, 46u8, 0u8, 81u8, 1u8, 84u8, 104u8, 101u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8,
103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 110u8, 111u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 9u8, 1u8, 65u8, 110u8,
100u8, 44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 111u8, 110u8,
108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8,
115u8, 101u8, 100u8, 96u8, 46u8, 0u8, 68u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 85u8,
110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 46u8, 0u8, 148u8, 83u8, 101u8, 101u8, 32u8,
97u8, 108u8, 115u8, 111u8, 32u8, 91u8, 96u8, 67u8, 97u8, 108u8, 108u8, 58u8, 58u8, 119u8, 105u8,
116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 95u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8,
100u8, 96u8, 93u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 61u8, 1u8, 45u8, 32u8, 73u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 46u8, 32u8, 76u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8,
98u8, 117u8, 116u8, 32u8, 112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 108u8,
121u8, 32u8, 101u8, 120u8, 112u8, 108u8, 111u8, 105u8, 116u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 148u8, 45u8, 32u8,
67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 101u8, 100u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 97u8, 1u8, 45u8, 32u8, 69u8, 97u8, 99u8, 104u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 40u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 100u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 111u8, 110u8, 100u8, 101u8,
100u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 97u8, 98u8, 111u8, 118u8, 101u8, 32u8, 96u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8,
109u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 41u8, 109u8, 1u8, 32u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 97u8, 32u8, 110u8,
101u8, 119u8, 32u8, 101u8, 110u8, 116u8, 114u8, 121u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 105u8, 110u8, 115u8, 101u8, 114u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 116u8, 111u8,
32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 40u8, 96u8, 76u8, 101u8, 100u8,
103u8, 101u8, 114u8, 46u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 105u8, 110u8, 103u8, 96u8,
41u8, 32u8, 107u8, 101u8, 112u8, 116u8, 32u8, 105u8, 110u8, 32u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 46u8, 77u8, 1u8, 32u8, 32u8, 84u8, 104u8, 101u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 119u8, 97u8, 121u8, 32u8, 116u8, 111u8, 32u8, 99u8, 108u8, 101u8, 97u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 102u8, 111u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 105u8,
111u8, 110u8, 101u8, 100u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8,
116u8, 101u8, 109u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 117u8, 115u8,
101u8, 114u8, 45u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 100u8, 32u8,
118u8, 105u8, 97u8, 88u8, 32u8, 32u8, 96u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8,
119u8, 95u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8, 46u8, 60u8, 45u8, 32u8,
79u8, 110u8, 101u8, 32u8, 68u8, 66u8, 32u8, 101u8, 110u8, 116u8, 114u8, 121u8, 46u8, 40u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8, 40u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 58u8, 33u8, 1u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 58u8, 32u8, 69u8, 114u8,
97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8,
115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 67u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 69u8, 114u8, 97u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8,
32u8, 92u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 92u8, 93u8, 168u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 76u8,
111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 92u8,
91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 92u8, 93u8, 36u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 68u8, 119u8,
105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 95u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8,
101u8, 100u8, 4u8, 1u8, 72u8, 110u8, 117u8, 109u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 95u8, 115u8, 112u8, 97u8, 110u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
3u8, 124u8, 41u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8,
117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8,
115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 117u8, 110u8,
108u8, 111u8, 99u8, 107u8, 105u8, 110u8, 103u8, 96u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 111u8, 117u8, 114u8, 32u8, 109u8, 97u8, 110u8, 97u8,
103u8, 101u8, 109u8, 101u8, 110u8, 116u8, 46u8, 0u8, 49u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8,
101u8, 115u8, 115u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 102u8, 114u8,
101u8, 101u8, 115u8, 32u8, 117u8, 112u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8,
104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 100u8,
111u8, 72u8, 119u8, 104u8, 97u8, 116u8, 101u8, 118u8, 101u8, 114u8, 32u8, 105u8, 116u8, 32u8,
119u8, 97u8, 110u8, 116u8, 115u8, 46u8, 0u8, 81u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8, 101u8,
100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 9u8, 1u8, 65u8, 110u8, 100u8, 44u8, 32u8,
105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 69u8,
114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8,
117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8, 101u8,
100u8, 96u8, 46u8, 0u8, 72u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 96u8, 87u8, 105u8, 116u8,
104u8, 100u8, 114u8, 97u8, 119u8, 110u8, 96u8, 46u8, 0u8, 104u8, 83u8, 101u8, 101u8, 32u8, 97u8,
108u8, 115u8, 111u8, 32u8, 91u8, 96u8, 67u8, 97u8, 108u8, 108u8, 58u8, 58u8, 117u8, 110u8, 98u8,
111u8, 110u8, 100u8, 96u8, 93u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 81u8, 1u8, 45u8, 32u8, 67u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8,
32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 97u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 104u8, 111u8,
119u8, 32u8, 109u8, 117u8, 99u8, 104u8, 32u8, 96u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8,
105u8, 110u8, 103u8, 96u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 46u8, 65u8, 1u8, 32u8, 73u8, 116u8, 32u8, 105u8, 109u8, 112u8, 108u8, 105u8,
101u8, 115u8, 32u8, 96u8, 99u8, 111u8, 110u8, 115u8, 111u8, 108u8, 105u8, 100u8, 97u8, 116u8,
101u8, 95u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 96u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 108u8, 111u8, 111u8, 112u8, 115u8, 32u8, 111u8, 118u8, 101u8, 114u8,
32u8, 96u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 46u8, 117u8, 110u8, 108u8, 111u8, 99u8,
107u8, 105u8, 110u8, 103u8, 96u8, 44u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8,
115u8, 240u8, 32u8, 105u8, 110u8, 100u8, 105u8, 114u8, 101u8, 99u8, 116u8, 108u8, 121u8, 32u8,
117u8, 115u8, 101u8, 114u8, 45u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8,
100u8, 46u8, 32u8, 83u8, 101u8, 101u8, 32u8, 91u8, 96u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8,
96u8, 93u8, 32u8, 102u8, 111u8, 114u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 100u8, 101u8,
116u8, 97u8, 105u8, 108u8, 46u8, 117u8, 1u8, 45u8, 32u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8,
110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 97u8, 100u8, 115u8,
44u8, 32u8, 121u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 105u8, 122u8, 101u8,
32u8, 111u8, 102u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 99u8, 111u8, 117u8, 108u8,
100u8, 32u8, 98u8, 101u8, 32u8, 108u8, 97u8, 114u8, 103u8, 101u8, 32u8, 98u8, 97u8, 115u8, 101u8,
100u8, 32u8, 111u8, 110u8, 32u8, 96u8, 108u8, 101u8, 100u8, 103u8, 101u8, 114u8, 96u8, 46u8,
196u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 107u8, 101u8, 121u8, 46u8, 60u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 5u8, 1u8, 67u8, 111u8, 109u8, 112u8, 108u8,
101u8, 120u8, 105u8, 116u8, 121u8, 32u8, 79u8, 40u8, 83u8, 41u8, 32u8, 119u8, 104u8, 101u8,
114u8, 101u8, 32u8, 83u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 32u8, 115u8, 112u8, 97u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 28u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 58u8, 33u8, 1u8, 45u8,
32u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8,
116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 44u8, 32u8, 76u8, 101u8,
100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
69u8, 114u8, 97u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 91u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8, 164u8,
45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8,
105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 76u8, 111u8,
99u8, 107u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 20u8, 75u8, 105u8,
108u8, 108u8, 58u8, 65u8, 1u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 69u8,
114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8,
117u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 67u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 69u8, 114u8, 97u8, 44u8, 32u8, 66u8, 111u8, 110u8,
100u8, 101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8,
83u8, 112u8, 97u8, 110u8, 115u8, 44u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 68u8,
32u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 76u8, 111u8, 99u8,
107u8, 115u8, 77u8, 1u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 66u8,
111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8,
103u8, 32u8, 83u8, 112u8, 97u8, 110u8, 115u8, 32u8, 40u8, 105u8, 102u8, 32u8, 83u8, 32u8, 62u8,
32u8, 48u8, 41u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 80u8, 97u8,
121u8, 101u8, 101u8, 44u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
115u8, 44u8, 32u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8,
100u8, 32u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 112u8, 45u8, 32u8, 87u8,
114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 83u8, 112u8, 97u8,
110u8, 83u8, 108u8, 97u8, 115u8, 104u8, 32u8, 42u8, 32u8, 83u8, 9u8, 1u8, 78u8, 79u8, 84u8, 69u8,
58u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 97u8, 110u8, 110u8, 111u8, 116u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 107u8,
105u8, 108u8, 108u8, 32u8, 115u8, 99u8, 101u8, 110u8, 97u8, 114u8, 105u8, 111u8, 44u8, 32u8,
119u8, 101u8, 32u8, 114u8, 101u8, 102u8, 117u8, 110u8, 100u8, 32u8, 111u8, 116u8, 104u8, 101u8,
114u8, 119u8, 105u8, 115u8, 101u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 4u8, 1u8,
20u8, 112u8, 114u8, 101u8, 102u8, 115u8, 1u8, 6u8, 1u8, 56u8, 86u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 80u8, 114u8, 101u8, 102u8, 115u8, 0u8, 4u8, 68u8, 228u8, 68u8, 101u8,
99u8, 108u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 115u8, 105u8,
114u8, 101u8, 32u8, 116u8, 111u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 46u8, 0u8,
216u8, 69u8, 102u8, 102u8, 101u8, 99u8, 116u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
98u8, 101u8, 32u8, 102u8, 101u8, 108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 81u8,
1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8,
83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 110u8,
111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 9u8, 1u8,
65u8, 110u8, 100u8, 44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8,
111u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8,
108u8, 111u8, 115u8, 101u8, 100u8, 96u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 228u8, 45u8, 32u8, 73u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8,
100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 32u8, 73u8, 110u8, 115u8, 105u8, 103u8,
110u8, 105u8, 102u8, 105u8, 99u8, 97u8, 110u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8,
101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 148u8, 45u8, 32u8, 67u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 97u8, 100u8,
115u8, 46u8, 196u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 107u8, 101u8, 121u8, 46u8, 44u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8,
79u8, 40u8, 49u8, 41u8, 40u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8,
140u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 58u8, 32u8, 69u8, 114u8, 97u8, 32u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 44u8,
32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 124u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8,
101u8, 58u8, 32u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8,
32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 35u8, 32u8, 60u8,
47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8,
97u8, 116u8, 101u8, 4u8, 1u8, 28u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 9u8, 6u8,
1u8, 160u8, 86u8, 101u8, 99u8, 60u8, 60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8,
112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8,
117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8, 117u8, 114u8, 99u8, 101u8, 62u8, 0u8, 5u8, 76u8,
13u8, 1u8, 68u8, 101u8, 99u8, 108u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8,
101u8, 115u8, 105u8, 114u8, 101u8, 32u8, 116u8, 111u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8,
97u8, 116u8, 101u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 96u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 46u8, 0u8, 77u8, 1u8,
69u8, 102u8, 102u8, 101u8, 99u8, 116u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8,
101u8, 32u8, 102u8, 101u8, 108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 32u8, 84u8,
104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 136u8,
91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8,
97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8,
101u8, 100u8, 96u8, 46u8, 0u8, 81u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8,
98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8,
108u8, 101u8, 114u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
116u8, 97u8, 115u8, 104u8, 46u8, 9u8, 1u8, 65u8, 110u8, 100u8, 44u8, 32u8, 105u8, 116u8, 32u8,
99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8,
108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8,
93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 96u8, 46u8, 0u8,
40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 45u8, 1u8, 45u8, 32u8,
84u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 39u8, 115u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8,
32u8, 105u8, 115u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8,
97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 105u8, 122u8, 101u8,
32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 96u8, 32u8, 40u8,
78u8, 41u8, 252u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 112u8,
112u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 65u8,
115u8, 115u8, 105u8, 103u8, 110u8, 109u8, 101u8, 110u8, 116u8, 115u8, 58u8, 58u8, 76u8, 73u8,
77u8, 73u8, 84u8, 32u8, 40u8, 77u8, 65u8, 88u8, 95u8, 78u8, 79u8, 77u8, 73u8, 78u8, 65u8, 84u8,
73u8, 79u8, 78u8, 83u8, 41u8, 46u8, 212u8, 45u8, 32u8, 66u8, 111u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8,
114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8, 32u8, 97u8,
32u8, 115u8, 105u8, 109u8, 105u8, 108u8, 97u8, 114u8, 32u8, 112u8, 97u8, 116u8, 116u8, 101u8,
114u8, 110u8, 46u8, 36u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 78u8, 41u8, 128u8, 119u8, 104u8,
101u8, 114u8, 101u8, 32u8, 78u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 115u8, 40u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 196u8, 45u8,
32u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 69u8, 114u8, 97u8, 32u8, 69u8, 108u8, 101u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 44u8, 32u8, 76u8,
101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 69u8, 114u8, 97u8, 128u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8,
86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 32u8, 78u8, 111u8,
109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 20u8, 99u8, 104u8, 105u8, 108u8, 108u8, 0u8, 6u8, 68u8,
196u8, 68u8, 101u8, 99u8, 108u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 32u8, 100u8, 101u8,
115u8, 105u8, 114u8, 101u8, 32u8, 116u8, 111u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8,
32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8, 114u8, 32u8, 110u8,
111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 46u8, 0u8, 216u8, 69u8, 102u8, 102u8, 101u8,
99u8, 116u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 102u8, 101u8,
108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 101u8, 103u8, 105u8,
110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
101u8, 120u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 81u8, 1u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8,
110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8,
110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 9u8, 1u8, 65u8, 110u8, 100u8,
44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8,
91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8,
97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8,
101u8, 100u8, 96u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 228u8, 45u8, 32u8, 73u8, 110u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 46u8, 32u8, 73u8, 110u8, 115u8, 105u8, 103u8, 110u8, 105u8, 102u8,
105u8, 99u8, 97u8, 110u8, 116u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8,
116u8, 121u8, 46u8, 80u8, 45u8, 32u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8,
111u8, 110u8, 101u8, 32u8, 114u8, 101u8, 97u8, 100u8, 46u8, 196u8, 45u8, 32u8, 87u8, 114u8,
105u8, 116u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 107u8,
101u8, 121u8, 46u8, 32u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8, 40u8, 68u8, 66u8, 32u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 132u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 58u8, 32u8,
69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8,
116u8, 117u8, 115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 124u8, 45u8, 32u8,
87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 115u8, 44u8, 32u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8,
115u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 36u8, 115u8,
101u8, 116u8, 95u8, 112u8, 97u8, 121u8, 101u8, 101u8, 4u8, 1u8, 20u8, 112u8, 97u8, 121u8, 101u8,
101u8, 253u8, 5u8, 1u8, 124u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 68u8, 101u8, 115u8, 116u8,
105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 7u8, 64u8, 180u8, 40u8, 82u8, 101u8, 45u8, 41u8,
115u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8,
116u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 46u8, 0u8, 216u8,
69u8, 102u8, 102u8, 101u8, 99u8, 116u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8,
101u8, 32u8, 102u8, 101u8, 108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 81u8, 1u8,
84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8,
83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 110u8,
111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 228u8, 45u8, 32u8, 73u8, 110u8,
100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 32u8,
73u8, 110u8, 115u8, 105u8, 103u8, 110u8, 105u8, 102u8, 105u8, 99u8, 97u8, 110u8, 116u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 148u8, 45u8, 32u8,
67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 101u8, 100u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 196u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8,
101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 107u8, 101u8, 121u8, 46u8,
36u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 56u8, 45u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8, 48u8, 45u8, 32u8, 68u8, 66u8, 32u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 72u8, 32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 82u8,
101u8, 97u8, 100u8, 58u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 72u8, 32u8, 32u8, 32u8,
32u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 80u8, 97u8, 121u8, 101u8, 101u8,
44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 56u8, 115u8, 101u8,
116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 4u8, 1u8, 40u8,
99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 65u8, 5u8, 1u8, 140u8, 60u8,
84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8,
97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8,
117u8, 114u8, 99u8, 101u8, 0u8, 8u8, 64u8, 140u8, 40u8, 82u8, 101u8, 45u8, 41u8, 115u8, 101u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8, 0u8,
216u8, 69u8, 102u8, 102u8, 101u8, 99u8, 116u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
98u8, 101u8, 32u8, 102u8, 101u8, 108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 81u8,
1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8,
83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 44u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 46u8, 0u8,
40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 228u8, 45u8, 32u8, 73u8,
110u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8,
32u8, 73u8, 110u8, 115u8, 105u8, 103u8, 110u8, 105u8, 102u8, 105u8, 99u8, 97u8, 110u8, 116u8,
32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 46u8, 148u8, 45u8,
32u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 97u8, 32u8, 108u8, 105u8,
109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 196u8, 45u8, 32u8, 87u8, 114u8, 105u8,
116u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 107u8, 101u8,
121u8, 46u8, 40u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 48u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8, 40u8, 68u8, 66u8, 32u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 240u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 58u8, 32u8,
66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8,
32u8, 78u8, 101u8, 119u8, 32u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8,
114u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 32u8, 79u8, 108u8, 100u8, 32u8, 67u8,
111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 244u8, 45u8, 32u8, 87u8, 114u8,
105u8, 116u8, 101u8, 58u8, 32u8, 66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 76u8,
101u8, 100u8, 103u8, 101u8, 114u8, 32u8, 78u8, 101u8, 119u8, 32u8, 67u8, 111u8, 110u8, 116u8,
114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8,
32u8, 79u8, 108u8, 100u8, 32u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8,
114u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 76u8, 115u8,
101u8, 116u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8,
111u8, 117u8, 110u8, 116u8, 4u8, 1u8, 12u8, 110u8, 101u8, 119u8, 121u8, 4u8, 1u8, 12u8, 117u8,
51u8, 50u8, 0u8, 9u8, 32u8, 144u8, 83u8, 101u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
105u8, 100u8, 101u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 46u8, 0u8,
132u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8,
32u8, 82u8, 111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 48u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8,
41u8, 88u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 32u8, 67u8, 111u8, 117u8, 110u8, 116u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 96u8, 105u8, 110u8, 99u8, 114u8, 101u8, 97u8, 115u8,
101u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8, 111u8,
117u8, 110u8, 116u8, 4u8, 1u8, 40u8, 97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8,
108u8, 121u8, 4u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 10u8, 28u8, 168u8, 73u8, 110u8, 99u8,
114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8,
101u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 46u8, 0u8, 132u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 82u8,
111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 128u8, 83u8, 97u8, 109u8, 101u8, 32u8, 97u8, 115u8, 32u8, 91u8, 96u8, 115u8, 101u8, 116u8,
95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 96u8, 93u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 84u8, 115u8, 99u8, 97u8, 108u8, 101u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 4u8, 1u8, 24u8, 102u8, 97u8, 99u8,
116u8, 111u8, 114u8, 13u8, 6u8, 1u8, 28u8, 80u8, 101u8, 114u8, 99u8, 101u8, 110u8, 116u8, 0u8,
11u8, 28u8, 208u8, 83u8, 99u8, 97u8, 108u8, 101u8, 32u8, 117u8, 112u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 100u8, 101u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8,
98u8, 121u8, 32u8, 97u8, 32u8, 102u8, 97u8, 99u8, 116u8, 111u8, 114u8, 46u8, 0u8, 132u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 82u8,
111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 128u8, 83u8, 97u8, 109u8, 101u8, 32u8, 97u8, 115u8, 32u8, 91u8, 96u8, 115u8, 101u8, 116u8,
95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 96u8, 93u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 104u8, 97u8, 100u8, 100u8, 95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 101u8, 100u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 8u8, 1u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 56u8, 105u8, 110u8,
116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 17u8, 6u8, 1u8,
44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 51u8, 50u8, 62u8, 0u8, 12u8, 32u8,
61u8, 1u8, 71u8, 111u8, 118u8, 101u8, 114u8, 110u8, 97u8, 110u8, 99u8, 101u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 111u8, 110u8, 32u8, 50u8, 47u8, 51u8,
32u8, 114u8, 100u8, 115u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8,
99u8, 97u8, 110u8, 32u8, 105u8, 110u8, 116u8, 114u8, 111u8, 100u8, 117u8, 99u8, 101u8, 32u8,
97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8,
108u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 157u8, 1u8, 116u8, 111u8,
32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 101u8, 110u8,
116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 119u8, 104u8, 111u8, 32u8, 99u8, 97u8, 110u8,
32u8, 114u8, 117u8, 110u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
115u8, 46u8, 32u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 109u8, 111u8, 100u8,
117u8, 108u8, 101u8, 32u8, 117u8, 115u8, 101u8, 115u8, 32u8, 96u8, 80u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 96u8, 85u8, 1u8, 116u8, 111u8, 32u8, 101u8, 110u8, 115u8, 117u8, 114u8, 101u8,
32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 104u8, 97u8,
118u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 75u8,
89u8, 66u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 97u8,
110u8, 100u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8, 114u8, 115u8, 32u8, 116u8,
104u8, 101u8, 109u8, 32u8, 102u8, 111u8, 114u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 232u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 82u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8,
112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 136u8, 42u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 39u8,
115u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 46u8, 5u8, 1u8,
42u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 78u8, 111u8, 46u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8,
115u8, 32u8, 116u8, 111u8, 32u8, 114u8, 117u8, 110u8, 46u8, 116u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8,
100u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 4u8, 1u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 13u8, 28u8, 169u8, 1u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 111u8, 108u8,
32u8, 111u8, 102u8, 32u8, 40u8, 119u8, 97u8, 110u8, 110u8, 97u8, 98u8, 101u8, 41u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 46u8, 32u8, 69u8, 102u8, 102u8, 101u8, 99u8, 116u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 107u8, 110u8, 111u8, 119u8, 110u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 46u8, 25u8, 1u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 109u8, 111u8,
100u8, 117u8, 108u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 115u8, 32u8, 96u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 96u8, 32u8, 116u8, 111u8, 32u8, 101u8, 110u8, 115u8, 117u8,
114u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8,
104u8, 97u8, 118u8, 101u8, 96u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 100u8,
32u8, 75u8, 89u8, 66u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 240u8, 42u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 100u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 112u8, 111u8, 116u8,
101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 46u8, 136u8, 42u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 39u8, 115u8, 32u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 46u8, 120u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 101u8, 95u8, 99u8, 100u8, 100u8, 95u8, 101u8, 120u8, 112u8, 105u8, 114u8,
121u8, 95u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 4u8, 1u8, 28u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 232u8, 1u8, 68u8, 86u8, 101u8, 99u8, 60u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 14u8, 40u8,
160u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 67u8, 68u8, 68u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 0u8,
240u8, 73u8, 102u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 115u8,
101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8,
116u8, 104u8, 101u8, 110u8, 208u8, 99u8, 104u8, 101u8, 99u8, 107u8, 32u8, 116u8, 104u8, 101u8,
32u8, 67u8, 68u8, 68u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 116u8, 105u8,
109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 105u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8,
102u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 49u8, 1u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8,
32u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8,
112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 46u8, 0u8, 36u8, 35u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 152u8, 45u8, 32u8, 68u8, 101u8, 112u8, 101u8, 110u8, 100u8, 115u8,
32u8, 111u8, 110u8, 32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 32u8, 108u8, 105u8, 115u8,
116u8, 32u8, 111u8, 102u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 46u8,
41u8, 1u8, 45u8, 32u8, 68u8, 101u8, 112u8, 101u8, 110u8, 100u8, 115u8, 32u8, 111u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 111u8, 46u8, 32u8, 111u8, 102u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 115u8, 32u8, 97u8, 110u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 32u8, 104u8, 97u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 101u8, 120u8, 112u8,
105u8, 114u8, 121u8, 46u8, 40u8, 35u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 72u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 95u8, 99u8, 97u8, 112u8, 4u8, 1u8, 28u8, 110u8, 101u8, 119u8, 95u8, 99u8, 97u8,
112u8, 137u8, 1u8, 1u8, 28u8, 80u8, 101u8, 114u8, 98u8, 105u8, 108u8, 108u8, 0u8, 15u8, 20u8,
33u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 114u8, 97u8, 116u8, 101u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 108u8, 108u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8,
46u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 71u8, 111u8, 118u8, 101u8, 114u8, 110u8, 97u8,
110u8, 99u8, 101u8, 168u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8,
105u8, 115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 140u8, 42u8, 32u8, 96u8, 110u8, 101u8, 119u8, 95u8, 99u8, 97u8, 112u8, 96u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 112u8, 46u8, 88u8, 115u8, 101u8, 116u8, 95u8,
109u8, 105u8, 110u8, 95u8, 98u8, 111u8, 110u8, 100u8, 95u8, 116u8, 104u8, 114u8, 101u8, 115u8,
104u8, 111u8, 108u8, 100u8, 4u8, 1u8, 36u8, 110u8, 101u8, 119u8, 95u8, 118u8, 97u8, 108u8, 117u8,
101u8, 24u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8,
62u8, 0u8, 16u8, 20u8, 1u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 109u8,
105u8, 110u8, 32u8, 98u8, 111u8, 110u8, 100u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 40u8, 41u8, 46u8, 32u8, 79u8, 110u8, 108u8,
121u8, 32u8, 71u8, 111u8, 118u8, 101u8, 114u8, 110u8, 97u8, 110u8, 99u8, 101u8, 168u8, 99u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8,
101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 116u8, 42u8, 32u8,
96u8, 110u8, 101u8, 119u8, 95u8, 118u8, 97u8, 108u8, 117u8, 101u8, 96u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 52u8,
102u8, 111u8, 114u8, 99u8, 101u8, 95u8, 110u8, 111u8, 95u8, 101u8, 114u8, 97u8, 115u8, 0u8, 17u8,
36u8, 172u8, 70u8, 111u8, 114u8, 99u8, 101u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 110u8, 111u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8,
114u8, 97u8, 115u8, 32u8, 105u8, 110u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 101u8,
108u8, 121u8, 46u8, 0u8, 132u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 98u8, 101u8, 32u8, 82u8, 111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 60u8, 45u8, 32u8, 78u8, 111u8, 32u8, 97u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 56u8, 45u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8, 68u8, 45u8, 32u8, 87u8, 114u8, 105u8,
116u8, 101u8, 58u8, 32u8, 70u8, 111u8, 114u8, 99u8, 101u8, 69u8, 114u8, 97u8, 44u8, 35u8, 32u8,
60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 52u8, 102u8, 111u8, 114u8, 99u8,
101u8, 95u8, 110u8, 101u8, 119u8, 95u8, 101u8, 114u8, 97u8, 0u8, 18u8, 40u8, 73u8, 1u8, 70u8,
111u8, 114u8, 99u8, 101u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 116u8, 111u8, 32u8,
98u8, 101u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8, 114u8, 97u8, 32u8, 97u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8,
46u8, 32u8, 65u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 44u8, 32u8,
105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 156u8, 114u8, 101u8, 115u8,
101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 110u8, 111u8, 114u8, 109u8, 97u8, 108u8, 32u8, 40u8,
110u8, 111u8, 110u8, 45u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 41u8, 32u8, 98u8, 101u8,
104u8, 97u8, 118u8, 105u8, 111u8, 117u8, 114u8, 46u8, 0u8, 132u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 82u8, 111u8, 111u8, 116u8,
46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 60u8, 45u8,
32u8, 78u8, 111u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8,
56u8, 45u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8, 40u8, 49u8, 41u8,
64u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 32u8, 70u8, 111u8, 114u8, 99u8, 101u8, 69u8,
114u8, 97u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 68u8,
115u8, 101u8, 116u8, 95u8, 105u8, 110u8, 118u8, 117u8, 108u8, 110u8, 101u8, 114u8, 97u8, 98u8,
108u8, 101u8, 115u8, 4u8, 1u8, 52u8, 105u8, 110u8, 118u8, 117u8, 108u8, 110u8, 101u8, 114u8,
97u8, 98u8, 108u8, 101u8, 115u8, 232u8, 1u8, 68u8, 86u8, 101u8, 99u8, 60u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 19u8, 32u8, 200u8, 83u8,
101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 115u8, 32u8, 119u8, 104u8, 111u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8,
32u8, 98u8, 101u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 100u8, 32u8, 40u8, 105u8,
102u8, 32u8, 97u8, 110u8, 121u8, 41u8, 46u8, 0u8, 132u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8,
109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 82u8, 111u8, 111u8, 116u8, 46u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 24u8, 45u8, 32u8, 79u8, 40u8,
86u8, 41u8, 88u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 73u8, 110u8, 118u8,
117u8, 108u8, 110u8, 101u8, 114u8, 97u8, 98u8, 108u8, 101u8, 115u8, 44u8, 35u8, 32u8, 60u8, 47u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 52u8, 102u8, 111u8, 114u8, 99u8, 101u8, 95u8,
117u8, 110u8, 115u8, 116u8, 97u8, 107u8, 101u8, 8u8, 1u8, 20u8, 115u8, 116u8, 97u8, 115u8, 104u8,
0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
1u8, 72u8, 110u8, 117u8, 109u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8,
95u8, 115u8, 112u8, 97u8, 110u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 20u8, 40u8, 9u8,
1u8, 70u8, 111u8, 114u8, 99u8, 101u8, 32u8, 97u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
99u8, 111u8, 109u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 108u8,
121u8, 32u8, 117u8, 110u8, 115u8, 116u8, 97u8, 107u8, 101u8, 100u8, 44u8, 32u8, 105u8, 109u8,
109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 46u8, 0u8, 132u8, 84u8, 104u8,
101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 82u8, 111u8,
111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8,
232u8, 79u8, 40u8, 83u8, 41u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 83u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 115u8, 112u8, 97u8,
110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 100u8, 180u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 66u8, 111u8, 110u8, 100u8,
101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 83u8,
112u8, 97u8, 110u8, 115u8, 44u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8,
76u8, 111u8, 99u8, 107u8, 115u8, 129u8, 1u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8,
66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 32u8, 83u8, 112u8, 97u8, 110u8, 115u8, 32u8, 40u8, 105u8, 102u8, 32u8, 83u8, 32u8,
62u8, 32u8, 48u8, 41u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 80u8,
97u8, 121u8, 101u8, 101u8, 44u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 115u8, 44u8, 32u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8,
44u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8,
115u8, 104u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8,
83u8, 112u8, 97u8, 110u8, 83u8, 108u8, 97u8, 115u8, 104u8, 32u8, 42u8, 32u8, 83u8, 44u8, 35u8,
32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 80u8, 102u8, 111u8, 114u8,
99u8, 101u8, 95u8, 110u8, 101u8, 119u8, 95u8, 101u8, 114u8, 97u8, 95u8, 97u8, 108u8, 119u8, 97u8,
121u8, 115u8, 0u8, 21u8, 32u8, 1u8, 1u8, 70u8, 111u8, 114u8, 99u8, 101u8, 32u8, 116u8, 104u8,
101u8, 114u8, 101u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 110u8, 101u8,
119u8, 32u8, 101u8, 114u8, 97u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8,
110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
32u8, 105u8, 110u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 101u8, 108u8, 121u8, 46u8,
0u8, 132u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8,
32u8, 82u8, 111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 56u8, 45u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 32u8, 79u8,
40u8, 49u8, 41u8, 68u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 58u8, 32u8, 70u8, 111u8,
114u8, 99u8, 101u8, 69u8, 114u8, 97u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 84u8, 99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 95u8, 100u8, 101u8, 102u8,
101u8, 114u8, 114u8, 101u8, 100u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 8u8, 1u8, 12u8, 101u8,
114u8, 97u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8,
52u8, 115u8, 108u8, 97u8, 115u8, 104u8, 95u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8,
53u8, 4u8, 1u8, 32u8, 86u8, 101u8, 99u8, 60u8, 117u8, 51u8, 50u8, 62u8, 0u8, 22u8, 52u8, 148u8,
67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 100u8, 101u8, 102u8, 101u8, 114u8, 114u8,
101u8, 100u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 46u8, 0u8, 176u8, 67u8, 97u8, 110u8, 32u8,
98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 84u8, 58u8, 58u8, 83u8, 108u8, 97u8, 115u8, 104u8, 67u8, 97u8, 110u8, 99u8,
101u8, 108u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 46u8, 0u8, 1u8, 1u8, 80u8, 97u8,
114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 32u8, 101u8, 114u8, 97u8, 32u8,
97u8, 110u8, 100u8, 32u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 101u8, 114u8, 97u8, 32u8, 116u8, 111u8,
32u8, 107u8, 105u8, 108u8, 108u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 80u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8,
58u8, 32u8, 79u8, 40u8, 85u8, 32u8, 43u8, 32u8, 83u8, 41u8, 180u8, 119u8, 105u8, 116u8, 104u8,
32u8, 85u8, 32u8, 117u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 115u8,
108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 101u8,
100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 85u8, 61u8, 49u8, 48u8, 48u8, 48u8, 208u8, 97u8,
110u8, 100u8, 32u8, 83u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 32u8,
105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 101u8, 100u8, 46u8, 100u8, 45u8, 32u8, 82u8, 101u8, 97u8,
100u8, 58u8, 32u8, 85u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 83u8,
108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 104u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8,
58u8, 32u8, 85u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 83u8, 108u8, 97u8,
115u8, 104u8, 101u8, 115u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 56u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8,
101u8, 114u8, 115u8, 8u8, 1u8, 60u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
95u8, 115u8, 116u8, 97u8, 115u8, 104u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 12u8, 101u8, 114u8, 97u8, 16u8, 1u8, 32u8,
69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 23u8, 100u8, 13u8, 1u8, 80u8, 97u8,
121u8, 32u8, 111u8, 117u8, 116u8, 32u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 32u8, 98u8, 101u8, 104u8, 105u8, 110u8, 100u8,
32u8, 97u8, 32u8, 115u8, 105u8, 110u8, 103u8, 108u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8,
110u8, 103u8, 108u8, 101u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 73u8, 1u8, 45u8, 32u8, 96u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 115u8, 116u8, 97u8, 115u8,
104u8, 96u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8,
104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 32u8,
84u8, 104u8, 101u8, 105u8, 114u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 115u8, 44u8, 32u8, 117u8, 112u8, 32u8, 116u8, 111u8, 37u8, 1u8, 32u8, 32u8, 96u8, 84u8,
58u8, 58u8, 77u8, 97u8, 120u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 82u8,
101u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 80u8, 101u8, 114u8, 86u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 96u8, 44u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 97u8,
108u8, 115u8, 111u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 32u8, 116u8, 104u8,
101u8, 105u8, 114u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 46u8, 49u8, 1u8, 45u8,
32u8, 96u8, 101u8, 114u8, 97u8, 96u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 97u8,
110u8, 121u8, 32u8, 101u8, 114u8, 97u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8,
32u8, 96u8, 91u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 95u8, 101u8, 114u8, 97u8, 32u8,
45u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 95u8, 100u8, 101u8, 112u8, 116u8,
104u8, 59u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 95u8, 101u8, 114u8, 97u8,
93u8, 96u8, 46u8, 0u8, 85u8, 1u8, 84u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8, 110u8,
101u8, 100u8, 95u8, 46u8, 32u8, 65u8, 110u8, 121u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 101u8, 118u8, 101u8,
110u8, 32u8, 105u8, 102u8, 116u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 111u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8,
97u8, 107u8, 101u8, 114u8, 115u8, 46u8, 0u8, 252u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8,
110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8,
32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 96u8, 46u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 252u8, 45u8, 32u8, 84u8, 105u8,
109u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 58u8,
32u8, 97u8, 116u8, 32u8, 109u8, 111u8, 115u8, 116u8, 32u8, 79u8, 40u8, 77u8, 97u8, 120u8, 78u8,
111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8,
101u8, 100u8, 80u8, 101u8, 114u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
41u8, 46u8, 192u8, 45u8, 32u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 97u8,
32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 32u8, 97u8, 110u8, 100u8,
32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 115u8, 46u8, 44u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
45u8, 45u8, 45u8, 45u8, 45u8, 25u8, 1u8, 78u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 112u8, 97u8, 121u8,
111u8, 117u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 40u8, 105u8, 110u8, 99u8, 108u8,
117u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 41u8, 28u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8,
132u8, 45u8, 32u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 68u8, 101u8, 115u8, 116u8,
105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 83u8, 116u8, 97u8, 107u8, 101u8, 100u8,
58u8, 32u8, 79u8, 40u8, 78u8, 41u8, 192u8, 45u8, 32u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8,
32u8, 68u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 67u8,
111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8, 40u8, 67u8, 114u8, 101u8,
97u8, 116u8, 105u8, 110u8, 103u8, 41u8, 58u8, 32u8, 79u8, 40u8, 78u8, 41u8, 40u8, 68u8, 66u8,
32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 37u8, 1u8, 45u8, 32u8, 82u8, 101u8, 97u8,
100u8, 58u8, 32u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 44u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
69u8, 114u8, 97u8, 44u8, 32u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 68u8, 101u8,
112u8, 116u8, 104u8, 44u8, 32u8, 69u8, 114u8, 97u8, 115u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 44u8, 41u8, 1u8, 32u8, 32u8, 32u8,
32u8, 32u8, 32u8, 32u8, 32u8, 69u8, 114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 107u8, 101u8, 114u8,
115u8, 67u8, 108u8, 105u8, 112u8, 112u8, 101u8, 100u8, 44u8, 32u8, 69u8, 114u8, 97u8, 115u8,
82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 111u8, 105u8, 110u8, 116u8, 115u8, 44u8, 32u8,
69u8, 114u8, 97u8, 115u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 80u8,
114u8, 101u8, 102u8, 115u8, 32u8, 40u8, 56u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 41u8,
13u8, 1u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 66u8,
111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8,
32u8, 80u8, 97u8, 121u8, 101u8, 101u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8, 32u8,
83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
32u8, 40u8, 53u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 41u8, 212u8, 45u8, 32u8, 87u8, 114u8,
105u8, 116u8, 101u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 83u8, 121u8, 115u8, 116u8, 101u8,
109u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8,
115u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 32u8, 40u8, 51u8, 32u8, 105u8, 116u8,
101u8, 109u8, 115u8, 41u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 24u8, 114u8, 101u8, 98u8, 111u8, 110u8, 100u8, 4u8, 1u8, 20u8, 118u8, 97u8, 108u8,
117u8, 101u8, 201u8, 1u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8,
60u8, 84u8, 62u8, 0u8, 24u8, 56u8, 220u8, 82u8, 101u8, 98u8, 111u8, 110u8, 100u8, 32u8, 97u8,
32u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 117u8, 110u8, 108u8, 111u8,
99u8, 107u8, 101u8, 100u8, 46u8, 0u8, 81u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8,
108u8, 101u8, 114u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 136u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8,
32u8, 105u8, 115u8, 32u8, 96u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 96u8, 46u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 208u8, 45u8, 32u8, 84u8, 105u8,
109u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 58u8,
32u8, 79u8, 40u8, 76u8, 41u8, 44u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 76u8, 32u8,
105u8, 115u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 105u8, 110u8, 103u8, 32u8, 99u8,
104u8, 117u8, 110u8, 107u8, 115u8, 144u8, 45u8, 32u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 77u8, 65u8, 88u8, 95u8, 85u8, 78u8, 76u8, 79u8, 67u8, 75u8,
73u8, 78u8, 71u8, 95u8, 67u8, 72u8, 85u8, 78u8, 75u8, 83u8, 96u8, 46u8, 240u8, 45u8, 32u8, 83u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8,
58u8, 32u8, 67u8, 97u8, 110u8, 39u8, 116u8, 32u8, 105u8, 110u8, 99u8, 114u8, 101u8, 97u8, 115u8,
101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 44u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 100u8, 101u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 32u8, 105u8, 116u8, 46u8,
60u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8, 45u8,
48u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 252u8, 32u8,
32u8, 32u8, 32u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 69u8, 114u8, 97u8,
69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8,
44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8,
44u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 93u8, 180u8, 32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8,
115u8, 58u8, 32u8, 91u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 93u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 76u8, 101u8,
100u8, 103u8, 101u8, 114u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 68u8, 115u8, 101u8, 116u8, 95u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8,
95u8, 100u8, 101u8, 112u8, 116u8, 104u8, 8u8, 1u8, 68u8, 110u8, 101u8, 119u8, 95u8, 104u8, 105u8,
115u8, 116u8, 111u8, 114u8, 121u8, 95u8, 100u8, 101u8, 112u8, 116u8, 104u8, 121u8, 4u8, 1u8,
32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 72u8, 95u8, 101u8, 114u8,
97u8, 95u8, 105u8, 116u8, 101u8, 109u8, 115u8, 95u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8,
100u8, 121u8, 4u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 25u8, 84u8, 45u8, 1u8, 83u8, 101u8, 116u8,
32u8, 96u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 68u8, 101u8, 112u8, 116u8, 104u8,
96u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 100u8,
101u8, 108u8, 101u8, 116u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 104u8, 105u8, 115u8, 116u8,
111u8, 114u8, 121u8, 32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 124u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8,
121u8, 68u8, 101u8, 112u8, 116u8, 104u8, 96u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 100u8,
117u8, 99u8, 101u8, 100u8, 46u8, 0u8, 44u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8,
114u8, 115u8, 58u8, 13u8, 1u8, 45u8, 32u8, 96u8, 110u8, 101u8, 119u8, 95u8, 104u8, 105u8, 115u8,
116u8, 111u8, 114u8, 121u8, 95u8, 100u8, 101u8, 112u8, 116u8, 104u8, 96u8, 58u8, 32u8, 84u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8,
32u8, 100u8, 101u8, 112u8, 116u8, 104u8, 32u8, 121u8, 111u8, 117u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 108u8, 105u8, 107u8, 101u8, 32u8, 116u8, 111u8, 32u8, 115u8, 101u8, 116u8,
46u8, 69u8, 1u8, 45u8, 32u8, 96u8, 101u8, 114u8, 97u8, 95u8, 105u8, 116u8, 101u8, 109u8, 115u8,
95u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 105u8, 116u8, 101u8,
109u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8,
101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 46u8, 65u8, 1u8,
32u8, 32u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8,
32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8,
32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 99u8, 108u8,
101u8, 97u8, 114u8, 105u8, 110u8, 103u8, 32u8, 111u8, 108u8, 100u8, 65u8, 1u8, 32u8, 32u8, 32u8,
101u8, 114u8, 97u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 46u8, 32u8, 78u8,
101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8,
116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 117u8, 114u8, 97u8, 116u8, 101u8, 32u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 46u8, 32u8, 84u8, 114u8, 117u8, 115u8,
116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 156u8, 32u8, 32u8, 32u8, 96u8, 82u8, 111u8, 111u8, 116u8,
96u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 97u8, 110u8,
32u8, 97u8, 99u8, 99u8, 117u8, 114u8, 97u8, 116u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 46u8, 0u8, 80u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 220u8, 45u8, 32u8, 69u8, 58u8, 32u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8,
121u8, 32u8, 100u8, 101u8, 112u8, 116u8, 104u8, 115u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 100u8, 44u8, 32u8, 105u8, 46u8, 101u8, 46u8, 32u8, 49u8, 48u8, 32u8, 45u8, 62u8, 32u8,
55u8, 32u8, 61u8, 32u8, 51u8, 56u8, 45u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 58u8,
32u8, 79u8, 40u8, 69u8, 41u8, 48u8, 45u8, 32u8, 68u8, 66u8, 32u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 58u8, 156u8, 32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8,
58u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 69u8, 114u8, 97u8, 44u8, 32u8,
72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 32u8, 68u8, 101u8, 112u8, 116u8, 104u8, 108u8,
32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 72u8,
105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 32u8, 68u8, 101u8, 112u8, 116u8, 104u8, 45u8, 1u8,
32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 67u8, 108u8, 101u8, 97u8, 114u8, 32u8, 80u8, 114u8, 101u8,
102u8, 105u8, 120u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 69u8, 114u8, 97u8, 32u8, 83u8,
116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 44u8, 32u8, 69u8, 114u8, 97u8, 83u8, 116u8, 97u8, 107u8,
101u8, 114u8, 115u8, 67u8, 108u8, 105u8, 112u8, 112u8, 101u8, 100u8, 44u8, 32u8, 69u8, 114u8,
97u8, 115u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 80u8, 114u8, 101u8,
102u8, 115u8, 125u8, 1u8, 32u8, 32u8, 32u8, 32u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8,
115u8, 32u8, 69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 69u8, 114u8, 97u8, 115u8, 86u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 44u8, 32u8,
69u8, 114u8, 97u8, 115u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 111u8, 105u8, 110u8,
116u8, 115u8, 44u8, 32u8, 69u8, 114u8, 97u8, 115u8, 84u8, 111u8, 116u8, 97u8, 108u8, 83u8, 116u8,
97u8, 107u8, 101u8, 44u8, 32u8, 69u8, 114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 114u8, 116u8, 83u8,
101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 44u8, 35u8, 32u8,
60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 40u8, 114u8, 101u8, 97u8, 112u8,
95u8, 115u8, 116u8, 97u8, 115u8, 104u8, 8u8, 1u8, 20u8, 115u8, 116u8, 97u8, 115u8, 104u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
72u8, 110u8, 117u8, 109u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 95u8,
115u8, 112u8, 97u8, 110u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 26u8, 60u8, 93u8, 1u8,
82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 108u8, 108u8, 32u8, 100u8, 97u8, 116u8,
97u8, 32u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 117u8, 114u8, 101u8, 32u8, 99u8, 111u8,
110u8, 99u8, 101u8, 114u8, 110u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 115u8, 116u8, 97u8,
107u8, 101u8, 114u8, 47u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 111u8, 110u8, 99u8, 101u8,
32u8, 105u8, 116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 115u8,
32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8,
109u8, 46u8, 93u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 101u8, 115u8, 115u8,
101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8,
97u8, 108u8, 101u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 96u8, 119u8, 105u8, 116u8, 104u8,
100u8, 114u8, 97u8, 119u8, 95u8, 117u8, 110u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 96u8,
32u8, 101u8, 120u8, 99u8, 101u8, 112u8, 116u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8,
98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8,
121u8, 111u8, 110u8, 101u8, 244u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 96u8, 115u8, 116u8, 97u8, 115u8, 104u8, 96u8, 32u8,
109u8, 117u8, 115u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 110u8, 111u8, 32u8, 102u8,
117u8, 110u8, 100u8, 115u8, 32u8, 108u8, 101u8, 102u8, 116u8, 32u8, 98u8, 101u8, 121u8, 111u8,
110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 69u8, 68u8, 46u8, 0u8, 140u8, 84u8, 104u8, 105u8,
115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 110u8, 121u8, 32u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 46u8, 0u8, 252u8, 45u8, 32u8, 96u8, 115u8, 116u8, 97u8, 115u8, 104u8, 96u8, 58u8,
32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 97u8, 112u8, 46u8, 32u8, 73u8,
116u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 98u8, 101u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 33u8, 1u8, 67u8, 111u8, 109u8, 112u8, 108u8,
101u8, 120u8, 105u8, 116u8, 121u8, 58u8, 32u8, 79u8, 40u8, 83u8, 41u8, 32u8, 119u8, 104u8, 101u8,
114u8, 101u8, 32u8, 83u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8,
110u8, 103u8, 32u8, 115u8, 112u8, 97u8, 110u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 40u8, 68u8, 66u8, 32u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 58u8, 212u8, 45u8, 32u8, 82u8, 101u8, 97u8, 100u8, 115u8,
58u8, 32u8, 83u8, 116u8, 97u8, 115u8, 104u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
44u8, 32u8, 66u8, 111u8, 110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8,
105u8, 110u8, 103u8, 32u8, 83u8, 112u8, 97u8, 110u8, 115u8, 44u8, 32u8, 76u8, 111u8, 99u8, 107u8,
115u8, 161u8, 1u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 66u8, 111u8,
110u8, 100u8, 101u8, 100u8, 44u8, 32u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8,
32u8, 83u8, 112u8, 97u8, 110u8, 115u8, 32u8, 40u8, 105u8, 102u8, 32u8, 83u8, 32u8, 62u8, 32u8,
48u8, 41u8, 44u8, 32u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 44u8, 32u8, 80u8, 97u8, 121u8,
101u8, 101u8, 44u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8,
44u8, 32u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 32u8, 83u8,
116u8, 97u8, 115u8, 104u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 76u8,
111u8, 99u8, 107u8, 115u8, 112u8, 45u8, 32u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8,
69u8, 97u8, 99u8, 104u8, 58u8, 32u8, 83u8, 112u8, 97u8, 110u8, 83u8, 108u8, 97u8, 115u8, 104u8,
32u8, 42u8, 32u8, 83u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 96u8, 115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 95u8, 101u8, 108u8, 101u8, 99u8, 116u8,
105u8, 111u8, 110u8, 95u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 20u8, 1u8,
28u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 115u8, 21u8, 6u8, 1u8, 76u8, 86u8, 101u8, 99u8,
60u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 73u8, 110u8, 100u8, 101u8,
120u8, 62u8, 0u8, 1u8, 28u8, 99u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 25u8, 6u8, 1u8, 72u8,
67u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 109u8,
101u8, 110u8, 116u8, 115u8, 0u8, 1u8, 20u8, 115u8, 99u8, 111u8, 114u8, 101u8, 229u8, 6u8, 1u8,
52u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 99u8, 111u8, 114u8, 101u8, 0u8,
1u8, 12u8, 101u8, 114u8, 97u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8,
120u8, 0u8, 1u8, 16u8, 115u8, 105u8, 122u8, 101u8, 233u8, 6u8, 1u8, 48u8, 69u8, 108u8, 101u8,
99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 105u8, 122u8, 101u8, 0u8, 27u8, 196u8, 224u8, 83u8,
117u8, 98u8, 109u8, 105u8, 116u8, 32u8, 97u8, 110u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 116u8, 111u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 32u8, 73u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 58u8, 0u8, 48u8,
49u8, 46u8, 32u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 17u8, 1u8, 50u8,
46u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 32u8, 98u8, 101u8, 116u8, 116u8, 101u8, 114u8, 32u8,
115u8, 99u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 97u8, 32u8, 112u8,
111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 101u8, 120u8, 105u8,
115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8,
32u8, 111u8, 110u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 0u8, 128u8, 116u8, 104u8, 101u8,
110u8, 44u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 95u8,
112u8, 117u8, 116u8, 95u8, 32u8, 111u8, 110u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 0u8,
168u8, 65u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 111u8,
110u8, 115u8, 105u8, 115u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 119u8, 111u8, 32u8,
112u8, 105u8, 101u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 100u8, 97u8, 116u8, 97u8,
58u8, 0u8, 240u8, 49u8, 46u8, 32u8, 96u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 115u8, 96u8,
58u8, 32u8, 97u8, 32u8, 102u8, 108u8, 97u8, 116u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8,
32u8, 111u8, 102u8, 32u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 105u8,
110u8, 110u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8,
111u8, 117u8, 110u8, 100u8, 46u8, 77u8, 1u8, 50u8, 46u8, 32u8, 96u8, 97u8, 115u8, 115u8, 105u8,
103u8, 110u8, 109u8, 101u8, 110u8, 116u8, 115u8, 96u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8,
109u8, 101u8, 110u8, 116u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 101u8, 110u8, 99u8, 111u8, 100u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 100u8, 103u8, 101u8, 44u8, 32u8, 32u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 115u8, 46u8, 0u8, 29u8, 1u8, 66u8, 111u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 109u8,
112u8, 117u8, 116u8, 101u8, 100u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 95u8, 112u8,
104u8, 114u8, 97u8, 103u8, 109u8, 101u8, 110u8, 95u8, 44u8, 32u8, 111u8, 114u8, 32u8, 97u8,
110u8, 121u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 108u8, 103u8, 111u8, 114u8,
105u8, 116u8, 104u8, 109u8, 46u8, 0u8, 164u8, 65u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8,
110u8, 97u8, 108u8, 108u8, 121u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8,
109u8, 105u8, 116u8, 116u8, 101u8, 114u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 58u8, 0u8, 196u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 96u8,
115u8, 99u8, 111u8, 114u8, 101u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8,
32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 46u8,
0u8, 73u8, 1u8, 66u8, 111u8, 116u8, 104u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 114u8,
101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 84u8, 104u8, 101u8,
25u8, 1u8, 105u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 115u8, 112u8, 111u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 32u8, 40u8, 91u8, 96u8, 86u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 73u8, 110u8, 100u8, 101u8, 120u8, 96u8, 93u8, 32u8, 97u8, 110u8,
100u8, 45u8, 1u8, 91u8, 96u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 73u8,
110u8, 100u8, 101u8, 120u8, 96u8, 93u8, 41u8, 46u8, 32u8, 77u8, 111u8, 114u8, 101u8, 111u8,
118u8, 101u8, 114u8, 44u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 100u8,
101u8, 120u8, 32u8, 105u8, 110u8, 116u8, 111u8, 77u8, 1u8, 91u8, 96u8, 83u8, 110u8, 97u8, 112u8,
115u8, 104u8, 111u8, 116u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8,
96u8, 93u8, 32u8, 97u8, 110u8, 100u8, 32u8, 91u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 96u8, 93u8,
46u8, 32u8, 65u8, 110u8, 121u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 99u8, 97u8, 117u8,
115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 93u8, 1u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8,
116u8, 101u8, 100u8, 46u8, 32u8, 84u8, 104u8, 101u8, 115u8, 101u8, 32u8, 116u8, 119u8, 111u8,
32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 32u8, 97u8, 110u8, 100u8, 148u8, 109u8, 97u8,
121u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 100u8,
101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8,
110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 46u8, 0u8, 92u8, 65u8, 32u8, 115u8, 111u8, 108u8, 117u8,
116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8,
105u8, 102u8, 58u8, 0u8, 224u8, 48u8, 46u8, 32u8, 73u8, 116u8, 32u8, 105u8, 115u8, 32u8, 115u8,
117u8, 98u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8,
91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8,
97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 96u8, 79u8, 112u8, 101u8, 110u8,
96u8, 46u8, 244u8, 49u8, 46u8, 32u8, 73u8, 116u8, 115u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 32u8, 115u8, 99u8, 111u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 101u8, 113u8,
117u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8, 111u8,
114u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 168u8, 50u8, 46u8, 32u8, 80u8, 114u8, 101u8, 115u8,
101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 114u8, 114u8, 101u8,
99u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 119u8,
105u8, 110u8, 110u8, 101u8, 114u8, 115u8, 46u8, 81u8, 1u8, 51u8, 46u8, 32u8, 65u8, 108u8, 108u8,
32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 101u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8,
98u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 114u8, 100u8,
105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 110u8, 97u8,
112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 115u8, 46u8,
32u8, 65u8, 108u8, 108u8, 32u8, 101u8, 100u8, 103u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 89u8, 1u8, 32u8, 32u8, 32u8, 97u8, 108u8, 115u8,
111u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 32u8, 97u8, 110u8,
100u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 111u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8,
97u8, 110u8, 117u8, 108u8, 97u8, 114u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 97u8, 116u8, 105u8, 111u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8,
40u8, 105u8, 46u8, 101u8, 46u8, 32u8, 50u8, 53u8, 54u8, 60u8, 32u8, 32u8, 32u8, 111u8, 114u8,
32u8, 98u8, 105u8, 108u8, 108u8, 105u8, 111u8, 110u8, 41u8, 46u8, 9u8, 1u8, 52u8, 46u8, 32u8,
70u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 101u8, 100u8, 103u8, 101u8, 44u8, 32u8,
97u8, 108u8, 108u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 108u8, 121u8, 32u8, 110u8, 111u8, 109u8,
105u8, 110u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 111u8, 116u8, 101u8, 114u8, 46u8, 104u8, 53u8, 46u8, 32u8, 72u8, 97u8, 115u8, 32u8, 99u8,
111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 32u8, 115u8, 101u8, 108u8, 102u8, 45u8, 118u8, 111u8,
116u8, 101u8, 115u8, 46u8, 0u8, 188u8, 65u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8,
111u8, 110u8, 115u8, 32u8, 115u8, 99u8, 111u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 99u8,
111u8, 110u8, 115u8, 105u8, 115u8, 116u8, 101u8, 100u8, 32u8, 111u8, 102u8, 32u8, 51u8, 32u8,
112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 58u8, 0u8, 97u8, 1u8, 49u8,
46u8, 32u8, 96u8, 109u8, 105u8, 110u8, 32u8, 123u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8,
114u8, 116u8, 46u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 125u8, 96u8, 32u8, 102u8, 111u8,
114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8,
32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 46u8, 32u8, 84u8,
104u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 105u8, 122u8, 101u8,
100u8, 46u8, 97u8, 1u8, 50u8, 46u8, 32u8, 96u8, 115u8, 117u8, 109u8, 32u8, 123u8, 32u8, 115u8,
117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 46u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 125u8,
96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 115u8, 117u8, 112u8,
112u8, 111u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 119u8, 105u8, 110u8, 110u8,
101u8, 114u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 109u8, 105u8, 110u8,
105u8, 109u8, 105u8, 122u8, 101u8, 100u8, 46u8, 61u8, 1u8, 51u8, 46u8, 32u8, 96u8, 115u8, 117u8,
109u8, 32u8, 123u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 46u8, 116u8, 111u8,
116u8, 97u8, 108u8, 94u8, 50u8, 32u8, 125u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 97u8,
99u8, 104u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8,
97u8, 32u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
98u8, 101u8, 152u8, 32u8, 32u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 105u8, 122u8, 101u8,
100u8, 32u8, 40u8, 116u8, 111u8, 32u8, 101u8, 110u8, 115u8, 117u8, 114u8, 101u8, 32u8, 108u8,
101u8, 115u8, 115u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 99u8, 101u8, 41u8, 0u8, 40u8,
35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 21u8, 1u8, 84u8, 104u8, 101u8,
32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 97u8, 115u8, 115u8, 117u8, 109u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 111u8, 110u8, 103u8, 101u8, 115u8, 116u8, 32u8,
112u8, 97u8, 116u8, 104u8, 44u8, 32u8, 97u8, 32u8, 98u8, 101u8, 116u8, 116u8, 101u8, 114u8, 32u8,
115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 160u8, 32u8, 32u8, 45u8, 32u8,
73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 109u8, 111u8, 115u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 46u8, 65u8, 1u8, 32u8, 32u8, 45u8, 32u8, 87u8,
111u8, 114u8, 115u8, 101u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
105u8, 115u8, 32u8, 114u8, 101u8, 116u8, 114u8, 97u8, 99u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 112u8, 114u8, 101u8, 45u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 45u8,
99u8, 104u8, 101u8, 99u8, 107u8, 115u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 115u8,
101u8, 116u8, 115u8, 32u8, 105u8, 116u8, 115u8, 32u8, 111u8, 119u8, 110u8, 32u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 132u8, 115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 95u8, 101u8, 108u8, 101u8,
99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8,
95u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 20u8, 1u8, 28u8, 119u8, 105u8,
110u8, 110u8, 101u8, 114u8, 115u8, 21u8, 6u8, 1u8, 76u8, 86u8, 101u8, 99u8, 60u8, 86u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 73u8, 110u8, 100u8, 101u8, 120u8, 62u8, 0u8, 1u8,
28u8, 99u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 25u8, 6u8, 1u8, 72u8, 67u8, 111u8, 109u8,
112u8, 97u8, 99u8, 116u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 109u8, 101u8, 110u8, 116u8,
115u8, 0u8, 1u8, 20u8, 115u8, 99u8, 111u8, 114u8, 101u8, 229u8, 6u8, 1u8, 52u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 99u8, 111u8, 114u8, 101u8, 0u8, 1u8, 12u8, 101u8,
114u8, 97u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8,
16u8, 115u8, 105u8, 122u8, 101u8, 233u8, 6u8, 1u8, 48u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8,
111u8, 110u8, 83u8, 105u8, 122u8, 101u8, 0u8, 28u8, 36u8, 188u8, 85u8, 110u8, 115u8, 105u8,
103u8, 110u8, 101u8, 100u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 32u8, 111u8,
102u8, 32u8, 96u8, 115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 95u8, 101u8, 108u8, 101u8, 99u8,
116u8, 105u8, 111u8, 110u8, 95u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 96u8,
46u8, 0u8, 89u8, 1u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 112u8, 97u8, 115u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 91u8, 96u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 85u8,
110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 96u8, 93u8, 32u8, 99u8, 104u8, 101u8, 99u8,
107u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 93u8, 1u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 108u8, 111u8, 99u8, 97u8, 108u8, 32u8, 110u8, 111u8, 100u8, 101u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 46u8, 32u8, 73u8,
110u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 119u8, 111u8, 114u8, 100u8, 115u8, 44u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 32u8, 99u8, 97u8, 110u8, 32u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 32u8, 97u8, 100u8, 116u8, 114u8, 97u8, 110u8, 115u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 132u8, 83u8, 101u8, 101u8, 32u8, 91u8, 96u8, 115u8, 117u8, 98u8, 109u8,
105u8, 116u8, 95u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 115u8, 111u8,
108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 96u8, 93u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 96u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 95u8,
115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 95u8, 98u8, 121u8, 95u8, 115u8, 121u8, 115u8,
116u8, 101u8, 109u8, 8u8, 1u8, 60u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
95u8, 115u8, 116u8, 97u8, 115u8, 104u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 12u8, 101u8, 114u8, 97u8, 16u8, 1u8, 32u8,
69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 29u8, 4u8, 33u8, 1u8, 83u8, 121u8,
115u8, 116u8, 101u8, 109u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 32u8, 111u8,
102u8, 32u8, 96u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8,
101u8, 114u8, 115u8, 40u8, 41u8, 96u8, 46u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 111u8, 111u8, 116u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 108u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8,
95u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 95u8, 102u8, 111u8, 114u8, 4u8, 1u8, 60u8,
115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 95u8, 115u8, 119u8, 105u8, 116u8, 99u8,
104u8, 141u8, 1u8, 1u8, 56u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 83u8, 119u8,
105u8, 116u8, 99u8, 104u8, 0u8, 30u8, 20u8, 105u8, 1u8, 83u8, 119u8, 105u8, 116u8, 99u8, 104u8,
32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 115u8, 116u8, 97u8, 116u8,
117u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 115u8, 105u8,
115u8, 32u8, 111u8, 102u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 83u8, 108u8,
97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 83u8, 119u8, 105u8, 116u8, 99u8, 104u8, 96u8, 46u8,
32u8, 67u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 116u8, 42u8, 32u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 32u8, 111u8, 102u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 1u8, 1u8,
42u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 95u8, 115u8, 119u8, 105u8,
116u8, 99u8, 104u8, 32u8, 45u8, 32u8, 83u8, 119u8, 105u8, 116u8, 99u8, 104u8, 32u8, 117u8, 115u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 115u8, 108u8,
97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 46u8, 176u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8,
95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 95u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 105u8, 110u8, 116u8, 101u8,
110u8, 100u8, 101u8, 100u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 8u8, 1u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 72u8, 110u8, 101u8, 119u8, 95u8, 105u8, 110u8, 116u8,
101u8, 110u8, 100u8, 101u8, 100u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 31u8, 24u8, 208u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 68u8, 73u8, 68u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 49u8,
1u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 119u8, 104u8, 105u8, 99u8,
104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8,
32u8, 112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 132u8, 42u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 97u8, 115u8,
32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 196u8, 42u8,
32u8, 110u8, 101u8, 119u8, 95u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 95u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 78u8, 101u8, 119u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 32u8, 111u8, 102u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 32u8,
99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
253u8, 5u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8,
105u8, 110u8, 103u8, 68u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 68u8, 101u8, 115u8, 116u8,
105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 16u8, 24u8, 83u8, 116u8, 97u8, 107u8, 101u8, 100u8, 0u8, 0u8,
0u8, 20u8, 83u8, 116u8, 97u8, 115u8, 104u8, 0u8, 1u8, 0u8, 40u8, 67u8, 111u8, 110u8, 116u8,
114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 0u8, 2u8, 0u8, 28u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 0u8, 3u8, 0u8, 0u8, 1u8, 6u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 56u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 80u8, 114u8, 101u8, 102u8, 115u8, 0u8, 0u8, 8u8, 1u8, 40u8, 99u8, 111u8,
109u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 5u8, 6u8, 1u8, 28u8, 80u8, 101u8, 114u8,
98u8, 105u8, 108u8, 108u8, 0u8, 1u8, 28u8, 98u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 21u8,
1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 5u8, 6u8, 0u8, 0u8, 6u8, 137u8, 1u8, 0u8,
9u8, 6u8, 0u8, 0u8, 2u8, 65u8, 5u8, 0u8, 13u8, 6u8, 12u8, 52u8, 115u8, 112u8, 95u8, 97u8, 114u8,
105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8, 40u8, 112u8, 101u8, 114u8, 95u8, 116u8,
104u8, 105u8, 110u8, 103u8, 115u8, 28u8, 80u8, 101u8, 114u8, 99u8, 101u8, 110u8, 116u8, 0u8, 0u8,
4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 17u8, 6u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 16u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8,
0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 16u8, 0u8, 0u8, 1u8, 0u8, 0u8, 21u8, 6u8, 0u8,
0u8, 2u8, 57u8, 3u8, 0u8, 25u8, 6u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 72u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8,
116u8, 65u8, 115u8, 115u8, 105u8, 103u8, 110u8, 109u8, 101u8, 110u8, 116u8, 115u8, 0u8, 0u8,
64u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8, 115u8, 49u8, 29u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8,
111u8, 116u8, 101u8, 115u8, 50u8, 41u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8,
115u8, 51u8, 61u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8, 115u8, 52u8, 73u8, 6u8,
0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8, 115u8, 53u8, 85u8, 6u8, 0u8, 0u8, 1u8, 24u8,
118u8, 111u8, 116u8, 101u8, 115u8, 54u8, 97u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8,
101u8, 115u8, 55u8, 109u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8, 115u8, 56u8,
121u8, 6u8, 0u8, 0u8, 1u8, 24u8, 118u8, 111u8, 116u8, 101u8, 115u8, 57u8, 133u8, 6u8, 0u8, 0u8,
1u8, 28u8, 118u8, 111u8, 116u8, 101u8, 115u8, 49u8, 48u8, 145u8, 6u8, 0u8, 0u8, 1u8, 28u8, 118u8,
111u8, 116u8, 101u8, 115u8, 49u8, 49u8, 157u8, 6u8, 0u8, 0u8, 1u8, 28u8, 118u8, 111u8, 116u8,
101u8, 115u8, 49u8, 50u8, 169u8, 6u8, 0u8, 0u8, 1u8, 28u8, 118u8, 111u8, 116u8, 101u8, 115u8,
49u8, 51u8, 181u8, 6u8, 0u8, 0u8, 1u8, 28u8, 118u8, 111u8, 116u8, 101u8, 115u8, 49u8, 52u8,
193u8, 6u8, 0u8, 0u8, 1u8, 28u8, 118u8, 111u8, 116u8, 101u8, 115u8, 49u8, 53u8, 205u8, 6u8, 0u8,
0u8, 1u8, 28u8, 118u8, 111u8, 116u8, 101u8, 115u8, 49u8, 54u8, 217u8, 6u8, 0u8, 0u8, 0u8, 29u8,
6u8, 0u8, 0u8, 2u8, 33u8, 6u8, 0u8, 33u8, 6u8, 0u8, 0u8, 4u8, 8u8, 121u8, 4u8, 37u8, 6u8, 0u8,
37u8, 6u8, 0u8, 0u8, 6u8, 57u8, 3u8, 0u8, 41u8, 6u8, 0u8, 0u8, 2u8, 45u8, 6u8, 0u8, 45u8, 6u8,
0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 49u8, 6u8, 37u8, 6u8, 0u8, 49u8, 6u8, 0u8, 0u8, 4u8, 8u8, 37u8,
6u8, 53u8, 6u8, 0u8, 53u8, 6u8, 0u8, 0u8, 6u8, 57u8, 6u8, 0u8, 57u8, 6u8, 12u8, 52u8, 115u8,
112u8, 95u8, 97u8, 114u8, 105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8, 40u8, 112u8,
101u8, 114u8, 95u8, 116u8, 104u8, 105u8, 110u8, 103u8, 115u8, 24u8, 80u8, 101u8, 114u8, 85u8,
49u8, 54u8, 0u8, 0u8, 4u8, 0u8, 57u8, 3u8, 1u8, 12u8, 117u8, 49u8, 54u8, 0u8, 0u8, 61u8, 6u8,
0u8, 0u8, 2u8, 65u8, 6u8, 0u8, 65u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 69u8, 6u8, 37u8, 6u8,
0u8, 69u8, 6u8, 0u8, 0u8, 3u8, 2u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 73u8, 6u8, 0u8, 0u8, 2u8,
77u8, 6u8, 0u8, 77u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 81u8, 6u8, 37u8, 6u8, 0u8, 81u8, 6u8,
0u8, 0u8, 3u8, 3u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 85u8, 6u8, 0u8, 0u8, 2u8, 89u8, 6u8, 0u8,
89u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 93u8, 6u8, 37u8, 6u8, 0u8, 93u8, 6u8, 0u8, 0u8, 3u8,
4u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 97u8, 6u8, 0u8, 0u8, 2u8, 101u8, 6u8, 0u8, 101u8, 6u8, 0u8,
0u8, 4u8, 12u8, 121u8, 4u8, 105u8, 6u8, 37u8, 6u8, 0u8, 105u8, 6u8, 0u8, 0u8, 3u8, 5u8, 0u8, 0u8,
0u8, 49u8, 6u8, 0u8, 109u8, 6u8, 0u8, 0u8, 2u8, 113u8, 6u8, 0u8, 113u8, 6u8, 0u8, 0u8, 4u8, 12u8,
121u8, 4u8, 117u8, 6u8, 37u8, 6u8, 0u8, 117u8, 6u8, 0u8, 0u8, 3u8, 6u8, 0u8, 0u8, 0u8, 49u8, 6u8,
0u8, 121u8, 6u8, 0u8, 0u8, 2u8, 125u8, 6u8, 0u8, 125u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8,
129u8, 6u8, 37u8, 6u8, 0u8, 129u8, 6u8, 0u8, 0u8, 3u8, 7u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 133u8,
6u8, 0u8, 0u8, 2u8, 137u8, 6u8, 0u8, 137u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 141u8, 6u8,
37u8, 6u8, 0u8, 141u8, 6u8, 0u8, 0u8, 3u8, 8u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 145u8, 6u8, 0u8,
0u8, 2u8, 149u8, 6u8, 0u8, 149u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 153u8, 6u8, 37u8, 6u8,
0u8, 153u8, 6u8, 0u8, 0u8, 3u8, 9u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 157u8, 6u8, 0u8, 0u8, 2u8,
161u8, 6u8, 0u8, 161u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 165u8, 6u8, 37u8, 6u8, 0u8, 165u8,
6u8, 0u8, 0u8, 3u8, 10u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 169u8, 6u8, 0u8, 0u8, 2u8, 173u8, 6u8,
0u8, 173u8, 6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 177u8, 6u8, 37u8, 6u8, 0u8, 177u8, 6u8, 0u8,
0u8, 3u8, 11u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 181u8, 6u8, 0u8, 0u8, 2u8, 185u8, 6u8, 0u8, 185u8,
6u8, 0u8, 0u8, 4u8, 12u8, 121u8, 4u8, 189u8, 6u8, 37u8, 6u8, 0u8, 189u8, 6u8, 0u8, 0u8, 3u8,
12u8, 0u8, 0u8, 0u8, 49u8, 6u8, 0u8, 193u8, 6u8, 0u8, 0u8, 2u8, 197u8, 6u8, 0u8, 197u8, 6u8, 0u8,
0u8, 4u8, 12u8, 121u8, 4u8, 201u8, 6u8, 37u8, 6u8, 0u8, 201u8, 6u8, 0u8, 0u8, 3u8, 13u8, 0u8,
0u8, 0u8, 49u8, 6u8, 0u8, 205u8, 6u8, 0u8, 0u8, 2u8, 209u8, 6u8, 0u8, 209u8, 6u8, 0u8, 0u8, 4u8,
12u8, 121u8, 4u8, 213u8, 6u8, 37u8, 6u8, 0u8, 213u8, 6u8, 0u8, 0u8, 3u8, 14u8, 0u8, 0u8, 0u8,
49u8, 6u8, 0u8, 217u8, 6u8, 0u8, 0u8, 2u8, 221u8, 6u8, 0u8, 221u8, 6u8, 0u8, 0u8, 4u8, 12u8,
121u8, 4u8, 225u8, 6u8, 37u8, 6u8, 0u8, 225u8, 6u8, 0u8, 0u8, 3u8, 15u8, 0u8, 0u8, 0u8, 49u8,
6u8, 0u8, 229u8, 6u8, 8u8, 68u8, 115u8, 112u8, 95u8, 110u8, 112u8, 111u8, 115u8, 95u8, 101u8,
108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 52u8, 69u8, 108u8, 101u8, 99u8, 116u8,
105u8, 111u8, 110u8, 83u8, 99u8, 111u8, 114u8, 101u8, 0u8, 0u8, 12u8, 1u8, 52u8, 109u8, 105u8,
110u8, 105u8, 109u8, 97u8, 108u8, 95u8, 115u8, 116u8, 97u8, 107u8, 101u8, 24u8, 1u8, 60u8, 69u8,
120u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 1u8, 36u8, 115u8, 117u8, 109u8, 95u8, 115u8, 116u8, 97u8, 107u8, 101u8, 24u8, 1u8, 60u8,
69u8, 120u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 1u8, 68u8, 115u8, 117u8, 109u8, 95u8, 115u8, 116u8, 97u8, 107u8, 101u8, 95u8, 115u8,
113u8, 117u8, 97u8, 114u8, 101u8, 100u8, 24u8, 1u8, 60u8, 69u8, 120u8, 116u8, 101u8, 110u8,
100u8, 101u8, 100u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 233u8, 6u8, 8u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8,
103u8, 48u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 105u8, 122u8, 101u8,
0u8, 0u8, 8u8, 1u8, 40u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8,
37u8, 6u8, 1u8, 56u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 1u8, 40u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 115u8, 121u8, 4u8, 1u8, 56u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8,
73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 237u8, 6u8, 12u8, 56u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 24u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 32u8, 115u8,
101u8, 116u8, 95u8, 107u8, 101u8, 121u8, 115u8, 8u8, 1u8, 16u8, 107u8, 101u8, 121u8, 115u8,
241u8, 6u8, 1u8, 28u8, 84u8, 58u8, 58u8, 75u8, 101u8, 121u8, 115u8, 0u8, 1u8, 20u8, 112u8, 114u8,
111u8, 111u8, 102u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 56u8,
228u8, 83u8, 101u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 107u8, 101u8, 121u8, 40u8, 115u8, 41u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8,
97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 96u8, 107u8, 101u8, 121u8, 115u8,
96u8, 46u8, 29u8, 1u8, 65u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 115u8, 101u8, 116u8, 32u8,
105u8, 116u8, 115u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 107u8, 101u8,
121u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 99u8,
111u8, 109u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 46u8, 192u8, 84u8, 104u8, 105u8, 115u8, 32u8, 100u8, 111u8, 101u8, 115u8,
110u8, 39u8, 116u8, 32u8, 116u8, 97u8, 107u8, 101u8, 32u8, 101u8, 102u8, 102u8, 101u8, 99u8,
116u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 46u8, 0u8, 208u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8,
101u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8,
101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 17u8, 1u8, 45u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8,
101u8, 120u8, 105u8, 116u8, 121u8, 58u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 46u8, 32u8,
65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 99u8, 111u8, 115u8, 116u8, 32u8, 100u8, 101u8,
112u8, 101u8, 110u8, 100u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8,
104u8, 32u8, 111u8, 102u8, 152u8, 32u8, 32u8, 96u8, 84u8, 58u8, 58u8, 75u8, 101u8, 121u8, 115u8,
58u8, 58u8, 107u8, 101u8, 121u8, 95u8, 105u8, 100u8, 115u8, 40u8, 41u8, 96u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 102u8, 105u8, 120u8, 101u8, 100u8, 46u8, 236u8,
45u8, 32u8, 68u8, 98u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 96u8, 44u8, 32u8, 96u8,
84u8, 58u8, 58u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 73u8, 100u8, 79u8,
102u8, 96u8, 44u8, 32u8, 96u8, 78u8, 101u8, 120u8, 116u8, 75u8, 101u8, 121u8, 115u8, 96u8, 160u8,
45u8, 32u8, 68u8, 98u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 96u8, 44u8, 32u8,
96u8, 78u8, 101u8, 120u8, 116u8, 75u8, 101u8, 121u8, 115u8, 96u8, 128u8, 45u8, 32u8, 68u8, 98u8,
82u8, 101u8, 97u8, 100u8, 115u8, 32u8, 112u8, 101u8, 114u8, 32u8, 107u8, 101u8, 121u8, 32u8,
105u8, 100u8, 58u8, 32u8, 96u8, 75u8, 101u8, 121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 96u8,
132u8, 45u8, 32u8, 68u8, 98u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8, 112u8, 101u8,
114u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 100u8, 58u8, 32u8, 96u8, 75u8, 101u8, 121u8, 79u8,
119u8, 110u8, 101u8, 114u8, 96u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 62u8, 40u8, 112u8, 117u8, 114u8, 103u8, 101u8, 95u8, 107u8, 101u8, 121u8, 115u8,
0u8, 1u8, 64u8, 200u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 110u8, 121u8,
32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 107u8, 101u8, 121u8, 40u8, 115u8,
41u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 46u8, 0u8, 192u8, 84u8, 104u8,
105u8, 115u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 116u8, 97u8, 107u8,
101u8, 32u8, 101u8, 102u8, 102u8, 101u8, 99u8, 116u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 46u8, 0u8, 85u8, 1u8, 84u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8,
100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 101u8, 105u8, 116u8,
104u8, 101u8, 114u8, 32u8, 98u8, 101u8, 93u8, 1u8, 99u8, 111u8, 110u8, 118u8, 101u8, 114u8,
116u8, 105u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 73u8, 68u8, 32u8, 117u8, 115u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 39u8, 115u8, 32u8,
116u8, 121u8, 112u8, 105u8, 99u8, 97u8, 108u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8,
115u8, 105u8, 110u8, 103u8, 32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 40u8, 116u8,
104u8, 105u8, 115u8, 32u8, 117u8, 115u8, 117u8, 97u8, 108u8, 108u8, 121u8, 81u8, 1u8, 109u8,
101u8, 97u8, 110u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 99u8, 111u8,
110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 41u8, 32u8, 111u8, 114u8, 32u8, 100u8, 105u8, 114u8, 101u8, 99u8, 116u8, 108u8,
121u8, 32u8, 99u8, 111u8, 110u8, 118u8, 101u8, 114u8, 116u8, 105u8, 98u8, 108u8, 101u8, 32u8,
105u8, 110u8, 116u8, 111u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 32u8, 73u8, 68u8, 32u8, 40u8, 119u8, 104u8, 105u8, 99u8, 104u8, 148u8, 117u8,
115u8, 117u8, 97u8, 108u8, 108u8, 121u8, 32u8, 109u8, 101u8, 97u8, 110u8, 115u8, 32u8, 98u8,
101u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 97u8, 1u8, 45u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8,
105u8, 116u8, 121u8, 58u8, 32u8, 96u8, 79u8, 40u8, 49u8, 41u8, 96u8, 32u8, 105u8, 110u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 107u8, 101u8, 121u8, 32u8,
116u8, 121u8, 112u8, 101u8, 115u8, 46u8, 32u8, 65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 99u8,
111u8, 115u8, 116u8, 32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 115u8, 32u8, 111u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 164u8, 32u8, 32u8, 111u8, 102u8, 32u8, 96u8,
84u8, 58u8, 58u8, 75u8, 101u8, 121u8, 115u8, 58u8, 58u8, 107u8, 101u8, 121u8, 95u8, 105u8, 100u8,
115u8, 40u8, 41u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 102u8,
105u8, 120u8, 101u8, 100u8, 46u8, 236u8, 45u8, 32u8, 68u8, 98u8, 82u8, 101u8, 97u8, 100u8, 115u8,
58u8, 32u8, 96u8, 84u8, 58u8, 58u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
73u8, 100u8, 79u8, 102u8, 96u8, 44u8, 32u8, 96u8, 78u8, 101u8, 120u8, 116u8, 75u8, 101u8, 121u8,
115u8, 96u8, 44u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 96u8, 160u8, 45u8, 32u8, 68u8, 98u8, 87u8, 114u8, 105u8, 116u8,
101u8, 115u8, 58u8, 32u8, 96u8, 78u8, 101u8, 120u8, 116u8, 75u8, 101u8, 121u8, 115u8, 96u8, 44u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 96u8, 132u8, 45u8, 32u8, 68u8, 98u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 32u8,
112u8, 101u8, 114u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 100u8, 58u8, 32u8, 96u8, 75u8,
101u8, 121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 96u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 4u8, 37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8,
115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8,
112u8, 101u8, 114u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8,
108u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 241u8, 6u8, 12u8, 96u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
95u8, 100u8, 101u8, 118u8, 101u8, 108u8, 111u8, 112u8, 28u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 44u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 75u8, 101u8, 121u8, 115u8,
0u8, 0u8, 16u8, 1u8, 28u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 169u8, 1u8, 1u8, 9u8,
1u8, 60u8, 47u8, 42u8, 194u8, 171u8, 42u8, 47u8, 32u8, 71u8, 114u8, 97u8, 110u8, 100u8, 112u8,
97u8, 32u8, 47u8, 42u8, 194u8, 187u8, 42u8, 47u8, 32u8, 97u8, 115u8, 32u8, 36u8, 99u8, 114u8,
97u8, 116u8, 101u8, 58u8, 58u8, 66u8, 111u8, 117u8, 110u8, 100u8, 84u8, 111u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 65u8, 112u8, 112u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8,
62u8, 58u8, 58u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 1u8, 16u8, 98u8, 97u8, 98u8, 101u8,
201u8, 4u8, 1u8, 252u8, 60u8, 47u8, 42u8, 194u8, 171u8, 42u8, 47u8, 32u8, 66u8, 97u8, 98u8,
101u8, 32u8, 47u8, 42u8, 194u8, 187u8, 42u8, 47u8, 32u8, 97u8, 115u8, 32u8, 36u8, 99u8, 114u8,
97u8, 116u8, 101u8, 58u8, 58u8, 66u8, 111u8, 117u8, 110u8, 100u8, 84u8, 111u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 65u8, 112u8, 112u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8,
62u8, 58u8, 58u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 1u8, 36u8, 105u8, 109u8, 95u8,
111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 181u8, 1u8, 1u8, 13u8, 1u8, 60u8, 47u8, 42u8, 194u8,
171u8, 42u8, 47u8, 32u8, 73u8, 109u8, 79u8, 110u8, 108u8, 105u8, 110u8, 101u8, 32u8, 47u8, 42u8,
194u8, 187u8, 42u8, 47u8, 32u8, 97u8, 115u8, 32u8, 36u8, 99u8, 114u8, 97u8, 116u8, 101u8, 58u8,
58u8, 66u8, 111u8, 117u8, 110u8, 100u8, 84u8, 111u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 65u8, 112u8, 112u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 62u8, 58u8, 58u8, 80u8, 117u8,
98u8, 108u8, 105u8, 99u8, 0u8, 1u8, 76u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 95u8, 100u8, 105u8, 115u8, 99u8, 111u8, 118u8, 101u8, 114u8, 121u8, 245u8, 6u8, 1u8, 57u8,
1u8, 60u8, 47u8, 42u8, 194u8, 171u8, 42u8, 47u8, 32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 116u8, 121u8, 68u8, 105u8, 115u8, 99u8, 111u8, 118u8, 101u8, 114u8, 121u8, 32u8, 47u8,
42u8, 194u8, 187u8, 42u8, 47u8, 32u8, 97u8, 115u8, 32u8, 36u8, 99u8, 114u8, 97u8, 116u8, 101u8,
58u8, 58u8, 66u8, 111u8, 117u8, 110u8, 100u8, 84u8, 111u8, 82u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 65u8, 112u8, 112u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 62u8, 58u8, 58u8, 10u8,
80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 245u8, 6u8, 12u8, 88u8, 115u8, 112u8, 95u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 95u8, 100u8, 105u8, 115u8, 99u8,
111u8, 118u8, 101u8, 114u8, 121u8, 12u8, 97u8, 112u8, 112u8, 24u8, 80u8, 117u8, 98u8, 108u8,
105u8, 99u8, 0u8, 0u8, 4u8, 0u8, 185u8, 1u8, 1u8, 60u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8,
57u8, 58u8, 58u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 0u8, 0u8, 249u8, 6u8, 12u8, 56u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 24u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8,
1u8, 12u8, 76u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 95u8, 101u8, 113u8, 117u8, 105u8,
118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 8u8, 1u8, 72u8, 101u8, 113u8, 117u8, 105u8,
118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 112u8, 114u8, 111u8, 111u8, 102u8,
253u8, 6u8, 1u8, 188u8, 66u8, 111u8, 120u8, 60u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8,
97u8, 116u8, 105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 60u8, 84u8, 58u8, 58u8, 72u8,
97u8, 115u8, 104u8, 44u8, 32u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 62u8, 62u8, 0u8, 1u8, 60u8, 107u8, 101u8, 121u8, 95u8, 111u8, 119u8,
110u8, 101u8, 114u8, 95u8, 112u8, 114u8, 111u8, 111u8, 102u8, 1u8, 5u8, 1u8, 64u8, 84u8, 58u8,
58u8, 75u8, 101u8, 121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 80u8, 114u8, 111u8, 111u8, 102u8,
0u8, 0u8, 16u8, 9u8, 1u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 118u8, 111u8, 116u8,
101u8, 114u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8,
110u8, 47u8, 109u8, 105u8, 115u8, 98u8, 101u8, 104u8, 97u8, 118u8, 105u8, 111u8, 114u8, 46u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 118u8, 101u8, 114u8, 105u8, 102u8, 121u8, 32u8, 116u8, 104u8, 101u8,
244u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 97u8, 110u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8,
32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8,
32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 248u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8,
32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8, 102u8, 32u8,
98u8, 111u8, 116u8, 104u8, 32u8, 97u8, 114u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 68u8,
119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8,
101u8, 100u8, 46u8, 112u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 95u8, 101u8, 113u8, 117u8,
105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 117u8, 110u8, 115u8, 105u8,
103u8, 110u8, 101u8, 100u8, 8u8, 1u8, 72u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 95u8, 112u8, 114u8, 111u8, 111u8, 102u8, 253u8, 6u8, 1u8, 188u8,
66u8, 111u8, 120u8, 60u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8,
111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 60u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8,
44u8, 32u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 62u8, 62u8, 0u8, 1u8, 60u8, 107u8, 101u8, 121u8, 95u8, 111u8, 119u8, 110u8, 101u8, 114u8,
95u8, 112u8, 114u8, 111u8, 111u8, 102u8, 1u8, 5u8, 1u8, 64u8, 84u8, 58u8, 58u8, 75u8, 101u8,
121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 1u8, 36u8, 9u8,
1u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 32u8,
101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 47u8, 109u8,
105u8, 115u8, 98u8, 101u8, 104u8, 97u8, 118u8, 105u8, 111u8, 114u8, 46u8, 32u8, 84u8, 104u8,
105u8, 115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 118u8, 101u8, 114u8, 105u8, 102u8, 121u8, 32u8, 116u8, 104u8, 101u8, 244u8, 101u8, 113u8,
117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 114u8, 111u8,
111u8, 102u8, 32u8, 97u8, 110u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 112u8, 114u8,
111u8, 111u8, 102u8, 248u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 111u8, 102u8,
102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8, 102u8, 32u8, 98u8, 111u8, 116u8,
104u8, 32u8, 97u8, 114u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 44u8, 32u8, 116u8,
104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 68u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8, 46u8,
0u8, 13u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 97u8, 110u8,
100u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 112u8, 101u8, 99u8, 116u8,
101u8, 100u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 111u8, 110u8, 108u8, 121u8, 21u8, 1u8, 98u8,
108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 105u8, 116u8, 32u8, 40u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 96u8, 86u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 101u8, 85u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8,
96u8, 41u8, 44u8, 32u8, 97u8, 115u8, 32u8, 115u8, 117u8, 99u8, 104u8, 21u8, 1u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8,
32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8,
102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8,
113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 36u8, 114u8, 101u8,
112u8, 111u8, 114u8, 116u8, 101u8, 114u8, 46u8, 48u8, 110u8, 111u8, 116u8, 101u8, 95u8, 115u8,
116u8, 97u8, 108u8, 108u8, 101u8, 100u8, 8u8, 1u8, 20u8, 100u8, 101u8, 108u8, 97u8, 121u8, 16u8,
1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 0u8, 1u8, 108u8, 98u8, 101u8, 115u8, 116u8, 95u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8,
122u8, 101u8, 100u8, 95u8, 98u8, 108u8, 111u8, 99u8, 107u8, 95u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 0u8, 2u8, 28u8, 25u8, 1u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8, 101u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 71u8, 82u8, 65u8, 78u8, 68u8, 80u8,
65u8, 32u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 32u8, 103u8, 97u8, 100u8,
103u8, 101u8, 116u8, 32u8, 104u8, 97u8, 115u8, 37u8, 1u8, 115u8, 116u8, 97u8, 108u8, 108u8,
101u8, 100u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 32u8, 97u8, 32u8, 102u8, 111u8, 114u8, 99u8,
101u8, 100u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8,
101u8, 116u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 29u8, 1u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8,
115u8, 115u8, 105u8, 111u8, 110u8, 44u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 101u8,
110u8, 97u8, 99u8, 116u8, 101u8, 100u8, 32u8, 96u8, 100u8, 101u8, 108u8, 97u8, 121u8, 96u8, 32u8,
98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8,
104u8, 97u8, 116u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8, 100u8, 101u8, 108u8, 97u8, 121u8, 17u8,
1u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 104u8, 105u8, 103u8,
104u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 116u8, 111u8, 32u8, 115u8, 97u8,
102u8, 101u8, 108u8, 121u8, 32u8, 97u8, 115u8, 115u8, 117u8, 109u8, 101u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 115u8,
105u8, 103u8, 110u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 37u8,
1u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8,
45u8, 111u8, 114u8, 103u8, 101u8, 100u8, 32u8, 40u8, 101u8, 46u8, 103u8, 46u8, 32u8, 49u8, 48u8,
48u8, 48u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 41u8, 46u8, 32u8, 84u8, 104u8, 101u8,
32u8, 71u8, 82u8, 65u8, 78u8, 68u8, 80u8, 65u8, 32u8, 118u8, 111u8, 116u8, 101u8, 114u8, 115u8,
37u8, 1u8, 119u8, 105u8, 108u8, 108u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
116u8, 121u8, 32u8, 115u8, 101u8, 116u8, 32u8, 117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 102u8, 105u8, 110u8, 97u8, 108u8,
105u8, 122u8, 101u8, 100u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 115u8, 32u8, 98u8,
97u8, 115u8, 101u8, 46u8, 88u8, 79u8, 110u8, 108u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 97u8,
98u8, 108u8, 101u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 4u8, 37u8, 1u8,
67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
46u8, 253u8, 6u8, 8u8, 76u8, 115u8, 112u8, 95u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 116u8,
121u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 68u8, 69u8, 113u8, 117u8, 105u8,
118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 8u8, 4u8,
72u8, 1u8, 36u8, 4u8, 78u8, 1u8, 16u8, 0u8, 8u8, 1u8, 24u8, 115u8, 101u8, 116u8, 95u8, 105u8,
100u8, 32u8, 1u8, 20u8, 83u8, 101u8, 116u8, 73u8, 100u8, 0u8, 1u8, 48u8, 101u8, 113u8, 117u8,
105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 1u8, 7u8, 1u8, 72u8, 69u8, 113u8,
117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 60u8, 72u8, 44u8, 32u8, 78u8,
62u8, 0u8, 0u8, 1u8, 7u8, 8u8, 76u8, 115u8, 112u8, 95u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8,
116u8, 121u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 48u8, 69u8, 113u8, 117u8,
105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 8u8, 4u8, 72u8, 1u8, 36u8, 4u8,
78u8, 1u8, 16u8, 1u8, 8u8, 28u8, 80u8, 114u8, 101u8, 118u8, 111u8, 116u8, 101u8, 4u8, 0u8, 5u8,
7u8, 1u8, 57u8, 1u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 58u8, 58u8, 69u8, 113u8,
117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 103u8, 114u8, 97u8, 110u8,
100u8, 112u8, 97u8, 58u8, 58u8, 80u8, 114u8, 101u8, 118u8, 111u8, 116u8, 101u8, 60u8, 72u8, 44u8,
32u8, 78u8, 62u8, 44u8, 10u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 62u8, 0u8, 0u8, 0u8, 36u8, 80u8, 114u8,
101u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 4u8, 0u8, 25u8, 7u8, 1u8, 65u8, 1u8, 103u8,
114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 58u8, 58u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8,
99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 58u8, 58u8,
80u8, 114u8, 101u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 60u8, 72u8, 44u8, 32u8, 78u8, 62u8,
44u8, 10u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 62u8, 0u8, 1u8, 0u8, 0u8, 5u8, 7u8, 8u8, 64u8, 102u8,
105u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8,
97u8, 48u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8,
12u8, 8u8, 73u8, 100u8, 1u8, 169u8, 1u8, 4u8, 86u8, 1u8, 9u8, 7u8, 4u8, 83u8, 1u8, 13u8, 7u8,
0u8, 16u8, 1u8, 48u8, 114u8, 111u8, 117u8, 110u8, 100u8, 95u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 169u8, 1u8, 1u8, 8u8, 73u8, 100u8, 0u8, 1u8, 20u8, 102u8, 105u8, 114u8,
115u8, 116u8, 21u8, 7u8, 1u8, 24u8, 40u8, 86u8, 44u8, 32u8, 83u8, 41u8, 0u8, 1u8, 24u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 21u8, 7u8, 1u8, 24u8, 40u8, 86u8, 44u8, 32u8, 83u8, 41u8, 0u8,
0u8, 9u8, 7u8, 8u8, 64u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 95u8, 103u8,
114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 28u8, 80u8, 114u8, 101u8, 118u8, 111u8, 116u8, 101u8,
8u8, 4u8, 72u8, 1u8, 36u8, 4u8, 78u8, 1u8, 16u8, 0u8, 8u8, 1u8, 44u8, 116u8, 97u8, 114u8, 103u8,
101u8, 116u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 4u8, 72u8, 0u8, 1u8, 52u8, 116u8, 97u8,
114u8, 103u8, 101u8, 116u8, 95u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 16u8, 1u8, 4u8, 78u8,
0u8, 0u8, 13u8, 7u8, 12u8, 76u8, 115u8, 112u8, 95u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8,
116u8, 121u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 12u8, 97u8, 112u8, 112u8,
36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 0u8, 17u8, 7u8,
1u8, 72u8, 101u8, 100u8, 50u8, 53u8, 53u8, 49u8, 57u8, 58u8, 58u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 17u8, 7u8, 12u8, 28u8, 115u8, 112u8, 95u8, 99u8,
111u8, 114u8, 101u8, 28u8, 101u8, 100u8, 50u8, 53u8, 53u8, 49u8, 57u8, 36u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 0u8, 13u8, 2u8, 1u8, 32u8, 91u8, 117u8,
56u8, 59u8, 32u8, 54u8, 52u8, 93u8, 0u8, 0u8, 21u8, 7u8, 0u8, 0u8, 4u8, 8u8, 9u8, 7u8, 13u8, 7u8,
0u8, 25u8, 7u8, 8u8, 64u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 116u8, 121u8, 95u8, 103u8,
114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 48u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8,
97u8, 116u8, 105u8, 111u8, 110u8, 12u8, 8u8, 73u8, 100u8, 1u8, 169u8, 1u8, 4u8, 86u8, 1u8, 29u8,
7u8, 4u8, 83u8, 1u8, 13u8, 7u8, 0u8, 16u8, 1u8, 48u8, 114u8, 111u8, 117u8, 110u8, 100u8, 95u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 169u8, 1u8, 1u8, 8u8, 73u8, 100u8, 0u8,
1u8, 20u8, 102u8, 105u8, 114u8, 115u8, 116u8, 33u8, 7u8, 1u8, 24u8, 40u8, 86u8, 44u8, 32u8, 83u8,
41u8, 0u8, 1u8, 24u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 33u8, 7u8, 1u8, 24u8, 40u8, 86u8,
44u8, 32u8, 83u8, 41u8, 0u8, 0u8, 29u8, 7u8, 8u8, 64u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8,
116u8, 121u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 36u8, 80u8, 114u8, 101u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 8u8, 4u8, 72u8, 1u8, 36u8, 4u8, 78u8, 1u8, 16u8, 0u8,
8u8, 1u8, 44u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8,
1u8, 4u8, 72u8, 0u8, 1u8, 52u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 16u8, 1u8, 4u8, 78u8, 0u8, 0u8, 33u8, 7u8, 0u8, 0u8, 4u8, 8u8, 29u8,
7u8, 13u8, 7u8, 0u8, 37u8, 7u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8,
109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 4u8, 36u8, 104u8, 101u8, 97u8,
114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 8u8, 1u8, 36u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8,
101u8, 97u8, 116u8, 41u8, 7u8, 1u8, 100u8, 72u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8,
116u8, 60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 62u8, 0u8, 1u8, 36u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 61u8,
7u8, 1u8, 188u8, 60u8, 84u8, 58u8, 58u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 73u8, 100u8, 32u8, 97u8, 115u8, 32u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
65u8, 112u8, 112u8, 80u8, 117u8, 98u8, 108u8, 105u8, 99u8, 62u8, 58u8, 58u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 36u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 97u8, 1u8, 45u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8,
120u8, 105u8, 116u8, 121u8, 58u8, 32u8, 96u8, 79u8, 40u8, 75u8, 32u8, 43u8, 32u8, 69u8, 41u8,
96u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 75u8, 32u8, 105u8, 115u8, 32u8, 108u8,
101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 75u8, 101u8, 121u8, 115u8,
96u8, 32u8, 40u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 46u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 95u8, 108u8, 101u8, 110u8, 41u8, 32u8,
97u8, 110u8, 100u8, 32u8, 69u8, 32u8, 105u8, 115u8, 216u8, 32u8, 32u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8,
101u8, 97u8, 116u8, 46u8, 110u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 95u8, 115u8, 116u8,
97u8, 116u8, 101u8, 46u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 95u8, 97u8,
100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 96u8, 136u8, 32u8, 32u8, 45u8, 32u8, 96u8, 79u8, 40u8,
75u8, 41u8, 96u8, 58u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8,
102u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 96u8, 75u8, 96u8, 172u8, 32u8, 32u8,
45u8, 32u8, 96u8, 79u8, 40u8, 69u8, 41u8, 96u8, 58u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8,
105u8, 110u8, 103u8, 47u8, 101u8, 110u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8,
102u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 96u8, 69u8, 96u8, 57u8, 1u8, 45u8,
32u8, 68u8, 98u8, 82u8, 101u8, 97u8, 100u8, 115u8, 58u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 96u8, 86u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 96u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 96u8, 67u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 96u8, 44u8, 32u8, 96u8,
75u8, 101u8, 121u8, 115u8, 96u8, 44u8, 88u8, 32u8, 32u8, 96u8, 82u8, 101u8, 99u8, 101u8, 105u8,
118u8, 101u8, 100u8, 72u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 115u8, 96u8,
128u8, 45u8, 32u8, 68u8, 98u8, 87u8, 114u8, 105u8, 116u8, 101u8, 115u8, 58u8, 32u8, 96u8, 82u8,
101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 100u8, 72u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8,
97u8, 116u8, 115u8, 96u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
62u8, 4u8, 37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8,
101u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 46u8, 41u8, 7u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 36u8, 72u8, 101u8, 97u8,
114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 4u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 0u8, 20u8, 1u8, 48u8, 98u8, 108u8, 111u8, 99u8, 107u8,
95u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8,
78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 52u8, 110u8, 101u8, 116u8, 119u8, 111u8, 114u8,
107u8, 95u8, 115u8, 116u8, 97u8, 116u8, 101u8, 45u8, 7u8, 1u8, 72u8, 79u8, 112u8, 97u8, 113u8,
117u8, 101u8, 78u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 83u8, 116u8, 97u8, 116u8, 101u8,
0u8, 1u8, 52u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 105u8, 110u8, 100u8,
101u8, 120u8, 16u8, 1u8, 48u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 1u8, 60u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 36u8, 65u8, 117u8, 116u8, 104u8, 73u8,
110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 56u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 115u8, 95u8, 108u8, 101u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 45u8, 7u8,
12u8, 28u8, 115u8, 112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 32u8, 111u8, 102u8, 102u8, 99u8,
104u8, 97u8, 105u8, 110u8, 72u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8, 78u8, 101u8, 116u8,
119u8, 111u8, 114u8, 107u8, 83u8, 116u8, 97u8, 116u8, 101u8, 0u8, 0u8, 8u8, 1u8, 28u8, 112u8,
101u8, 101u8, 114u8, 95u8, 105u8, 100u8, 49u8, 7u8, 1u8, 48u8, 79u8, 112u8, 97u8, 113u8, 117u8,
101u8, 80u8, 101u8, 101u8, 114u8, 73u8, 100u8, 0u8, 1u8, 72u8, 101u8, 120u8, 116u8, 101u8, 114u8,
110u8, 97u8, 108u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 101u8, 115u8, 53u8,
7u8, 1u8, 80u8, 86u8, 101u8, 99u8, 60u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8, 77u8, 117u8,
108u8, 116u8, 105u8, 97u8, 100u8, 100u8, 114u8, 62u8, 0u8, 0u8, 49u8, 7u8, 8u8, 28u8, 115u8,
112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 48u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8, 80u8,
101u8, 101u8, 114u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8,
117u8, 56u8, 62u8, 0u8, 0u8, 53u8, 7u8, 0u8, 0u8, 2u8, 57u8, 7u8, 0u8, 57u8, 7u8, 12u8, 28u8,
115u8, 112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 32u8, 111u8, 102u8, 102u8, 99u8, 104u8, 97u8,
105u8, 110u8, 60u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8, 77u8, 117u8, 108u8, 116u8, 105u8,
97u8, 100u8, 100u8, 114u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 0u8, 61u8, 7u8, 16u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 28u8, 115u8, 114u8, 50u8, 53u8,
53u8, 49u8, 57u8, 44u8, 97u8, 112u8, 112u8, 95u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8,
36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 0u8, 65u8, 7u8,
1u8, 72u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 58u8, 58u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 65u8, 7u8, 12u8, 28u8, 115u8, 112u8, 95u8, 99u8,
111u8, 114u8, 101u8, 28u8, 115u8, 114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 36u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 0u8, 13u8, 2u8, 1u8, 32u8, 91u8, 117u8,
56u8, 59u8, 32u8, 54u8, 52u8, 93u8, 0u8, 0u8, 69u8, 7u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 115u8, 117u8, 100u8, 111u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8,
0u8, 1u8, 16u8, 16u8, 115u8, 117u8, 100u8, 111u8, 4u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8,
201u8, 5u8, 1u8, 96u8, 66u8, 111u8, 120u8, 60u8, 60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 67u8,
111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 0u8,
40u8, 53u8, 1u8, 65u8, 117u8, 116u8, 104u8, 101u8, 110u8, 116u8, 105u8, 99u8, 97u8, 116u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 100u8, 111u8, 32u8, 107u8, 101u8, 121u8,
32u8, 97u8, 110u8, 100u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8,
115u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 82u8, 111u8, 111u8, 116u8, 96u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 204u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8,
110u8, 101u8, 100u8, 95u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 28u8, 45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 96u8, 45u8, 32u8, 76u8, 105u8,
109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 92u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 68u8, 66u8,
32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 101u8, 118u8, 101u8, 110u8, 116u8, 41u8,
46u8, 196u8, 45u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8,
100u8, 101u8, 114u8, 105u8, 118u8, 97u8, 116u8, 105u8, 118u8, 101u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 96u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
43u8, 32u8, 49u8, 48u8, 44u8, 48u8, 48u8, 48u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 84u8, 115u8, 117u8, 100u8, 111u8, 95u8, 117u8, 110u8, 99u8,
104u8, 101u8, 99u8, 107u8, 101u8, 100u8, 95u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 8u8,
1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 201u8, 5u8, 1u8, 96u8, 66u8, 111u8, 120u8, 60u8, 60u8, 84u8,
32u8, 97u8, 115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8, 97u8,
108u8, 108u8, 62u8, 0u8, 1u8, 28u8, 95u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 1u8,
24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 40u8, 53u8, 1u8, 65u8, 117u8, 116u8,
104u8, 101u8, 110u8, 116u8, 105u8, 99u8, 97u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 117u8, 100u8, 111u8, 32u8, 107u8, 101u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 97u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 96u8, 82u8, 111u8, 111u8, 116u8, 96u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 46u8, 45u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
99u8, 104u8, 101u8, 99u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 116u8, 104u8, 101u8, 176u8, 83u8, 117u8, 100u8, 111u8,
32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8,
102u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8, 0u8, 204u8, 84u8,
104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8,
105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 28u8, 45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 204u8, 45u8, 32u8,
84u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 105u8, 115u8, 32u8, 100u8,
101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 62u8, 28u8, 115u8, 101u8, 116u8, 95u8, 107u8, 101u8, 121u8, 4u8, 1u8, 12u8,
110u8, 101u8, 119u8, 65u8, 5u8, 1u8, 140u8, 60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8,
117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8,
107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 2u8, 36u8,
113u8, 1u8, 65u8, 117u8, 116u8, 104u8, 101u8, 110u8, 116u8, 105u8, 99u8, 97u8, 116u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
115u8, 117u8, 100u8, 111u8, 32u8, 107u8, 101u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 115u8,
101u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 32u8, 40u8, 96u8, 110u8, 101u8, 119u8,
96u8, 41u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8,
117u8, 100u8, 111u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 204u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8,
110u8, 101u8, 100u8, 95u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 28u8, 45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 96u8, 45u8, 32u8, 76u8, 105u8,
109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 64u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 68u8, 66u8,
32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 28u8, 115u8, 117u8, 100u8, 111u8, 95u8, 97u8, 115u8, 8u8, 1u8,
12u8, 119u8, 104u8, 111u8, 65u8, 5u8, 1u8, 140u8, 60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8,
107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8, 116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8,
111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8, 111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 1u8,
16u8, 99u8, 97u8, 108u8, 108u8, 201u8, 5u8, 1u8, 96u8, 66u8, 111u8, 120u8, 60u8, 60u8, 84u8,
32u8, 97u8, 115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8, 97u8,
108u8, 108u8, 62u8, 0u8, 3u8, 44u8, 77u8, 1u8, 65u8, 117u8, 116u8, 104u8, 101u8, 110u8, 116u8,
105u8, 99u8, 97u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 100u8,
111u8, 32u8, 107u8, 101u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
96u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 96u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 64u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 204u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 95u8, 83u8, 105u8, 103u8,
110u8, 101u8, 100u8, 95u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 62u8, 28u8, 45u8, 32u8, 79u8, 40u8, 49u8, 41u8, 46u8, 96u8, 45u8, 32u8, 76u8, 105u8,
109u8, 105u8, 116u8, 101u8, 100u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
114u8, 101u8, 97u8, 100u8, 115u8, 46u8, 92u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 68u8, 66u8,
32u8, 119u8, 114u8, 105u8, 116u8, 101u8, 32u8, 40u8, 101u8, 118u8, 101u8, 110u8, 116u8, 41u8,
46u8, 196u8, 45u8, 32u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 111u8, 102u8, 32u8,
100u8, 101u8, 114u8, 105u8, 118u8, 97u8, 116u8, 105u8, 118u8, 101u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 96u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
43u8, 32u8, 49u8, 48u8, 44u8, 48u8, 48u8, 48u8, 46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
73u8, 7u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 96u8, 60u8, 114u8, 101u8, 103u8,
105u8, 115u8, 116u8, 101u8, 114u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 4u8, 1u8, 24u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 0u8, 36u8, 5u8, 1u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 115u8,
32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
111u8, 114u8, 32u8, 101u8, 120u8, 116u8, 101u8, 110u8, 100u8, 115u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8,
17u8, 1u8, 78u8, 66u8, 58u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 99u8, 97u8, 114u8, 114u8, 121u8, 32u8, 102u8, 111u8,
114u8, 119u8, 97u8, 114u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 114u8, 101u8, 110u8,
101u8, 119u8, 105u8, 110u8, 103u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 201u8, 1u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 73u8, 116u8, 32u8, 99u8, 111u8,
110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 40u8, 105u8, 46u8,
101u8, 46u8, 32u8, 119u8, 104u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 41u8, 46u8,
120u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8,
114u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 88u8, 97u8, 99u8, 99u8, 101u8,
112u8, 116u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8, 116u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 4u8, 1u8, 28u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8,
1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 48u8, 104u8, 65u8, 99u8, 99u8, 101u8, 112u8, 116u8,
115u8, 32u8, 97u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 46u8, 0u8, 45u8, 1u8, 67u8, 111u8, 110u8, 115u8, 117u8, 109u8,
101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8,
100u8, 96u8, 32u8, 40u8, 115u8, 101u8, 101u8, 32u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 58u8, 58u8, 99u8, 111u8,
110u8, 115u8, 117u8, 109u8, 101u8, 95u8, 97u8, 117u8, 116u8, 104u8, 96u8, 41u8, 46u8, 37u8, 1u8,
78u8, 66u8, 58u8, 32u8, 84u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 44u8, 32u8, 99u8,
97u8, 108u8, 108u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 117u8, 116u8,
104u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
201u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 73u8, 116u8,
32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
40u8, 105u8, 46u8, 101u8, 46u8, 32u8, 119u8, 104u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8,
101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8,
110u8, 41u8, 46u8, 248u8, 42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8,
32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 105u8, 1u8, 45u8, 32u8, 96u8, 65u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 69u8, 114u8, 114u8, 111u8, 114u8, 58u8,
58u8, 66u8, 97u8, 100u8, 84u8, 121u8, 112u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8,
117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
116u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 124u8, 97u8,
99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 111u8, 119u8,
110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 4u8, 1u8, 28u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8,
117u8, 54u8, 52u8, 0u8, 2u8, 24u8, 236u8, 84u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 32u8, 97u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 46u8, 37u8, 1u8, 78u8, 66u8, 58u8, 32u8, 84u8,
111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 44u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 32u8, 102u8, 117u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 201u8, 1u8, 42u8, 32u8,
96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 73u8, 116u8, 32u8, 99u8, 111u8,
110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 40u8, 105u8, 46u8,
101u8, 46u8, 32u8, 119u8, 104u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 41u8, 46u8,
45u8, 1u8, 42u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 73u8,
68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 48u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 97u8,
115u8, 115u8, 101u8, 116u8, 28u8, 1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 249u8, 1u8, 1u8, 36u8,
65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8, 1u8, 24u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 36u8,
100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 1u8, 40u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8,
225u8, 1u8, 1u8, 36u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8,
44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 233u8, 1u8,
1u8, 80u8, 86u8, 101u8, 99u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 62u8, 0u8, 1u8, 52u8, 102u8, 117u8, 110u8, 100u8,
105u8, 110u8, 103u8, 95u8, 114u8, 111u8, 117u8, 110u8, 100u8, 77u8, 7u8, 1u8, 96u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8,
117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 62u8, 0u8, 1u8, 40u8, 100u8, 105u8, 115u8, 97u8,
98u8, 108u8, 101u8, 95u8, 105u8, 117u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
3u8, 104u8, 45u8, 1u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 115u8,
32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 99u8, 117u8, 114u8, 105u8, 116u8,
121u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 44u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 105u8, 110u8, 103u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 115u8,
32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 46u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8,
116u8, 97u8, 108u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 121u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 98u8, 101u8,
32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 32u8, 84u8, 111u8, 32u8, 109u8, 105u8, 110u8, 116u8,
32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 44u8, 32u8, 117u8, 115u8, 101u8, 32u8, 96u8,
105u8, 115u8, 115u8, 117u8, 101u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 197u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 40u8, 105u8, 46u8, 101u8, 46u8, 32u8, 119u8, 104u8, 111u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8,
99u8, 116u8, 105u8, 111u8, 110u8, 41u8, 46u8, 132u8, 42u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8,
96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 176u8, 42u8, 32u8,
96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 115u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 45u8,
1u8, 42u8, 32u8, 96u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 96u8, 32u8,
45u8, 32u8, 97u8, 32u8, 98u8, 111u8, 111u8, 108u8, 101u8, 97u8, 110u8, 32u8, 116u8, 111u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8,
105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 105u8, 108u8, 105u8, 116u8, 121u8, 32u8, 115u8, 116u8,
97u8, 116u8, 117u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 46u8, 128u8, 42u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8,
116u8, 121u8, 112u8, 101u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 192u8, 42u8, 32u8, 96u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8,
97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8,
115u8, 46u8, 184u8, 42u8, 32u8, 96u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8,
114u8, 111u8, 117u8, 110u8, 100u8, 96u8, 32u8, 45u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 46u8, 77u8, 1u8, 42u8, 32u8, 96u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 95u8, 105u8, 117u8, 96u8, 32u8, 45u8, 32u8, 119u8, 104u8, 101u8, 116u8,
104u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 118u8,
101u8, 115u8, 116u8, 111u8, 114u8, 32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8,
115u8, 115u8, 32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8, 101u8, 109u8, 101u8, 110u8, 116u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 100u8, 46u8, 200u8, 32u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8,
97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8,
101u8, 100u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8,
0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 252u8, 45u8, 32u8, 96u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8,
110u8, 121u8, 32u8, 111u8, 102u8, 32u8, 96u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8,
105u8, 101u8, 114u8, 115u8, 96u8, 32u8, 97u8, 114u8, 101u8, 32u8, 105u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 46u8, 81u8, 1u8, 45u8, 32u8, 96u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8,
103u8, 116u8, 104u8, 79u8, 102u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8,
69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8,
110u8, 97u8, 109u8, 101u8, 96u8, 39u8, 115u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8,
32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 96u8, 84u8, 58u8, 58u8, 65u8, 115u8,
115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8,
116u8, 104u8, 96u8, 46u8, 85u8, 1u8, 45u8, 32u8, 96u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8,
101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8,
32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8,
114u8, 111u8, 117u8, 110u8, 100u8, 32u8, 105u8, 115u8, 32u8, 108u8, 111u8, 110u8, 103u8, 101u8,
114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 124u8, 96u8, 84u8, 58u8, 58u8, 70u8, 117u8, 110u8, 100u8,
105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8,
120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 96u8, 46u8, 212u8, 45u8, 32u8, 96u8, 65u8, 115u8,
115u8, 101u8, 116u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 67u8, 114u8, 101u8, 97u8,
116u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8,
119u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 93u8, 1u8, 45u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 39u8, 115u8, 32u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 32u8, 105u8, 115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8,
32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 96u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 46u8,
109u8, 97u8, 120u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 96u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 40u8, 112u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 46u8, 161u8, 2u8, 45u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 78u8, 111u8, 116u8, 65u8, 115u8, 99u8, 105u8, 105u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 121u8, 101u8, 116u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8,
114u8, 101u8, 100u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 110u8, 111u8, 110u8, 45u8, 97u8, 115u8, 99u8, 105u8, 105u8, 32u8,
112u8, 114u8, 105u8, 110u8, 116u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8,
97u8, 99u8, 116u8, 101u8, 114u8, 115u8, 32u8, 40u8, 102u8, 114u8, 111u8, 109u8, 32u8, 99u8,
111u8, 100u8, 101u8, 32u8, 51u8, 50u8, 32u8, 116u8, 111u8, 32u8, 49u8, 50u8, 54u8, 41u8, 32u8,
111u8, 114u8, 32u8, 97u8, 110u8, 121u8, 32u8, 99u8, 104u8, 97u8, 114u8, 97u8, 99u8, 116u8, 101u8,
114u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8,
111u8, 99u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8,
96u8, 92u8, 48u8, 96u8, 46u8, 0u8, 56u8, 35u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 24u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 4u8, 1u8, 24u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 4u8, 44u8, 188u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 115u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 109u8, 105u8,
110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 180u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8,
111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 148u8, 42u8, 32u8,
96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 192u8, 45u8, 32u8, 96u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 70u8,
114u8, 111u8, 122u8, 101u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 32u8, 117u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 4u8, 1u8,
24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 5u8, 44u8, 196u8, 85u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 115u8, 32u8,
116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8,
109u8, 105u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 103u8,
105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 180u8, 42u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 176u8,
42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 176u8, 45u8, 32u8,
96u8, 78u8, 111u8, 116u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 32u8, 121u8, 101u8, 116u8, 46u8,
0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 48u8, 114u8, 101u8, 110u8, 97u8,
109u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 16u8, 110u8,
97u8, 109u8, 101u8, 249u8, 1u8, 1u8, 36u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8,
101u8, 0u8, 6u8, 52u8, 88u8, 82u8, 101u8, 110u8, 97u8, 109u8, 101u8, 115u8, 32u8, 97u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 180u8, 42u8, 32u8,
96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8,
46u8, 148u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 148u8, 42u8, 32u8, 96u8,
110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
119u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 17u8, 1u8, 45u8, 32u8, 96u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8,
104u8, 79u8, 102u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 69u8, 120u8,
99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8,
105u8, 115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8,
110u8, 96u8, 96u8, 84u8, 58u8, 58u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8,
77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8,
65u8, 115u8, 115u8, 101u8, 116u8, 20u8, 105u8, 115u8, 115u8, 117u8, 101u8, 8u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 7u8, 44u8, 164u8, 73u8, 115u8, 115u8, 117u8, 101u8, 44u8, 32u8, 111u8,
114u8, 32u8, 109u8, 105u8, 110u8, 116u8, 44u8, 32u8, 110u8, 101u8, 119u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 114u8, 44u8, 172u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8,
32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8,
114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 96u8, 42u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 148u8, 42u8, 32u8, 96u8, 97u8, 109u8, 111u8,
117u8, 110u8, 116u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 32u8, 105u8, 115u8, 115u8, 117u8,
101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8, 42u8, 32u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 24u8, 114u8, 101u8, 100u8, 101u8, 101u8,
109u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 8u8, 60u8, 205u8, 1u8, 82u8, 101u8, 100u8,
101u8, 101u8, 109u8, 115u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 98u8, 121u8, 32u8, 114u8, 101u8, 100u8, 117u8,
99u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 39u8, 115u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 121u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 107u8, 101u8, 110u8, 46u8, 148u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8, 117u8, 101u8,
96u8, 32u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 100u8, 101u8, 101u8, 109u8,
46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 97u8, 1u8, 45u8, 32u8,
96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 96u8,
32u8, 73u8, 102u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 115u8,
111u8, 109u8, 101u8, 111u8, 110u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 112u8, 114u8, 105u8, 97u8,
116u8, 101u8, 32u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 89u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 71u8, 114u8,
97u8, 110u8, 117u8, 108u8, 97u8, 114u8, 105u8, 116u8, 121u8, 96u8, 32u8, 73u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8,
98u8, 121u8, 32u8, 49u8, 48u8, 94u8, 54u8, 32u8, 102u8, 111u8, 114u8, 32u8, 110u8, 111u8, 110u8,
45u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 115u8, 141u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8,
105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8, 115u8, 32u8, 100u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8,
101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 102u8, 114u8, 101u8, 101u8, 32u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8,
42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 56u8, 109u8, 97u8,
107u8, 101u8, 95u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 4u8, 1u8, 24u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 9u8, 44u8, 148u8, 77u8, 97u8, 107u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8,
110u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 236u8, 45u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 65u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 105u8, 115u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 100u8, 105u8, 118u8, 105u8, 115u8,
105u8, 98u8, 108u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 52u8,
97u8, 100u8, 100u8, 95u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 8u8, 1u8,
16u8, 100u8, 111u8, 99u8, 115u8, 81u8, 7u8, 1u8, 52u8, 86u8, 101u8, 99u8, 60u8, 68u8, 111u8,
99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 10u8, 36u8, 128u8, 65u8,
100u8, 100u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 184u8, 42u8, 32u8, 96u8, 100u8,
111u8, 99u8, 115u8, 96u8, 32u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 52u8,
35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8,
42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 64u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
95u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 8u8, 1u8, 12u8, 105u8, 100u8,
115u8, 1u8, 3u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8,
1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 11u8, 36u8, 140u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8,
97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 200u8, 42u8, 32u8, 96u8,
105u8, 100u8, 115u8, 96u8, 32u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
32u8, 105u8, 100u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 68u8,
115u8, 101u8, 116u8, 95u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8, 114u8, 111u8,
117u8, 110u8, 100u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 221u8, 1u8,
1u8, 64u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8,
78u8, 97u8, 109u8, 101u8, 0u8, 12u8, 52u8, 172u8, 83u8, 101u8, 116u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 41u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8,
114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 148u8, 42u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 228u8, 42u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8,
96u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 115u8, 105u8, 114u8, 101u8,
100u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8,
101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8,
32u8, 105u8, 102u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8,
96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 105u8, 115u8, 32u8, 103u8, 114u8, 101u8, 97u8,
116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 124u8, 96u8, 84u8, 58u8, 58u8, 70u8, 117u8,
110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8,
77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8,
65u8, 115u8, 115u8, 101u8, 116u8, 72u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 95u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 8u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 233u8,
1u8, 1u8, 80u8, 86u8, 101u8, 99u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 62u8, 0u8, 13u8, 52u8, 120u8, 85u8, 112u8,
100u8, 97u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 41u8, 1u8,
42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 97u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 148u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 89u8, 1u8, 42u8, 32u8,
96u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 96u8, 32u8,
45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8,
101u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 111u8, 114u8, 109u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 118u8,
101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 112u8, 97u8, 105u8, 114u8, 115u8,
204u8, 32u8, 32u8, 32u8, 111u8, 102u8, 32u8, 96u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
102u8, 105u8, 101u8, 114u8, 84u8, 121u8, 112u8, 101u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8,
96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8,
101u8, 114u8, 96u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 49u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
102u8, 105u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 97u8, 110u8, 121u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 46u8, 0u8,
52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 80u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 8u8,
1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 0u8, 1u8, 72u8, 101u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 95u8,
115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 85u8, 7u8, 1u8, 56u8, 69u8, 99u8,
100u8, 115u8, 97u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 14u8, 56u8,
252u8, 67u8, 108u8, 97u8, 105u8, 109u8, 32u8, 97u8, 32u8, 115u8, 121u8, 115u8, 116u8, 101u8,
109u8, 97u8, 116u8, 105u8, 99u8, 97u8, 108u8, 108u8, 121u8, 32u8, 114u8, 101u8, 115u8, 101u8,
114u8, 118u8, 101u8, 100u8, 32u8, 80u8, 111u8, 108u8, 121u8, 109u8, 97u8, 116u8, 104u8, 32u8,
67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 32u8, 40u8, 80u8, 77u8, 67u8, 41u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 172u8, 97u8, 110u8, 100u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 105u8, 116u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 61u8, 1u8, 84u8, 111u8, 32u8,
118u8, 101u8, 114u8, 105u8, 102u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
105u8, 110u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 111u8, 111u8, 107u8, 115u8, 44u8, 17u8, 1u8, 97u8, 110u8, 32u8, 96u8, 101u8, 116u8, 104u8,
101u8, 114u8, 101u8, 117u8, 109u8, 95u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8,
101u8, 96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8,
32u8, 68u8, 73u8, 68u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 115u8,
115u8, 97u8, 103u8, 101u8, 168u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 112u8,
114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
49u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8,
115u8, 105u8, 99u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8,
115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 97u8, 116u8, 105u8, 99u8, 97u8, 108u8, 108u8, 121u8,
32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 80u8, 77u8, 67u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 81u8, 1u8, 45u8, 32u8, 96u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 103u8, 105u8,
115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
101u8, 100u8, 44u8, 32u8, 101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 98u8, 121u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 46u8, 29u8, 1u8, 45u8, 32u8, 96u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 39u8, 115u8, 32u8, 114u8, 101u8,
103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 112u8, 45u8, 32u8, 96u8, 66u8, 97u8,
100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 110u8, 111u8,
116u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 73u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8,
83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 101u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 95u8,
115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 41u8, 1u8, 45u8, 32u8, 96u8,
78u8, 111u8, 116u8, 65u8, 110u8, 79u8, 119u8, 110u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 80u8, 77u8, 67u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8,
88u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 95u8, 99u8, 108u8, 97u8, 115u8, 115u8,
105u8, 99u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 12u8, 1u8, 84u8, 99u8, 108u8, 97u8,
115u8, 115u8, 105u8, 99u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8, 105u8, 109u8,
112u8, 111u8, 114u8, 116u8, 93u8, 7u8, 1u8, 76u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 73u8, 109u8, 112u8, 111u8, 114u8, 116u8, 0u8, 1u8, 48u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 95u8, 100u8, 105u8, 100u8, 120u8, 1u8, 40u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 99u8, 111u8,
110u8, 102u8, 105u8, 103u8, 97u8, 7u8, 1u8, 140u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 110u8,
102u8, 105u8, 103u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8,
15u8, 52u8, 160u8, 82u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 97u8, 32u8, 80u8, 111u8,
108u8, 121u8, 109u8, 97u8, 116u8, 104u8, 32u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8,
32u8, 40u8, 80u8, 77u8, 67u8, 41u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 13u8,
1u8, 77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8,
115u8, 115u8, 105u8, 103u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 115u8, 121u8, 115u8, 116u8, 101u8,
109u8, 97u8, 116u8, 105u8, 99u8, 32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 120u8, 42u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 236u8, 42u8, 32u8, 96u8,
99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
95u8, 105u8, 109u8, 112u8, 111u8, 114u8, 116u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8,
102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 101u8, 32u8, 80u8, 77u8, 67u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 93u8,
1u8, 42u8, 32u8, 96u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 95u8, 100u8, 105u8,
100u8, 96u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8,
105u8, 102u8, 32u8, 96u8, 99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 95u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 95u8, 105u8, 109u8, 112u8, 111u8, 114u8, 116u8, 46u8, 105u8, 115u8, 95u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 96u8, 32u8, 104u8, 111u8, 108u8, 100u8,
115u8, 46u8, 188u8, 42u8, 32u8, 96u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 96u8, 32u8, 116u8,
111u8, 32u8, 117u8, 115u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 120u8, 112u8, 105u8,
114u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 73u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 65u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 95u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 95u8, 105u8, 109u8, 112u8, 111u8, 114u8, 116u8, 46u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8,
100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 97u8,
1u8, 42u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 84u8, 111u8, 111u8, 76u8, 111u8,
110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 111u8,
110u8, 102u8, 105u8, 103u8, 96u8, 32u8, 99u8, 111u8, 110u8, 115u8, 105u8, 100u8, 101u8, 114u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 95u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8, 105u8, 109u8, 112u8, 111u8, 114u8, 116u8, 46u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 111u8, 111u8, 32u8, 108u8, 111u8,
110u8, 103u8, 46u8, 85u8, 1u8, 42u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 65u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8,
95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8, 105u8, 109u8, 112u8, 111u8, 114u8, 116u8,
46u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
101u8, 100u8, 46u8, 76u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8,
95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 12u8, 1u8, 24u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 20u8,
118u8, 97u8, 108u8, 117u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 1u8, 56u8, 102u8, 114u8, 111u8, 109u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 73u8, 100u8, 0u8, 16u8, 28u8, 77u8, 1u8, 70u8, 111u8, 114u8, 99u8, 101u8, 115u8, 32u8,
97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 102u8, 114u8,
111u8, 109u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8,
115u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 85u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 112u8, 114u8, 105u8, 97u8,
116u8, 101u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 152u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 115u8, 121u8, 109u8,
98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 46u8, 204u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8, 117u8, 101u8, 96u8, 32u8, 32u8,
65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 115u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 102u8, 111u8, 114u8,
99u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 46u8, 252u8, 42u8,
32u8, 96u8, 102u8, 114u8, 111u8, 109u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 96u8, 32u8, 70u8, 114u8, 111u8, 109u8, 32u8, 119u8, 104u8, 111u8, 109u8, 32u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 115u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 114u8, 101u8, 100u8, 46u8, 104u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8,
114u8, 95u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8,
95u8, 116u8, 121u8, 112u8, 101u8, 4u8, 1u8, 8u8, 116u8, 121u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 17u8, 36u8, 120u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8,
101u8, 114u8, 115u8, 32u8, 97u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 0u8, 208u8, 84u8, 104u8,
101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 96u8, 116u8, 121u8,
96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 98u8, 111u8, 117u8, 110u8,
100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8, 73u8, 68u8, 32u8, 105u8, 110u8, 32u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 188u8, 84u8, 104u8, 101u8, 32u8, 73u8, 68u8, 32u8,
99u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8,
101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8,
112u8, 101u8, 58u8, 58u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 96u8, 46u8, 37u8, 1u8, 83u8,
104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 116u8, 121u8, 96u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
32u8, 105u8, 110u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 44u8, 32u8, 110u8,
111u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 32u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8,
97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 144u8,
42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 111u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 240u8, 42u8, 32u8, 96u8, 116u8, 121u8,
96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8,
101u8, 110u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 116u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 119u8,
105u8, 116u8, 104u8, 95u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 95u8, 116u8, 121u8, 112u8,
101u8, 28u8, 1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 249u8, 1u8, 1u8, 36u8, 65u8, 115u8, 115u8,
101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 0u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 36u8, 100u8, 105u8, 118u8,
105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8,
1u8, 68u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8,
116u8, 121u8, 112u8, 101u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8,
1u8, 44u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 115u8, 233u8,
1u8, 1u8, 80u8, 86u8, 101u8, 99u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 62u8, 0u8, 1u8, 52u8, 102u8, 117u8, 110u8,
100u8, 105u8, 110u8, 103u8, 95u8, 114u8, 111u8, 117u8, 110u8, 100u8, 77u8, 7u8, 1u8, 96u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8,
111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 62u8, 0u8, 1u8, 40u8, 100u8, 105u8, 115u8,
97u8, 98u8, 108u8, 101u8, 95u8, 105u8, 117u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8,
0u8, 18u8, 4u8, 45u8, 1u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8, 116u8, 111u8, 32u8, 98u8, 97u8, 116u8,
99u8, 104u8, 32u8, 96u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8,
101u8, 114u8, 95u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8, 46u8, 72u8, 115u8, 101u8, 116u8, 95u8, 97u8,
115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 16u8, 1u8,
24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 12u8, 107u8, 101u8, 121u8, 101u8, 7u8, 1u8, 64u8, 65u8, 115u8, 115u8, 101u8,
116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 75u8, 101u8, 121u8, 0u8, 1u8, 20u8,
118u8, 97u8, 108u8, 117u8, 101u8, 49u8, 2u8, 1u8, 72u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 0u8, 1u8, 24u8,
100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 53u8, 2u8, 1u8, 172u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 60u8, 84u8, 58u8,
58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 62u8, 0u8, 19u8, 68u8, 100u8, 83u8, 101u8,
116u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 124u8, 42u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
46u8, 84u8, 42u8, 32u8, 96u8, 107u8, 101u8, 121u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 107u8, 101u8, 121u8, 46u8, 100u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8,
117u8, 101u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 96u8, 32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
44u8, 32u8, 108u8, 111u8, 99u8, 107u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 46u8,
0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 21u8, 1u8, 42u8, 32u8, 96u8,
65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 75u8,
101u8, 121u8, 73u8, 115u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 107u8, 101u8, 121u8, 32u8, 100u8, 111u8, 101u8, 115u8,
110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 37u8, 1u8, 42u8, 32u8, 96u8,
65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8,
108u8, 117u8, 101u8, 73u8, 115u8, 76u8, 111u8, 99u8, 107u8, 101u8, 100u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 107u8, 101u8,
121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 46u8, 101u8, 1u8,
42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8,
104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8,
97u8, 108u8, 117u8, 101u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 28u8, 42u8, 32u8,
65u8, 115u8, 115u8, 101u8, 116u8, 104u8, 115u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 95u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 12u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8,
24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 12u8, 107u8, 101u8, 121u8, 101u8, 7u8,
1u8, 64u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
75u8, 101u8, 121u8, 0u8, 1u8, 24u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 57u8, 2u8, 1u8,
140u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 60u8, 84u8, 58u8, 58u8,
77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 20u8, 60u8, 220u8, 83u8, 101u8, 116u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8,
32u8, 40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 44u8, 32u8, 108u8, 111u8, 99u8, 107u8,
32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 124u8, 42u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
46u8, 84u8, 42u8, 32u8, 96u8, 107u8, 101u8, 121u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 107u8, 101u8, 121u8, 46u8, 228u8, 42u8, 32u8, 96u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8,
40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 44u8, 32u8, 108u8, 111u8, 99u8, 107u8, 32u8,
115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 21u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 75u8, 101u8, 121u8, 73u8, 115u8, 77u8, 105u8, 115u8,
115u8, 105u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 107u8,
101u8, 121u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8,
115u8, 116u8, 46u8, 37u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 73u8, 115u8, 76u8, 111u8,
99u8, 107u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8,
102u8, 111u8, 114u8, 32u8, 96u8, 107u8, 101u8, 121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 108u8,
111u8, 99u8, 107u8, 101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8,
28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 148u8, 114u8, 101u8, 103u8, 105u8, 115u8,
116u8, 101u8, 114u8, 95u8, 97u8, 110u8, 100u8, 95u8, 115u8, 101u8, 116u8, 95u8, 108u8, 111u8,
99u8, 97u8, 108u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 20u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8,
24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 65u8,
2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 1u8, 16u8, 115u8, 112u8, 101u8, 99u8, 73u8, 2u8, 1u8, 68u8,
65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 83u8,
112u8, 101u8, 99u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 49u8, 2u8, 1u8, 72u8, 65u8,
115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8,
108u8, 117u8, 101u8, 0u8, 1u8, 24u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 53u8, 2u8, 1u8,
172u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 68u8, 101u8,
116u8, 97u8, 105u8, 108u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8,
62u8, 0u8, 21u8, 76u8, 156u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 115u8, 32u8,
97u8, 110u8, 100u8, 32u8, 115u8, 101u8, 116u8, 32u8, 108u8, 111u8, 99u8, 97u8, 108u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 107u8, 101u8, 110u8, 46u8, 92u8, 42u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8, 136u8,
42u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8,
116u8, 105u8, 111u8, 110u8, 46u8, 100u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8, 117u8, 101u8,
96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8,
32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 32u8, 40u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 44u8, 32u8,
108u8, 111u8, 99u8, 107u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 46u8, 0u8, 32u8,
35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 161u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8,
115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8,
108u8, 75u8, 101u8, 121u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8,
115u8, 116u8, 115u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 32u8, 108u8, 111u8, 99u8, 97u8, 108u8,
32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8, 101u8,
32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 101u8, 1u8, 42u8,
32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8,
120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 96u8, 110u8, 97u8, 109u8,
101u8, 96u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8,
104u8, 46u8, 177u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 84u8, 121u8, 112u8, 101u8, 68u8, 101u8, 102u8, 77u8, 97u8, 120u8,
76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8,
96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 96u8, 32u8, 116u8, 121u8, 112u8, 101u8,
32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 105u8, 111u8, 110u8, 32u8, 101u8, 120u8,
99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8,
109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 101u8, 1u8, 42u8,
32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
86u8, 97u8, 108u8, 117u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8,
69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8,
116u8, 104u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 28u8, 42u8, 32u8, 65u8,
115u8, 115u8, 101u8, 116u8, 136u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 95u8,
97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
95u8, 108u8, 111u8, 99u8, 97u8, 108u8, 95u8, 116u8, 121u8, 112u8, 101u8, 12u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 65u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 1u8, 16u8,
115u8, 112u8, 101u8, 99u8, 73u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 83u8, 112u8, 101u8, 99u8, 0u8, 22u8, 64u8, 144u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 115u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8,
32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 108u8, 111u8, 99u8, 97u8, 108u8,
32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8,
32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 124u8, 42u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 92u8,
42u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8, 136u8, 42u8, 32u8, 96u8, 115u8, 112u8, 101u8,
99u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8,
101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 161u8, 1u8, 42u8, 32u8, 96u8, 65u8,
115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8,
99u8, 97u8, 108u8, 75u8, 101u8, 121u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8,
120u8, 105u8, 115u8, 116u8, 115u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 32u8, 108u8, 111u8,
99u8, 97u8, 108u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 121u8,
112u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
46u8, 101u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8,
116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 96u8,
110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 46u8, 177u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 84u8, 121u8, 112u8, 101u8, 68u8, 101u8,
102u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8,
101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 96u8, 32u8,
116u8, 121u8, 112u8, 101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 105u8, 111u8,
110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8,
46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8,
101u8, 116u8, 140u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 95u8, 97u8, 115u8,
115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 95u8, 103u8,
108u8, 111u8, 98u8, 97u8, 108u8, 95u8, 116u8, 121u8, 112u8, 101u8, 8u8, 1u8, 16u8, 110u8, 97u8,
109u8, 101u8, 65u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 0u8, 1u8, 16u8, 115u8, 112u8, 101u8, 99u8,
73u8, 2u8, 1u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 83u8, 112u8, 101u8, 99u8, 0u8, 23u8, 44u8, 148u8, 82u8, 101u8, 103u8, 105u8, 115u8,
116u8, 101u8, 114u8, 115u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 103u8, 108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 116u8, 121u8,
112u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 45u8, 1u8, 42u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 92u8, 42u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8,
32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 110u8, 97u8, 109u8, 101u8, 46u8,
136u8, 42u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 96u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8,
105u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 113u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 96u8, 32u8, 105u8,
102u8, 32u8, 97u8, 32u8, 103u8, 108u8, 111u8, 98u8, 97u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8, 101u8, 1u8, 42u8, 32u8, 96u8, 65u8, 115u8, 115u8,
101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 77u8,
97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 101u8, 120u8,
99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8,
109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 177u8, 1u8, 42u8,
32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
84u8, 121u8, 112u8, 101u8, 68u8, 101u8, 102u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8,
116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 96u8,
115u8, 112u8, 101u8, 99u8, 96u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 100u8, 101u8, 102u8,
105u8, 110u8, 105u8, 116u8, 105u8, 111u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8,
108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8,
85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8,
97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 77u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8,
221u8, 1u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8,
101u8, 4u8, 0u8, 221u8, 1u8, 0u8, 0u8, 1u8, 0u8, 0u8, 81u8, 7u8, 0u8, 0u8, 2u8, 1u8, 2u8, 0u8,
85u8, 7u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 32u8, 101u8, 116u8, 104u8, 101u8,
114u8, 101u8, 117u8, 109u8, 56u8, 69u8, 99u8, 100u8, 115u8, 97u8, 83u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 0u8, 89u8, 7u8, 1u8, 32u8, 91u8, 117u8, 56u8,
59u8, 32u8, 54u8, 53u8, 93u8, 0u8, 0u8, 89u8, 7u8, 0u8, 0u8, 3u8, 65u8, 0u8, 0u8, 0u8, 8u8, 0u8,
93u8, 7u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 76u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 73u8, 109u8, 112u8, 111u8, 114u8, 116u8, 0u8, 0u8, 16u8, 1u8, 36u8, 101u8, 116u8, 104u8,
95u8, 111u8, 119u8, 110u8, 101u8, 114u8, 45u8, 2u8, 1u8, 60u8, 69u8, 116u8, 104u8, 101u8, 114u8,
101u8, 117u8, 109u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 0u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 44u8, 105u8, 115u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 21u8, 1u8,
1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 40u8, 105u8, 115u8, 95u8, 99u8, 114u8, 101u8,
97u8, 116u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 97u8, 7u8,
8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 4u8, 4u8, 85u8, 1u8, 32u8,
0u8, 8u8, 1u8, 68u8, 109u8, 97u8, 120u8, 95u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 95u8,
108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 1u8, 76u8, 114u8,
101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 95u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 240u8, 1u8, 36u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
85u8, 62u8, 0u8, 0u8, 101u8, 7u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 56u8, 97u8,
115u8, 115u8, 101u8, 116u8, 95u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 64u8,
65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 75u8,
101u8, 121u8, 0u8, 1u8, 8u8, 24u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 4u8, 0u8, 97u8, 2u8,
1u8, 88u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 0u8, 0u8, 0u8, 20u8, 76u8, 111u8,
99u8, 97u8, 108u8, 4u8, 0u8, 69u8, 2u8, 1u8, 84u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 75u8, 101u8, 121u8, 0u8,
1u8, 0u8, 0u8, 105u8, 7u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 48u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 40u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 28u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8,
109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 36u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 109u8, 7u8, 1u8, 92u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 62u8, 0u8, 1u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 36u8, 112u8, 101u8, 114u8,
95u8, 115u8, 104u8, 97u8, 114u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 40u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8,
95u8, 97u8, 116u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 40u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 116u8, 240u8, 1u8, 56u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8,
172u8, 37u8, 1u8, 83u8, 116u8, 97u8, 114u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 116u8,
116u8, 97u8, 99u8, 104u8, 32u8, 97u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8,
100u8, 96u8, 44u8, 101u8, 1u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 96u8, 32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8,
100u8, 114u8, 97u8, 119u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8,
103u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 99u8, 111u8, 109u8, 109u8, 101u8, 110u8, 99u8, 101u8, 32u8, 97u8,
116u8, 32u8, 96u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 96u8, 32u8,
97u8, 110u8, 100u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 32u8, 97u8, 116u8, 32u8,
96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 116u8, 96u8, 44u8, 200u8,
105u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 44u8, 32u8, 111u8,
114u8, 32u8, 105u8, 102u8, 32u8, 96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 44u8, 32u8, 116u8, 104u8,
101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 46u8, 0u8, 37u8, 1u8, 84u8, 104u8, 101u8, 32u8, 102u8,
117u8, 110u8, 100u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 108u8,
111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 96u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8,
96u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 46u8, 53u8, 1u8, 87u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8,
32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 44u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8,
102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 108u8,
111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 105u8, 110u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8,
116u8, 101u8, 108u8, 121u8, 32u8, 105u8, 110u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 96u8, 44u8, 21u8, 1u8, 100u8, 117u8, 101u8, 32u8, 116u8, 111u8, 32u8,
99u8, 108u8, 97u8, 105u8, 109u8, 97u8, 110u8, 116u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 105u8, 110u8, 103u8, 32u8, 111u8, 114u8,
32u8, 110u8, 111u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 98u8,
101u8, 105u8, 110u8, 103u8, 32u8, 112u8, 117u8, 115u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 116u8, 104u8, 101u8, 109u8, 46u8, 41u8, 1u8, 70u8, 111u8, 114u8, 32u8, 105u8, 110u8, 100u8,
105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 99u8, 105u8, 101u8, 115u8, 44u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8,
100u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 115u8, 44u8, 32u8, 111u8, 102u8, 32u8,
108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 111u8, 110u8, 101u8, 32u8,
119u8, 104u8, 111u8, 108u8, 101u8, 32u8, 117u8, 110u8, 105u8, 116u8, 44u8, 168u8, 119u8, 105u8,
108u8, 108u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 46u8, 77u8, 1u8, 72u8,
111u8, 119u8, 101u8, 118u8, 101u8, 114u8, 44u8, 32u8, 105u8, 102u8, 32u8, 119u8, 101u8, 32u8,
105u8, 109u8, 97u8, 103u8, 105u8, 110u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 117u8,
115u8, 101u8, 114u8, 115u8, 32u8, 96u8, 65u8, 108u8, 105u8, 99u8, 101u8, 96u8, 32u8, 97u8, 110u8,
100u8, 32u8, 96u8, 66u8, 111u8, 98u8, 96u8, 32u8, 98u8, 111u8, 116u8, 104u8, 32u8, 97u8, 114u8,
101u8, 32u8, 101u8, 110u8, 116u8, 105u8, 116u8, 108u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
49u8, 46u8, 53u8, 32u8, 117u8, 110u8, 105u8, 116u8, 115u8, 44u8, 81u8, 1u8, 97u8, 110u8, 100u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 32u8,
96u8, 49u8, 96u8, 32u8, 117u8, 110u8, 105u8, 116u8, 115u8, 32u8, 101u8, 97u8, 99u8, 104u8, 44u8,
32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 96u8, 48u8, 46u8, 53u8, 32u8, 43u8, 32u8, 48u8, 46u8,
53u8, 32u8, 61u8, 32u8, 49u8, 96u8, 32u8, 117u8, 110u8, 105u8, 116u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 108u8, 101u8, 102u8, 116u8, 32u8, 105u8, 110u8, 32u8, 96u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 44u8, 108u8, 119u8, 104u8, 105u8, 99u8, 104u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 119u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 114u8, 97u8, 98u8, 108u8, 101u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 1u8, 1u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 97u8, 32u8,
99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 46u8, 89u8, 1u8, 45u8, 32u8,
96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 115u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
116u8, 111u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 32u8,
96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 46u8,
244u8, 45u8, 32u8, 96u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 32u8, 116u8,
111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 32u8, 97u8, 110u8, 100u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 96u8, 46u8, 248u8, 45u8, 32u8, 96u8, 112u8, 101u8, 114u8, 95u8, 115u8,
104u8, 97u8, 114u8, 101u8, 96u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 96u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 32u8, 116u8,
111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 32u8, 97u8, 110u8, 100u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 46u8, 37u8, 1u8, 32u8,
32u8, 32u8, 83u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8,
97u8, 32u8, 112u8, 101u8, 114u8, 45u8, 109u8, 105u8, 108u8, 108u8, 105u8, 111u8, 110u8, 44u8,
32u8, 105u8, 46u8, 101u8, 46u8, 32u8, 96u8, 49u8, 32u8, 47u8, 32u8, 49u8, 48u8, 94u8, 54u8, 96u8,
116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 111u8, 110u8, 101u8, 32u8, 96u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 240u8,
45u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 111u8, 102u8, 32u8, 96u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 96u8, 32u8, 116u8, 111u8, 32u8, 119u8,
105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 32u8, 97u8, 110u8, 100u8, 32u8, 100u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 32u8, 97u8, 116u8, 32u8, 109u8, 111u8,
115u8, 116u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8,
95u8, 97u8, 116u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8,
32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8,
32u8, 109u8, 97u8, 121u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8,
112u8, 117u8, 115u8, 104u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 101u8, 100u8, 46u8, 41u8, 1u8, 45u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
115u8, 95u8, 97u8, 116u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8,
115u8, 44u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
44u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8,
110u8, 103u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 102u8, 111u8, 114u8, 102u8, 101u8, 105u8, 116u8, 144u8, 32u8, 32u8, 32u8, 97u8,
110u8, 100u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 99u8, 108u8, 97u8,
105u8, 109u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8,
45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8,
100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 252u8, 45u8, 32u8, 96u8, 69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 66u8, 101u8,
102u8, 111u8, 114u8, 101u8, 80u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 116u8, 46u8,
117u8, 110u8, 119u8, 114u8, 97u8, 112u8, 40u8, 41u8, 32u8, 60u8, 61u8, 32u8, 112u8, 97u8, 121u8,
109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8, 78u8, 111u8,
83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8,
115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8, 168u8, 45u8, 32u8, 96u8, 78u8, 111u8,
82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8,
67u8, 65u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 232u8, 45u8, 32u8, 96u8, 82u8, 101u8, 99u8, 111u8,
114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 65u8, 102u8, 116u8, 101u8, 114u8, 83u8, 116u8, 97u8,
114u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 114u8, 101u8, 99u8,
111u8, 114u8, 100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 62u8, 32u8, 112u8, 97u8, 121u8,
109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 117u8, 115u8, 116u8,
111u8, 100u8, 105u8, 97u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8,
111u8, 102u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8,
46u8, 85u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8,
101u8, 110u8, 116u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 108u8, 101u8,
115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8,
121u8, 96u8, 46u8, 1u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8,
99u8, 105u8, 101u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8,
32u8, 102u8, 101u8, 101u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 110u8, 39u8, 116u8, 32u8,
98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 46u8, 69u8, 1u8, 45u8, 32u8,
96u8, 67u8, 65u8, 78u8, 111u8, 116u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 111u8, 102u8, 32u8, 107u8, 105u8, 110u8, 100u8, 32u8, 80u8, 114u8, 101u8,
100u8, 105u8, 99u8, 116u8, 97u8, 98u8, 108u8, 101u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8,
116u8, 47u8, 85u8, 110u8, 112u8, 114u8, 101u8, 100u8, 105u8, 99u8, 116u8, 97u8, 98u8, 108u8,
101u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 212u8, 45u8, 32u8, 96u8, 68u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 65u8, 109u8, 111u8, 117u8,
110u8, 116u8, 73u8, 115u8, 90u8, 101u8, 114u8, 111u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 105u8, 115u8,
32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 232u8, 45u8, 32u8, 96u8, 68u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 80u8, 101u8, 114u8, 83u8, 104u8, 97u8,
114u8, 101u8, 73u8, 115u8, 90u8, 101u8, 114u8, 111u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 112u8, 101u8, 114u8, 95u8, 115u8, 104u8, 97u8, 114u8, 101u8, 96u8,
32u8, 105u8, 115u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 20u8, 99u8, 108u8, 97u8, 105u8, 109u8, 4u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8,
109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 92u8, 1u8, 1u8, 67u8, 108u8, 97u8,
105u8, 109u8, 32u8, 97u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 46u8, 0u8, 168u8, 84u8, 97u8, 120u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8,
32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 101u8, 108u8, 100u8, 32u8, 97u8, 115u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 67u8, 65u8, 46u8, 89u8, 1u8, 80u8, 111u8, 115u8, 116u8, 45u8, 116u8, 97u8, 120u8,
32u8, 101u8, 97u8, 114u8, 110u8, 105u8, 110u8, 103u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8,
117u8, 108u8, 116u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 17u8, 1u8, 65u8, 108u8, 108u8, 32u8, 98u8,
101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 111u8,
117u8, 110u8, 100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 114u8, 117u8, 110u8, 99u8,
97u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 100u8, 111u8, 119u8, 110u8, 32u8, 116u8, 111u8,
32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8, 103u8, 101u8, 114u8,
32u8, 98u8, 101u8, 108u8, 111u8, 119u8, 46u8, 57u8, 1u8, 77u8, 111u8, 114u8, 101u8, 111u8, 118u8,
101u8, 114u8, 44u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 112u8, 111u8, 115u8,
116u8, 45u8, 116u8, 97u8, 120u8, 32u8, 101u8, 97u8, 114u8, 110u8, 105u8, 110u8, 103u8, 115u8,
44u8, 32u8, 105u8, 110u8, 32u8, 105u8, 110u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8,
108u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 105u8, 101u8, 115u8, 32u8,
97u8, 114u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8,
100u8, 44u8, 152u8, 116u8, 104u8, 101u8, 121u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 111u8,
117u8, 110u8, 100u8, 101u8, 100u8, 32u8, 100u8, 111u8, 119u8, 110u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 119u8, 104u8, 111u8, 108u8, 101u8, 32u8, 117u8, 110u8, 105u8, 116u8, 46u8, 0u8, 48u8,
35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8,
104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 104u8, 111u8,
108u8, 100u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 101u8, 108u8, 105u8, 103u8, 105u8, 98u8,
108u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 1u8, 1u8, 45u8, 32u8, 96u8,
99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8,
105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8,
115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 97u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
102u8, 111u8, 114u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8,
1u8, 45u8, 32u8, 96u8, 72u8, 111u8, 108u8, 100u8, 101u8, 114u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 80u8, 97u8, 105u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 32u8, 104u8, 97u8, 115u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8,
118u8, 101u8, 100u8, 32u8, 105u8, 116u8, 115u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8,
116u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 68u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8, 99u8, 97u8,
112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8,
100u8, 96u8, 46u8, 196u8, 45u8, 32u8, 96u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 67u8, 108u8,
97u8, 105u8, 109u8, 66u8, 101u8, 102u8, 111u8, 114u8, 101u8, 83u8, 116u8, 97u8, 114u8, 116u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 111u8, 119u8, 32u8, 60u8, 32u8, 112u8, 97u8, 121u8,
109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8, 67u8, 97u8,
110u8, 110u8, 111u8, 116u8, 67u8, 108u8, 97u8, 105u8, 109u8, 65u8, 102u8, 116u8, 101u8, 114u8,
69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 111u8,
119u8, 32u8, 62u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 95u8, 97u8, 116u8, 46u8,
117u8, 110u8, 119u8, 114u8, 97u8, 112u8, 40u8, 41u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8, 78u8,
111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8,
95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8, 244u8, 45u8, 32u8, 96u8, 78u8,
111u8, 116u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 101u8, 100u8, 66u8, 121u8, 67u8, 65u8,
96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 100u8, 111u8, 101u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 46u8, 53u8,
1u8, 45u8, 32u8, 96u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 65u8, 109u8, 111u8, 117u8,
110u8, 116u8, 80u8, 114u8, 111u8, 100u8, 117u8, 99u8, 116u8, 79u8, 118u8, 101u8, 114u8, 102u8,
108u8, 111u8, 119u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 98u8, 97u8, 32u8, 61u8,
32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 42u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 46u8, 53u8, 1u8, 45u8, 32u8, 96u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 80u8, 114u8, 111u8, 100u8, 117u8, 99u8,
116u8, 83u8, 117u8, 112u8, 112u8, 108u8, 121u8, 68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 111u8,
110u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 98u8, 97u8,
32u8, 42u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 121u8, 96u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 46u8, 33u8, 1u8,
45u8, 32u8, 79u8, 116u8, 104u8, 101u8, 114u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8,
32u8, 99u8, 97u8, 110u8, 32u8, 111u8, 99u8, 99u8, 117u8, 114u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8,
109u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
46u8, 48u8, 112u8, 117u8, 115u8, 104u8, 95u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8,
8u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8,
0u8, 1u8, 24u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 96u8, 248u8, 80u8, 117u8, 115u8, 104u8,
32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8,
32u8, 111u8, 110u8, 103u8, 111u8, 105u8, 110u8, 103u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8,
105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8,
96u8, 46u8, 0u8, 168u8, 84u8, 97u8, 120u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 119u8,
105u8, 116u8, 104u8, 104u8, 101u8, 108u8, 100u8, 32u8, 97u8, 115u8, 32u8, 115u8, 112u8, 101u8,
99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
67u8, 65u8, 46u8, 89u8, 1u8, 80u8, 111u8, 115u8, 116u8, 45u8, 116u8, 97u8, 120u8, 32u8, 101u8,
97u8, 114u8, 110u8, 105u8, 110u8, 103u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8,
101u8, 110u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8,
115u8, 32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 17u8, 1u8, 65u8, 108u8, 108u8, 32u8, 98u8, 101u8,
110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 111u8, 117u8,
110u8, 100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 114u8, 117u8, 110u8, 99u8, 97u8,
116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 100u8, 111u8, 119u8, 110u8, 32u8, 116u8, 111u8, 32u8,
102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8, 103u8, 101u8, 114u8, 32u8,
98u8, 101u8, 108u8, 111u8, 119u8, 46u8, 57u8, 1u8, 77u8, 111u8, 114u8, 101u8, 111u8, 118u8,
101u8, 114u8, 44u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 112u8, 111u8, 115u8,
116u8, 45u8, 116u8, 97u8, 120u8, 32u8, 101u8, 97u8, 114u8, 110u8, 105u8, 110u8, 103u8, 115u8,
44u8, 32u8, 105u8, 110u8, 32u8, 105u8, 110u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8,
108u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 105u8, 101u8, 115u8, 32u8,
97u8, 114u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8,
100u8, 44u8, 152u8, 116u8, 104u8, 101u8, 121u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 111u8,
117u8, 110u8, 100u8, 101u8, 100u8, 32u8, 100u8, 111u8, 119u8, 110u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 119u8, 104u8, 111u8, 108u8, 101u8, 32u8, 117u8, 110u8, 105u8, 116u8, 46u8, 0u8, 48u8,
35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 57u8, 1u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8,
99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 112u8, 117u8, 115u8,
104u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8,
46u8, 124u8, 45u8, 32u8, 96u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 96u8, 32u8, 116u8,
111u8, 32u8, 112u8, 117u8, 115u8, 104u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8,
115u8, 32u8, 116u8, 111u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8,
68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8,
99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 46u8, 196u8, 45u8, 32u8, 96u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 66u8, 101u8, 102u8, 111u8, 114u8, 101u8, 83u8, 116u8, 97u8, 114u8,
116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 111u8, 119u8, 32u8, 60u8, 32u8, 112u8, 97u8,
121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8, 67u8,
97u8, 110u8, 110u8, 111u8, 116u8, 67u8, 108u8, 97u8, 105u8, 109u8, 65u8, 102u8, 116u8, 101u8,
114u8, 69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8,
111u8, 119u8, 32u8, 62u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 95u8, 97u8, 116u8,
46u8, 117u8, 110u8, 119u8, 114u8, 97u8, 112u8, 40u8, 41u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8,
78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8,
97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8, 220u8, 45u8, 32u8, 96u8,
78u8, 111u8, 116u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 101u8, 100u8, 66u8, 121u8, 67u8,
65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 100u8, 111u8,
101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8,
96u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 96u8, 46u8, 53u8, 1u8, 45u8, 32u8, 96u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 80u8, 114u8,
111u8, 100u8, 117u8, 99u8, 116u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8,
100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 98u8, 97u8, 32u8, 61u8, 32u8, 98u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 32u8, 42u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8,
119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8,
46u8, 53u8, 1u8, 45u8, 32u8, 96u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 65u8, 109u8,
111u8, 117u8, 110u8, 116u8, 80u8, 114u8, 111u8, 100u8, 117u8, 99u8, 116u8, 83u8, 117u8, 112u8,
112u8, 108u8, 121u8, 68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 111u8, 110u8, 70u8, 97u8, 105u8,
108u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 98u8, 97u8, 32u8, 42u8, 32u8, 115u8,
117u8, 112u8, 112u8, 108u8, 121u8, 96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 46u8, 33u8, 1u8, 45u8, 32u8, 79u8, 116u8, 104u8,
101u8, 114u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8,
111u8, 99u8, 99u8, 117u8, 114u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 109u8, 97u8, 110u8, 97u8,
103u8, 101u8, 114u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 46u8, 28u8, 114u8, 101u8,
99u8, 108u8, 97u8, 105u8, 109u8, 4u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8,
16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 3u8, 44u8, 144u8, 65u8, 115u8, 115u8, 117u8, 109u8, 105u8,
110u8, 103u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 44u8, 228u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 111u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8,
105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8,
29u8, 1u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8,
32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
116u8, 111u8, 32u8, 114u8, 101u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 102u8, 111u8, 114u8,
46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 25u8, 1u8, 45u8, 32u8,
96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8,
117u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 114u8,
101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
111u8, 114u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 45u8, 1u8, 45u8, 32u8,
96u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 99u8, 108u8, 97u8, 105u8,
109u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8,
108u8, 121u8, 46u8, 132u8, 45u8, 32u8, 96u8, 78u8, 111u8, 116u8, 69u8, 120u8, 112u8, 105u8,
114u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 111u8, 119u8, 32u8, 60u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 46u8, 76u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 95u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8,
4u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8,
0u8, 4u8, 44u8, 188u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 32u8, 100u8,
105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 115u8, 116u8, 97u8, 114u8,
116u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 44u8, 220u8, 117u8, 110u8, 108u8, 111u8, 99u8,
107u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8,
97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 111u8, 114u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 73u8, 1u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 67u8, 65u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 110u8, 111u8, 116u8,
45u8, 121u8, 101u8, 116u8, 45u8, 115u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 32u8, 99u8,
97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8,
117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 68u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8, 99u8, 97u8,
112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8,
100u8, 96u8, 46u8, 188u8, 45u8, 32u8, 96u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 32u8, 60u8,
61u8, 32u8, 110u8, 111u8, 119u8, 96u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8,
1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8,
112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8,
111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8,
46u8, 109u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 220u8,
1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8,
0u8, 220u8, 0u8, 0u8, 1u8, 0u8, 0u8, 113u8, 7u8, 12u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 40u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8,
111u8, 105u8, 110u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 68u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8,
105u8, 110u8, 116u8, 4u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 0u8, 36u8, 192u8, 67u8, 114u8, 101u8, 97u8, 116u8,
101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 110u8, 103u8, 108u8, 101u8, 32u8, 99u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8,
1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8,
97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 160u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
32u8, 116u8, 111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 102u8, 111u8,
114u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 85u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
68u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 97u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 13u8, 1u8,
45u8, 32u8, 96u8, 67u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 79u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 116u8, 97u8, 108u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8,
116u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 32u8, 119u8, 111u8, 117u8, 108u8,
100u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 46u8, 112u8, 115u8, 101u8,
116u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 95u8, 109u8, 97u8,
120u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 4u8, 1u8, 56u8,
109u8, 97u8, 120u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8,
32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 36u8, 89u8, 1u8, 83u8, 101u8, 116u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8,
120u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
110u8, 32u8, 97u8, 114u8, 98u8, 105u8, 116u8, 114u8, 97u8, 114u8, 121u8, 32u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 96u8, 109u8, 97u8, 120u8, 95u8, 99u8, 111u8,
109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 96u8, 46u8, 184u8, 84u8, 104u8, 101u8,
32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8,
32u8, 114u8, 101u8, 116u8, 114u8, 111u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8,
44u8, 180u8, 97u8, 110u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 97u8, 112u8, 112u8,
108u8, 105u8, 101u8, 115u8, 32u8, 111u8, 110u8, 99u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
109u8, 97u8, 100u8, 101u8, 46u8, 0u8, 168u8, 77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8,
32u8, 40u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 115u8, 32u8, 34u8, 114u8, 111u8,
111u8, 116u8, 34u8, 41u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 120u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 111u8, 111u8, 116u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 9u8, 1u8, 45u8, 32u8, 96u8, 109u8, 97u8, 120u8, 95u8,
99u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 96u8, 32u8, 97u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8,
114u8, 98u8, 105u8, 116u8, 114u8, 97u8, 114u8, 121u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 39u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 115u8,
101u8, 116u8, 46u8, 60u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 32u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 117u8, 7u8, 1u8, 48u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 83u8, 112u8, 101u8, 99u8, 0u8, 2u8, 76u8, 164u8, 67u8, 114u8, 101u8, 97u8, 116u8,
101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 99u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 212u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 117u8, 116u8, 117u8, 114u8, 101u8, 32u8, 97u8, 116u8, 32u8, 101u8, 105u8,
116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 32u8, 102u8, 105u8, 120u8, 101u8, 100u8, 32u8, 116u8,
105u8, 109u8, 101u8, 32u8, 111u8, 114u8, 32u8, 97u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8,
114u8, 118u8, 97u8, 108u8, 115u8, 46u8, 0u8, 9u8, 1u8, 84u8, 104u8, 101u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 115u8, 32u8,
111u8, 117u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 115u8, 116u8, 114u8, 111u8,
110u8, 103u8, 95u8, 114u8, 101u8, 102u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 40u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8, 105u8, 100u8, 41u8, 32u8, 60u8, 45u8, 32u8,
48u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 33u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 111u8,
119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 152u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
116u8, 111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 102u8, 111u8, 114u8, 46u8, 176u8,
45u8, 32u8, 96u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 96u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8,
97u8, 116u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
115u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 85u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
68u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 97u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 13u8, 1u8,
45u8, 32u8, 96u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 68u8, 117u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 84u8, 111u8, 111u8, 83u8, 104u8, 111u8, 114u8, 116u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8,
116u8, 111u8, 111u8, 32u8, 115u8, 104u8, 111u8, 114u8, 116u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8,
73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8,
32u8, 102u8, 101u8, 101u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 32u8, 110u8, 111u8, 116u8,
32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 46u8, 77u8, 1u8, 45u8,
32u8, 96u8, 67u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 79u8, 118u8, 101u8, 114u8, 102u8,
108u8, 111u8, 119u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 73u8, 68u8, 32u8, 111u8, 114u8, 32u8, 116u8,
111u8, 116u8, 97u8, 108u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8,
116u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 115u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 46u8, 93u8, 1u8,
45u8, 32u8, 96u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 67u8, 111u8, 109u8, 112u8,
117u8, 116u8, 101u8, 78u8, 101u8, 120u8, 116u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8,
105u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
120u8, 116u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 96u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 96u8,
32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 97u8, 115u8,
116u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 60u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 8u8, 1u8, 24u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 153u8, 2u8, 1u8, 40u8, 83u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 73u8, 100u8, 0u8, 3u8, 56u8, 252u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8,
110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 111u8, 102u8,
32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 105u8, 100u8, 96u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 33u8,
1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
46u8, 156u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 111u8,
32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 46u8, 9u8, 1u8, 45u8,
32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 44u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 105u8,
116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 96u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 95u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 85u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 97u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 65u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 67u8, 104u8, 101u8, 99u8, 107u8,
112u8, 111u8, 105u8, 110u8, 116u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8,
32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8,
244u8, 45u8, 32u8, 96u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 78u8, 111u8,
116u8, 82u8, 101u8, 109u8, 111u8, 118u8, 97u8, 98u8, 108u8, 101u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 98u8,
117u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 97u8, 98u8, 108u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 117u8, 7u8, 12u8, 48u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 40u8, 99u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 48u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 83u8, 112u8, 101u8, 99u8, 0u8, 0u8, 12u8, 1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8,
240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 62u8, 0u8, 1u8, 24u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 145u8, 2u8, 1u8,
56u8, 67u8, 97u8, 108u8, 101u8, 110u8, 100u8, 97u8, 114u8, 80u8, 101u8, 114u8, 105u8, 111u8,
100u8, 0u8, 1u8, 36u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 16u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 121u8, 7u8, 8u8, 100u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 95u8, 109u8,
97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8,
36u8, 104u8, 97u8, 100u8, 100u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8,
12u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 1u8, 68u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 95u8, 99u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 165u8, 2u8, 1u8, 56u8, 86u8, 101u8, 99u8,
60u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 1u8, 76u8, 114u8,
101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 95u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8,
105u8, 111u8, 110u8, 115u8, 165u8, 2u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 67u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 0u8, 44u8, 5u8, 1u8, 65u8, 100u8, 100u8,
115u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 116u8, 111u8,
32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 39u8, 115u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 98u8, 121u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 46u8, 248u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 100u8, 117u8,
112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 44u8, 32u8, 105u8, 116u8, 32u8, 100u8, 111u8,
101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 104u8, 105u8, 110u8, 103u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 120u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8, 32u8, 83u8, 121u8,
109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 196u8, 42u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 95u8, 99u8,
111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 45u8, 32u8, 83u8, 101u8,
110u8, 100u8, 101u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8,
99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 212u8, 42u8, 32u8,
114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 95u8, 99u8, 111u8, 110u8, 100u8, 105u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 45u8, 32u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8,
101u8, 114u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 116u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 109u8, 101u8, 110u8, 116u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 16u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 36u8, 240u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8,
32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 39u8, 115u8, 32u8, 99u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
120u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8, 32u8, 83u8, 121u8, 109u8,
98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 240u8, 42u8, 32u8, 105u8, 100u8, 32u8, 45u8, 32u8, 67u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
105u8, 115u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8,
101u8, 116u8, 96u8, 114u8, 101u8, 112u8, 108u8, 97u8, 99u8, 101u8, 95u8, 97u8, 115u8, 115u8,
101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 8u8, 1u8,
24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 64u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8,
105u8, 97u8, 110u8, 99u8, 101u8, 205u8, 2u8, 1u8, 104u8, 86u8, 101u8, 99u8, 60u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 2u8, 60u8, 252u8, 82u8, 101u8, 112u8, 108u8, 97u8,
99u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 39u8, 115u8, 32u8,
99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 98u8, 121u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8,
110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8,
46u8, 0u8, 252u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 115u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 40u8,
97u8, 115u8, 99u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 98u8, 121u8, 32u8, 105u8,
100u8, 41u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 140u8, 114u8, 101u8, 112u8, 108u8,
97u8, 99u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8,
116u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 120u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 188u8, 42u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 45u8, 32u8, 116u8, 104u8, 101u8,
32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 240u8, 42u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 177u8, 1u8, 42u8, 32u8, 96u8, 68u8, 117u8,
112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8,
115u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8,
101u8, 96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 101u8, 110u8, 116u8, 114u8, 105u8, 101u8, 115u8,
32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8,
32u8, 96u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 95u8,
105u8, 100u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 88u8, 114u8,
101u8, 115u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 4u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 3u8, 32u8, 116u8, 82u8,
101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 39u8, 115u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8,
110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 120u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8,
32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
88u8, 112u8, 97u8, 117u8, 115u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 99u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 4u8, 1u8, 24u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 4u8, 32u8,
17u8, 1u8, 80u8, 97u8, 117u8, 115u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 101u8,
114u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8,
99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 100u8, 117u8, 114u8, 105u8,
110u8, 103u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 46u8, 0u8,
44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8, 1u8, 42u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 119u8,
110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 120u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8,
32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
92u8, 114u8, 101u8, 115u8, 117u8, 109u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8,
99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 4u8, 1u8, 24u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 5u8,
32u8, 21u8, 1u8, 82u8, 101u8, 115u8, 117u8, 109u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 101u8, 114u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8,
102u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 100u8, 117u8,
114u8, 105u8, 110u8, 103u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 45u8,
1u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8, 115u8,
112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8, 115u8,
104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8,
119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 120u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
45u8, 32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8,
116u8, 128u8, 97u8, 100u8, 100u8, 95u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8,
116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 24u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 189u8, 2u8, 1u8, 52u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8,
100u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 0u8, 6u8, 36u8, 248u8, 65u8, 100u8, 100u8, 115u8,
32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8,
108u8, 116u8, 32u8, 116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 108u8, 101u8, 118u8, 101u8,
108u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
49u8, 1u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8,
115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 124u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 45u8, 32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 200u8, 42u8, 32u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 117u8,
115u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8,
117u8, 101u8, 114u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 140u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8,
116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 95u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 24u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 7u8, 36u8, 117u8, 1u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8,
109u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 108u8, 101u8, 118u8, 101u8,
108u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
49u8, 1u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8,
115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 124u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 45u8, 32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 200u8, 42u8, 32u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 32u8, 45u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 117u8,
115u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 105u8, 115u8, 115u8,
117u8, 101u8, 114u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 116u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 95u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8,
8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 1u8, 28u8, 110u8, 101u8, 119u8, 95u8, 114u8, 101u8, 113u8, 161u8, 2u8,
1u8, 84u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 0u8, 8u8, 36u8, 240u8, 77u8, 111u8,
100u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8,
110u8, 103u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
49u8, 1u8, 42u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 45u8, 32u8, 83u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 46u8, 32u8, 73u8, 116u8, 32u8,
115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 124u8, 42u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 45u8, 32u8, 83u8, 121u8, 109u8, 98u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 140u8, 42u8, 32u8, 110u8, 101u8,
119u8, 95u8, 114u8, 101u8, 113u8, 32u8, 45u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8,
97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8,
110u8, 116u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 12u8, 76u8, 68u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8,
109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8,
100u8, 117u8, 108u8, 101u8, 46u8, 125u8, 7u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 36u8, 88u8,
115u8, 101u8, 116u8, 95u8, 109u8, 97u8, 120u8, 95u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 95u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 4u8, 1u8, 24u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 8u8, 208u8, 83u8, 101u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 32u8, 96u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 96u8, 32u8, 111u8, 102u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 96u8, 32u8, 105u8, 110u8, 32u8, 116u8, 101u8, 114u8, 109u8, 115u8, 32u8, 111u8,
102u8, 32u8, 98u8, 121u8, 116u8, 101u8, 115u8, 46u8, 116u8, 77u8, 97u8, 121u8, 32u8, 111u8,
110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8,
118u8, 105u8, 97u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 46u8, 76u8, 115u8, 101u8, 116u8, 95u8,
100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
115u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 28u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 213u8,
2u8, 1u8, 64u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 105u8, 101u8, 115u8, 0u8, 1u8, 52u8, 204u8, 83u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 67u8, 65u8, 32u8, 96u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8,
96u8, 32u8, 116u8, 111u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 96u8, 46u8,
0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8,
1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 114u8, 101u8, 108u8, 101u8, 118u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 228u8, 45u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 97u8,
114u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 105u8, 110u8, 103u8, 46u8, 204u8, 45u8,
32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 96u8, 32u8, 116u8, 104u8, 101u8,
32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 32u8, 67u8, 65u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8,
111u8, 77u8, 97u8, 110u8, 121u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 115u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 46u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 46u8, 108u8, 101u8, 110u8,
40u8, 41u8, 32u8, 62u8, 32u8, 84u8, 58u8, 58u8, 77u8, 97u8, 120u8, 84u8, 97u8, 114u8, 103u8,
101u8, 116u8, 73u8, 100u8, 115u8, 58u8, 58u8, 103u8, 101u8, 116u8, 40u8, 41u8, 96u8, 46u8, 0u8,
52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 108u8, 115u8, 101u8, 116u8, 95u8, 100u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8,
100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 12u8, 116u8,
97u8, 120u8, 121u8, 2u8, 1u8, 12u8, 84u8, 97u8, 120u8, 0u8, 2u8, 48u8, 61u8, 1u8, 83u8, 101u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8,
119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8,
120u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 108u8, 108u8, 32u8, 68u8, 73u8, 68u8, 115u8, 32u8,
97u8, 110u8, 100u8, 32u8, 67u8, 65u8, 115u8, 32u8, 114u8, 101u8, 108u8, 101u8, 118u8, 97u8,
110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8,
32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8,
108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 114u8, 101u8, 108u8,
101u8, 118u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 46u8, 200u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 105u8, 116u8,
104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 97u8, 112u8, 112u8, 108u8, 121u8, 32u8, 116u8, 111u8, 46u8, 5u8, 1u8,
45u8, 32u8, 96u8, 116u8, 97u8, 120u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 101u8,
108u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 110u8, 103u8, 32u8, 100u8, 105u8, 118u8, 105u8, 100u8, 101u8, 110u8,
100u8, 115u8, 44u8, 32u8, 101u8, 116u8, 99u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8,
101u8, 116u8, 92u8, 115u8, 101u8, 116u8, 95u8, 100u8, 105u8, 100u8, 95u8, 119u8, 105u8, 116u8,
104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 12u8, 1u8,
24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 36u8, 116u8, 97u8, 120u8, 101u8, 100u8, 95u8, 100u8, 105u8, 100u8, 120u8, 1u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 12u8, 116u8,
97u8, 120u8, 221u8, 2u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 97u8,
120u8, 62u8, 0u8, 3u8, 64u8, 244u8, 83u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8,
105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8,
32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 102u8,
111u8, 114u8, 32u8, 96u8, 116u8, 97u8, 120u8, 101u8, 100u8, 95u8, 100u8, 105u8, 100u8, 96u8,
32u8, 116u8, 111u8, 32u8, 96u8, 116u8, 97u8, 120u8, 96u8, 46u8, 129u8, 1u8, 73u8, 102u8, 32u8,
96u8, 83u8, 111u8, 109u8, 101u8, 40u8, 116u8, 97u8, 120u8, 41u8, 96u8, 44u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 111u8, 118u8, 101u8, 114u8, 114u8, 105u8, 100u8, 101u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 119u8, 105u8, 116u8,
104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 111u8,
102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 111u8, 32u8, 96u8,
116u8, 97u8, 120u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 97u8, 120u8, 101u8,
100u8, 95u8, 100u8, 105u8, 100u8, 96u8, 46u8, 252u8, 79u8, 116u8, 104u8, 101u8, 114u8, 119u8,
105u8, 115u8, 101u8, 44u8, 32u8, 105u8, 102u8, 32u8, 96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 44u8,
32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8, 119u8,
105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8,
32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 0u8,
48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8,
45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 114u8, 101u8, 108u8, 101u8, 118u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 200u8, 45u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8,
32u8, 116u8, 97u8, 120u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 97u8, 112u8, 112u8, 108u8,
121u8, 32u8, 116u8, 111u8, 46u8, 228u8, 45u8, 32u8, 96u8, 116u8, 97u8, 120u8, 101u8, 100u8, 95u8,
100u8, 105u8, 100u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 105u8, 116u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8,
104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 117u8, 112u8,
100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 5u8, 1u8, 45u8, 32u8, 96u8, 116u8, 97u8, 120u8, 96u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8,
101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 101u8, 108u8, 100u8, 32u8, 119u8, 104u8, 101u8,
110u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 110u8, 103u8,
32u8, 100u8, 105u8, 118u8, 105u8, 100u8, 101u8, 110u8, 100u8, 115u8, 44u8, 32u8, 101u8, 116u8,
99u8, 46u8, 0u8, 36u8, 35u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8,
45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8,
100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 129u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8, 111u8, 77u8, 97u8, 110u8, 121u8,
68u8, 105u8, 100u8, 84u8, 97u8, 120u8, 101u8, 115u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 83u8,
111u8, 109u8, 101u8, 40u8, 116u8, 97u8, 120u8, 41u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8,
100u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 118u8, 101u8, 114u8,
114u8, 105u8, 100u8, 101u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 103u8, 111u8, 32u8,
111u8, 118u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 96u8, 77u8, 97u8, 120u8, 68u8, 105u8, 100u8, 87u8, 104u8, 116u8, 115u8, 96u8, 46u8, 0u8,
52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 100u8, 105u8, 110u8, 105u8, 116u8, 105u8,
97u8, 116u8, 101u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 16u8, 107u8, 105u8, 110u8,
100u8, 229u8, 2u8, 1u8, 24u8, 67u8, 65u8, 75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 36u8, 100u8,
101u8, 99u8, 108u8, 95u8, 100u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 0u8, 1u8, 44u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8,
101u8, 129u8, 7u8, 1u8, 88u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 82u8, 101u8, 99u8,
111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 83u8, 112u8, 101u8, 99u8, 62u8, 0u8, 1u8, 28u8,
100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 253u8, 2u8, 1u8, 36u8, 67u8, 65u8, 68u8, 101u8,
116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 1u8, 28u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8,
137u8, 7u8, 1u8, 96u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 97u8, 114u8, 103u8,
101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 62u8, 0u8,
1u8, 92u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 119u8, 105u8, 116u8, 104u8,
104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 221u8, 2u8, 1u8, 44u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 97u8, 120u8, 62u8, 0u8, 1u8, 60u8, 119u8,
105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8,
141u8, 7u8, 1u8, 120u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 86u8, 101u8, 99u8, 60u8,
40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 84u8, 97u8,
120u8, 41u8, 62u8, 62u8, 0u8, 4u8, 120u8, 73u8, 1u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8,
116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 67u8, 65u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 111u8, 102u8, 32u8, 96u8, 107u8, 105u8, 110u8,
100u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8,
112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8,
98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8,
32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 114u8, 101u8, 108u8, 101u8,
118u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 46u8, 140u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 115u8, 32u8,
109u8, 97u8, 100u8, 101u8, 32u8, 102u8, 111u8, 114u8, 46u8, 124u8, 45u8, 32u8, 96u8, 107u8,
105u8, 110u8, 100u8, 96u8, 32u8, 111u8, 102u8, 32u8, 67u8, 65u8, 32u8, 98u8, 101u8, 105u8, 110u8,
103u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 46u8, 152u8, 45u8,
32u8, 96u8, 100u8, 101u8, 99u8, 108u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 111u8, 102u8,
32u8, 67u8, 65u8, 32u8, 98u8, 114u8, 105u8, 110u8, 103u8, 32u8, 105u8, 110u8, 105u8, 116u8,
105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 100u8, 46u8, 240u8, 45u8, 32u8, 96u8, 114u8, 101u8,
99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8,
97u8, 110u8, 121u8, 44u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8, 108u8, 97u8,
116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 109u8, 112u8, 97u8, 99u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 46u8, 97u8, 1u8, 32u8, 32u8,
32u8, 73u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 44u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 32u8, 105u8,
110u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 32u8, 40u8, 34u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8,
116u8, 34u8, 41u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 97u8, 116u8, 101u8,
46u8, 77u8, 1u8, 45u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 110u8, 32u8, 102u8,
114u8, 101u8, 101u8, 45u8, 116u8, 101u8, 120u8, 116u8, 32u8, 102u8, 111u8, 114u8, 109u8, 44u8,
32u8, 117u8, 112u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 99u8, 101u8, 114u8, 116u8, 97u8, 105u8,
110u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 121u8,
116u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8,
244u8, 45u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 96u8, 44u8, 32u8, 105u8,
102u8, 32u8, 97u8, 110u8, 121u8, 44u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 108u8, 101u8,
118u8, 97u8, 110u8, 116u8, 47u8, 105u8, 114u8, 114u8, 101u8, 108u8, 101u8, 118u8, 97u8, 110u8,
116u8, 32u8, 116u8, 111u8, 46u8, 73u8, 1u8, 32u8, 32u8, 32u8, 79u8, 118u8, 101u8, 114u8, 114u8,
105u8, 100u8, 101u8, 115u8, 44u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8,
100u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8,
108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 32u8, 108u8, 101u8, 118u8, 101u8, 108u8, 32u8, 40u8, 96u8, 115u8, 101u8, 116u8, 95u8,
100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
115u8, 96u8, 41u8, 46u8, 93u8, 1u8, 45u8, 32u8, 96u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 95u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8,
116u8, 97u8, 120u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 44u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 32u8,
119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8,
120u8, 32u8, 116u8, 111u8, 32u8, 117u8, 115u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 46u8, 105u8, 1u8, 32u8, 32u8, 32u8, 79u8, 118u8, 101u8,
114u8, 114u8, 105u8, 100u8, 101u8, 115u8, 44u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 108u8, 101u8, 118u8, 101u8, 108u8, 32u8, 40u8, 96u8, 115u8, 101u8,
116u8, 95u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 119u8, 105u8, 116u8, 104u8,
104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 96u8, 41u8, 46u8,
33u8, 1u8, 45u8, 32u8, 96u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8,
110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 96u8, 44u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8,
44u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 115u8, 32u8, 112u8, 101u8, 114u8,
45u8, 68u8, 73u8, 68u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8,
110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 111u8, 118u8, 101u8, 114u8, 114u8, 105u8, 100u8,
101u8, 115u8, 46u8, 89u8, 1u8, 32u8, 32u8, 32u8, 79u8, 118u8, 101u8, 114u8, 114u8, 105u8, 100u8,
101u8, 115u8, 44u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8,
32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8,
108u8, 101u8, 118u8, 101u8, 108u8, 32u8, 40u8, 96u8, 115u8, 101u8, 116u8, 95u8, 100u8, 105u8,
100u8, 95u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8,
116u8, 97u8, 120u8, 96u8, 41u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 29u8, 1u8, 45u8, 32u8, 96u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 84u8, 111u8,
111u8, 76u8, 111u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 32u8, 103u8, 111u8,
101u8, 115u8, 32u8, 98u8, 101u8, 121u8, 111u8, 110u8, 100u8, 32u8, 96u8, 109u8, 97u8, 120u8,
95u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 95u8, 108u8, 101u8, 110u8, 103u8, 116u8,
104u8, 96u8, 46u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 105u8, 1u8, 45u8, 32u8, 96u8, 67u8, 111u8, 117u8,
110u8, 116u8, 101u8, 114u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 96u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 108u8, 105u8, 107u8, 101u8, 108u8,
121u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8,
111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 67u8, 65u8, 115u8, 32u8, 119u8, 101u8, 114u8,
101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 44u8,
248u8, 32u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8, 103u8, 101u8,
114u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 111u8, 99u8, 99u8, 117u8, 114u8, 101u8,
100u8, 32u8, 105u8, 102u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 117u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8, 111u8,
77u8, 97u8, 110u8, 121u8, 68u8, 105u8, 100u8, 84u8, 97u8, 120u8, 101u8, 115u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8,
95u8, 116u8, 97u8, 120u8, 46u8, 117u8, 110u8, 119u8, 114u8, 97u8, 112u8, 40u8, 41u8, 46u8, 108u8,
101u8, 110u8, 40u8, 41u8, 96u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 103u8, 111u8,
32u8, 111u8, 118u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 32u8, 96u8, 77u8, 97u8, 120u8, 68u8, 105u8, 100u8, 87u8, 104u8, 116u8, 115u8, 96u8, 46u8,
1u8, 1u8, 45u8, 32u8, 96u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 68u8,
105u8, 100u8, 84u8, 97u8, 120u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8,
32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 32u8, 109u8,
111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 111u8, 110u8, 99u8, 101u8, 32u8,
105u8, 110u8, 32u8, 96u8, 119u8, 116u8, 96u8, 46u8, 85u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8,
111u8, 77u8, 97u8, 110u8, 121u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 115u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 46u8,
117u8, 110u8, 119u8, 114u8, 97u8, 112u8, 40u8, 41u8, 46u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 32u8, 62u8, 32u8, 84u8,
58u8, 58u8, 77u8, 97u8, 120u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 115u8, 58u8,
58u8, 103u8, 101u8, 116u8, 40u8, 41u8, 96u8, 46u8, 1u8, 1u8, 45u8, 32u8, 96u8, 68u8, 101u8, 99u8,
108u8, 68u8, 97u8, 116u8, 101u8, 73u8, 110u8, 70u8, 117u8, 116u8, 117u8, 114u8, 101u8, 96u8,
32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 99u8, 108u8, 97u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 97u8, 115u8,
116u8, 46u8, 81u8, 1u8, 45u8, 32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 96u8, 114u8, 101u8, 99u8,
111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 46u8, 105u8, 115u8, 95u8, 115u8, 111u8,
109u8, 101u8, 40u8, 41u8, 96u8, 44u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 101u8,
114u8, 114u8, 111u8, 114u8, 115u8, 32u8, 100u8, 117u8, 101u8, 32u8, 116u8, 111u8, 32u8, 99u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8, 109u8, 97u8, 121u8, 32u8, 111u8, 99u8, 99u8,
117u8, 114u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 44u8, 108u8, 105u8,
110u8, 107u8, 95u8, 99u8, 97u8, 95u8, 100u8, 111u8, 99u8, 8u8, 1u8, 8u8, 105u8, 100u8, 109u8,
2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 16u8, 100u8, 111u8, 99u8, 115u8, 1u8, 3u8,
1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 73u8,
100u8, 62u8, 0u8, 5u8, 72u8, 172u8, 76u8, 105u8, 110u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 67u8, 65u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 116u8,
111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 100u8,
111u8, 99u8, 115u8, 96u8, 46u8, 244u8, 65u8, 110u8, 121u8, 32u8, 112u8, 114u8, 101u8, 118u8,
105u8, 111u8, 117u8, 115u8, 32u8, 108u8, 105u8, 110u8, 107u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 102u8, 97u8, 118u8, 111u8, 114u8, 32u8,
111u8, 102u8, 32u8, 96u8, 100u8, 111u8, 99u8, 115u8, 96u8, 46u8, 0u8, 85u8, 1u8, 84u8, 104u8,
101u8, 32u8, 119u8, 111u8, 114u8, 107u8, 102u8, 108u8, 111u8, 119u8, 32u8, 104u8, 101u8, 114u8,
101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 97u8, 110u8,
100u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 110u8, 32u8, 97u8, 110u8, 121u8, 32u8, 111u8, 114u8,
100u8, 101u8, 114u8, 32u8, 100u8, 101u8, 115u8, 105u8, 114u8, 101u8, 100u8, 46u8, 196u8, 79u8,
110u8, 99u8, 101u8, 32u8, 98u8, 111u8, 116u8, 104u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
44u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 119u8, 32u8,
98u8, 101u8, 32u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 103u8, 101u8,
116u8, 104u8, 101u8, 114u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 81u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8,
98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8,
32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 105u8, 100u8, 46u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 114u8,
101u8, 108u8, 101u8, 118u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 168u8, 45u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8,
100u8, 111u8, 99u8, 115u8, 96u8, 46u8, 176u8, 45u8, 32u8, 96u8, 100u8, 111u8, 99u8, 115u8, 96u8,
32u8, 116u8, 111u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 96u8, 105u8, 100u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 216u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8,
99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8,
111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8,
32u8, 67u8, 65u8, 46u8, 25u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 68u8,
111u8, 99u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 111u8, 102u8, 32u8, 96u8,
100u8, 111u8, 99u8, 115u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8,
110u8, 116u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 36u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 95u8, 99u8, 97u8, 4u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8,
109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 6u8, 72u8, 148u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 46u8, 0u8, 196u8, 65u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8,
100u8, 32u8, 100u8, 97u8, 116u8, 97u8, 44u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 97u8, 115u8,
32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 108u8, 105u8, 110u8, 107u8,
115u8, 44u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 115u8, 44u8, 172u8, 97u8, 110u8,
100u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
97u8, 108u8, 115u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 0u8,
212u8, 65u8, 110u8, 121u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8,
104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 32u8, 100u8,
97u8, 116u8, 101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 115u8, 101u8, 101u8, 176u8, 96u8,
115u8, 116u8, 114u8, 111u8, 110u8, 103u8, 95u8, 114u8, 101u8, 102u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 40u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8, 105u8, 100u8,
41u8, 96u8, 32u8, 100u8, 101u8, 99u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 101u8, 100u8,
46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
93u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8,
101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 114u8, 101u8, 108u8, 101u8, 118u8,
97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 46u8, 120u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8,
1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8,
100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 216u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8, 0u8,
52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 72u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
95u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 8u8, 1u8, 20u8,
99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 44u8,
114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 129u8, 7u8, 1u8, 88u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8,
97u8, 116u8, 101u8, 83u8, 112u8, 101u8, 99u8, 62u8, 0u8, 7u8, 60u8, 224u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
67u8, 65u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 93u8, 1u8, 45u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 101u8,
114u8, 110u8, 97u8, 108u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 114u8, 101u8, 108u8, 101u8, 118u8, 97u8, 110u8, 116u8, 32u8,
112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 116u8, 45u8,
32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 116u8, 101u8, 114u8, 46u8, 236u8, 45u8,
32u8, 96u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 44u8,
32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 44u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8,
99u8, 117u8, 108u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 109u8, 112u8,
97u8, 99u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 46u8, 97u8,
1u8, 32u8, 32u8, 32u8, 73u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
44u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8,
32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8,
100u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8,
104u8, 111u8, 116u8, 32u8, 40u8, 34u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8,
110u8, 116u8, 34u8, 41u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 97u8, 116u8,
101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 216u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8,
81u8, 1u8, 45u8, 32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 96u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 46u8, 105u8, 115u8, 95u8, 115u8, 111u8, 109u8, 101u8,
40u8, 41u8, 96u8, 44u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 101u8, 114u8, 114u8,
111u8, 114u8, 115u8, 32u8, 100u8, 117u8, 101u8, 32u8, 116u8, 111u8, 32u8, 99u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 105u8, 110u8, 103u8, 32u8, 109u8, 97u8, 121u8, 32u8, 111u8, 99u8, 99u8, 117u8, 114u8,
46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 160u8, 105u8, 110u8, 105u8, 116u8,
105u8, 97u8, 116u8, 101u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8,
95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 97u8, 110u8, 100u8, 95u8, 100u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 28u8, 1u8, 28u8, 99u8, 97u8, 95u8, 97u8,
114u8, 103u8, 115u8, 145u8, 7u8, 1u8, 108u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8,
101u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8,
111u8, 110u8, 65u8, 114u8, 103u8, 115u8, 0u8, 1u8, 36u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 109u8, 7u8, 1u8, 92u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 62u8, 0u8, 1u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 156u8, 1u8,
24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 36u8, 112u8, 101u8, 114u8, 95u8, 115u8,
104u8, 97u8, 114u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 40u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8,
116u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 40u8, 101u8, 120u8,
112u8, 105u8, 114u8, 101u8, 115u8, 95u8, 97u8, 116u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 8u8, 4u8, 29u8,
1u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 32u8, 116u8, 111u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 32u8, 96u8,
105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 96u8, 32u8, 97u8, 110u8,
100u8, 32u8, 96u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 96u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 129u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 133u8, 7u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8,
0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 133u8, 7u8, 0u8, 0u8, 1u8, 0u8, 0u8,
133u8, 7u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8,
111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 56u8,
82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 83u8, 112u8, 101u8, 99u8, 0u8,
1u8, 12u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 4u8, 0u8, 32u8,
1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 0u8, 0u8, 64u8, 69u8, 120u8, 105u8,
115u8, 116u8, 105u8, 110u8, 103u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 4u8,
0u8, 153u8, 2u8, 1u8, 40u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 73u8, 100u8,
0u8, 1u8, 0u8, 32u8, 69u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 4u8, 0u8, 133u8, 2u8,
1u8, 48u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 73u8, 100u8, 0u8,
2u8, 0u8, 0u8, 137u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8,
1u8, 213u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8,
109u8, 101u8, 4u8, 0u8, 213u8, 2u8, 0u8, 0u8, 1u8, 0u8, 0u8, 141u8, 7u8, 4u8, 24u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 245u8, 2u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8,
101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 245u8, 2u8, 0u8, 0u8, 1u8, 0u8,
0u8, 145u8, 7u8, 8u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8,
112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8,
108u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 116u8, 101u8, 67u8, 111u8, 114u8, 112u8, 111u8,
114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 65u8, 114u8, 103u8, 115u8,
0u8, 0u8, 32u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 16u8, 107u8, 105u8, 110u8, 100u8, 229u8, 2u8, 1u8,
24u8, 67u8, 65u8, 75u8, 105u8, 110u8, 100u8, 0u8, 1u8, 36u8, 100u8, 101u8, 99u8, 108u8, 95u8,
100u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 0u8, 1u8,
44u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 95u8, 100u8, 97u8, 116u8, 101u8, 129u8, 7u8, 1u8,
88u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8,
68u8, 97u8, 116u8, 101u8, 83u8, 112u8, 101u8, 99u8, 62u8, 0u8, 1u8, 28u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 253u8, 2u8, 1u8, 36u8, 67u8, 65u8, 68u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 0u8, 1u8, 28u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 137u8, 7u8, 1u8,
96u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 62u8, 0u8, 1u8, 92u8, 100u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8,
100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 221u8, 2u8, 1u8, 44u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 84u8, 97u8, 120u8, 62u8, 0u8, 1u8, 60u8, 119u8, 105u8, 116u8, 104u8,
104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 95u8, 116u8, 97u8, 120u8, 141u8, 7u8, 1u8,
120u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 86u8, 101u8, 99u8, 60u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 44u8, 32u8, 84u8, 97u8, 120u8, 41u8, 62u8,
62u8, 0u8, 0u8, 149u8, 7u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 24u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8,
4u8, 84u8, 0u8, 1u8, 24u8, 52u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 95u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 16u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8,
67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 20u8, 114u8, 97u8, 110u8, 103u8, 101u8, 9u8, 3u8, 1u8, 60u8,
66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8, 103u8,
101u8, 0u8, 1u8, 16u8, 109u8, 101u8, 116u8, 97u8, 13u8, 3u8, 1u8, 40u8, 66u8, 97u8, 108u8, 108u8,
111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 1u8, 12u8, 114u8, 99u8, 118u8, 21u8, 1u8, 1u8, 16u8,
98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 104u8, 232u8, 65u8, 116u8, 116u8, 97u8, 99u8, 104u8, 32u8,
97u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 0u8, 172u8, 84u8, 104u8, 101u8, 32u8, 98u8,
97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 97u8, 100u8, 109u8,
105u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 105u8,
110u8, 32u8, 96u8, 114u8, 97u8, 110u8, 103u8, 101u8, 96u8, 46u8, 176u8, 84u8, 104u8, 101u8, 32u8,
98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 39u8, 115u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 105u8, 115u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8, 44u8, 5u8, 1u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 116u8, 105u8, 116u8,
108u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8,
115u8, 44u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8,
101u8, 115u8, 44u8, 32u8, 101u8, 116u8, 99u8, 46u8, 120u8, 83u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 96u8,
32u8, 102u8, 111u8, 114u8, 32u8, 109u8, 111u8, 114u8, 101u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8,
112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8,
32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 46u8, 208u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 67u8, 65u8, 32u8, 116u8, 111u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 116u8, 111u8, 46u8,
192u8, 45u8, 32u8, 96u8, 114u8, 97u8, 110u8, 103u8, 101u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8,
105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 118u8, 111u8, 116u8,
105u8, 110u8, 103u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8,
32u8, 101u8, 110u8, 100u8, 115u8, 46u8, 236u8, 45u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8,
32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 39u8, 115u8, 32u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 32u8, 97u8, 115u8, 32u8, 97u8, 102u8, 111u8, 114u8, 101u8, 109u8,
101u8, 110u8, 116u8, 105u8, 111u8, 110u8, 101u8, 100u8, 46u8, 228u8, 45u8, 32u8, 96u8, 114u8,
99u8, 118u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8,
119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 82u8, 67u8, 86u8, 32u8, 105u8, 115u8,
32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 228u8, 45u8, 32u8, 96u8, 78u8,
111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8,
95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8, 240u8, 45u8, 32u8, 96u8, 67u8,
65u8, 78u8, 111u8, 116u8, 78u8, 111u8, 116u8, 105u8, 99u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8,
78u8, 111u8, 116u8, 105u8, 99u8, 101u8, 96u8, 32u8, 107u8, 105u8, 110u8, 100u8, 46u8, 188u8,
45u8, 32u8, 96u8, 83u8, 116u8, 97u8, 114u8, 116u8, 65u8, 102u8, 116u8, 101u8, 114u8, 69u8, 110u8,
100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8, 115u8,
116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8, 101u8,
110u8, 100u8, 96u8, 46u8, 41u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 119u8, 65u8, 102u8, 116u8,
101u8, 114u8, 69u8, 110u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 111u8, 119u8,
32u8, 62u8, 32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8, 101u8, 110u8, 100u8, 96u8, 32u8, 119u8,
104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 110u8, 111u8, 119u8, 96u8, 32u8, 105u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 105u8,
109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 46u8, 168u8, 45u8, 32u8, 96u8, 78u8, 111u8, 82u8,
101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 67u8,
65u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 89u8, 1u8, 45u8, 32u8, 96u8, 82u8, 101u8, 99u8,
111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 65u8, 102u8, 116u8, 101u8, 114u8, 83u8, 116u8,
97u8, 114u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 100u8, 97u8, 116u8, 101u8, 32u8, 62u8,
32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8, 115u8, 116u8, 97u8, 114u8, 116u8, 96u8, 32u8,
119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 114u8, 101u8, 99u8, 111u8,
114u8, 100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 184u8, 45u8, 32u8, 96u8, 65u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8,
111u8, 116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 46u8, 49u8, 1u8, 45u8, 32u8,
96u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 79u8, 102u8, 67u8, 104u8, 111u8, 105u8, 99u8,
101u8, 115u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 99u8, 104u8, 111u8,
105u8, 99u8, 101u8, 32u8, 105u8, 110u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8, 32u8, 111u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 115u8, 32u8, 96u8, 117u8, 115u8, 105u8, 122u8,
101u8, 96u8, 46u8, 9u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8,
96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 101u8, 109u8, 98u8, 101u8, 100u8, 100u8, 101u8, 100u8, 32u8, 115u8, 116u8, 114u8,
105u8, 110u8, 103u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8,
32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 111u8, 111u8, 32u8, 108u8, 111u8, 110u8, 103u8, 46u8, 1u8,
1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 32u8, 102u8, 101u8, 101u8,
32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 104u8,
97u8, 114u8, 103u8, 101u8, 100u8, 46u8, 16u8, 118u8, 111u8, 116u8, 101u8, 8u8, 1u8, 20u8, 99u8,
97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 20u8, 118u8,
111u8, 116u8, 101u8, 115u8, 45u8, 3u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 86u8, 111u8, 116u8, 101u8, 62u8, 0u8, 1u8, 68u8, 17u8, 1u8, 67u8, 97u8,
115u8, 116u8, 32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 115u8, 96u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 97u8, 116u8, 116u8,
97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 9u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8,
97u8, 114u8, 103u8, 101u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 67u8, 65u8, 46u8, 184u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8,
116u8, 39u8, 115u8, 32u8, 67u8, 65u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 118u8, 111u8, 116u8,
101u8, 115u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 116u8,
111u8, 32u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 32u8, 116u8, 111u8, 32u8, 101u8, 97u8,
99u8, 104u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 85u8, 1u8, 32u8, 32u8, 32u8,
84u8, 104u8, 101u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8,
103u8, 32u8, 112u8, 111u8, 119u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8, 32u8, 68u8, 73u8, 68u8, 32u8, 109u8, 97u8, 121u8,
32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
97u8, 99u8, 104u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 220u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8,
104u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8,
95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 46u8, 252u8, 45u8, 32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8,
78u8, 111u8, 116u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8, 101u8,
114u8, 105u8, 111u8, 100u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 99u8, 111u8,
109u8, 109u8, 101u8, 110u8, 99u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 46u8, 216u8, 45u8,
32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 69u8, 110u8, 100u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8,
32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 110u8, 100u8, 101u8, 100u8, 46u8, 93u8, 1u8, 45u8, 32u8,
96u8, 87u8, 114u8, 111u8, 110u8, 103u8, 86u8, 111u8, 116u8, 101u8, 67u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8,
100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8,
32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 46u8,
228u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 67u8, 65u8, 46u8,
244u8, 45u8, 32u8, 96u8, 78u8, 111u8, 116u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 101u8,
100u8, 66u8, 121u8, 67u8, 65u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8,
65u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8,
32u8, 68u8, 73u8, 68u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8,
102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 86u8, 111u8, 116u8, 101u8, 115u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8,
112u8, 111u8, 119u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 110u8, 121u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8,
32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 115u8, 96u8, 164u8, 32u8, 32u8, 32u8, 101u8, 120u8, 99u8,
101u8, 101u8, 100u8, 115u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8,
115u8, 32u8, 68u8, 73u8, 68u8, 39u8, 115u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8,
112u8, 111u8, 119u8, 101u8, 114u8, 46u8, 40u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8,
101u8, 110u8, 100u8, 8u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8,
65u8, 73u8, 100u8, 0u8, 1u8, 12u8, 101u8, 110u8, 100u8, 32u8, 1u8, 24u8, 77u8, 111u8, 109u8,
101u8, 110u8, 116u8, 0u8, 2u8, 48u8, 5u8, 1u8, 65u8, 109u8, 101u8, 110u8, 100u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8,
32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8,
32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8,
100u8, 46u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 184u8, 45u8, 32u8, 96u8, 99u8,
97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8,
101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8,
100u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 39u8, 115u8, 32u8, 67u8, 65u8, 46u8, 196u8,
45u8, 32u8, 96u8, 101u8, 110u8, 100u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 101u8, 110u8,
100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 220u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8,
104u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8,
95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8,
65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 61u8, 32u8,
110u8, 111u8, 119u8, 96u8, 44u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 110u8,
111u8, 119u8, 96u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 140u8, 45u8, 32u8, 96u8,
83u8, 116u8, 97u8, 114u8, 116u8, 65u8, 102u8, 116u8, 101u8, 114u8, 69u8, 110u8, 100u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 32u8, 101u8, 110u8,
100u8, 96u8, 46u8, 44u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 109u8, 101u8, 116u8, 97u8,
8u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8,
0u8, 1u8, 16u8, 109u8, 101u8, 116u8, 97u8, 13u8, 3u8, 1u8, 40u8, 66u8, 97u8, 108u8, 108u8, 111u8,
116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 3u8, 52u8, 97u8, 1u8, 65u8, 109u8, 101u8, 110u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 40u8,
116u8, 105u8, 116u8, 108u8, 101u8, 44u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 115u8,
44u8, 32u8, 101u8, 116u8, 99u8, 46u8, 41u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
67u8, 65u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8,
112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8,
32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 46u8, 184u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 98u8, 97u8, 108u8, 108u8,
111u8, 116u8, 39u8, 115u8, 32u8, 67u8, 65u8, 46u8, 144u8, 45u8, 32u8, 96u8, 109u8, 101u8, 116u8,
97u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 220u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 49u8,
1u8, 45u8, 32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 61u8, 32u8, 110u8, 111u8, 119u8, 96u8, 44u8,
32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 110u8, 111u8, 119u8, 96u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
116u8, 105u8, 109u8, 101u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 79u8, 102u8, 67u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 79u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 116u8, 97u8, 108u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 32u8, 105u8, 110u8,
32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 115u8, 32u8, 96u8, 117u8, 115u8, 105u8, 122u8, 101u8, 96u8, 46u8, 9u8, 1u8, 45u8,
32u8, 96u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8, 97u8,
110u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 109u8, 98u8, 101u8,
100u8, 100u8, 101u8, 100u8, 32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 115u8, 32u8, 105u8,
110u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 96u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 111u8,
111u8, 32u8, 108u8, 111u8, 110u8, 103u8, 46u8, 40u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
95u8, 114u8, 99u8, 118u8, 8u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8, 100u8, 109u8, 2u8, 1u8, 16u8,
67u8, 65u8, 73u8, 100u8, 0u8, 1u8, 12u8, 114u8, 99u8, 118u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8,
111u8, 108u8, 0u8, 4u8, 44u8, 5u8, 1u8, 65u8, 109u8, 101u8, 110u8, 100u8, 32u8, 82u8, 67u8, 86u8,
32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 46u8, 0u8,
48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 69u8, 1u8,
45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8,
32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8,
97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 46u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 184u8, 45u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 98u8,
97u8, 108u8, 108u8, 111u8, 116u8, 39u8, 115u8, 32u8, 67u8, 65u8, 46u8, 204u8, 45u8, 32u8, 96u8,
114u8, 99u8, 118u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8,
32u8, 105u8, 102u8, 32u8, 82u8, 67u8, 86u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8,
101u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 111u8, 114u8,
32u8, 110u8, 111u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 220u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 66u8,
97u8, 108u8, 108u8, 111u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8,
100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8,
116u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 61u8, 32u8, 110u8, 111u8,
119u8, 96u8, 44u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 110u8, 111u8, 119u8,
96u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 52u8, 114u8, 101u8, 109u8, 111u8, 118u8,
101u8, 95u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 4u8, 1u8, 20u8, 99u8, 97u8, 95u8, 105u8,
100u8, 109u8, 2u8, 1u8, 16u8, 67u8, 65u8, 73u8, 100u8, 0u8, 5u8, 40u8, 200u8, 82u8, 101u8, 109u8,
111u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 99u8, 97u8, 95u8,
105u8, 100u8, 96u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8,
115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8,
99u8, 97u8, 95u8, 105u8, 100u8, 46u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 184u8,
45u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 116u8, 116u8, 97u8,
99u8, 104u8, 101u8, 100u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 39u8, 115u8, 32u8, 67u8,
65u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 37u8, 1u8, 45u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 46u8, 220u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 99u8, 97u8, 95u8, 105u8, 100u8, 96u8,
32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 49u8,
1u8, 45u8, 32u8, 96u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 62u8, 61u8, 32u8, 110u8, 111u8, 119u8, 96u8, 44u8,
32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 110u8, 111u8, 119u8, 96u8, 32u8, 105u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
116u8, 105u8, 109u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
153u8, 7u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8,
16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 68u8, 100u8, 115u8, 101u8, 116u8, 95u8,
112u8, 114u8, 117u8, 110u8, 101u8, 95u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 105u8, 99u8,
97u8, 108u8, 95u8, 112u8, 105u8, 112u8, 115u8, 4u8, 1u8, 20u8, 112u8, 114u8, 117u8, 110u8, 101u8,
21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 20u8, 164u8, 67u8, 104u8, 97u8, 110u8,
103u8, 101u8, 32u8, 119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 112u8, 114u8, 117u8, 110u8, 101u8, 100u8, 46u8, 108u8, 67u8, 97u8, 110u8, 32u8,
111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 240u8, 42u8, 32u8, 96u8, 112u8, 114u8, 117u8,
110u8, 101u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8,
119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8,
116u8, 101u8, 100u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 98u8, 101u8, 32u8, 112u8, 114u8, 117u8, 110u8, 101u8, 100u8, 46u8, 96u8, 115u8,
101u8, 116u8, 95u8, 109u8, 105u8, 110u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 4u8, 1u8, 28u8, 100u8, 101u8,
112u8, 111u8, 115u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 1u8, 20u8, 33u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8,
32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 97u8, 109u8,
111u8, 117u8, 110u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 108u8, 67u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 240u8, 42u8, 32u8, 96u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 109u8, 105u8, 110u8, 32u8,
100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 97u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 112u8, 115u8, 101u8, 116u8, 95u8, 100u8,
101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 95u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8,
110u8, 116u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 4u8, 1u8, 32u8, 100u8, 117u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 2u8, 20u8, 144u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 112u8, 101u8,
114u8, 105u8, 111u8, 100u8, 46u8, 108u8, 67u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8,
32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8,
111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 105u8, 1u8, 42u8, 32u8, 96u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 100u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8, 110u8, 116u8,
32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 105u8, 116u8, 32u8, 116u8, 97u8, 107u8,
101u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 100u8, 32u8, 80u8, 73u8, 80u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 88u8, 115u8, 101u8, 116u8, 95u8,
112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8, 112u8, 105u8, 112u8, 95u8, 101u8, 120u8,
112u8, 105u8, 114u8, 121u8, 4u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 53u8, 1u8,
1u8, 104u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 84u8, 58u8,
58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 3u8,
24u8, 5u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
115u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
97u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 80u8, 73u8, 80u8, 32u8, 105u8,
115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 180u8, 73u8, 102u8, 32u8,
96u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 96u8, 78u8,
111u8, 110u8, 101u8, 96u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8,
110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 108u8,
67u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8,
32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 29u8, 1u8, 42u8, 32u8, 96u8,
101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 45u8, 116u8, 105u8, 109u8, 101u8, 32u8, 105u8, 116u8, 32u8, 116u8, 97u8,
107u8, 101u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 116u8, 105u8, 108u8,
108u8, 45u8, 96u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 96u8, 32u8, 80u8, 73u8, 80u8,
32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 88u8, 115u8, 101u8,
116u8, 95u8, 109u8, 97u8, 120u8, 95u8, 112u8, 105u8, 112u8, 95u8, 115u8, 107u8, 105u8, 112u8,
95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 4u8, 1u8, 12u8, 109u8, 97u8, 120u8, 8u8, 1u8, 48u8, 83u8,
107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 4u8, 20u8,
212u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8,
120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 115u8, 107u8, 105u8, 112u8, 32u8, 99u8, 111u8, 117u8,
110u8, 116u8, 32u8, 40u8, 96u8, 109u8, 97u8, 120u8, 95u8, 112u8, 105u8, 112u8, 95u8, 115u8,
107u8, 105u8, 112u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 96u8, 41u8, 46u8, 108u8, 67u8, 97u8,
110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 236u8, 42u8, 32u8, 96u8, 109u8,
97u8, 120u8, 96u8, 32u8, 115u8, 107u8, 105u8, 112u8, 115u8, 32u8, 98u8, 101u8, 102u8, 111u8,
114u8, 101u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8,
32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 71u8, 67u8, 32u8, 97u8, 110u8, 121u8, 109u8, 111u8, 114u8, 101u8, 46u8, 80u8, 115u8, 101u8,
116u8, 95u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 112u8, 105u8, 112u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 4u8, 1u8, 20u8, 108u8, 105u8, 109u8, 105u8, 116u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 5u8, 20u8, 105u8, 1u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8,
32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 99u8, 111u8,
109u8, 109u8, 117u8, 110u8, 105u8, 116u8, 121u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 101u8, 32u8, 97u8, 110u8, 121u8, 116u8, 104u8, 105u8, 110u8, 103u8, 46u8, 108u8, 67u8,
97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 144u8, 42u8, 32u8, 96u8, 108u8,
105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 80u8,
73u8, 80u8, 115u8, 46u8, 28u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 16u8, 1u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 201u8, 5u8, 1u8, 64u8, 66u8, 111u8, 120u8,
60u8, 84u8, 58u8, 58u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 62u8, 0u8, 1u8,
28u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 12u8, 117u8, 114u8, 108u8, 77u8, 2u8, 1u8, 44u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 85u8, 114u8, 108u8, 62u8, 0u8, 1u8, 44u8, 100u8, 101u8, 115u8,
99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 77u8, 3u8, 1u8, 88u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 80u8, 105u8, 112u8, 68u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8,
116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 6u8, 36u8, 5u8, 1u8, 65u8, 32u8, 110u8, 101u8, 116u8,
119u8, 111u8, 114u8, 107u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8, 98u8, 121u8, 32u8,
115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 85u8, 1u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 32u8, 105u8, 110u8, 32u8, 115u8,
111u8, 109u8, 101u8, 119u8, 97u8, 121u8, 46u8, 32u8, 65u8, 32u8, 109u8, 105u8, 110u8, 105u8,
109u8, 117u8, 109u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 105u8, 115u8,
32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 111u8,
112u8, 101u8, 110u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 200u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8,
114u8, 96u8, 32u8, 105u8, 115u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8,
32u8, 115u8, 105u8, 103u8, 110u8, 105u8, 110u8, 103u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
114u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 101u8, 1u8,
32u8, 32u8, 32u8, 85u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 117u8, 110u8, 100u8,
101u8, 114u8, 115u8, 116u8, 97u8, 110u8, 100u8, 32u8, 119u8, 104u8, 101u8, 116u8, 104u8, 101u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 97u8, 110u8, 100u8, 32u8, 118u8, 101u8, 114u8, 105u8, 102u8, 105u8, 101u8,
100u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 46u8, 128u8, 42u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 96u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 69u8, 1u8, 42u8, 32u8, 96u8, 100u8,
101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 96u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8,
109u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 44u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 105u8, 103u8,
110u8, 111u8, 114u8, 101u8, 100u8, 32u8, 105u8, 102u8, 32u8, 96u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 101u8, 114u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 204u8, 42u8, 32u8, 96u8, 117u8, 114u8, 108u8,
96u8, 32u8, 97u8, 32u8, 108u8, 105u8, 110u8, 107u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 119u8,
101u8, 98u8, 115u8, 105u8, 116u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 99u8, 117u8, 115u8, 115u8, 105u8,
111u8, 110u8, 16u8, 118u8, 111u8, 116u8, 101u8, 12u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8,
20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 1u8, 40u8, 97u8, 121u8, 101u8, 95u8, 111u8, 114u8,
95u8, 110u8, 97u8, 121u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 28u8, 100u8,
101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 7u8, 72u8, 29u8, 1u8, 86u8, 111u8, 116u8, 101u8, 32u8, 101u8, 105u8, 116u8, 104u8,
101u8, 114u8, 32u8, 105u8, 110u8, 32u8, 102u8, 97u8, 118u8, 111u8, 114u8, 32u8, 40u8, 96u8, 97u8,
121u8, 101u8, 95u8, 111u8, 114u8, 95u8, 110u8, 97u8, 121u8, 96u8, 32u8, 61u8, 61u8, 32u8, 116u8,
114u8, 117u8, 101u8, 41u8, 32u8, 111u8, 114u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8,
116u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 105u8,
100u8, 96u8, 46u8, 77u8, 1u8, 84u8, 104u8, 101u8, 32u8, 34u8, 99u8, 111u8, 110u8, 118u8, 105u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 34u8, 32u8, 111u8, 114u8, 32u8, 115u8, 116u8, 114u8,
101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8,
111u8, 116u8, 101u8, 32u8, 105u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8,
121u8, 32u8, 96u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 96u8, 44u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8,
101u8, 100u8, 46u8, 0u8, 140u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
96u8, 118u8, 111u8, 116u8, 101u8, 96u8, 32u8, 105u8, 115u8, 32u8, 42u8, 110u8, 111u8, 116u8,
42u8, 32u8, 97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 118u8, 101u8, 46u8, 248u8, 84u8, 104u8,
97u8, 116u8, 32u8, 105u8, 115u8, 44u8, 32u8, 96u8, 118u8, 111u8, 116u8, 101u8, 40u8, 105u8,
100u8, 44u8, 32u8, 116u8, 114u8, 117u8, 101u8, 44u8, 32u8, 53u8, 48u8, 41u8, 96u8, 32u8, 102u8,
111u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 118u8, 111u8,
116u8, 101u8, 40u8, 105u8, 100u8, 44u8, 32u8, 116u8, 114u8, 117u8, 101u8, 44u8, 32u8, 52u8, 48u8,
41u8, 96u8, 73u8, 1u8, 119u8, 105u8, 108u8, 108u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8,
114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 96u8, 53u8, 48u8, 96u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 114u8, 101u8, 102u8, 117u8, 110u8, 100u8, 32u8,
96u8, 53u8, 48u8, 32u8, 45u8, 32u8, 49u8, 48u8, 96u8, 44u8, 32u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 32u8, 117u8, 112u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 52u8, 48u8, 96u8,
32u8, 105u8, 110u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 46u8, 37u8, 1u8, 84u8,
111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 97u8, 116u8, 111u8, 112u8, 32u8, 111u8, 102u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8,
44u8, 32u8, 121u8, 111u8, 117u8, 39u8, 108u8, 108u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8,
96u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 95u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 32u8, 43u8, 32u8, 97u8, 100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8,
96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
76u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 105u8, 100u8, 220u8, 42u8, 32u8, 96u8, 97u8, 121u8, 101u8, 95u8, 111u8, 114u8,
95u8, 110u8, 97u8, 121u8, 96u8, 44u8, 32u8, 97u8, 32u8, 98u8, 111u8, 111u8, 108u8, 32u8, 114u8,
101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 105u8, 110u8, 103u8, 32u8, 102u8, 111u8,
114u8, 32u8, 111u8, 114u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 32u8, 118u8,
111u8, 116u8, 101u8, 232u8, 42u8, 32u8, 96u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
96u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 34u8, 99u8, 111u8, 110u8, 118u8, 105u8, 99u8, 116u8,
105u8, 111u8, 110u8, 34u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 119u8, 104u8, 105u8, 99u8,
104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 105u8, 115u8, 32u8,
109u8, 97u8, 100u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
228u8, 42u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8,
101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8, 110u8, 99u8,
101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 80u8, 73u8, 80u8, 46u8, 228u8,
42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 70u8, 114u8, 111u8, 109u8, 67u8, 111u8, 109u8, 109u8,
117u8, 110u8, 105u8, 116u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 97u8, 100u8, 101u8, 32u8, 98u8,
121u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
192u8, 42u8, 32u8, 96u8, 73u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8,
102u8, 32u8, 80u8, 73u8, 80u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 112u8, 101u8, 110u8,
100u8, 105u8, 110u8, 103u8, 46u8, 45u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8,
102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 99u8,
97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8,
96u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 45u8, 32u8, 111u8, 108u8, 100u8,
95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 96u8, 46u8, 104u8, 97u8, 112u8, 112u8,
114u8, 111u8, 118u8, 101u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 4u8, 1u8, 8u8, 105u8, 100u8, 73u8,
3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 8u8, 28u8, 212u8, 65u8, 112u8, 112u8,
114u8, 111u8, 118u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8,
80u8, 73u8, 80u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 105u8, 100u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 5u8, 1u8, 42u8, 32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 32u8, 97u8, 32u8, 71u8, 67u8, 32u8,
118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8,
121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 216u8, 42u8, 32u8,
96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8,
39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 228u8, 42u8, 32u8, 96u8, 73u8, 110u8,
99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 115u8, 110u8, 39u8,
116u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 46u8, 224u8, 42u8, 32u8, 96u8,
78u8, 111u8, 116u8, 66u8, 121u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 121u8, 32u8, 97u8, 32u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 60u8, 114u8, 101u8, 106u8,
101u8, 99u8, 116u8, 95u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 4u8, 1u8, 8u8,
105u8, 100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 9u8, 32u8, 248u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
105u8, 100u8, 96u8, 44u8, 32u8, 114u8, 101u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 97u8, 110u8, 121u8, 32u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8, 102u8, 117u8,
110u8, 100u8, 115u8, 44u8, 184u8, 97u8, 115u8, 115u8, 117u8, 109u8, 105u8, 110u8, 103u8, 32u8,
105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8,
32u8, 99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 108u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 5u8, 1u8, 78u8, 111u8, 116u8, 101u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 45u8, 102u8, 111u8,
114u8, 45u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8,
110u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 106u8, 101u8,
99u8, 116u8, 101u8, 100u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
5u8, 1u8, 42u8, 32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 32u8, 97u8, 32u8, 71u8, 67u8, 32u8, 118u8, 111u8,
116u8, 105u8, 110u8, 103u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 216u8, 42u8, 32u8, 96u8, 78u8,
111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 96u8,
32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 119u8, 105u8, 116u8,
104u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8,
32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 21u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8, 99u8,
111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
83u8, 116u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8,
97u8, 110u8, 99u8, 101u8, 108u8, 108u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 101u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 56u8, 112u8, 114u8, 117u8, 110u8, 101u8, 95u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 4u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8,
1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 10u8, 36u8, 41u8, 1u8, 80u8, 114u8, 117u8,
110u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 105u8, 100u8, 96u8, 44u8,
32u8, 114u8, 101u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 110u8, 121u8,
32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8, 102u8, 117u8, 110u8, 100u8, 101u8, 100u8, 46u8,
100u8, 84u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 109u8, 97u8, 121u8, 32u8, 110u8, 111u8,
116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 0u8, 9u8, 1u8, 84u8,
104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 103u8, 97u8, 114u8, 98u8, 97u8,
103u8, 101u8, 32u8, 99u8, 111u8, 108u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8,
112u8, 117u8, 114u8, 112u8, 111u8, 115u8, 101u8, 115u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 5u8, 1u8, 42u8, 32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 32u8, 97u8, 32u8,
71u8, 67u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 109u8, 97u8, 106u8, 111u8,
114u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 115u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
216u8, 42u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8,
32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8,
115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 212u8, 42u8, 32u8,
96u8, 73u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8,
115u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 46u8, 80u8, 114u8, 101u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 8u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8,
0u8, 1u8, 20u8, 117u8, 110u8, 116u8, 105u8, 108u8, 17u8, 6u8, 1u8, 88u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 62u8, 0u8, 11u8, 36u8, 224u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8,
32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 98u8, 121u8,
32u8, 96u8, 105u8, 100u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 49u8, 1u8, 42u8, 32u8, 96u8, 117u8, 110u8, 116u8, 105u8, 108u8, 96u8,
32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8,
117u8, 116u8, 117u8, 114u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 119u8, 104u8,
101u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8,
101u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 102u8, 105u8, 110u8, 105u8, 115u8, 104u8, 101u8, 100u8, 46u8, 69u8, 1u8, 32u8, 32u8,
32u8, 96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 109u8,
101u8, 97u8, 110u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 101u8, 110u8, 97u8, 99u8,
116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 105u8,
115u8, 32u8, 103u8, 111u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 102u8, 105u8, 110u8,
105u8, 115u8, 104u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8,
116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 57u8, 1u8, 42u8, 32u8, 96u8, 82u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 78u8, 111u8, 116u8, 66u8, 121u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8,
101u8, 67u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 96u8, 32u8,
117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8,
99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 33u8, 1u8, 42u8,
32u8, 96u8, 73u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 101u8, 96u8, 32u8, 117u8, 110u8,
108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 115u8, 116u8, 97u8, 116u8, 101u8, 46u8,
56u8, 99u8, 108u8, 101u8, 97u8, 114u8, 95u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8,
116u8, 0u8, 12u8, 16u8, 232u8, 67u8, 108u8, 101u8, 97u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8,
101u8, 109u8, 105u8, 116u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8,
116u8, 32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 67u8, 108u8, 101u8,
97u8, 114u8, 101u8, 100u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 61u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8,
116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 97u8, 32u8, 110u8, 111u8, 110u8, 45u8, 71u8, 67u8, 45u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 115u8, 110u8, 97u8,
112u8, 115u8, 104u8, 111u8, 116u8, 0u8, 13u8, 20u8, 13u8, 1u8, 84u8, 97u8, 107u8, 101u8, 115u8,
32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 38u8, 38u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 80u8, 73u8, 80u8, 115u8, 46u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8,
115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 115u8, 111u8, 114u8,
116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 116u8, 111u8, 32u8, 97u8, 32u8, 112u8, 114u8, 105u8,
111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 98u8, 97u8,
115u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 80u8, 73u8, 80u8,
39u8, 115u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 61u8, 1u8, 42u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 67u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
96u8, 32u8, 45u8, 32u8, 116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 101u8, 100u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 32u8, 110u8, 111u8, 110u8, 45u8, 71u8, 67u8, 45u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
88u8, 101u8, 110u8, 97u8, 99u8, 116u8, 95u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8,
116u8, 95u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 4u8, 1u8, 28u8, 114u8, 101u8,
115u8, 117u8, 108u8, 116u8, 115u8, 157u8, 7u8, 1u8, 112u8, 86u8, 101u8, 99u8, 60u8, 40u8, 80u8,
105u8, 112u8, 73u8, 100u8, 44u8, 32u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8,
82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 41u8, 62u8, 0u8, 14u8, 68u8, 208u8, 69u8, 110u8, 97u8,
99u8, 116u8, 115u8, 32u8, 96u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 96u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 105u8,
110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8,
32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 46u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8, 115u8, 110u8,
97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8,
32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8,
102u8, 117u8, 114u8, 116u8, 104u8, 101u8, 114u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8,
101u8, 110u8, 116u8, 115u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8, 32u8, 105u8, 116u8, 32u8,
105u8, 115u8, 32u8, 99u8, 108u8, 101u8, 97u8, 114u8, 101u8, 100u8, 46u8, 0u8, 85u8, 1u8, 84u8,
104u8, 101u8, 32u8, 96u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 96u8, 32u8, 97u8,
114u8, 101u8, 32u8, 101u8, 110u8, 99u8, 111u8, 100u8, 101u8, 100u8, 32u8, 97u8, 32u8, 108u8,
105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 40u8, 105u8, 100u8, 44u8, 32u8, 114u8,
101u8, 115u8, 117u8, 108u8, 116u8, 41u8, 96u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8,
96u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 112u8,
112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8, 105u8, 100u8, 96u8, 46u8,
73u8, 1u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 112u8, 114u8, 105u8, 111u8,
114u8, 105u8, 116u8, 121u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8,
101u8, 110u8, 99u8, 111u8, 100u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 42u8, 108u8, 111u8, 119u8, 101u8, 115u8, 116u8, 32u8, 112u8, 114u8, 105u8,
111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 42u8, 46u8, 85u8,
1u8, 115u8, 111u8, 32u8, 96u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 32u8, 61u8, 32u8,
91u8, 40u8, 105u8, 100u8, 44u8, 32u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 41u8, 93u8,
96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8,
32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8, 117u8,
101u8, 91u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8, 117u8,
101u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 32u8, 45u8, 32u8, 49u8, 93u8, 96u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 13u8, 1u8, 42u8, 32u8, 96u8, 66u8,
97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 117u8, 110u8,
108u8, 101u8, 115u8, 115u8, 32u8, 97u8, 32u8, 71u8, 67u8, 32u8, 118u8, 111u8, 116u8, 105u8,
110u8, 103u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 102u8, 117u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 33u8, 1u8, 42u8, 32u8, 96u8, 67u8, 97u8, 110u8,
110u8, 111u8, 116u8, 83u8, 107u8, 105u8, 112u8, 80u8, 105u8, 112u8, 96u8, 32u8, 45u8, 32u8, 97u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 80u8, 73u8, 80u8, 32u8, 104u8, 97u8, 115u8, 32u8,
97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8,
107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8,
121u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 46u8, 13u8, 1u8, 42u8, 32u8, 96u8, 83u8, 110u8,
97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 84u8, 111u8,
111u8, 76u8, 97u8, 114u8, 103u8, 101u8, 96u8, 32u8, 45u8, 32u8, 111u8, 110u8, 32u8, 108u8, 101u8,
110u8, 40u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 41u8, 32u8, 62u8, 32u8, 108u8,
101u8, 110u8, 40u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 95u8, 113u8, 117u8,
101u8, 117u8, 101u8, 41u8, 46u8, 112u8, 42u8, 32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 73u8, 100u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 96u8, 32u8, 45u8,
32u8, 105u8, 102u8, 58u8, 36u8, 32u8, 32u8, 96u8, 96u8, 96u8, 116u8, 101u8, 120u8, 116u8, 152u8,
32u8, 32u8, 32u8, 226u8, 136u8, 131u8, 32u8, 40u8, 105u8, 32u8, 226u8, 136u8, 136u8, 32u8, 48u8,
46u8, 46u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8, 117u8,
101u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 41u8, 46u8, 252u8, 32u8, 32u8, 32u8, 32u8, 32u8,
114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 91u8, 105u8, 93u8, 46u8, 48u8, 32u8, 226u8,
137u8, 160u8, 32u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8,
117u8, 101u8, 91u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8,
117u8, 101u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 32u8, 45u8, 32u8, 105u8, 93u8, 46u8, 105u8,
100u8, 20u8, 32u8, 32u8, 96u8, 96u8, 96u8, 248u8, 32u8, 32u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 105u8, 115u8, 32u8, 112u8, 114u8, 111u8, 116u8, 101u8, 99u8, 116u8, 115u8, 32u8, 97u8,
103u8, 97u8, 105u8, 110u8, 115u8, 116u8, 32u8, 99u8, 108u8, 101u8, 97u8, 114u8, 105u8, 110u8,
103u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 119u8, 104u8, 105u8, 108u8, 101u8, 32u8,
71u8, 67u8, 32u8, 105u8, 115u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 46u8, 84u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 100u8, 95u8, 112u8, 105u8, 112u8, 4u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8,
20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 15u8, 4u8, 216u8, 73u8, 110u8, 116u8, 101u8, 114u8,
110u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8,
108u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8,
115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8,
32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 46u8, 80u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 95u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 95u8, 112u8, 105u8, 112u8, 8u8,
1u8, 12u8, 100u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8,
100u8, 0u8, 16u8, 4u8, 220u8, 73u8, 110u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 115u8, 32u8, 101u8, 120u8, 112u8,
105u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 80u8, 73u8,
80u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8,
32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8,
111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8,
101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8,
101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 157u8, 7u8, 0u8, 0u8, 2u8,
161u8, 7u8, 0u8, 161u8, 7u8, 0u8, 0u8, 4u8, 8u8, 73u8, 3u8, 165u8, 7u8, 0u8, 165u8, 7u8, 8u8,
44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 56u8, 83u8,
110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 0u8,
1u8, 12u8, 28u8, 65u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 0u8, 0u8, 0u8, 24u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 0u8, 1u8, 0u8, 16u8, 83u8, 107u8, 105u8, 112u8, 0u8, 2u8, 0u8,
0u8, 169u8, 7u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8,
1u8, 24u8, 64u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 4u8, 1u8, 16u8, 110u8, 97u8, 109u8, 101u8, 129u8, 3u8, 1u8, 52u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8,
4u8, 168u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8,
46u8, 64u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 4u8, 1u8, 12u8, 110u8, 117u8, 109u8, 220u8, 1u8, 60u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8,
1u8, 32u8, 53u8, 1u8, 68u8, 101u8, 108u8, 101u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 117u8,
115u8, 101u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8,
32u8, 65u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 99u8,
97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8,
111u8, 110u8, 108u8, 121u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8,
32u8, 110u8, 111u8, 32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 29u8, 1u8, 42u8, 32u8, 96u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 68u8, 111u8, 101u8, 115u8, 78u8, 111u8, 116u8, 69u8, 120u8, 105u8,
115u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 117u8, 109u8, 96u8, 32u8, 100u8,
111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8, 110u8,
99u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 240u8, 42u8, 32u8, 96u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 111u8, 116u8, 69u8, 109u8, 112u8, 116u8, 121u8,
96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 104u8, 111u8, 108u8,
100u8, 115u8, 32u8, 97u8, 110u8, 121u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 0u8, 52u8, 35u8,
32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8,
32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 80u8, 109u8, 111u8, 118u8,
101u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 95u8, 102u8, 117u8,
110u8, 100u8, 115u8, 12u8, 1u8, 16u8, 102u8, 114u8, 111u8, 109u8, 212u8, 1u8, 44u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 8u8, 116u8, 111u8, 212u8,
1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8,
20u8, 105u8, 116u8, 101u8, 109u8, 115u8, 173u8, 7u8, 1u8, 88u8, 86u8, 101u8, 99u8, 60u8, 77u8,
111u8, 118u8, 101u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 116u8,
101u8, 109u8, 62u8, 0u8, 2u8, 60u8, 93u8, 1u8, 77u8, 111u8, 118u8, 101u8, 115u8, 32u8, 97u8,
32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 111u8, 110u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8,
101u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 224u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 32u8, 77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 46u8, 17u8, 1u8, 70u8, 117u8,
110u8, 100u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8,
101u8, 100u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8,
99u8, 97u8, 110u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 99u8,
111u8, 118u8, 101u8, 114u8, 101u8, 100u8, 32u8, 118u8, 105u8, 97u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 109u8, 101u8, 116u8, 104u8, 111u8, 100u8, 46u8, 0u8, 224u8, 65u8, 32u8, 115u8,
104u8, 111u8, 114u8, 116u8, 32u8, 109u8, 101u8, 109u8, 111u8, 32u8, 99u8, 97u8, 110u8, 32u8,
98u8, 101u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 111u8,
32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 97u8, 109u8,
111u8, 117u8, 110u8, 116u8, 32u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8, 0u8, 32u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 105u8, 1u8, 42u8, 32u8, 96u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 68u8, 111u8, 101u8, 115u8, 78u8, 111u8, 116u8, 69u8, 120u8,
105u8, 115u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 111u8, 110u8, 101u8, 32u8, 111u8, 114u8,
32u8, 98u8, 111u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 114u8, 101u8, 102u8, 101u8,
114u8, 101u8, 110u8, 99u8, 101u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 81u8,
1u8, 42u8, 32u8, 96u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8,
110u8, 95u8, 105u8, 115u8, 95u8, 115u8, 97u8, 109u8, 101u8, 95u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 105u8, 102u8, 32u8, 98u8, 111u8, 116u8, 104u8,
32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8,
99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8,
101u8, 145u8, 1u8, 42u8, 32u8, 96u8, 68u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8,
116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 118u8, 101u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 115u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 100u8,
105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 105u8, 101u8, 115u8, 73u8, 1u8, 42u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8,
97u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 65u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8,
99u8, 105u8, 101u8, 110u8, 116u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8,
32u8, 102u8, 114u8, 101u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 52u8,
35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8,
42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 64u8, 114u8, 101u8,
110u8, 97u8, 109u8, 101u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
8u8, 1u8, 12u8, 110u8, 117u8, 109u8, 220u8, 1u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 28u8, 116u8, 111u8, 95u8,
110u8, 97u8, 109u8, 101u8, 129u8, 3u8, 1u8, 52u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 78u8, 97u8, 109u8, 101u8, 0u8, 3u8, 28u8, 128u8, 82u8, 101u8, 110u8, 97u8, 109u8,
101u8, 115u8, 32u8, 97u8, 32u8, 110u8, 111u8, 110u8, 45u8, 100u8, 101u8, 102u8, 97u8, 117u8,
108u8, 116u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 29u8, 1u8, 42u8, 32u8, 96u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 68u8, 111u8, 101u8, 115u8, 78u8, 111u8,
116u8, 69u8, 120u8, 105u8, 115u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 110u8, 117u8,
109u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 102u8,
101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 0u8, 52u8, 35u8, 32u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 88u8, 113u8, 117u8, 105u8, 116u8,
95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 95u8, 99u8, 117u8, 115u8,
116u8, 111u8, 100u8, 121u8, 4u8, 1u8, 12u8, 112u8, 105u8, 100u8, 212u8, 1u8, 44u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 4u8, 32u8, 188u8, 87u8, 104u8,
101u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8, 111u8,
102u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 95u8, 105u8,
100u8, 96u8, 44u8, 73u8, 1u8, 97u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 114u8, 101u8, 116u8,
117u8, 114u8, 110u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8,
116u8, 111u8, 100u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 32u8, 117u8, 110u8, 105u8, 108u8, 97u8, 116u8, 101u8, 114u8, 97u8, 108u8, 108u8,
121u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 93u8, 1u8, 42u8,
32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8,
67u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 96u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 32u8, 111u8, 102u8,
32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 95u8, 105u8, 100u8,
96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
96u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 95u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 121u8, 4u8, 1u8, 28u8, 97u8,
117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 5u8, 0u8, 12u8,
76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8,
97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8,
114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 173u8, 7u8, 0u8, 0u8, 2u8, 177u8, 7u8, 0u8,
177u8, 7u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 68u8, 77u8, 111u8, 118u8, 101u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 116u8, 101u8, 109u8, 0u8, 0u8, 12u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 16u8, 109u8, 101u8, 109u8, 111u8, 124u8, 1u8, 48u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 77u8, 101u8, 109u8, 111u8, 62u8, 0u8, 0u8, 181u8, 7u8, 8u8,
76u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8,
111u8, 108u8, 95u8, 102u8, 101u8, 101u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8,
1u8, 8u8, 72u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 99u8, 111u8, 101u8, 102u8, 102u8,
105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 4u8, 1u8, 44u8, 99u8, 111u8, 101u8, 102u8, 102u8, 105u8,
99u8, 105u8, 101u8, 110u8, 116u8, 145u8, 3u8, 1u8, 32u8, 80u8, 111u8, 115u8, 82u8, 97u8, 116u8,
105u8, 111u8, 0u8, 0u8, 16u8, 192u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 99u8, 111u8, 101u8, 102u8, 102u8, 105u8, 99u8,
105u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8,
111u8, 111u8, 116u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8,
69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 136u8, 42u8, 32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 114u8,
111u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 98u8, 97u8, 115u8, 101u8, 95u8, 102u8, 101u8, 101u8, 8u8,
1u8, 8u8, 111u8, 112u8, 185u8, 7u8, 1u8, 40u8, 80u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8,
108u8, 79u8, 112u8, 0u8, 1u8, 32u8, 98u8, 97u8, 115u8, 101u8, 95u8, 102u8, 101u8, 101u8, 24u8,
1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 16u8, 172u8, 67u8, 104u8, 97u8,
110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 32u8, 98u8, 97u8, 115u8,
101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
114u8, 111u8, 111u8, 116u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 32u8,
35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 136u8, 42u8, 32u8, 96u8, 66u8, 97u8, 100u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8,
114u8, 111u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 12u8,
76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8,
97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8,
114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8,
32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 185u8, 7u8, 12u8, 100u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 109u8, 109u8, 111u8, 110u8, 95u8,
117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8, 115u8, 48u8, 112u8, 114u8, 111u8, 116u8,
111u8, 99u8, 111u8, 108u8, 95u8, 102u8, 101u8, 101u8, 40u8, 80u8, 114u8, 111u8, 116u8, 111u8,
99u8, 111u8, 108u8, 79u8, 112u8, 0u8, 1u8, 52u8, 76u8, 65u8, 115u8, 115u8, 101u8, 116u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
0u8, 0u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 115u8, 115u8, 117u8, 101u8, 0u8, 1u8,
0u8, 68u8, 65u8, 115u8, 115u8, 101u8, 116u8, 65u8, 100u8, 100u8, 68u8, 111u8, 99u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 0u8, 2u8, 0u8, 64u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 114u8,
101u8, 97u8, 116u8, 101u8, 65u8, 115u8, 115u8, 101u8, 116u8, 0u8, 3u8, 0u8, 96u8, 67u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8,
83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 4u8, 0u8, 164u8, 67u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 77u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8,
65u8, 100u8, 100u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 0u8, 5u8, 0u8, 88u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 67u8, 100u8, 100u8, 82u8, 101u8, 103u8, 105u8,
115u8, 116u8, 101u8, 114u8, 68u8, 105u8, 100u8, 0u8, 6u8, 0u8, 64u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 65u8, 100u8, 100u8, 67u8, 108u8, 97u8, 105u8, 109u8, 0u8, 7u8, 0u8,
164u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 65u8, 100u8, 100u8, 83u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 87u8, 105u8, 116u8,
104u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
0u8, 8u8, 0u8, 44u8, 80u8, 105u8, 112u8, 115u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8,
0u8, 9u8, 0u8, 64u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 80u8, 117u8,
116u8, 67u8, 111u8, 100u8, 101u8, 0u8, 10u8, 0u8, 108u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8,
97u8, 116u8, 101u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 65u8, 116u8, 116u8, 97u8, 99u8,
104u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 0u8, 11u8, 0u8, 116u8, 67u8, 97u8, 112u8, 105u8,
116u8, 97u8, 108u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 0u8, 12u8, 0u8, 0u8,
189u8, 7u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 114u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8, 67u8,
97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 16u8, 1u8, 16u8, 119u8, 104u8, 101u8, 110u8, 16u8, 1u8, 56u8, 84u8, 58u8,
58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 56u8,
109u8, 97u8, 121u8, 98u8, 101u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 105u8, 99u8,
193u8, 7u8, 1u8, 160u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 60u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 62u8,
0u8, 1u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 8u8, 1u8, 72u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 114u8, 105u8, 111u8, 114u8,
105u8, 116u8, 121u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 197u8, 7u8, 1u8, 80u8, 66u8,
111u8, 120u8, 60u8, 67u8, 97u8, 108u8, 108u8, 79u8, 114u8, 72u8, 97u8, 115u8, 104u8, 79u8, 102u8,
60u8, 84u8, 62u8, 62u8, 0u8, 0u8, 4u8, 112u8, 65u8, 110u8, 111u8, 110u8, 121u8, 109u8, 111u8,
117u8, 115u8, 108u8, 121u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
97u8, 32u8, 116u8, 97u8, 115u8, 107u8, 46u8, 24u8, 99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 8u8,
1u8, 16u8, 119u8, 104u8, 101u8, 110u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8,
120u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 4u8, 148u8, 67u8, 97u8, 110u8, 99u8, 101u8,
108u8, 32u8, 97u8, 110u8, 32u8, 97u8, 110u8, 111u8, 110u8, 121u8, 109u8, 111u8, 117u8, 115u8,
108u8, 121u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 116u8,
97u8, 115u8, 107u8, 46u8, 56u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8,
110u8, 97u8, 109u8, 101u8, 100u8, 20u8, 1u8, 8u8, 105u8, 100u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 119u8, 104u8, 101u8, 110u8, 16u8, 1u8, 56u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8,
56u8, 109u8, 97u8, 121u8, 98u8, 101u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 105u8,
99u8, 193u8, 7u8, 1u8, 160u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 60u8,
84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8,
62u8, 0u8, 1u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 8u8, 1u8, 72u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 114u8, 105u8, 111u8,
114u8, 105u8, 116u8, 121u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 197u8, 7u8, 1u8, 80u8,
66u8, 111u8, 120u8, 60u8, 67u8, 97u8, 108u8, 108u8, 79u8, 114u8, 72u8, 97u8, 115u8, 104u8, 79u8,
102u8, 60u8, 84u8, 62u8, 62u8, 0u8, 2u8, 4u8, 88u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 32u8, 97u8, 32u8, 110u8, 97u8, 109u8, 101u8, 100u8, 32u8, 116u8, 97u8, 115u8,
107u8, 46u8, 48u8, 99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 95u8, 110u8, 97u8, 109u8, 101u8, 100u8,
4u8, 1u8, 8u8, 105u8, 100u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8,
3u8, 4u8, 120u8, 67u8, 97u8, 110u8, 99u8, 101u8, 108u8, 32u8, 97u8, 32u8, 110u8, 97u8, 109u8,
101u8, 100u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 116u8,
97u8, 115u8, 107u8, 46u8, 56u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8,
97u8, 102u8, 116u8, 101u8, 114u8, 16u8, 1u8, 20u8, 97u8, 102u8, 116u8, 101u8, 114u8, 16u8, 1u8,
56u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
0u8, 1u8, 56u8, 109u8, 97u8, 121u8, 98u8, 101u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8,
105u8, 99u8, 193u8, 7u8, 1u8, 160u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8,
60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
62u8, 62u8, 0u8, 1u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 8u8, 1u8,
72u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 114u8, 105u8,
111u8, 114u8, 105u8, 116u8, 121u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 197u8, 7u8, 1u8,
80u8, 66u8, 111u8, 120u8, 60u8, 67u8, 97u8, 108u8, 108u8, 79u8, 114u8, 72u8, 97u8, 115u8, 104u8,
79u8, 102u8, 60u8, 84u8, 62u8, 62u8, 0u8, 4u8, 20u8, 168u8, 65u8, 110u8, 111u8, 110u8, 121u8,
109u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 97u8, 32u8, 116u8, 97u8, 115u8, 107u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8,
97u8, 32u8, 100u8, 101u8, 108u8, 97u8, 121u8, 46u8, 0u8, 40u8, 35u8, 32u8, 60u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 62u8, 84u8, 83u8, 97u8, 109u8, 101u8, 32u8, 97u8, 115u8, 32u8, 91u8,
96u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 96u8, 93u8, 46u8, 44u8, 35u8, 32u8,
60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 80u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 95u8, 110u8, 97u8, 109u8, 101u8, 100u8, 95u8, 97u8, 102u8, 116u8,
101u8, 114u8, 20u8, 1u8, 8u8, 105u8, 100u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8,
56u8, 62u8, 0u8, 1u8, 20u8, 97u8, 102u8, 116u8, 101u8, 114u8, 16u8, 1u8, 56u8, 84u8, 58u8, 58u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 56u8, 109u8,
97u8, 121u8, 98u8, 101u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 105u8, 99u8, 193u8,
7u8, 1u8, 160u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 60u8, 84u8, 58u8, 58u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 62u8, 0u8, 1u8,
32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 8u8, 1u8, 72u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8,
121u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 197u8, 7u8, 1u8, 80u8, 66u8, 111u8, 120u8, 60u8,
67u8, 97u8, 108u8, 108u8, 79u8, 114u8, 72u8, 97u8, 115u8, 104u8, 79u8, 102u8, 60u8, 84u8, 62u8,
62u8, 0u8, 5u8, 20u8, 144u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 97u8,
32u8, 110u8, 97u8, 109u8, 101u8, 100u8, 32u8, 116u8, 97u8, 115u8, 107u8, 32u8, 97u8, 102u8,
116u8, 101u8, 114u8, 32u8, 97u8, 32u8, 100u8, 101u8, 108u8, 97u8, 121u8, 46u8, 0u8, 40u8, 35u8,
32u8, 60u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 196u8, 83u8, 97u8, 109u8, 101u8,
32u8, 97u8, 115u8, 32u8, 91u8, 96u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8,
110u8, 97u8, 109u8, 101u8, 100u8, 96u8, 93u8, 40u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8, 110u8, 97u8, 109u8, 101u8, 100u8, 41u8,
46u8, 44u8, 35u8, 32u8, 60u8, 47u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 62u8, 4u8, 37u8,
1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8,
118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 46u8, 193u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8,
84u8, 1u8, 153u8, 3u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8,
111u8, 109u8, 101u8, 4u8, 0u8, 153u8, 3u8, 0u8, 0u8, 1u8, 0u8, 0u8, 197u8, 7u8, 16u8, 52u8,
102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 24u8,
116u8, 114u8, 97u8, 105u8, 116u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 44u8, 77u8, 97u8, 121u8, 98u8, 101u8, 72u8, 97u8, 115u8, 104u8, 101u8, 100u8, 8u8, 4u8,
84u8, 1u8, 201u8, 5u8, 16u8, 72u8, 97u8, 115u8, 104u8, 1u8, 36u8, 1u8, 8u8, 20u8, 86u8, 97u8,
108u8, 117u8, 101u8, 4u8, 0u8, 201u8, 5u8, 1u8, 4u8, 84u8, 0u8, 0u8, 0u8, 16u8, 72u8, 97u8,
115u8, 104u8, 4u8, 0u8, 36u8, 1u8, 16u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 0u8, 0u8, 201u8,
7u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8,
68u8, 48u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 118u8, 101u8, 110u8, 117u8, 101u8,
12u8, 1u8, 28u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 169u8, 3u8, 1u8, 48u8, 86u8,
101u8, 110u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 1u8, 28u8, 115u8,
105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 232u8, 1u8, 68u8, 86u8, 101u8, 99u8, 60u8, 84u8, 58u8,
58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 12u8, 116u8,
121u8, 112u8, 173u8, 3u8, 1u8, 36u8, 86u8, 101u8, 110u8, 117u8, 101u8, 84u8, 121u8, 112u8, 101u8,
0u8, 0u8, 20u8, 88u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 115u8, 32u8, 97u8,
32u8, 110u8, 101u8, 119u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 0u8, 164u8, 42u8, 32u8,
96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 45u8, 32u8, 69u8, 120u8, 116u8,
114u8, 97u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 97u8, 98u8, 111u8,
117u8, 116u8, 32u8, 97u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 61u8, 1u8, 42u8, 32u8, 96u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 96u8, 32u8, 45u8, 32u8, 65u8, 114u8, 114u8,
97u8, 121u8, 32u8, 111u8, 102u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 148u8, 42u8, 32u8, 96u8, 116u8, 121u8, 112u8, 96u8,
32u8, 45u8, 32u8, 84u8, 121u8, 112u8, 101u8, 32u8, 111u8, 102u8, 32u8, 118u8, 101u8, 110u8,
117u8, 101u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
101u8, 100u8, 80u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 95u8, 118u8, 101u8, 110u8, 117u8,
101u8, 95u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 8u8, 1u8, 8u8, 105u8, 100u8, 165u8,
3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 1u8, 28u8, 100u8, 101u8,
116u8, 97u8, 105u8, 108u8, 115u8, 169u8, 3u8, 1u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8, 68u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 1u8, 16u8, 92u8, 69u8, 100u8, 105u8, 116u8, 32u8,
97u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 39u8, 115u8, 32u8, 100u8, 101u8, 116u8, 97u8,
105u8, 108u8, 115u8, 46u8, 0u8, 180u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 115u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 73u8, 68u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8,
116u8, 111u8, 32u8, 101u8, 100u8, 105u8, 116u8, 46u8, 192u8, 42u8, 32u8, 96u8, 100u8, 101u8,
116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8,
101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8,
32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8,
46u8, 68u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 95u8, 118u8, 101u8, 110u8, 117u8, 101u8,
95u8, 116u8, 121u8, 112u8, 101u8, 8u8, 1u8, 8u8, 105u8, 100u8, 165u8, 3u8, 1u8, 28u8, 86u8,
101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 1u8, 12u8, 116u8, 121u8, 112u8, 173u8, 3u8, 1u8,
36u8, 86u8, 101u8, 110u8, 117u8, 101u8, 84u8, 121u8, 112u8, 101u8, 0u8, 2u8, 16u8, 80u8, 69u8,
100u8, 105u8, 116u8, 32u8, 97u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 39u8, 115u8, 32u8,
116u8, 121u8, 112u8, 101u8, 46u8, 0u8, 180u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 73u8,
68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8,
32u8, 116u8, 111u8, 32u8, 101u8, 100u8, 105u8, 116u8, 46u8, 180u8, 42u8, 32u8, 96u8, 116u8,
121u8, 112u8, 101u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 60u8,
97u8, 100u8, 100u8, 95u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 20u8, 1u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 165u8, 3u8, 1u8,
28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 0u8, 1u8, 60u8, 115u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 181u8, 3u8, 1u8,
120u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 84u8, 121u8, 112u8,
101u8, 60u8, 84u8, 58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 62u8, 0u8, 1u8, 40u8, 116u8, 114u8, 97u8, 100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8,
240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 118u8, 97u8, 108u8, 117u8, 101u8, 95u8, 100u8,
97u8, 116u8, 101u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8,
58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 16u8, 108u8, 101u8, 103u8, 115u8,
185u8, 3u8, 1u8, 32u8, 86u8, 101u8, 99u8, 60u8, 76u8, 101u8, 103u8, 62u8, 0u8, 3u8, 48u8, 92u8,
65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 105u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 236u8, 42u8, 32u8, 96u8, 118u8, 101u8, 110u8,
117u8, 101u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 98u8,
101u8, 108u8, 111u8, 110u8, 103u8, 115u8, 32u8, 116u8, 111u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8,
115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 116u8, 121u8, 112u8,
101u8, 96u8, 32u8, 45u8, 32u8, 68u8, 101u8, 102u8, 105u8, 110u8, 101u8, 115u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8,
115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 100u8, 93u8, 1u8, 32u8, 32u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 105u8,
110u8, 103u8, 32u8, 97u8, 108u8, 108u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 111u8, 114u8, 32u8, 119u8, 97u8, 105u8, 116u8, 105u8,
110u8, 103u8, 32u8, 116u8, 105u8, 108u8, 108u8, 32u8, 97u8, 32u8, 115u8, 112u8, 101u8, 99u8,
105u8, 102u8, 105u8, 99u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 81u8, 1u8, 42u8, 32u8,
96u8, 116u8, 114u8, 97u8, 100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 45u8, 32u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 112u8, 101u8, 111u8,
112u8, 108u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 97u8,
99u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 109u8, 1u8, 42u8,
32u8, 96u8, 118u8, 97u8, 108u8, 117u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 45u8,
32u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 100u8, 97u8, 116u8, 101u8,
32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 115u8, 101u8, 116u8,
116u8, 108u8, 101u8, 100u8, 32u8, 40u8, 110u8, 111u8, 116u8, 32u8, 101u8, 110u8, 102u8, 111u8,
114u8, 99u8, 101u8, 100u8, 41u8, 180u8, 42u8, 32u8, 96u8, 108u8, 101u8, 103u8, 115u8, 96u8, 32u8,
45u8, 32u8, 76u8, 101u8, 103u8, 115u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8,
100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 152u8, 96u8, 57u8, 53u8, 48u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8,
48u8, 32u8, 43u8, 32u8, 49u8, 95u8, 48u8, 48u8, 48u8, 95u8, 48u8, 48u8, 48u8, 32u8, 42u8, 32u8,
108u8, 101u8, 103u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8, 96u8, 104u8, 97u8, 100u8,
100u8, 95u8, 97u8, 110u8, 100u8, 95u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 95u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 24u8, 1u8, 32u8, 118u8,
101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8,
101u8, 73u8, 100u8, 0u8, 1u8, 60u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8,
110u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 181u8, 3u8, 1u8, 120u8, 83u8, 101u8, 116u8,
116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 84u8, 121u8, 112u8, 101u8, 60u8, 84u8, 58u8,
58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 1u8,
40u8, 116u8, 114u8, 97u8, 100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 240u8, 1u8, 68u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 62u8, 0u8, 1u8, 40u8, 118u8, 97u8, 108u8, 117u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8,
240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 16u8, 108u8, 101u8, 103u8, 115u8, 185u8, 3u8, 1u8,
32u8, 86u8, 101u8, 99u8, 60u8, 76u8, 101u8, 103u8, 62u8, 0u8, 1u8, 40u8, 112u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 228u8, 1u8, 64u8, 86u8, 101u8, 99u8, 60u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 62u8, 0u8, 4u8, 52u8, 140u8,
65u8, 100u8, 100u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8,
109u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 236u8, 42u8, 32u8, 96u8, 118u8, 101u8, 110u8, 117u8, 101u8,
95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 98u8, 101u8, 108u8,
111u8, 110u8, 103u8, 115u8, 32u8, 116u8, 111u8, 46u8, 9u8, 1u8, 42u8, 32u8, 96u8, 115u8, 101u8,
116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8,
32u8, 45u8, 32u8, 68u8, 101u8, 102u8, 105u8, 110u8, 101u8, 115u8, 32u8, 105u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 115u8, 101u8,
116u8, 116u8, 108u8, 101u8, 100u8, 93u8, 1u8, 32u8, 32u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8,
102u8, 116u8, 101u8, 114u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 118u8, 105u8, 110u8, 103u8,
32u8, 97u8, 108u8, 108u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8,
111u8, 110u8, 115u8, 32u8, 111u8, 114u8, 32u8, 119u8, 97u8, 105u8, 116u8, 105u8, 110u8, 103u8,
32u8, 116u8, 105u8, 108u8, 108u8, 32u8, 97u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 99u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 81u8, 1u8, 42u8, 32u8, 96u8, 116u8,
114u8, 97u8, 100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 45u8, 32u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 112u8, 101u8, 111u8, 112u8, 108u8,
101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 97u8, 99u8, 116u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 109u8, 1u8, 42u8, 32u8, 96u8, 118u8, 97u8,
108u8, 117u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 96u8, 32u8, 45u8, 32u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 97u8, 102u8, 116u8,
101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 104u8, 111u8,
117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 100u8,
32u8, 40u8, 110u8, 111u8, 116u8, 32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8,
41u8, 180u8, 42u8, 32u8, 96u8, 108u8, 101u8, 103u8, 115u8, 96u8, 32u8, 45u8, 32u8, 76u8, 101u8,
103u8, 115u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 46u8, 109u8, 1u8, 42u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8,
108u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8, 116u8,
111u8, 32u8, 117u8, 115u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 0u8,
52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 72u8, 97u8,
102u8, 102u8, 105u8, 114u8, 109u8, 95u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 12u8, 1u8, 8u8, 105u8, 100u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 1u8, 40u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 228u8, 1u8, 64u8, 86u8, 101u8, 99u8,
60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 62u8, 0u8, 1u8,
56u8, 109u8, 97u8, 120u8, 95u8, 108u8, 101u8, 103u8, 115u8, 95u8, 99u8, 111u8, 117u8, 110u8,
116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 5u8, 36u8, 188u8, 80u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8,
110u8, 103u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 136u8,
42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 102u8,
102u8, 105u8, 114u8, 109u8, 46u8, 105u8, 1u8, 42u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
111u8, 108u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8,
116u8, 111u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 248u8,
42u8, 32u8, 96u8, 109u8, 97u8, 120u8, 95u8, 108u8, 101u8, 103u8, 115u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 96u8, 32u8, 45u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 108u8, 101u8, 103u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 110u8, 101u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8,
109u8, 101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 80u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 95u8, 97u8, 102u8,
102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 12u8, 1u8, 8u8, 105u8, 100u8,
177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
73u8, 100u8, 0u8, 1u8, 40u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
115u8, 228u8, 1u8, 64u8, 86u8, 101u8, 99u8, 60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 73u8, 100u8, 62u8, 0u8, 1u8, 56u8, 109u8, 97u8, 120u8, 95u8, 108u8, 101u8, 103u8,
115u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 6u8,
36u8, 192u8, 87u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 32u8, 97u8, 110u8, 32u8, 97u8,
102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 236u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8,
73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 102u8, 102u8, 105u8,
114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 103u8, 101u8, 116u8, 32u8, 119u8, 105u8,
116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 110u8, 46u8, 93u8, 1u8, 42u8, 32u8, 96u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 111u8, 108u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 119u8, 97u8, 110u8, 116u8,
115u8, 32u8, 116u8, 111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 100u8, 114u8, 97u8, 119u8, 32u8,
97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 1u8, 1u8, 42u8,
32u8, 96u8, 109u8, 97u8, 120u8, 95u8, 108u8, 101u8, 103u8, 115u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 96u8, 32u8, 45u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 108u8, 101u8, 103u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 110u8, 101u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 117u8, 110u8, 45u8, 97u8, 102u8, 102u8,
105u8, 114u8, 109u8, 101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 72u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 95u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 12u8, 1u8, 8u8, 105u8, 100u8,
177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
73u8, 100u8, 0u8, 1u8, 36u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8,
1u8, 44u8, 110u8, 117u8, 109u8, 95u8, 111u8, 102u8, 95u8, 108u8, 101u8, 103u8, 115u8, 16u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 7u8, 36u8, 128u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 115u8,
32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 136u8, 42u8, 32u8, 96u8, 105u8,
100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8,
116u8, 46u8, 208u8, 42u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 208u8,
42u8, 32u8, 96u8, 110u8, 117u8, 109u8, 95u8, 111u8, 102u8, 95u8, 108u8, 101u8, 103u8, 115u8,
96u8, 32u8, 45u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 108u8,
101u8, 103u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 80u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8,
95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 115u8,
16u8, 1u8, 8u8, 105u8, 100u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 1u8, 60u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 95u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 205u8, 7u8, 1u8, 220u8, 86u8,
101u8, 99u8, 60u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 68u8, 101u8, 116u8, 97u8,
105u8, 108u8, 115u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 44u8, 32u8, 84u8, 58u8, 58u8, 79u8, 102u8, 102u8, 67u8, 104u8, 97u8, 105u8, 110u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 62u8, 62u8, 0u8, 1u8, 40u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 228u8, 1u8, 64u8, 86u8, 101u8, 99u8,
60u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 62u8, 0u8, 1u8,
56u8, 109u8, 97u8, 120u8, 95u8, 108u8, 101u8, 103u8, 115u8, 95u8, 99u8, 111u8, 117u8, 110u8,
116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 8u8, 48u8, 204u8, 65u8, 99u8, 99u8, 101u8, 112u8,
116u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8,
32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8,
105u8, 112u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 124u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 105u8, 100u8, 46u8, 168u8, 42u8, 32u8, 96u8, 108u8, 101u8, 103u8, 95u8, 105u8,
100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 108u8, 101u8, 103u8,
32u8, 105u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8,
99u8, 101u8, 105u8, 112u8, 116u8, 212u8, 42u8, 32u8, 96u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 95u8, 117u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 32u8, 73u8, 68u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8,
114u8, 46u8, 140u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 96u8, 32u8, 45u8,
32u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 46u8, 132u8, 42u8, 32u8, 96u8, 115u8,
105u8, 103u8, 110u8, 101u8, 100u8, 95u8, 100u8, 97u8, 116u8, 97u8, 96u8, 32u8, 45u8, 32u8, 83u8,
105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 46u8,
121u8, 1u8, 42u8, 32u8, 96u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
115u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8,
100u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 115u8, 32u8, 97u8,
110u8, 100u8, 32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8,
101u8, 112u8, 116u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 116u8, 104u8, 0u8, 52u8, 35u8, 32u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 52u8, 99u8, 108u8, 97u8, 105u8,
109u8, 95u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 8u8, 1u8, 8u8, 105u8, 100u8, 177u8,
3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8,
100u8, 0u8, 1u8, 60u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 100u8, 101u8, 116u8,
97u8, 105u8, 108u8, 115u8, 209u8, 7u8, 1u8, 200u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8,
68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 84u8, 58u8, 58u8, 79u8, 102u8, 102u8, 67u8, 104u8,
97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 62u8, 0u8, 9u8,
44u8, 96u8, 67u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8,
65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 188u8, 42u8, 32u8, 96u8, 105u8,
100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 100u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 46u8,
168u8, 42u8, 32u8, 96u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8,
97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 108u8, 101u8, 103u8, 32u8, 105u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8,
212u8, 42u8, 32u8, 96u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8,
100u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 73u8, 68u8,
32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 140u8, 42u8, 32u8,
96u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 46u8, 132u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 101u8,
100u8, 95u8, 100u8, 97u8, 116u8, 97u8, 96u8, 32u8, 45u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8,
100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 60u8, 117u8, 110u8, 99u8, 108u8, 97u8,
105u8, 109u8, 95u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 8u8, 1u8, 56u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 177u8, 3u8,
1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8,
100u8, 0u8, 1u8, 24u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 193u8, 3u8, 1u8, 20u8, 76u8,
101u8, 103u8, 73u8, 100u8, 0u8, 10u8, 32u8, 152u8, 85u8, 110u8, 99u8, 108u8, 97u8, 105u8, 109u8,
115u8, 32u8, 97u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8,
32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 236u8, 42u8, 32u8, 96u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8,
105u8, 112u8, 116u8, 46u8, 168u8, 42u8, 32u8, 96u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8,
96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 108u8, 101u8, 103u8, 32u8,
105u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 76u8, 115u8, 101u8, 116u8, 95u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8,
102u8, 105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 8u8, 1u8, 24u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8,
28u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8,
108u8, 0u8, 11u8, 32u8, 192u8, 69u8, 110u8, 97u8, 98u8, 108u8, 101u8, 115u8, 32u8, 111u8, 114u8,
32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 118u8, 101u8, 110u8, 117u8,
101u8, 32u8, 102u8, 105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 32u8, 102u8, 111u8,
114u8, 32u8, 97u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 180u8, 42u8, 32u8, 96u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8,
110u8, 32u8, 113u8, 117u8, 101u8, 115u8, 116u8, 105u8, 111u8, 110u8, 46u8, 25u8, 1u8, 42u8, 32u8,
96u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 96u8, 32u8, 45u8, 32u8, 66u8, 111u8, 111u8,
108u8, 101u8, 97u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 100u8, 101u8, 99u8, 105u8,
100u8, 101u8, 115u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 108u8,
116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
98u8, 101u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8,
65u8, 115u8, 115u8, 101u8, 116u8, 48u8, 97u8, 108u8, 108u8, 111u8, 119u8, 95u8, 118u8, 101u8,
110u8, 117u8, 101u8, 115u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8,
24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 24u8, 118u8, 101u8, 110u8, 117u8, 101u8,
115u8, 201u8, 3u8, 1u8, 48u8, 86u8, 101u8, 99u8, 60u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8,
100u8, 62u8, 0u8, 12u8, 28u8, 13u8, 1u8, 65u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 97u8,
100u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 118u8, 101u8, 110u8, 117u8,
101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 105u8, 110u8,
118u8, 111u8, 108u8, 118u8, 105u8, 110u8, 103u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 46u8, 0u8, 180u8, 42u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
32u8, 45u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 113u8, 117u8, 101u8,
115u8, 116u8, 105u8, 111u8, 110u8, 46u8, 125u8, 1u8, 42u8, 32u8, 96u8, 118u8, 101u8, 110u8,
117u8, 101u8, 115u8, 96u8, 32u8, 45u8, 32u8, 65u8, 114u8, 114u8, 97u8, 121u8, 32u8, 111u8, 102u8,
32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8,
114u8, 101u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 113u8, 117u8, 101u8, 115u8, 116u8,
105u8, 111u8, 110u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 60u8, 100u8,
105u8, 115u8, 97u8, 108u8, 108u8, 111u8, 119u8, 95u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8,
8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 0u8, 1u8, 24u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 201u8, 3u8, 1u8,
48u8, 86u8, 101u8, 99u8, 60u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8, 62u8, 0u8, 13u8,
28u8, 105u8, 1u8, 82u8, 101u8, 118u8, 111u8, 107u8, 101u8, 115u8, 32u8, 112u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
116u8, 111u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8,
99u8, 114u8, 101u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 105u8, 110u8, 118u8, 111u8, 108u8, 118u8,
105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 117u8, 108u8,
97u8, 114u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 0u8, 180u8, 42u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 45u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8,
105u8, 110u8, 32u8, 113u8, 117u8, 101u8, 115u8, 116u8, 105u8, 111u8, 110u8, 46u8, 165u8, 1u8,
42u8, 32u8, 96u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 96u8, 32u8, 45u8, 32u8, 65u8, 114u8,
114u8, 97u8, 121u8, 32u8, 111u8, 102u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 32u8, 108u8, 111u8,
110u8, 103u8, 101u8, 114u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 113u8, 117u8, 101u8,
115u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
92u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 95u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8,
116u8, 95u8, 118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 8u8, 1u8, 44u8, 114u8, 101u8,
99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8,
0u8, 1u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8, 21u8, 1u8, 1u8, 16u8,
98u8, 111u8, 111u8, 108u8, 0u8, 14u8, 20u8, 252u8, 77u8, 97u8, 114u8, 107u8, 115u8, 32u8, 97u8,
32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 97u8, 115u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 32u8, 111u8,
114u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8,
193u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 105u8, 115u8,
115u8, 117u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 32u8, 111u8, 114u8, 32u8, 114u8, 101u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8,
46u8, 0u8, 172u8, 42u8, 32u8, 96u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8,
105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 32u8, 73u8, 68u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8,
116u8, 46u8, 172u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8, 121u8,
96u8, 32u8, 45u8, 32u8, 78u8, 101u8, 119u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 105u8, 116u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 46u8, 116u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 95u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 95u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 8u8, 1u8, 8u8, 105u8, 100u8, 177u8, 3u8, 1u8, 52u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 1u8, 44u8,
95u8, 108u8, 101u8, 103u8, 115u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8,
51u8, 50u8, 0u8, 15u8, 4u8, 129u8, 1u8, 82u8, 111u8, 111u8, 116u8, 32u8, 99u8, 97u8, 108u8,
108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 44u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8,
110u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8,
111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 97u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8,
109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 46u8, 88u8, 114u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8,
95u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 4u8, 1u8, 8u8,
105u8, 100u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 73u8, 100u8, 0u8, 16u8, 40u8, 132u8, 82u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 115u8, 32u8, 97u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 44u8,
35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 180u8, 42u8, 32u8,
96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 100u8, 32u8,
116u8, 111u8, 32u8, 114u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 46u8,
0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 0u8, 32u8,
35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 61u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 78u8, 111u8, 116u8, 70u8, 97u8,
105u8, 108u8, 101u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 32u8, 97u8,
32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 115u8, 116u8, 97u8, 116u8, 101u8, 32u8,
111u8, 114u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8,
98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8,
99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8,
32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8,
98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8,
97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 205u8, 7u8, 0u8,
0u8, 2u8, 209u8, 7u8, 0u8, 209u8, 7u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 56u8, 82u8, 101u8, 99u8,
101u8, 105u8, 112u8, 116u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 8u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 68u8, 79u8, 102u8, 102u8, 67u8, 104u8,
97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 1u8, 213u8, 7u8,
0u8, 20u8, 1u8, 44u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8, 100u8,
32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 24u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8,
193u8, 3u8, 1u8, 20u8, 76u8, 101u8, 103u8, 73u8, 100u8, 0u8, 1u8, 24u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
0u8, 1u8, 36u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 213u8, 7u8, 1u8,
68u8, 79u8, 102u8, 102u8, 67u8, 104u8, 97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8,
116u8, 117u8, 114u8, 101u8, 0u8, 1u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
197u8, 3u8, 1u8, 60u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 0u8, 0u8, 213u8, 7u8, 8u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 56u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 1u8, 12u8, 28u8, 69u8, 100u8, 50u8, 53u8, 53u8,
49u8, 57u8, 4u8, 0u8, 17u8, 7u8, 1u8, 72u8, 101u8, 100u8, 50u8, 53u8, 53u8, 49u8, 57u8, 58u8,
58u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 0u8, 28u8, 83u8,
114u8, 50u8, 53u8, 53u8, 49u8, 57u8, 4u8, 0u8, 65u8, 7u8, 1u8, 72u8, 115u8, 114u8, 50u8, 53u8,
53u8, 49u8, 57u8, 58u8, 58u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8,
1u8, 0u8, 20u8, 69u8, 99u8, 100u8, 115u8, 97u8, 4u8, 0u8, 217u8, 7u8, 1u8, 64u8, 101u8, 99u8,
100u8, 115u8, 97u8, 58u8, 58u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8,
2u8, 0u8, 0u8, 217u8, 7u8, 12u8, 28u8, 115u8, 112u8, 95u8, 99u8, 111u8, 114u8, 101u8, 20u8,
101u8, 99u8, 100u8, 115u8, 97u8, 36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8,
101u8, 0u8, 0u8, 4u8, 0u8, 89u8, 7u8, 1u8, 32u8, 91u8, 117u8, 56u8, 59u8, 32u8, 54u8, 53u8, 93u8,
0u8, 0u8, 221u8, 7u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8,
97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8,
84u8, 0u8, 1u8, 16u8, 88u8, 115u8, 101u8, 116u8, 95u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8,
95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 116u8, 115u8, 8u8, 1u8, 20u8,
97u8, 115u8, 115u8, 101u8, 116u8, 209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8,
99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 40u8, 115u8, 116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8,
101u8, 115u8, 225u8, 7u8, 1u8, 72u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8,
83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 0u8, 60u8, 128u8, 83u8, 101u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 115u8, 116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8,
115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
37u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8,
97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8,
97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 46u8, 208u8, 45u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 45u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 111u8, 110u8, 46u8, 9u8, 1u8,
45u8, 32u8, 96u8, 115u8, 116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 115u8, 96u8, 32u8,
45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 116u8, 97u8, 116u8,
32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 112u8, 108u8,
97u8, 99u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8,
110u8, 103u8, 32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 29u8, 1u8, 45u8, 32u8, 96u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8,
112u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8,
96u8, 32u8, 45u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 115u8, 116u8,
97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 115u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 97u8, 115u8,
115u8, 101u8, 116u8, 96u8, 46u8, 133u8, 1u8, 45u8, 32u8, 96u8, 67u8, 97u8, 110u8, 110u8, 111u8,
116u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8,
101u8, 73u8, 110u8, 85u8, 115u8, 101u8, 96u8, 32u8, 45u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8,
111u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 32u8, 115u8, 116u8,
97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8,
115u8, 32u8, 105u8, 110u8, 32u8, 117u8, 115u8, 101u8, 32u8, 98u8, 121u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8,
111u8, 110u8, 115u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8,
97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 45u8, 32u8, 65u8, 103u8, 101u8, 110u8,
116u8, 28u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 96u8, 98u8, 97u8, 116u8, 99u8, 104u8,
95u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8,
115u8, 116u8, 97u8, 116u8, 115u8, 12u8, 1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 209u8, 3u8,
1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 36u8,
115u8, 116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 217u8, 3u8, 1u8, 32u8, 83u8, 116u8,
97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8, 1u8, 24u8, 118u8, 97u8, 108u8, 117u8, 101u8, 115u8,
229u8, 7u8, 1u8, 80u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 83u8, 116u8,
97u8, 116u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 62u8, 0u8, 1u8, 60u8, 236u8, 65u8, 108u8,
108u8, 111u8, 119u8, 32u8, 97u8, 32u8, 116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 32u8,
105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 105u8, 116u8,
47u8, 114u8, 101u8, 115u8, 121u8, 110u8, 99u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
47u8, 99u8, 111u8, 109u8, 112u8, 97u8, 110u8, 121u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 37u8,
1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 97u8,
32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8,
97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8,
32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8,
96u8, 46u8, 208u8, 45u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 45u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 111u8, 110u8, 46u8, 144u8, 45u8,
32u8, 96u8, 115u8, 116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8, 32u8, 45u8, 32u8,
115u8, 116u8, 97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 116u8, 111u8, 32u8, 117u8,
112u8, 100u8, 97u8, 116u8, 101u8, 46u8, 176u8, 45u8, 32u8, 96u8, 118u8, 97u8, 108u8, 117u8,
101u8, 115u8, 96u8, 32u8, 45u8, 32u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8, 118u8,
97u8, 108u8, 117u8, 101u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 115u8, 116u8, 97u8,
116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 5u8, 1u8, 45u8, 32u8, 96u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8,
101u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 96u8, 32u8, 45u8, 32u8, 96u8, 115u8,
116u8, 97u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 33u8, 1u8,
45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8,
100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8,
96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 28u8, 45u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 28u8, 45u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 116u8, 115u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 95u8,
116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8,
105u8, 97u8, 110u8, 99u8, 101u8, 8u8, 1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 209u8, 3u8,
1u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 76u8,
116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8, 111u8, 110u8, 100u8, 105u8,
116u8, 105u8, 111u8, 110u8, 115u8, 233u8, 7u8, 1u8, 108u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8,
101u8, 116u8, 60u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 2u8, 60u8, 144u8, 83u8, 101u8, 116u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 117u8,
108u8, 101u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 37u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8,
45u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 97u8, 115u8,
115u8, 101u8, 116u8, 96u8, 46u8, 208u8, 45u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8,
32u8, 45u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8,
111u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 111u8, 110u8, 46u8,
97u8, 1u8, 45u8, 32u8, 96u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8,
111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 96u8, 32u8, 45u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8,
32u8, 114u8, 101u8, 112u8, 108u8, 97u8, 99u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8,
105u8, 111u8, 110u8, 115u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
85u8, 1u8, 45u8, 32u8, 96u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 76u8, 105u8, 109u8, 105u8, 116u8, 82u8, 101u8,
97u8, 99u8, 104u8, 101u8, 100u8, 96u8, 32u8, 45u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8,
110u8, 121u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 116u8, 111u8, 110u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8,
46u8, 145u8, 1u8, 45u8, 32u8, 96u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 77u8,
105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 96u8, 32u8, 45u8, 32u8, 97u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8,
110u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 115u8, 32u8, 97u8, 32u8, 115u8,
116u8, 97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 97u8,
115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 45u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8,
28u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 76u8, 115u8, 101u8, 116u8, 95u8, 101u8,
110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 95u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8,
12u8, 1u8, 36u8, 105u8, 115u8, 95u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 21u8, 1u8, 1u8,
16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 40u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 95u8,
107u8, 101u8, 121u8, 9u8, 4u8, 1u8, 104u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8, 109u8, 112u8,
116u8, 75u8, 101u8, 121u8, 0u8, 1u8, 32u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8,
115u8, 237u8, 7u8, 1u8, 68u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8, 83u8,
99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 62u8, 0u8, 3u8, 56u8, 17u8, 1u8, 83u8, 101u8, 116u8,
47u8, 117u8, 110u8, 115u8, 101u8, 116u8, 32u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8,
115u8, 32u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 39u8, 115u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 32u8, 114u8, 117u8, 108u8, 101u8, 115u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 81u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 45u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8,
99u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 96u8, 101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 95u8, 107u8, 101u8, 121u8,
46u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 224u8, 45u8, 32u8, 96u8, 105u8, 115u8, 95u8,
101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 96u8, 32u8, 45u8, 32u8, 101u8, 110u8, 97u8, 98u8,
108u8, 101u8, 47u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 32u8, 101u8, 120u8, 101u8,
109u8, 112u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 101u8, 110u8,
116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 96u8, 46u8, 29u8, 1u8, 45u8, 32u8, 96u8, 101u8, 120u8,
101u8, 109u8, 112u8, 116u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 115u8, 116u8,
97u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8,
109u8, 112u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 101u8, 110u8, 116u8, 105u8, 116u8,
105u8, 101u8, 115u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 46u8, 236u8, 45u8, 32u8, 96u8,
101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 96u8, 32u8, 45u8, 32u8, 116u8, 104u8,
101u8, 32u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8,
115u8, 101u8, 116u8, 47u8, 117u8, 110u8, 115u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
101u8, 120u8, 101u8, 109u8, 112u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 46u8,
0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 33u8, 1u8, 45u8, 32u8, 96u8,
85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8,
101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 45u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 0u8, 52u8,
35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8,
45u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 28u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 225u8, 7u8, 4u8, 32u8, 66u8, 84u8, 114u8,
101u8, 101u8, 83u8, 101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 217u8, 3u8, 0u8, 4u8, 0u8, 213u8, 3u8,
0u8, 0u8, 0u8, 229u8, 7u8, 4u8, 32u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 4u8,
4u8, 84u8, 1u8, 237u8, 3u8, 0u8, 4u8, 0u8, 233u8, 3u8, 0u8, 0u8, 0u8, 233u8, 7u8, 4u8, 32u8,
66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 5u8, 4u8, 0u8, 4u8,
0u8, 1u8, 4u8, 0u8, 0u8, 0u8, 237u8, 7u8, 4u8, 32u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8,
101u8, 116u8, 4u8, 4u8, 84u8, 1u8, 120u8, 0u8, 4u8, 0u8, 33u8, 1u8, 0u8, 0u8, 0u8, 241u8, 7u8,
8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 16u8, 67u8, 97u8,
108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 68u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8,
102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 40u8, 1u8, 72u8, 111u8,
102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 73u8, 100u8, 0u8, 1u8, 56u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8,
97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 68u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 52u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8,
95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
0u8, 1u8, 20u8, 116u8, 105u8, 101u8, 114u8, 115u8, 245u8, 7u8, 1u8, 56u8, 86u8, 101u8, 99u8,
60u8, 80u8, 114u8, 105u8, 99u8, 101u8, 84u8, 105u8, 101u8, 114u8, 62u8, 0u8, 1u8, 32u8, 118u8,
101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8,
101u8, 73u8, 100u8, 0u8, 1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8, 240u8, 1u8, 68u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8,
116u8, 62u8, 0u8, 1u8, 12u8, 101u8, 110u8, 100u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8,
72u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 95u8, 105u8, 110u8, 118u8, 101u8, 115u8,
116u8, 109u8, 101u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
0u8, 1u8, 60u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 95u8, 110u8,
97u8, 109u8, 101u8, 25u8, 4u8, 1u8, 56u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 78u8, 97u8, 109u8, 101u8, 0u8, 0u8, 64u8, 96u8, 67u8, 114u8, 101u8, 97u8, 116u8,
101u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 46u8, 0u8, 13u8, 1u8, 42u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8,
114u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 99u8,
111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8,
96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 46u8, 164u8, 42u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8,
103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8,
116u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 102u8, 101u8, 114u8, 101u8,
100u8, 46u8, 5u8, 1u8, 42u8, 32u8, 96u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8, 95u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 45u8, 32u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 114u8, 97u8, 105u8,
115u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 46u8, 53u8, 1u8, 42u8,
32u8, 96u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 98u8, 101u8, 105u8, 110u8,
103u8, 32u8, 101u8, 120u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 32u8, 102u8, 111u8,
114u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8,
115u8, 101u8, 116u8, 96u8, 32u8, 111u8, 110u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8,
109u8, 101u8, 110u8, 116u8, 46u8, 232u8, 42u8, 32u8, 96u8, 116u8, 105u8, 101u8, 114u8, 115u8,
96u8, 32u8, 45u8, 32u8, 80u8, 114u8, 105u8, 99u8, 101u8, 32u8, 116u8, 105u8, 101u8, 114u8, 115u8,
32u8, 116u8, 111u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 32u8, 105u8, 110u8, 118u8,
101u8, 115u8, 116u8, 111u8, 114u8, 115u8, 32u8, 111u8, 110u8, 32u8, 105u8, 110u8, 118u8, 101u8,
115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 46u8, 168u8, 42u8, 32u8, 96u8, 118u8, 101u8, 110u8,
117u8, 101u8, 95u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 86u8, 101u8, 110u8, 117u8, 101u8, 32u8,
116u8, 111u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 32u8, 115u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 46u8, 77u8, 1u8, 42u8, 32u8, 96u8, 115u8, 116u8, 97u8,
114u8, 116u8, 96u8, 32u8, 45u8, 32u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8,
32u8, 105u8, 102u8, 32u8, 96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8,
102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8,
97u8, 116u8, 101u8, 108u8, 121u8, 46u8, 41u8, 1u8, 42u8, 32u8, 96u8, 101u8, 110u8, 100u8, 96u8,
32u8, 45u8, 32u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8,
101u8, 110u8, 100u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 105u8, 102u8, 32u8, 96u8,
78u8, 111u8, 110u8, 101u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 110u8, 101u8,
118u8, 101u8, 114u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 205u8, 1u8, 42u8,
32u8, 96u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 95u8, 105u8, 110u8, 118u8, 101u8,
115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 96u8, 32u8, 45u8, 32u8, 77u8, 105u8, 110u8, 105u8,
109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
96u8, 114u8, 97u8, 105u8, 115u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8,
96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 118u8, 101u8,
115u8, 116u8, 111u8, 114u8, 32u8, 110u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 111u8, 32u8,
115u8, 112u8, 101u8, 110u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8,
116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 114u8, 97u8, 105u8, 115u8,
101u8, 46u8, 240u8, 42u8, 32u8, 96u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 95u8, 110u8, 97u8, 109u8, 101u8, 96u8, 32u8, 45u8, 32u8, 70u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 110u8, 97u8, 109u8, 101u8, 44u8, 32u8, 111u8,
110u8, 108u8, 121u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 85u8, 73u8, 115u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 24u8, 105u8,
110u8, 118u8, 101u8, 115u8, 116u8, 28u8, 1u8, 80u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8,
109u8, 101u8, 110u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 73u8, 100u8, 0u8,
1u8, 68u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 212u8, 1u8, 44u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 73u8, 100u8, 0u8, 1u8, 56u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8,
110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 1u8, 60u8, 112u8, 117u8, 114u8, 99u8,
104u8, 97u8, 115u8, 101u8, 95u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 109u8, 97u8, 120u8, 95u8, 112u8, 114u8,
105u8, 99u8, 101u8, 253u8, 3u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 62u8, 0u8, 1u8, 28u8, 114u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 253u8, 7u8, 1u8, 232u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 82u8, 101u8,
99u8, 101u8, 105u8, 112u8, 116u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 60u8, 84u8,
58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 84u8, 58u8,
58u8, 79u8, 102u8, 102u8, 67u8, 104u8, 97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8,
116u8, 117u8, 114u8, 101u8, 62u8, 62u8, 0u8, 1u8, 48u8, 92u8, 73u8, 110u8, 118u8, 101u8, 115u8,
116u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8,
115u8, 101u8, 114u8, 46u8, 0u8, 65u8, 1u8, 42u8, 32u8, 96u8, 105u8, 110u8, 118u8, 101u8, 115u8,
116u8, 109u8, 101u8, 110u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 96u8, 32u8, 45u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8,
103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
98u8, 101u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 32u8, 105u8,
110u8, 46u8, 1u8, 1u8, 42u8, 32u8, 96u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8,
112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 96u8, 32u8, 45u8, 32u8, 80u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 102u8, 117u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8,
105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 46u8, 160u8, 42u8, 32u8,
96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 105u8,
110u8, 118u8, 101u8, 115u8, 116u8, 32u8, 105u8, 110u8, 46u8, 172u8, 42u8, 32u8, 96u8, 105u8,
100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8,
105u8, 110u8, 118u8, 101u8, 115u8, 116u8, 32u8, 105u8, 110u8, 46u8, 244u8, 42u8, 32u8, 96u8,
112u8, 117u8, 114u8, 99u8, 104u8, 97u8, 115u8, 101u8, 95u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 96u8, 32u8, 116u8, 111u8, 32u8, 112u8, 117u8, 114u8, 99u8, 104u8, 97u8, 115u8, 101u8,
46u8, 185u8, 1u8, 42u8, 32u8, 96u8, 109u8, 97u8, 120u8, 95u8, 112u8, 114u8, 105u8, 99u8, 101u8,
96u8, 32u8, 45u8, 32u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 112u8, 114u8, 105u8,
99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 112u8, 101u8, 114u8, 32u8,
117u8, 110u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8,
105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 44u8, 32u8, 73u8, 102u8, 32u8,
96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 97u8, 114u8,
101u8, 32u8, 110u8, 111u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 97u8, 105u8, 110u8,
116u8, 115u8, 32u8, 111u8, 110u8, 32u8, 112u8, 114u8, 105u8, 99u8, 101u8, 46u8, 105u8, 1u8, 42u8,
32u8, 96u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 96u8, 32u8, 45u8, 32u8, 79u8, 102u8,
102u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8,
116u8, 32u8, 116u8, 111u8, 32u8, 117u8, 115u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8,
97u8, 100u8, 32u8, 111u8, 102u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 110u8, 32u8, 96u8, 102u8, 117u8, 110u8,
100u8, 105u8, 110u8, 103u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 44u8, 42u8, 32u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8,
68u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 8u8, 1u8, 56u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8,
103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 2u8, 28u8, 80u8, 70u8, 114u8, 101u8, 101u8, 122u8,
101u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8,
46u8, 0u8, 148u8, 42u8, 32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8,
97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8,
116u8, 111u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 46u8, 160u8, 42u8, 32u8, 96u8,
105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8,
32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8,
109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8,
101u8, 116u8, 76u8, 117u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 95u8, 102u8, 117u8,
110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 8u8, 1u8, 56u8, 111u8, 102u8, 102u8,
101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 21u8, 4u8, 1u8, 48u8, 70u8,
117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8, 3u8, 28u8, 88u8,
85u8, 110u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8,
100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 46u8, 0u8, 156u8, 42u8, 32u8, 96u8, 111u8, 102u8,
102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8,
45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 117u8, 110u8, 102u8,
114u8, 101u8, 101u8, 122u8, 101u8, 46u8, 168u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8,
32u8, 73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8,
100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 117u8, 110u8, 102u8,
114u8, 101u8, 101u8, 122u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
96u8, 109u8, 111u8, 100u8, 105u8, 102u8, 121u8, 95u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 95u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 16u8, 1u8, 56u8,
111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 21u8, 4u8,
1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 73u8, 100u8, 0u8,
1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 1u8, 36u8, 84u8, 58u8, 58u8, 77u8, 111u8,
109u8, 101u8, 110u8, 116u8, 0u8, 1u8, 12u8, 101u8, 110u8, 100u8, 240u8, 1u8, 68u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8, 58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8,
62u8, 0u8, 4u8, 36u8, 180u8, 77u8, 111u8, 100u8, 105u8, 102u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 32u8, 97u8,
32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 105u8, 115u8,
32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 0u8, 148u8, 42u8, 32u8, 96u8, 111u8, 102u8, 102u8,
101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 96u8, 32u8, 45u8,
32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 109u8, 111u8, 100u8, 105u8,
102u8, 121u8, 46u8, 160u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8, 73u8, 68u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 109u8, 111u8, 100u8, 105u8, 102u8, 121u8,
46u8, 160u8, 42u8, 32u8, 96u8, 115u8, 116u8, 97u8, 114u8, 116u8, 96u8, 32u8, 45u8, 32u8, 78u8,
101u8, 119u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 46u8, 184u8,
42u8, 32u8, 96u8, 101u8, 110u8, 100u8, 96u8, 32u8, 45u8, 32u8, 78u8, 101u8, 119u8, 32u8, 101u8,
110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 109u8, 111u8, 100u8, 105u8,
102u8, 121u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 16u8, 115u8, 116u8,
111u8, 112u8, 8u8, 1u8, 56u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8,
115u8, 115u8, 101u8, 116u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8,
8u8, 105u8, 100u8, 21u8, 4u8, 1u8, 48u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 73u8, 100u8, 0u8, 5u8, 28u8, 72u8, 83u8, 116u8, 111u8, 112u8, 32u8, 97u8, 32u8,
102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 46u8, 0u8, 140u8, 42u8,
32u8, 96u8, 111u8, 102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 95u8, 97u8, 115u8, 115u8,
101u8, 116u8, 96u8, 32u8, 45u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8,
115u8, 116u8, 111u8, 112u8, 46u8, 152u8, 42u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 45u8, 32u8,
73u8, 68u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 115u8, 116u8, 111u8, 112u8,
46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8,
0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8,
109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8,
108u8, 101u8, 46u8, 245u8, 7u8, 0u8, 0u8, 2u8, 249u8, 7u8, 0u8, 249u8, 7u8, 8u8, 40u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 36u8, 80u8, 114u8, 105u8, 99u8,
101u8, 84u8, 105u8, 101u8, 114u8, 0u8, 0u8, 8u8, 1u8, 20u8, 116u8, 111u8, 116u8, 97u8, 108u8,
24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 20u8, 112u8, 114u8,
105u8, 99u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8,
253u8, 7u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 209u8, 7u8,
1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8,
0u8, 209u8, 7u8, 0u8, 0u8, 1u8, 0u8, 0u8, 1u8, 8u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 16u8, 67u8, 97u8, 108u8,
108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 48u8, 100u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8,
101u8, 109u8, 101u8, 110u8, 116u8, 4u8, 1u8, 52u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8,
105u8, 97u8, 114u8, 105u8, 101u8, 115u8, 5u8, 8u8, 1u8, 120u8, 86u8, 101u8, 99u8, 60u8, 66u8,
101u8, 110u8, 101u8, 102u8, 105u8, 99u8, 105u8, 97u8, 114u8, 121u8, 60u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 62u8, 62u8, 0u8, 0u8, 28u8, 81u8, 1u8,
73u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8,
114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 32u8, 116u8, 111u8, 32u8, 101u8, 97u8, 99u8,
104u8, 32u8, 111u8, 102u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8, 105u8, 97u8,
114u8, 105u8, 101u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
68u8, 102u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 109u8, 46u8, 0u8, 28u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 196u8, 42u8,
32u8, 96u8, 66u8, 97u8, 100u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 58u8, 32u8, 79u8,
110u8, 108u8, 121u8, 32u8, 114u8, 111u8, 111u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 93u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8,
102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
96u8, 58u8, 32u8, 73u8, 102u8, 32u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 116u8, 111u8, 32u8, 99u8, 111u8,
118u8, 101u8, 114u8, 32u8, 97u8, 108u8, 108u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8,
99u8, 105u8, 97u8, 114u8, 105u8, 101u8, 115u8, 46u8, 37u8, 1u8, 42u8, 32u8, 96u8, 73u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 96u8,
58u8, 32u8, 73u8, 102u8, 32u8, 111u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8, 105u8, 97u8, 114u8, 105u8, 101u8,
115u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 52u8, 114u8,
101u8, 105u8, 109u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8, 110u8, 116u8, 4u8, 1u8,
24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 1u8, 12u8, 29u8, 1u8, 73u8, 116u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 110u8, 116u8,
111u8, 32u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 46u8, 0u8, 73u8, 1u8, 79u8,
110u8, 108u8, 121u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8,
105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 109u8, 97u8, 107u8,
101u8, 32u8, 97u8, 32u8, 100u8, 111u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8,
111u8, 32u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 46u8, 12u8, 76u8, 68u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8,
97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8,
117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 5u8, 8u8, 0u8, 0u8, 2u8, 9u8, 8u8, 0u8, 9u8, 8u8, 8u8,
76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 44u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 99u8,
105u8, 97u8, 114u8, 121u8, 4u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8,
0u8, 8u8, 1u8, 8u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8,
28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 13u8, 8u8, 8u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 16u8, 67u8,
97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 20u8, 98u8, 97u8, 116u8, 99u8, 104u8, 4u8,
1u8, 20u8, 99u8, 97u8, 108u8, 108u8, 115u8, 17u8, 8u8, 1u8, 96u8, 86u8, 101u8, 99u8, 60u8, 60u8,
84u8, 32u8, 97u8, 115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8,
97u8, 108u8, 108u8, 62u8, 0u8, 0u8, 72u8, 196u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8,
110u8, 100u8, 101u8, 114u8, 39u8, 115u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8,
0u8, 232u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 101u8, 120u8,
101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8, 32u8, 116u8, 104u8,
101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 102u8, 97u8,
105u8, 108u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 115u8,
116u8, 111u8, 112u8, 46u8, 0u8, 172u8, 77u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 114u8, 111u8, 111u8, 116u8,
32u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8,
101u8, 116u8, 101u8, 114u8, 115u8, 236u8, 45u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 115u8,
96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 32u8, 116u8, 111u8,
32u8, 98u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 160u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 109u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 97u8, 108u8, 108u8, 115u8, 96u8,
46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 46u8, 0u8,
189u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8,
116u8, 117u8, 114u8, 110u8, 32u8, 96u8, 79u8, 107u8, 96u8, 32u8, 105u8, 110u8, 32u8, 97u8, 108u8,
108u8, 32u8, 99u8, 105u8, 114u8, 99u8, 117u8, 109u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8,
115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 112u8, 116u8, 32u8, 97u8, 110u8, 32u8, 117u8, 110u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8,
32u8, 84u8, 111u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 44u8, 32u8, 97u8, 110u8, 49u8,
1u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 32u8, 73u8, 102u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 32u8, 119u8, 97u8, 115u8, 32u8, 105u8, 110u8,
116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8,
110u8, 32u8, 116u8, 104u8, 101u8, 85u8, 1u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 73u8, 110u8,
116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 96u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8,
100u8, 44u8, 32u8, 97u8, 108u8, 111u8, 110u8, 103u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 32u8, 109u8, 97u8, 100u8, 101u8, 77u8, 1u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8, 32u8, 73u8,
102u8, 32u8, 97u8, 108u8, 108u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8, 115u8, 117u8, 99u8,
99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 44u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 67u8, 111u8, 109u8, 112u8,
108u8, 101u8, 116u8, 101u8, 100u8, 96u8, 76u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8,
115u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 48u8, 98u8,
97u8, 116u8, 99u8, 104u8, 95u8, 97u8, 116u8, 111u8, 109u8, 105u8, 99u8, 4u8, 1u8, 20u8, 99u8,
97u8, 108u8, 108u8, 115u8, 17u8, 8u8, 1u8, 96u8, 86u8, 101u8, 99u8, 60u8, 60u8, 84u8, 32u8, 97u8,
115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8,
62u8, 0u8, 1u8, 76u8, 196u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 109u8,
117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8, 100u8, 101u8,
114u8, 39u8, 115u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 21u8, 1u8, 84u8,
104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 101u8, 32u8, 97u8, 108u8, 108u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 44u8, 32u8, 105u8,
110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 44u8, 32u8, 115u8, 116u8, 111u8, 112u8, 112u8,
105u8, 110u8, 103u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8,
115u8, 116u8, 32u8, 102u8, 97u8, 105u8, 108u8, 117u8, 114u8, 101u8, 44u8, 192u8, 105u8, 110u8,
32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 97u8, 116u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 114u8, 111u8, 108u8, 108u8, 101u8, 100u8, 32u8, 98u8,
97u8, 99u8, 107u8, 46u8, 37u8, 1u8, 79u8, 110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 117u8, 114u8,
101u8, 44u8, 32u8, 97u8, 110u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 96u8, 66u8, 97u8,
116u8, 99u8, 104u8, 73u8, 110u8, 116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8,
40u8, 102u8, 97u8, 105u8, 108u8, 117u8, 114u8, 101u8, 95u8, 105u8, 100u8, 120u8, 44u8, 32u8,
101u8, 114u8, 114u8, 111u8, 114u8, 41u8, 96u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8,
111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 0u8, 172u8, 77u8, 97u8, 121u8, 32u8, 98u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 114u8,
111u8, 111u8, 116u8, 32u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8,
100u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8,
114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 236u8, 45u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 115u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
97u8, 109u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 32u8, 35u8, 32u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 160u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8,
117u8, 109u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 115u8, 96u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 46u8, 0u8, 21u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 32u8, 96u8, 79u8, 107u8, 96u8, 32u8, 105u8,
110u8, 32u8, 97u8, 108u8, 108u8, 32u8, 99u8, 105u8, 114u8, 99u8, 117u8, 109u8, 115u8, 116u8,
97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 112u8, 116u8, 32u8, 97u8,
110u8, 32u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 46u8, 244u8, 84u8, 111u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8,
105u8, 110u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8,
115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 44u8,
32u8, 97u8, 110u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8,
101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 228u8, 73u8, 102u8, 32u8, 97u8,
110u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8,
44u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 73u8, 110u8,
116u8, 101u8, 114u8, 114u8, 117u8, 112u8, 116u8, 101u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8,
100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 21u8, 1u8, 73u8, 102u8,
32u8, 97u8, 108u8, 108u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8, 115u8, 117u8, 99u8, 99u8,
101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 44u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 67u8, 111u8, 109u8, 112u8, 108u8,
101u8, 116u8, 101u8, 100u8, 96u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8,
32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 64u8, 98u8, 97u8,
116u8, 99u8, 104u8, 95u8, 111u8, 112u8, 116u8, 105u8, 109u8, 105u8, 115u8, 116u8, 105u8, 99u8,
4u8, 1u8, 20u8, 99u8, 97u8, 108u8, 108u8, 115u8, 17u8, 8u8, 1u8, 96u8, 86u8, 101u8, 99u8, 60u8,
60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 62u8, 58u8, 58u8,
67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 2u8, 84u8, 196u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8,
99u8, 104u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
101u8, 110u8, 100u8, 101u8, 114u8, 39u8, 115u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
46u8, 0u8, 1u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 97u8, 108u8, 108u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 44u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 44u8, 32u8,
105u8, 114u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 111u8,
102u8, 32u8, 102u8, 97u8, 105u8, 108u8, 117u8, 114u8, 101u8, 115u8, 46u8, 9u8, 1u8, 65u8, 110u8,
121u8, 32u8, 102u8, 97u8, 105u8, 108u8, 117u8, 114u8, 101u8, 115u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8,
105u8, 110u8, 32u8, 97u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 79u8, 112u8, 116u8, 105u8,
109u8, 105u8, 115u8, 116u8, 105u8, 99u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 96u8, 32u8,
101u8, 118u8, 101u8, 110u8, 116u8, 46u8, 0u8, 172u8, 77u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 114u8, 111u8,
111u8, 116u8, 32u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8,
32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8,
97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 236u8, 45u8, 32u8, 96u8, 99u8, 97u8, 108u8,
108u8, 115u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 32u8,
116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8,
109u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 46u8, 0u8, 0u8, 32u8, 35u8, 32u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 160u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8,
117u8, 109u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 115u8, 96u8, 46u8, 48u8, 45u8, 32u8, 79u8, 110u8, 101u8, 32u8, 101u8, 118u8, 101u8,
110u8, 116u8, 46u8, 0u8, 21u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 32u8, 96u8, 79u8, 107u8, 96u8, 32u8, 105u8,
110u8, 32u8, 97u8, 108u8, 108u8, 32u8, 99u8, 105u8, 114u8, 99u8, 117u8, 109u8, 115u8, 116u8,
97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 112u8, 116u8, 32u8, 97u8,
110u8, 32u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 46u8, 244u8, 84u8, 111u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8,
105u8, 110u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8,
115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 44u8,
32u8, 97u8, 110u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8,
101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8, 46u8, 248u8, 73u8, 102u8, 32u8, 97u8,
110u8, 121u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8,
44u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8, 104u8, 79u8, 112u8,
116u8, 105u8, 109u8, 105u8, 115u8, 116u8, 105u8, 99u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8,
96u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 101u8, 100u8,
44u8, 252u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 118u8, 101u8, 99u8, 116u8, 111u8,
114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 99u8, 111u8, 117u8,
110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 97u8,
32u8, 118u8, 101u8, 99u8, 116u8, 111u8, 114u8, 40u8, 111u8, 102u8, 32u8, 101u8, 114u8, 114u8,
111u8, 114u8, 115u8, 46u8, 21u8, 1u8, 73u8, 102u8, 32u8, 97u8, 108u8, 108u8, 32u8, 119u8, 101u8,
114u8, 101u8, 32u8, 115u8, 117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 44u8,
32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 66u8, 97u8, 116u8, 99u8,
104u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 116u8, 101u8, 100u8, 96u8, 32u8, 101u8, 118u8,
101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
101u8, 100u8, 46u8, 32u8, 114u8, 101u8, 108u8, 97u8, 121u8, 95u8, 116u8, 120u8, 12u8, 1u8, 24u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 36u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 213u8, 7u8, 1u8, 80u8, 84u8, 58u8, 58u8, 79u8, 102u8, 102u8, 67u8, 104u8,
97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 1u8, 16u8,
99u8, 97u8, 108u8, 108u8, 21u8, 8u8, 1u8, 124u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 67u8,
97u8, 108u8, 108u8, 60u8, 60u8, 84u8, 32u8, 97u8, 115u8, 32u8, 67u8, 111u8, 110u8, 102u8, 105u8,
103u8, 62u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 62u8, 0u8, 3u8, 48u8, 160u8, 82u8, 101u8,
108u8, 97u8, 121u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8,
97u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
97u8, 110u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 0u8, 81u8, 1u8, 82u8, 101u8, 108u8,
97u8, 121u8, 105u8, 110u8, 103u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
99u8, 111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 115u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 98u8, 105u8, 108u8, 105u8, 116u8,
121u8, 32u8, 111u8, 102u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 116u8, 111u8,
32u8, 109u8, 97u8, 107u8, 101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 111u8, 110u8,
32u8, 98u8, 101u8, 104u8, 97u8, 108u8, 102u8, 32u8, 111u8, 102u8, 28u8, 116u8, 97u8, 114u8,
103u8, 101u8, 116u8, 46u8, 0u8, 104u8, 70u8, 101u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8,
114u8, 115u8, 132u8, 45u8, 32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 96u8, 58u8, 32u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 114u8,
101u8, 108u8, 97u8, 121u8, 101u8, 100u8, 232u8, 45u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 96u8, 58u8, 32u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8,
116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 105u8, 110u8, 103u8, 32u8,
116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 108u8, 97u8, 121u8, 192u8, 45u8, 32u8, 96u8, 99u8, 97u8,
108u8, 108u8, 96u8, 58u8, 32u8, 67u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 114u8, 101u8, 108u8, 97u8, 121u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 98u8, 101u8,
104u8, 97u8, 108u8, 102u8, 32u8, 111u8, 102u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8,
0u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8,
118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8,
32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8,
32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8,
100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 17u8, 8u8, 0u8, 0u8, 2u8, 201u8,
5u8, 0u8, 21u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 117u8, 116u8,
105u8, 108u8, 105u8, 116u8, 121u8, 40u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 67u8, 97u8,
108u8, 108u8, 4u8, 4u8, 67u8, 1u8, 201u8, 5u8, 0u8, 8u8, 1u8, 20u8, 110u8, 111u8, 110u8, 99u8,
101u8, 32u8, 1u8, 72u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8,
105u8, 111u8, 110u8, 78u8, 111u8, 110u8, 99u8, 101u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8,
201u8, 5u8, 1u8, 24u8, 66u8, 111u8, 120u8, 60u8, 67u8, 62u8, 0u8, 0u8, 25u8, 8u8, 8u8, 44u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8, 115u8, 101u8, 16u8, 67u8, 97u8, 108u8,
108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 0u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8,
69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8,
115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8,
99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
29u8, 8u8, 8u8, 88u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 101u8, 120u8, 116u8, 101u8,
114u8, 110u8, 97u8, 108u8, 95u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 16u8, 67u8, 97u8,
108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 32u8, 48u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8,
103u8, 114u8, 111u8, 117u8, 112u8, 8u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 20u8, 112u8, 101u8, 114u8,
109u8, 115u8, 172u8, 1u8, 80u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 0u8, 72u8,
228u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 99u8, 117u8, 115u8,
116u8, 111u8, 109u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 103u8, 114u8, 111u8, 117u8,
112u8, 32u8, 40u8, 65u8, 71u8, 41u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
46u8, 0u8, 212u8, 84u8, 104u8, 101u8, 32u8, 65u8, 71u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
104u8, 97u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 98u8, 121u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 46u8, 41u8, 1u8,
84u8, 104u8, 105u8, 115u8, 32u8, 110u8, 101u8, 119u8, 32u8, 65u8, 71u8, 32u8, 105u8, 115u8, 32u8,
116u8, 104u8, 101u8, 110u8, 32u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8,
96u8, 105u8, 100u8, 32u8, 61u8, 32u8, 65u8, 71u8, 73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8,
110u8, 99u8, 101u8, 58u8, 58u8, 103u8, 101u8, 116u8, 40u8, 41u8, 32u8, 43u8, 32u8, 49u8, 96u8,
32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 115u8, 32u8, 96u8, 65u8, 71u8, 73u8, 100u8, 96u8, 44u8,
57u8, 1u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 121u8, 111u8, 117u8, 32u8, 99u8, 97u8, 110u8,
32u8, 117u8, 115u8, 101u8, 32u8, 97u8, 115u8, 32u8, 96u8, 65u8, 103u8, 101u8, 110u8, 116u8, 71u8,
114u8, 111u8, 117u8, 112u8, 58u8, 58u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 40u8, 105u8,
100u8, 41u8, 96u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8,
103u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8,
117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 156u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8,
102u8, 111u8, 114u8, 46u8, 144u8, 45u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8,
65u8, 71u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 104u8, 97u8, 118u8, 101u8, 46u8, 0u8, 32u8,
35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 57u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8,
116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8,
32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8,
105u8, 115u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 104u8, 97u8,
100u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8,
111u8, 114u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8,
108u8, 111u8, 110u8, 103u8, 46u8, 37u8, 1u8, 45u8, 32u8, 96u8, 67u8, 111u8, 117u8, 110u8, 116u8,
101u8, 114u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 96u8, 32u8, 105u8, 102u8,
32u8, 96u8, 65u8, 71u8, 73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 58u8,
58u8, 103u8, 101u8, 116u8, 40u8, 41u8, 32u8, 43u8, 32u8, 49u8, 96u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 32u8, 96u8, 117u8, 51u8, 50u8, 58u8,
58u8, 77u8, 65u8, 88u8, 96u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 84u8, 115u8, 101u8, 116u8, 95u8, 103u8,
114u8, 111u8, 117u8, 112u8, 95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 12u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 8u8, 105u8, 100u8, 17u8, 1u8, 1u8, 16u8, 65u8, 71u8,
73u8, 100u8, 0u8, 1u8, 20u8, 112u8, 101u8, 114u8, 109u8, 115u8, 172u8, 1u8, 80u8, 69u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 60u8, 81u8, 1u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8,
116u8, 111u8, 109u8, 32u8, 65u8, 71u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8,
105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 96u8, 105u8, 100u8, 96u8, 44u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 144u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
65u8, 71u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8, 103u8, 115u8, 32u8, 116u8, 111u8, 46u8,
164u8, 45u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 65u8, 71u8, 32u8, 119u8, 105u8,
116u8, 104u8, 105u8, 110u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8,
148u8, 45u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 116u8, 111u8, 32u8,
117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8,
116u8, 111u8, 109u8, 32u8, 65u8, 71u8, 32u8, 116u8, 111u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 57u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 97u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 46u8, 33u8, 1u8,
45u8, 32u8, 96u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 104u8, 97u8, 100u8, 32u8, 115u8, 111u8,
109u8, 101u8, 32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 111u8, 114u8, 32u8, 108u8,
105u8, 115u8, 116u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8, 108u8, 111u8, 110u8, 103u8,
46u8, 204u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 65u8, 71u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 32u8, 97u8, 32u8,
99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 65u8, 71u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8,
115u8, 115u8, 101u8, 116u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 48u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 97u8, 103u8, 101u8, 110u8, 116u8, 8u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 20u8, 97u8, 103u8, 101u8, 110u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 2u8, 56u8, 156u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 97u8, 103u8,
101u8, 110u8, 116u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8,
110u8, 116u8, 115u8, 168u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 46u8, 128u8, 45u8, 32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 111u8,
102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 111u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 57u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8,
97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 46u8, 216u8, 45u8, 32u8, 96u8, 78u8,
111u8, 116u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 232u8, 45u8, 32u8, 96u8, 82u8, 101u8, 109u8, 111u8,
118u8, 105u8, 110u8, 103u8, 76u8, 97u8, 115u8, 116u8, 70u8, 117u8, 108u8, 108u8, 65u8, 103u8,
101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8,
96u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8,
102u8, 117u8, 108u8, 108u8, 32u8, 111u8, 110u8, 101u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8,
114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 32u8, 97u8, 98u8, 100u8,
105u8, 99u8, 97u8, 116u8, 101u8, 4u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8,
1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 3u8, 44u8, 128u8, 65u8, 98u8, 100u8,
105u8, 99u8, 97u8, 116u8, 101u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 104u8, 105u8,
112u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8,
46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 172u8,
45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 111u8, 102u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 228u8, 45u8, 32u8, 96u8, 78u8, 111u8,
116u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 252u8, 45u8, 32u8, 96u8, 82u8,
101u8, 109u8, 111u8, 118u8, 105u8, 110u8, 103u8, 76u8, 97u8, 115u8, 116u8, 70u8, 117u8, 108u8,
108u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8, 97u8, 103u8, 101u8,
110u8, 116u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 48u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 12u8, 1u8, 24u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8,
20u8, 97u8, 103u8, 101u8, 110u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 20u8, 103u8, 114u8, 111u8, 117u8, 112u8, 13u8, 1u8,
1u8, 40u8, 65u8, 103u8, 101u8, 110u8, 116u8, 71u8, 114u8, 111u8, 117u8, 112u8, 0u8, 4u8, 64u8,
236u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 103u8,
101u8, 110u8, 116u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8,
103u8, 115u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 128u8, 45u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 97u8,
103u8, 101u8, 110u8, 116u8, 96u8, 46u8, 184u8, 45u8, 32u8, 96u8, 97u8, 103u8, 101u8, 110u8,
116u8, 96u8, 32u8, 111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
116u8, 111u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 102u8, 111u8, 114u8, 46u8, 200u8, 45u8, 32u8, 96u8,
103u8, 114u8, 111u8, 117u8, 112u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 97u8,
103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 108u8,
111u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 32u8, 96u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
57u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 97u8, 115u8,
32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 46u8, 204u8, 45u8, 32u8, 96u8, 78u8, 111u8, 83u8,
117u8, 99u8, 104u8, 65u8, 71u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 105u8, 100u8, 96u8, 32u8,
100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 102u8, 121u8, 32u8, 97u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 65u8, 71u8,
46u8, 216u8, 45u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 96u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8, 45u8, 1u8, 45u8,
32u8, 96u8, 82u8, 101u8, 109u8, 111u8, 118u8, 105u8, 110u8, 103u8, 76u8, 97u8, 115u8, 116u8,
70u8, 117u8, 108u8, 108u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 32u8, 96u8,
70u8, 117u8, 108u8, 108u8, 96u8, 32u8, 111u8, 110u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8,
105u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 100u8, 101u8, 109u8, 111u8, 116u8,
101u8, 100u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 28u8, 42u8, 32u8, 65u8,
103u8, 101u8, 110u8, 116u8, 76u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 98u8, 101u8, 99u8,
111u8, 109u8, 101u8, 95u8, 97u8, 103u8, 101u8, 110u8, 116u8, 4u8, 1u8, 28u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 5u8, 64u8, 1u8, 1u8, 65u8,
99u8, 99u8, 101u8, 112u8, 116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8,
32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 34u8, 65u8, 108u8, 105u8, 99u8, 101u8, 34u8, 32u8,
119u8, 104u8, 111u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 96u8, 97u8, 117u8,
116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 216u8, 116u8, 111u8, 32u8, 97u8, 108u8, 115u8, 111u8,
32u8, 98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 65u8, 108u8, 105u8, 99u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8,
105u8, 101u8, 100u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 208u8, 45u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 46u8, 0u8, 32u8, 35u8,
32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 69u8, 1u8, 45u8, 32u8, 96u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 69u8, 114u8, 114u8, 111u8,
114u8, 58u8, 58u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8,
96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 46u8, 53u8, 1u8, 45u8, 32u8, 96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 69u8, 114u8, 114u8, 111u8, 114u8, 58u8, 58u8,
69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8,
117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8,
97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 77u8, 1u8, 45u8, 32u8,
96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
69u8, 114u8, 114u8, 111u8, 114u8, 58u8, 58u8, 66u8, 97u8, 100u8, 84u8, 121u8, 112u8, 101u8, 96u8,
32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 119u8,
97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 96u8, 66u8,
101u8, 99u8, 111u8, 109u8, 101u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 97u8, 117u8,
116u8, 104u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 37u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 65u8, 103u8, 101u8, 110u8,
116u8, 96u8, 32u8, 105u8, 102u8, 32u8, 34u8, 65u8, 108u8, 105u8, 99u8, 101u8, 34u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 46u8, 13u8, 1u8, 45u8, 32u8,
96u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 65u8, 71u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8,
114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8,
109u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 13u8, 1u8, 45u8, 32u8, 96u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 97u8, 110u8, 32u8, 97u8,
103u8, 101u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8, 100u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 95u8, 97u8,
110u8, 100u8, 95u8, 97u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8, 104u8, 16u8, 1u8, 24u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 0u8,
1u8, 20u8, 112u8, 101u8, 114u8, 109u8, 115u8, 172u8, 1u8, 80u8, 69u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
115u8, 0u8, 1u8, 24u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 120u8, 1u8, 40u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8,
105u8, 114u8, 121u8, 240u8, 1u8, 68u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 84u8, 58u8,
58u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 6u8, 20u8, 232u8, 85u8, 116u8, 105u8,
108u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
32u8, 116u8, 111u8, 32u8, 98u8, 97u8, 116u8, 99u8, 104u8, 32u8, 96u8, 99u8, 114u8, 101u8, 97u8,
116u8, 101u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8,
32u8, 96u8, 97u8, 100u8, 100u8, 95u8, 97u8, 117u8, 116u8, 104u8, 96u8, 46u8, 0u8, 52u8, 35u8,
32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 28u8, 42u8,
32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 28u8, 42u8, 32u8, 65u8, 103u8, 101u8, 110u8, 116u8,
120u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 97u8, 110u8, 100u8, 95u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 95u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 95u8, 103u8, 114u8, 111u8,
117u8, 112u8, 12u8, 1u8, 24u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 156u8, 1u8, 24u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 0u8, 1u8, 20u8, 112u8, 101u8, 114u8, 109u8, 115u8, 172u8, 1u8,
80u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 80u8, 101u8, 114u8, 109u8,
105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 20u8, 97u8, 103u8, 101u8, 110u8,
116u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 0u8,
7u8, 20u8, 85u8, 1u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 32u8, 101u8, 120u8, 116u8,
114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 32u8, 116u8, 111u8, 32u8, 98u8, 97u8, 116u8, 99u8,
104u8, 32u8, 96u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 95u8, 103u8, 114u8, 111u8, 117u8,
112u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 32u8, 96u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 99u8, 117u8,
115u8, 116u8, 111u8, 109u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 115u8, 32u8, 111u8, 110u8,
108u8, 121u8, 46u8, 0u8, 52u8, 35u8, 32u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 28u8, 42u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 28u8, 42u8, 32u8, 65u8,
103u8, 101u8, 110u8, 116u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8,
97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8,
97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8,
32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8,
98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8,
97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 33u8, 8u8, 8u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 114u8, 101u8, 108u8, 97u8, 121u8, 101u8,
114u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 56u8, 115u8, 101u8, 116u8,
95u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 8u8, 1u8, 32u8, 117u8,
115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 111u8, 108u8, 121u8, 120u8,
95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 32u8, 189u8, 1u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 96u8, 117u8, 115u8,
101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 101u8,
112u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
40u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 61u8, 61u8, 32u8, 112u8, 97u8, 121u8,
105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 41u8, 32u8, 97u8, 115u8, 32u8, 116u8,
104u8, 101u8, 105u8, 114u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8, 101u8,
114u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8,
156u8, 45u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8,
116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 107u8, 101u8, 121u8, 32u8, 116u8,
111u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8, 101u8, 46u8, 228u8, 45u8,
32u8, 96u8, 112u8, 111u8, 108u8, 121u8, 120u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8,
32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 32u8, 80u8,
79u8, 76u8, 89u8, 88u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8,
110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 46u8, 68u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 95u8, 112u8, 97u8, 121u8, 105u8, 110u8,
103u8, 95u8, 107u8, 101u8, 121u8, 4u8, 1u8, 28u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8,
32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 56u8, 148u8, 65u8, 99u8, 99u8, 101u8, 112u8, 116u8,
115u8, 32u8, 97u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8,
121u8, 96u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8,
115u8, 232u8, 45u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 105u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8,
116u8, 32u8, 97u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8,
121u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 69u8, 1u8,
45u8, 32u8, 96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 69u8, 114u8, 114u8, 111u8, 114u8, 58u8, 58u8, 73u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8,
100u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 46u8, 45u8, 1u8, 45u8, 32u8,
96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8,
69u8, 114u8, 114u8, 111u8, 114u8, 58u8, 58u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8,
96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 96u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 46u8, 109u8, 1u8, 45u8, 32u8, 96u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 69u8, 114u8, 114u8, 111u8, 114u8, 58u8, 58u8, 66u8, 97u8,
100u8, 84u8, 121u8, 112u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 97u8, 117u8, 116u8,
104u8, 95u8, 105u8, 100u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
32u8, 96u8, 65u8, 100u8, 100u8, 82u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 80u8, 97u8, 121u8,
105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 165u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8,
116u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 70u8, 111u8, 114u8,
85u8, 115u8, 101u8, 114u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8,
96u8, 46u8, 217u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 116u8, 65u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 70u8, 111u8, 114u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8,
75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8,
115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 97u8, 110u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8, 114u8,
101u8, 110u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 39u8, 115u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8,
115u8, 101u8, 114u8, 75u8, 101u8, 121u8, 67u8, 100u8, 100u8, 77u8, 105u8, 115u8, 115u8, 105u8,
110u8, 103u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8,
101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8,
67u8, 68u8, 68u8, 39u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 65u8, 1u8, 45u8, 32u8, 96u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8,
67u8, 100u8, 100u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 96u8, 32u8, 105u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8,
101u8, 121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 116u8, 116u8,
97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 39u8,
100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 49u8, 1u8, 45u8, 32u8,
96u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8,
97u8, 108u8, 108u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8,
115u8, 105u8, 99u8, 46u8, 68u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 112u8, 97u8,
121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 8u8, 1u8, 32u8, 117u8, 115u8, 101u8,
114u8, 95u8, 107u8, 101u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 40u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8,
107u8, 101u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 2u8, 44u8, 172u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8,
121u8, 96u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 32u8, 96u8, 117u8, 115u8, 101u8,
114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 212u8, 45u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8,
107u8, 101u8, 121u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8,
107u8, 101u8, 121u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 102u8, 114u8,
111u8, 109u8, 46u8, 9u8, 1u8, 45u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8,
107u8, 101u8, 121u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 97u8, 121u8, 105u8, 110u8,
103u8, 32u8, 107u8, 101u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8,
32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8,
32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 141u8, 1u8, 45u8, 32u8, 96u8, 78u8,
111u8, 116u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 70u8, 111u8,
114u8, 85u8, 115u8, 101u8, 114u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8,
98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 248u8, 45u8, 32u8, 96u8,
78u8, 111u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8,
121u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8,
101u8, 32u8, 97u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8,
121u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 78u8, 111u8, 116u8, 80u8, 97u8, 121u8, 105u8,
110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 100u8,
111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 96u8, 112u8, 97u8,
121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8,
85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8,
108u8, 108u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 46u8, 72u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 95u8, 112u8, 111u8, 108u8,
121u8, 120u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 8u8, 1u8, 32u8, 117u8, 115u8, 101u8,
114u8, 95u8, 107u8, 101u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 112u8, 111u8, 108u8, 121u8, 120u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
3u8, 40u8, 180u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8,
101u8, 121u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 29u8, 1u8, 45u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8,
96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 107u8, 101u8, 121u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8,
121u8, 32u8, 116u8, 111u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8, 79u8, 76u8,
89u8, 88u8, 46u8, 53u8, 1u8, 45u8, 32u8, 96u8, 112u8, 111u8, 108u8, 121u8, 120u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 97u8, 118u8, 97u8,
105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 115u8, 117u8, 98u8,
115u8, 105u8, 100u8, 105u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 248u8, 45u8, 32u8, 96u8, 78u8, 111u8, 80u8, 97u8, 121u8,
105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 100u8, 111u8,
101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 96u8, 112u8,
97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 17u8, 1u8, 45u8, 32u8,
96u8, 78u8, 111u8, 116u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 100u8, 111u8,
101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 96u8, 112u8, 97u8, 121u8,
105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8,
110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 46u8, 80u8, 105u8, 110u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 95u8, 112u8, 111u8,
108u8, 121u8, 120u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 8u8, 1u8, 32u8, 117u8, 115u8,
101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 4u8, 44u8, 184u8, 73u8, 110u8,
99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 118u8, 97u8,
105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 102u8, 111u8,
114u8, 32u8, 97u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8,
0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 29u8, 1u8,
45u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 116u8,
104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 116u8,
111u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 46u8,
13u8, 1u8, 45u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8,
89u8, 88u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 111u8, 102u8, 32u8, 96u8,
117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8,
114u8, 114u8, 111u8, 114u8, 115u8, 248u8, 45u8, 32u8, 96u8, 78u8, 111u8, 80u8, 97u8, 121u8,
105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 100u8, 111u8,
101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 96u8, 112u8,
97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 17u8, 1u8, 45u8, 32u8,
96u8, 78u8, 111u8, 116u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8,
105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 100u8, 111u8,
101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 96u8, 112u8, 97u8, 121u8,
105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8,
110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8, 108u8,
108u8, 101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8,
99u8, 46u8, 61u8, 1u8, 45u8, 32u8, 96u8, 79u8, 118u8, 101u8, 114u8, 108u8, 111u8, 119u8, 96u8,
32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8,
121u8, 39u8, 115u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8,
80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 104u8, 97u8, 118u8,
101u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 96u8,
117u8, 49u8, 50u8, 56u8, 58u8, 58u8, 77u8, 65u8, 88u8, 96u8, 46u8, 80u8, 100u8, 101u8, 99u8,
114u8, 101u8, 97u8, 115u8, 101u8, 95u8, 112u8, 111u8, 108u8, 121u8, 120u8, 95u8, 108u8, 105u8,
109u8, 105u8, 116u8, 8u8, 1u8, 32u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 0u8,
1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8,
24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 5u8, 44u8, 184u8, 68u8, 101u8, 99u8, 114u8, 101u8, 97u8, 115u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8,
79u8, 76u8, 89u8, 88u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 96u8, 117u8, 115u8, 101u8,
114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 29u8, 1u8, 45u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8,
107u8, 101u8, 121u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8,
107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8,
115u8, 105u8, 100u8, 121u8, 32u8, 116u8, 111u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8,
80u8, 79u8, 76u8, 89u8, 88u8, 46u8, 33u8, 1u8, 45u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8,
110u8, 116u8, 96u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8,
109u8, 111u8, 118u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 111u8, 102u8, 32u8, 96u8, 117u8, 115u8,
101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8,
111u8, 114u8, 115u8, 248u8, 45u8, 32u8, 96u8, 78u8, 111u8, 80u8, 97u8, 121u8, 105u8, 110u8,
103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8,
110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 96u8, 112u8, 97u8, 121u8,
105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 17u8, 1u8, 45u8, 32u8, 96u8, 78u8,
111u8, 116u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 96u8, 32u8, 105u8,
102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 100u8, 111u8, 101u8,
115u8, 110u8, 39u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8,
110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 49u8, 1u8, 45u8, 32u8, 96u8, 85u8, 110u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8, 108u8, 108u8,
101u8, 114u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8,
46u8, 9u8, 1u8, 45u8, 32u8, 96u8, 79u8, 118u8, 101u8, 114u8, 108u8, 111u8, 119u8, 96u8, 32u8,
105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8,
32u8, 104u8, 97u8, 115u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 101u8, 110u8,
32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8,
32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 46u8, 12u8, 76u8, 68u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8,
97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8,
117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 37u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8,
4u8, 84u8, 0u8, 1u8, 8u8, 64u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8, 105u8, 116u8, 110u8, 95u8,
114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 12u8, 1u8, 56u8, 114u8, 101u8, 119u8, 97u8, 114u8,
100u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 44u8, 105u8, 116u8, 110u8,
95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 36u8, 115u8, 105u8, 103u8, 110u8,
97u8, 116u8, 117u8, 114u8, 101u8, 213u8, 7u8, 1u8, 80u8, 84u8, 58u8, 58u8, 79u8, 102u8, 102u8,
67u8, 104u8, 97u8, 105u8, 110u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8,
0u8, 0u8, 52u8, 80u8, 67u8, 108u8, 97u8, 105u8, 109u8, 32u8, 97u8, 110u8, 32u8, 73u8, 84u8, 78u8,
32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 0u8, 48u8, 35u8, 35u8, 32u8, 65u8, 114u8,
103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 216u8, 42u8, 32u8, 96u8, 105u8, 116u8, 110u8,
95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 96u8, 32u8, 115u8, 112u8, 101u8, 99u8,
105u8, 102u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 119u8, 97u8,
114u8, 100u8, 101u8, 100u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 111u8,
110u8, 32u8, 73u8, 84u8, 78u8, 46u8, 212u8, 42u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 97u8,
116u8, 117u8, 114u8, 101u8, 96u8, 32u8, 97u8, 117u8, 116u8, 104u8, 101u8, 110u8, 116u8, 105u8,
99u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 108u8, 97u8,
105u8, 109u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 119u8, 97u8,
114u8, 100u8, 46u8, 117u8, 1u8, 32u8, 32u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 105u8, 103u8,
110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 32u8, 96u8, 114u8, 101u8, 119u8, 97u8, 114u8,
100u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 96u8, 32u8, 102u8, 111u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
117u8, 102u8, 102u8, 105u8, 120u8, 32u8, 96u8, 34u8, 99u8, 108u8, 97u8, 105u8, 109u8, 95u8,
105u8, 116u8, 110u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 34u8, 96u8, 44u8, 184u8,
32u8, 32u8, 32u8, 97u8, 110u8, 100u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 104u8, 97u8, 118u8,
101u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 96u8, 105u8, 116u8, 110u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8,
115u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 69u8, 1u8,
42u8, 32u8, 96u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 96u8, 32u8, 45u8, 32u8, 73u8, 116u8, 110u8,
32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8, 105u8,
110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 32u8, 102u8, 117u8,
110u8, 100u8, 115u8, 32u8, 116u8, 111u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 49u8, 1u8, 42u8, 32u8, 96u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8,
114u8, 101u8, 96u8, 32u8, 45u8, 32u8, 96u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8,
114u8, 101u8, 96u8, 32u8, 104u8, 97u8, 100u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8,
105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 109u8, 101u8, 115u8, 115u8, 97u8, 103u8,
101u8, 46u8, 105u8, 1u8, 42u8, 32u8, 96u8, 73u8, 116u8, 110u8, 82u8, 101u8, 119u8, 97u8, 114u8,
100u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 67u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 96u8, 32u8, 45u8, 32u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 105u8, 115u8, 115u8,
117u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 105u8, 116u8,
110u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 96u8, 32u8, 104u8, 97u8, 115u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8, 137u8, 1u8, 42u8, 32u8, 96u8, 85u8, 110u8, 107u8,
110u8, 111u8, 119u8, 110u8, 73u8, 116u8, 110u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
96u8, 32u8, 45u8, 32u8, 96u8, 105u8, 116u8, 110u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8,
115u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 32u8, 116u8, 97u8, 98u8,
108u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8, 32u8,
114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8, 84u8, 115u8, 101u8, 116u8, 95u8, 105u8, 116u8,
110u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 95u8, 115u8, 116u8, 97u8, 116u8, 117u8,
115u8, 8u8, 1u8, 44u8, 105u8, 116u8, 110u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8,
1u8, 24u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 41u8, 8u8, 1u8, 60u8, 73u8, 116u8, 110u8,
82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 0u8,
12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8,
97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8,
102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8,
32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 41u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 60u8, 73u8, 116u8,
110u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8,
8u8, 36u8, 85u8, 110u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 4u8, 0u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 0u8, 28u8, 67u8, 108u8, 97u8, 105u8,
109u8, 101u8, 100u8, 0u8, 1u8, 0u8, 0u8, 45u8, 8u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 24u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 16u8,
99u8, 97u8, 108u8, 108u8, 20u8, 1u8, 16u8, 100u8, 101u8, 115u8, 116u8, 65u8, 5u8, 1u8, 140u8,
60u8, 84u8, 58u8, 58u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 97u8, 115u8, 32u8, 83u8,
116u8, 97u8, 116u8, 105u8, 99u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 62u8, 58u8, 58u8, 83u8,
111u8, 117u8, 114u8, 99u8, 101u8, 0u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8,
1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 1u8,
36u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 13u8, 5u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 84u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 108u8, 105u8, 109u8, 105u8,
116u8, 49u8, 8u8, 1u8, 196u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 60u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 32u8, 97u8, 115u8, 32u8, 99u8,
111u8, 100u8, 101u8, 99u8, 58u8, 58u8, 72u8, 97u8, 115u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8,
116u8, 62u8, 58u8, 58u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8,
97u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 64u8, 5u8, 1u8,
77u8, 97u8, 107u8, 101u8, 115u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8,
32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 111u8, 112u8,
116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 108u8, 121u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8,
102u8, 101u8, 114u8, 114u8, 105u8, 110u8, 103u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8, 114u8, 97u8,
109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 0u8, 168u8, 42u8, 32u8, 96u8, 100u8, 101u8, 115u8,
116u8, 96u8, 58u8, 32u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8, 252u8, 42u8, 32u8, 96u8, 118u8, 97u8, 108u8,
117u8, 101u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 32u8, 116u8, 111u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 116u8, 111u8, 32u8, 96u8, 100u8, 101u8, 115u8, 116u8, 96u8, 46u8, 21u8,
1u8, 42u8, 32u8, 96u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 58u8,
32u8, 84u8, 104u8, 101u8, 32u8, 103u8, 97u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 111u8, 114u8, 46u8, 85u8, 1u8,
42u8, 32u8, 96u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8,
111u8, 115u8, 105u8, 116u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 58u8, 32u8, 84u8,
104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8,
117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8,
114u8, 103u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 164u8,
32u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 100u8, 46u8, 196u8, 42u8,
32u8, 96u8, 100u8, 97u8, 116u8, 97u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 105u8, 110u8,
112u8, 117u8, 116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8,
115u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 46u8, 0u8, 37u8, 1u8, 42u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
115u8, 109u8, 97u8, 114u8, 116u8, 45u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 111u8, 100u8, 101u8,
32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 172u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 110u8, 121u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 46u8, 21u8, 1u8, 42u8, 32u8, 73u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
105u8, 115u8, 32u8, 97u8, 32u8, 114u8, 101u8, 103u8, 117u8, 108u8, 97u8, 114u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 44u8, 32u8, 97u8, 110u8, 121u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 46u8, 69u8, 1u8, 42u8, 32u8, 73u8, 102u8,
32u8, 110u8, 111u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
97u8, 108u8, 108u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 96u8,
101u8, 120u8, 105u8, 115u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 95u8, 100u8, 101u8,
112u8, 111u8, 115u8, 105u8, 116u8, 96u8, 44u8, 17u8, 1u8, 97u8, 32u8, 114u8, 101u8, 103u8, 117u8,
108u8, 97u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 97u8,
110u8, 100u8, 32u8, 97u8, 110u8, 121u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 114u8, 101u8, 100u8, 46u8, 84u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8,
97u8, 116u8, 101u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 24u8, 1u8,
20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 1u8, 36u8, 103u8, 97u8, 115u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 13u8, 5u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8,
1u8, 84u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 49u8, 8u8, 1u8, 196u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 60u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8,
60u8, 84u8, 62u8, 32u8, 97u8, 115u8, 32u8, 99u8, 111u8, 100u8, 101u8, 99u8, 58u8, 58u8, 72u8,
97u8, 115u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 62u8, 58u8, 58u8, 84u8, 121u8, 112u8,
101u8, 62u8, 0u8, 1u8, 16u8, 99u8, 111u8, 100u8, 101u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8,
117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8,
60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 115u8, 97u8, 108u8, 116u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 104u8, 49u8, 1u8, 73u8, 110u8, 115u8, 116u8, 97u8,
110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 96u8,
99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 111u8, 112u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8,
108u8, 121u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 105u8, 110u8,
103u8, 52u8, 115u8, 111u8, 109u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8,
0u8, 33u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8,
104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 97u8, 109u8, 101u8, 32u8, 101u8, 102u8, 102u8, 101u8, 99u8, 116u8, 32u8, 97u8, 115u8,
32u8, 99u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8, 102u8,
58u8, 58u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 93u8,
32u8, 43u8, 61u8, 1u8, 91u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 105u8, 110u8, 115u8,
116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 96u8, 93u8, 46u8, 32u8, 66u8, 117u8, 110u8,
100u8, 108u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 109u8, 32u8, 116u8, 111u8, 103u8,
101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 115u8,
32u8, 101u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 99u8, 121u8, 32u8, 103u8, 97u8,
105u8, 110u8, 115u8, 46u8, 32u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 216u8, 97u8, 108u8,
115u8, 111u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8,
111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8,
102u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 117u8, 112u8, 108u8, 111u8, 97u8,
100u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 93u8, 46u8, 0u8, 48u8, 35u8, 32u8, 80u8, 97u8,
114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 0u8, 77u8, 1u8, 42u8, 32u8, 96u8, 118u8,
97u8, 108u8, 117u8, 101u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 96u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8,
101u8, 119u8, 108u8, 121u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 21u8, 1u8, 42u8, 32u8, 96u8, 103u8, 97u8,
115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8,
103u8, 97u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 101u8, 110u8, 102u8, 111u8,
114u8, 99u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 101u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 111u8, 114u8, 46u8, 85u8, 1u8, 42u8, 32u8, 96u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8,
108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8,
120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 47u8,
114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 200u8, 32u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 116u8,
111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8,
101u8, 100u8, 46u8, 204u8, 42u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 58u8, 32u8, 84u8,
104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 99u8, 111u8,
100u8, 101u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 32u8, 105u8,
110u8, 32u8, 114u8, 97u8, 119u8, 32u8, 98u8, 121u8, 116u8, 101u8, 115u8, 46u8, 244u8, 42u8, 32u8,
96u8, 100u8, 97u8, 116u8, 97u8, 96u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 105u8, 110u8, 112u8,
117u8, 116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 115u8,
115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 111u8,
114u8, 46u8, 49u8, 1u8, 42u8, 32u8, 96u8, 115u8, 97u8, 108u8, 116u8, 96u8, 58u8, 32u8, 85u8,
115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 100u8,
100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 100u8, 101u8, 114u8, 105u8, 118u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 32u8, 83u8, 101u8, 101u8, 32u8, 91u8, 96u8, 80u8, 97u8, 108u8, 108u8, 101u8,
116u8, 58u8, 58u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 95u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 96u8, 93u8, 46u8, 0u8, 148u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8,
116u8, 105u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 101u8,
99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8,
119u8, 115u8, 58u8, 0u8, 89u8, 1u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 112u8,
112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 105u8,
115u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 109u8, 101u8, 110u8, 116u8, 101u8, 100u8,
44u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 101u8, 100u8, 44u8, 32u8, 97u8, 110u8,
100u8, 32u8, 97u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 96u8,
32u8, 105u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 28u8, 32u8, 32u8, 99u8, 111u8, 100u8, 101u8, 46u8, 89u8,
1u8, 45u8, 32u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8,
95u8, 104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 100u8, 101u8,
114u8, 108u8, 121u8, 105u8, 110u8, 103u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 115u8, 104u8, 97u8, 114u8, 101u8, 100u8,
46u8, 73u8, 1u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8,
105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 100u8, 32u8, 98u8, 97u8,
115u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8,
100u8, 101u8, 114u8, 44u8, 32u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8,
32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 108u8, 116u8, 46u8, 1u8,
1u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 109u8, 97u8, 114u8, 116u8, 45u8, 99u8, 111u8,
110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
105u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 100u8, 32u8, 97u8,
100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 192u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8,
96u8, 118u8, 97u8, 108u8, 117u8, 101u8, 96u8, 32u8, 105u8, 115u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 65u8,
1u8, 45u8, 32u8, 84u8, 104u8, 101u8, 32u8, 96u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 96u8,
32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 119u8, 108u8, 121u8, 45u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8,
100u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 44u8, 105u8, 110u8, 115u8,
116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 24u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8,
101u8, 201u8, 1u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8,
84u8, 62u8, 0u8, 1u8, 36u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 13u8,
5u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 84u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 49u8, 8u8, 1u8, 196u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
60u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 32u8, 97u8,
115u8, 32u8, 99u8, 111u8, 100u8, 101u8, 99u8, 58u8, 58u8, 72u8, 97u8, 115u8, 67u8, 111u8, 109u8,
112u8, 97u8, 99u8, 116u8, 62u8, 58u8, 58u8, 84u8, 121u8, 112u8, 101u8, 62u8, 0u8, 1u8, 36u8,
99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 44u8, 67u8, 111u8, 100u8,
101u8, 72u8, 97u8, 115u8, 104u8, 60u8, 84u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8,
40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 115u8, 97u8, 108u8,
116u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 2u8, 20u8, 252u8, 73u8,
110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
97u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 100u8,
101u8, 112u8, 108u8, 111u8, 121u8, 101u8, 100u8, 32u8, 119u8, 97u8, 115u8, 109u8, 32u8, 98u8,
105u8, 110u8, 97u8, 114u8, 121u8, 46u8, 0u8, 53u8, 1u8, 84u8, 104u8, 105u8, 115u8, 32u8, 102u8,
117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 99u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8,
95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 93u8, 32u8, 98u8, 117u8,
116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 116u8, 104u8, 101u8, 73u8,
1u8, 99u8, 111u8, 100u8, 101u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 109u8, 101u8,
110u8, 116u8, 32u8, 115u8, 116u8, 101u8, 112u8, 46u8, 32u8, 73u8, 110u8, 115u8, 116u8, 101u8,
97u8, 100u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8,
97u8, 115u8, 104u8, 96u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 111u8, 110u8, 45u8, 99u8,
104u8, 97u8, 105u8, 110u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 101u8, 100u8, 32u8,
119u8, 97u8, 115u8, 109u8, 32u8, 98u8, 105u8, 110u8, 97u8, 114u8, 121u8, 68u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8,
46u8, 44u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 95u8, 99u8, 111u8, 100u8, 101u8, 8u8, 1u8,
16u8, 99u8, 111u8, 100u8, 101u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8,
0u8, 1u8, 84u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 49u8, 8u8, 1u8, 196u8, 79u8, 112u8,
116u8, 105u8, 111u8, 110u8, 60u8, 60u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8,
60u8, 84u8, 62u8, 32u8, 97u8, 115u8, 32u8, 99u8, 111u8, 100u8, 101u8, 99u8, 58u8, 58u8, 72u8,
97u8, 115u8, 67u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 62u8, 58u8, 58u8, 84u8, 121u8, 112u8,
101u8, 62u8, 0u8, 3u8, 64u8, 236u8, 85u8, 112u8, 108u8, 111u8, 97u8, 100u8, 32u8, 110u8, 101u8,
119u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8,
117u8, 116u8, 32u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 105u8,
110u8, 103u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 105u8, 116u8, 46u8, 0u8, 33u8, 1u8, 73u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8,
116u8, 32u8, 97u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 105u8, 115u8,
32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 69u8, 1u8, 97u8, 110u8,
100u8, 32u8, 117u8, 110u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 32u8, 111u8,
110u8, 108u8, 121u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 99u8, 111u8, 100u8, 101u8,
96u8, 93u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 46u8, 32u8, 84u8,
104u8, 101u8, 32u8, 115u8, 105u8, 122u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 240u8, 100u8, 101u8, 112u8, 101u8, 110u8,
100u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 109u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 115u8, 105u8, 122u8, 101u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 112u8,
112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 46u8, 0u8, 49u8,
1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 105u8,
110u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8, 116u8, 117u8,
114u8, 110u8, 32u8, 96u8, 79u8, 107u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 117u8, 112u8, 103u8,
114u8, 97u8, 100u8, 101u8, 115u8, 148u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 32u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 208u8, 91u8, 96u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 58u8, 58u8, 118u8, 101u8, 114u8, 115u8,
105u8, 111u8, 110u8, 96u8, 93u8, 40u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 41u8, 46u8, 0u8, 24u8, 35u8,
32u8, 78u8, 111u8, 116u8, 101u8, 0u8, 89u8, 1u8, 65u8, 110u8, 121u8, 111u8, 110u8, 101u8, 32u8,
99u8, 97u8, 110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8,
101u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 97u8, 110u8, 121u8, 32u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 101u8,
100u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 117u8,
115u8, 32u8, 112u8, 114u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 105u8, 116u8, 115u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 97u8, 108u8, 46u8, 65u8, 1u8, 84u8, 111u8, 32u8, 97u8, 118u8,
111u8, 105u8, 100u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 115u8, 105u8, 116u8, 117u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 111u8, 114u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 32u8, 101u8, 109u8, 112u8,
108u8, 111u8, 121u8, 32u8, 97u8, 99u8, 99u8, 101u8, 115u8, 115u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 111u8, 108u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8,
116u8, 32u8, 99u8, 97u8, 110u8, 57u8, 1u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8,
105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8,
32u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 46u8, 32u8, 84u8, 104u8, 101u8,
32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 114u8, 117u8, 101u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 105u8, 110u8, 103u8,
160u8, 116u8, 104u8, 114u8, 111u8, 117u8, 103u8, 104u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8,
102u8, 58u8, 58u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8,
95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 93u8, 46u8, 44u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 99u8, 111u8, 100u8, 101u8, 4u8, 1u8, 36u8, 99u8, 111u8,
100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 44u8, 67u8, 111u8, 100u8, 101u8, 72u8,
97u8, 115u8, 104u8, 60u8, 84u8, 62u8, 0u8, 4u8, 16u8, 53u8, 1u8, 82u8, 101u8, 109u8, 111u8,
118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 115u8, 116u8,
111u8, 114u8, 101u8, 100u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 96u8, 99u8, 111u8,
100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8,
101u8, 102u8, 117u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8, 115u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 46u8, 0u8, 69u8, 1u8, 65u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 99u8, 97u8,
110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 105u8, 116u8, 115u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 97u8, 108u8, 32u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 101u8, 114u8,
32u8, 40u8, 105u8, 116u8, 115u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 41u8, 32u8, 97u8,
110u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8,
105u8, 115u8, 100u8, 110u8, 111u8, 116u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 97u8, 110u8, 121u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 4u8,
37u8, 1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8,
118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 46u8, 49u8, 8u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8,
1u8, 201u8, 1u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8,
109u8, 101u8, 4u8, 0u8, 201u8, 1u8, 0u8, 0u8, 1u8, 0u8, 0u8, 53u8, 8u8, 8u8, 72u8, 112u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 115u8, 16u8, 67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 108u8, 105u8, 110u8,
115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 95u8, 119u8, 105u8, 116u8, 104u8,
95u8, 99u8, 111u8, 100u8, 101u8, 95u8, 112u8, 101u8, 114u8, 109u8, 115u8, 28u8, 1u8, 36u8, 101u8,
110u8, 100u8, 111u8, 119u8, 109u8, 101u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 84u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 108u8,
105u8, 109u8, 105u8, 116u8, 253u8, 3u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 62u8, 0u8, 1u8, 16u8, 99u8, 111u8, 100u8, 101u8,
40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8,
97u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 115u8, 97u8,
108u8, 116u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 20u8, 112u8,
101u8, 114u8, 109u8, 115u8, 148u8, 1u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 0u8, 0u8, 96u8, 45u8, 1u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8,
116u8, 105u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 109u8, 97u8, 114u8, 116u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 100u8, 101u8, 102u8, 105u8,
110u8, 105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8,
96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 115u8, 97u8, 108u8, 116u8, 96u8, 46u8, 0u8, 196u8,
84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8,
100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 44u8, 224u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 112u8,
101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 115u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 32u8, 116u8, 111u8,
32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 96u8, 39u8, 115u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8, 224u8, 84u8, 104u8, 101u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 96u8, 101u8, 110u8, 100u8, 111u8,
119u8, 109u8, 101u8, 110u8, 116u8, 96u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 46u8, 152u8, 84u8, 104u8, 105u8, 115u8, 32u8,
105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 116u8, 105u8, 110u8, 99u8, 116u8, 32u8, 102u8, 114u8,
111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8,
109u8, 105u8, 116u8, 96u8, 44u8, 17u8, 1u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 99u8, 111u8,
110u8, 116u8, 114u8, 111u8, 108u8, 115u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 117u8, 99u8,
104u8, 32u8, 103u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 112u8, 108u8,
111u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 109u8, 97u8,
121u8, 32u8, 97u8, 116u8, 32u8, 109u8, 111u8, 115u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8,
117u8, 109u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8, 114u8, 103u8, 117u8, 109u8, 101u8, 110u8,
116u8, 115u8, 232u8, 45u8, 32u8, 96u8, 101u8, 110u8, 100u8, 111u8, 119u8, 109u8, 101u8, 110u8,
116u8, 96u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8,
76u8, 89u8, 88u8, 32u8, 116u8, 111u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 46u8, 85u8, 1u8, 45u8, 32u8, 96u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8,
109u8, 105u8, 116u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8,
117u8, 99u8, 104u8, 32u8, 103u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 100u8,
101u8, 112u8, 108u8, 111u8, 121u8, 96u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 105u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
109u8, 97u8, 121u8, 32u8, 97u8, 116u8, 32u8, 109u8, 111u8, 115u8, 116u8, 32u8, 99u8, 111u8,
110u8, 115u8, 117u8, 109u8, 101u8, 46u8, 81u8, 1u8, 45u8, 32u8, 96u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 108u8, 105u8,
109u8, 105u8, 116u8, 96u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8,
117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 100u8, 47u8, 114u8, 101u8,
115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 200u8, 32u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8,
112u8, 97u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 100u8,
46u8, 232u8, 45u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 87u8, 65u8, 83u8, 77u8, 32u8, 98u8, 105u8, 110u8, 97u8, 114u8,
121u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 109u8, 97u8, 114u8, 116u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 46u8, 240u8, 45u8, 32u8, 96u8, 100u8, 97u8, 116u8, 97u8, 96u8, 32u8, 84u8, 104u8, 101u8,
32u8, 105u8, 110u8, 112u8, 117u8, 116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 111u8,
32u8, 112u8, 97u8, 115u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 111u8, 114u8, 46u8, 184u8, 45u8, 32u8, 96u8, 115u8, 97u8, 108u8, 116u8, 96u8,
32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 100u8,
101u8, 114u8, 105u8, 118u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 33u8, 1u8, 32u8, 32u8, 32u8,
66u8, 121u8, 32u8, 118u8, 97u8, 114u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8,
115u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 96u8, 99u8, 111u8,
100u8, 101u8, 96u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8,
32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8,
101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 188u8, 45u8, 32u8,
96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 104u8, 97u8,
118u8, 101u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 101u8, 1u8,
45u8, 32u8, 65u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8,
58u8, 58u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 95u8,
119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 99u8, 97u8, 110u8, 32u8,
97u8, 108u8, 115u8, 111u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 104u8, 101u8,
114u8, 101u8, 46u8, 240u8, 45u8, 32u8, 67u8, 68u8, 68u8, 47u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 99u8, 104u8, 101u8,
99u8, 107u8, 101u8, 100u8, 44u8, 32u8, 117u8, 110u8, 108u8, 105u8, 107u8, 101u8, 32u8, 105u8,
110u8, 32u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 115u8, 96u8, 46u8, 33u8, 1u8, 45u8, 32u8, 69u8, 114u8, 114u8, 111u8,
114u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 105u8, 115u8, 101u8, 32u8,
119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8,
110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 111u8, 99u8,
99u8, 117u8, 114u8, 32u8, 104u8, 101u8, 114u8, 101u8, 46u8, 108u8, 105u8, 110u8, 115u8, 116u8,
97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 104u8,
97u8, 115u8, 104u8, 95u8, 112u8, 101u8, 114u8, 109u8, 115u8, 28u8, 1u8, 36u8, 101u8, 110u8,
100u8, 111u8, 119u8, 109u8, 101u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 1u8, 36u8, 103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8,
1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 84u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 108u8, 105u8,
109u8, 105u8, 116u8, 253u8, 3u8, 1u8, 60u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 62u8, 0u8, 1u8, 36u8, 99u8, 111u8, 100u8, 101u8, 95u8,
104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 44u8, 67u8, 111u8, 100u8, 101u8, 72u8, 97u8, 115u8, 104u8,
60u8, 84u8, 62u8, 0u8, 1u8, 16u8, 100u8, 97u8, 116u8, 97u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8,
60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 16u8, 115u8, 97u8, 108u8, 116u8, 40u8, 1u8, 28u8, 86u8, 101u8,
99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 1u8, 20u8, 112u8, 101u8, 114u8, 109u8, 115u8, 148u8, 1u8,
44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8,
108u8, 57u8, 1u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8,
115u8, 32u8, 97u8, 32u8, 115u8, 109u8, 97u8, 114u8, 116u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8,
117u8, 115u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 97u8,
110u8, 100u8, 32u8, 96u8, 115u8, 97u8, 108u8, 116u8, 96u8, 46u8, 0u8, 124u8, 85u8, 110u8, 108u8,
105u8, 107u8, 101u8, 32u8, 96u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8,
116u8, 101u8, 95u8, 119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 44u8,
105u8, 1u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 115u8, 115u8, 117u8, 109u8, 101u8, 115u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 116u8, 32u8, 108u8, 101u8, 97u8, 115u8, 116u8, 32u8,
111u8, 110u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 87u8,
65u8, 83u8, 77u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 108u8,
111u8, 97u8, 100u8, 101u8, 100u8, 46u8, 0u8, 196u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 97u8,
116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 44u8, 224u8, 119u8,
105u8, 116u8, 104u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8, 115u8, 96u8, 32u8, 97u8, 115u8,
32u8, 105u8, 116u8, 115u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8,
110u8, 115u8, 44u8, 32u8, 116u8, 111u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8,
96u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 0u8,
224u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
105u8, 115u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8,
32u8, 96u8, 101u8, 110u8, 100u8, 111u8, 119u8, 109u8, 101u8, 110u8, 116u8, 96u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 46u8,
152u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 116u8, 105u8,
110u8, 99u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8,
103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 44u8, 17u8, 1u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 115u8, 32u8, 104u8,
111u8, 119u8, 32u8, 109u8, 117u8, 99u8, 104u8, 32u8, 103u8, 97u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 99u8,
111u8, 100u8, 101u8, 32u8, 109u8, 97u8, 121u8, 32u8, 97u8, 116u8, 32u8, 109u8, 111u8, 115u8,
116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 46u8, 0u8, 44u8, 35u8, 32u8, 65u8,
114u8, 103u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 232u8, 45u8, 32u8, 96u8, 101u8, 110u8,
100u8, 111u8, 119u8, 109u8, 101u8, 110u8, 116u8, 96u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 116u8, 111u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 85u8, 1u8, 45u8, 32u8, 96u8,
103u8, 97u8, 115u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 102u8, 111u8, 114u8,
32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 117u8, 99u8, 104u8, 32u8, 103u8, 97u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8, 96u8, 32u8, 99u8,
111u8, 100u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 109u8, 97u8, 121u8, 32u8, 97u8, 116u8, 32u8, 109u8, 111u8,
115u8, 116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 46u8, 81u8, 1u8, 45u8, 32u8,
96u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 95u8, 108u8, 105u8, 109u8, 105u8, 116u8, 96u8, 32u8, 84u8, 104u8, 101u8, 32u8,
109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8,
100u8, 47u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 100u8, 200u8, 32u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8,
117u8, 109u8, 101u8, 100u8, 46u8, 196u8, 45u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 95u8,
104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 117u8, 112u8, 108u8, 111u8, 97u8, 100u8, 101u8, 100u8, 32u8,
87u8, 65u8, 83u8, 77u8, 32u8, 98u8, 105u8, 110u8, 97u8, 114u8, 121u8, 46u8, 240u8, 45u8, 32u8,
96u8, 100u8, 97u8, 116u8, 97u8, 96u8, 32u8, 84u8, 104u8, 101u8, 32u8, 105u8, 110u8, 112u8, 117u8,
116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 115u8, 115u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 111u8, 114u8, 46u8,
184u8, 45u8, 32u8, 96u8, 115u8, 97u8, 108u8, 116u8, 96u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8,
102u8, 111u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 97u8,
100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 100u8, 101u8, 114u8, 105u8, 118u8, 97u8, 116u8,
105u8, 111u8, 110u8, 46u8, 33u8, 1u8, 32u8, 32u8, 32u8, 66u8, 121u8, 32u8, 118u8, 97u8, 114u8,
121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8, 44u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 96u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 99u8, 97u8,
110u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 117u8, 110u8, 100u8, 101u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 188u8, 45u8, 32u8, 96u8, 112u8, 101u8, 114u8, 109u8,
115u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 104u8, 97u8, 118u8, 101u8, 46u8, 0u8, 32u8, 35u8,
32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 61u8, 1u8, 45u8, 32u8, 65u8, 108u8, 108u8, 32u8,
116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 32u8, 105u8, 110u8, 32u8,
96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 115u8, 58u8, 58u8, 67u8, 97u8, 108u8, 108u8, 58u8, 58u8, 105u8, 110u8, 115u8, 116u8,
97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 96u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 108u8,
115u8, 111u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 104u8, 101u8, 114u8, 101u8,
46u8, 240u8, 45u8, 32u8, 67u8, 68u8, 68u8, 47u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8,
101u8, 100u8, 44u8, 32u8, 117u8, 110u8, 108u8, 105u8, 107u8, 101u8, 32u8, 105u8, 110u8, 32u8,
96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 115u8, 96u8, 46u8, 33u8, 1u8, 45u8, 32u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 105u8, 115u8, 101u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 97u8, 100u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 111u8, 99u8, 99u8, 117u8,
114u8, 32u8, 104u8, 101u8, 114u8, 101u8, 46u8, 12u8, 76u8, 68u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 115u8, 46u8, 0u8,
85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 117u8, 109u8, 32u8, 109u8,
97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8,
116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8,
101u8, 46u8, 57u8, 8u8, 12u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 114u8,
101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 16u8,
67u8, 97u8, 108u8, 108u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 52u8, 110u8, 111u8, 116u8, 101u8, 95u8,
112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 4u8, 1u8, 20u8, 98u8, 121u8, 116u8, 101u8,
115u8, 40u8, 1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 16u8, 116u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 32u8, 97u8, 32u8, 112u8, 114u8, 101u8, 105u8,
109u8, 97u8, 103u8, 101u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 0u8,
85u8, 1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8,
103u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8,
115u8, 108u8, 121u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 44u8,
32u8, 110u8, 111u8, 32u8, 102u8, 101u8, 101u8, 115u8, 32u8, 111u8, 114u8, 32u8, 100u8, 101u8,
112u8, 111u8, 115u8, 105u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 97u8, 107u8,
101u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 105u8,
110u8, 103u8, 85u8, 1u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8,
103u8, 101u8, 46u8, 32u8, 79u8, 116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 44u8,
32u8, 97u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8,
116u8, 97u8, 107u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8,
111u8, 110u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 105u8,
122u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8,
109u8, 97u8, 103u8, 101u8, 46u8, 60u8, 117u8, 110u8, 110u8, 111u8, 116u8, 101u8, 95u8, 112u8,
114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 4u8, 1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8,
1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 4u8, 220u8, 67u8, 108u8, 101u8,
97u8, 114u8, 32u8, 97u8, 110u8, 32u8, 117u8, 110u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8,
116u8, 101u8, 100u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 64u8, 114u8, 101u8, 113u8,
117u8, 101u8, 115u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 4u8,
1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8, 72u8, 97u8, 115u8,
104u8, 0u8, 2u8, 16u8, 65u8, 1u8, 82u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 32u8, 97u8,
32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 98u8, 101u8, 32u8, 117u8,
112u8, 108u8, 111u8, 97u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8, 116u8,
32u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 32u8, 97u8, 110u8, 121u8, 32u8, 102u8, 101u8,
101u8, 115u8, 32u8, 111u8, 114u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 115u8,
46u8, 0u8, 85u8, 1u8, 73u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8,
109u8, 97u8, 103u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 115u8, 32u8,
104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 111u8, 110u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 44u8, 32u8, 119u8, 101u8, 32u8, 117u8, 110u8, 114u8,
101u8, 115u8, 101u8, 114u8, 118u8, 101u8, 32u8, 97u8, 110u8, 121u8, 32u8, 100u8, 101u8, 112u8,
111u8, 115u8, 105u8, 116u8, 57u8, 1u8, 97u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 109u8, 97u8,
121u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 112u8, 97u8, 105u8, 100u8, 44u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 97u8, 107u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 111u8, 108u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8,
101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 104u8, 97u8, 110u8, 100u8, 115u8, 46u8, 72u8, 117u8,
110u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8,
97u8, 103u8, 101u8, 4u8, 1u8, 16u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 28u8, 84u8, 58u8, 58u8,
72u8, 97u8, 115u8, 104u8, 0u8, 3u8, 12u8, 188u8, 67u8, 108u8, 101u8, 97u8, 114u8, 32u8, 97u8,
32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 109u8, 97u8,
100u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 46u8, 0u8, 45u8, 1u8,
78u8, 79u8, 84u8, 69u8, 58u8, 32u8, 84u8, 72u8, 73u8, 83u8, 32u8, 77u8, 85u8, 83u8, 84u8, 32u8,
78u8, 79u8, 84u8, 32u8, 66u8, 69u8, 32u8, 67u8, 65u8, 76u8, 76u8, 69u8, 68u8, 32u8, 79u8, 78u8,
32u8, 96u8, 104u8, 97u8, 115u8, 104u8, 96u8, 32u8, 77u8, 79u8, 82u8, 69u8, 32u8, 84u8, 73u8,
77u8, 69u8, 83u8, 32u8, 84u8, 72u8, 65u8, 78u8, 32u8, 96u8, 114u8, 101u8, 113u8, 117u8, 101u8,
115u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 96u8, 46u8, 4u8, 37u8,
1u8, 67u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8,
118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 112u8, 101u8, 114u8, 32u8, 100u8, 105u8,
115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8,
105u8, 99u8, 46u8, 61u8, 8u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 116u8,
101u8, 115u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 115u8, 16u8, 67u8, 97u8, 108u8, 108u8,
4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 48u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
95u8, 100u8, 105u8, 100u8, 8u8, 1u8, 12u8, 117u8, 105u8, 100u8, 101u8, 4u8, 1u8, 44u8, 73u8,
110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 105u8, 100u8, 0u8, 1u8, 56u8, 115u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 140u8,
1u8, 124u8, 86u8, 101u8, 99u8, 60u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8,
75u8, 101u8, 121u8, 60u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 62u8, 62u8, 0u8, 0u8, 40u8, 77u8, 1u8, 71u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8,
101u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 96u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 73u8, 68u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8,
115u8, 115u8, 117u8, 101u8, 115u8, 32u8, 97u8, 32u8, 115u8, 101u8, 108u8, 102u8, 45u8, 103u8,
101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8,
97u8, 105u8, 109u8, 46u8, 0u8, 240u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 93u8, 1u8, 70u8, 111u8, 114u8,
32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 96u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8,
101u8, 121u8, 115u8, 96u8, 44u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 96u8, 74u8, 111u8,
105u8, 110u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 96u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8,
32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 44u8, 32u8, 115u8, 111u8, 65u8, 1u8, 101u8,
97u8, 99u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 109u8, 32u8, 119u8, 105u8,
108u8, 108u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8,
101u8, 112u8, 116u8, 32u8, 105u8, 116u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8,
98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 110u8, 101u8, 119u8, 32u8, 96u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 68u8, 96u8, 46u8, 0u8, 32u8, 35u8, 32u8, 69u8, 114u8,
114u8, 111u8, 114u8, 115u8, 213u8, 1u8, 45u8, 32u8, 96u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 76u8, 105u8, 110u8, 107u8, 101u8, 100u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 111u8, 114u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8, 121u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 115u8, 101u8,
99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 96u8, 32u8,
104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 108u8, 105u8,
110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8, 96u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 68u8, 96u8, 77u8, 1u8, 45u8, 32u8, 96u8, 83u8,
101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 115u8, 67u8, 111u8,
110u8, 116u8, 97u8, 105u8, 110u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8,
121u8, 96u8, 32u8, 105u8, 102u8, 32u8, 96u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8,
114u8, 121u8, 95u8, 107u8, 101u8, 121u8, 115u8, 96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8,
32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 232u8, 45u8, 32u8, 96u8, 68u8, 105u8,
100u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8,
96u8, 32u8, 105u8, 102u8, 32u8, 97u8, 117u8, 116u8, 111u8, 45u8, 103u8, 101u8, 110u8, 101u8,
114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 68u8, 73u8, 68u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8, 84u8, 109u8, 111u8, 99u8,
107u8, 95u8, 99u8, 100u8, 100u8, 95u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
95u8, 100u8, 105u8, 100u8, 4u8, 1u8, 56u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 0u8, 1u8, 48u8, 84u8, 58u8, 58u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 48u8, 61u8, 1u8, 82u8, 101u8, 103u8, 105u8,
115u8, 116u8, 101u8, 114u8, 115u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 115u8, 32u8,
97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 116u8, 111u8, 32u8,
105u8, 116u8, 46u8, 81u8, 1u8, 84u8, 104u8, 101u8, 32u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8,
111u8, 114u8, 32u8, 85u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 103u8, 101u8, 110u8, 101u8,
114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8,
105u8, 115u8, 116u8, 105u8, 99u8, 97u8, 108u8, 108u8, 121u8, 32u8, 98u8, 121u8, 32u8, 116u8,
104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8, 32u8, 68u8, 73u8, 68u8, 32u8,
97u8, 110u8, 100u8, 176u8, 116u8, 104u8, 101u8, 110u8, 32u8, 119u8, 101u8, 32u8, 102u8, 105u8,
120u8, 32u8, 105u8, 116u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 85u8, 85u8,
73u8, 68u8, 32u8, 118u8, 52u8, 46u8, 0u8, 20u8, 35u8, 32u8, 83u8, 101u8, 101u8, 220u8, 45u8,
32u8, 91u8, 82u8, 70u8, 67u8, 32u8, 52u8, 49u8, 50u8, 50u8, 58u8, 32u8, 85u8, 85u8, 73u8, 68u8,
93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 116u8, 111u8, 111u8, 108u8,
115u8, 46u8, 105u8, 101u8, 116u8, 102u8, 46u8, 111u8, 114u8, 103u8, 47u8, 104u8, 116u8, 109u8,
108u8, 47u8, 114u8, 102u8, 99u8, 52u8, 49u8, 50u8, 50u8, 41u8, 0u8, 36u8, 35u8, 32u8, 70u8, 97u8,
105u8, 108u8, 117u8, 114u8, 101u8, 73u8, 1u8, 45u8, 32u8, 96u8, 111u8, 114u8, 105u8, 103u8,
105u8, 110u8, 96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 97u8,
110u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 46u8, 32u8, 73u8, 110u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
114u8, 115u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 97u8, 100u8, 100u8, 32u8,
110u8, 101u8, 119u8, 28u8, 99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 46u8, 93u8, 1u8, 45u8, 32u8,
96u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 95u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 96u8, 32u8, 40u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 41u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8,
101u8, 32u8, 108u8, 105u8, 110u8, 107u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 106u8, 117u8,
115u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 111u8, 110u8, 108u8,
121u8, 52u8, 111u8, 110u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 40u8, 103u8, 101u8, 116u8, 95u8, 109u8, 121u8, 95u8, 100u8, 105u8, 100u8, 0u8, 2u8, 4u8,
152u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 118u8, 101u8, 110u8,
116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8,
115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 40u8, 103u8, 101u8,
116u8, 95u8, 99u8, 100u8, 100u8, 95u8, 111u8, 102u8, 4u8, 1u8, 8u8, 111u8, 102u8, 0u8, 1u8, 48u8,
84u8, 58u8, 58u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 3u8, 4u8,
212u8, 69u8, 109u8, 105u8, 116u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 118u8, 101u8, 110u8,
116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 39u8,
115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 97u8, 110u8, 100u8,
32u8, 67u8, 68u8, 68u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 46u8, 12u8, 76u8, 68u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 115u8, 46u8, 0u8, 85u8, 1u8, 69u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 114u8, 105u8,
97u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8,
117u8, 109u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 100u8,
105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 102u8, 117u8,
110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 65u8, 8u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 52u8, 80u8, 111u8,
108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 86u8, 111u8, 116u8, 101u8, 115u8, 4u8, 44u8, 66u8,
108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 0u8, 16u8, 1u8,
20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 16u8, 97u8, 121u8, 101u8, 115u8,
33u8, 1u8, 1u8, 60u8, 86u8, 101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 62u8, 0u8, 1u8, 16u8, 110u8, 97u8, 121u8, 115u8, 33u8, 1u8, 1u8, 60u8, 86u8,
101u8, 99u8, 60u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 62u8, 0u8,
1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 53u8, 1u8, 1u8, 92u8, 77u8, 97u8, 121u8,
98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8, 60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 0u8, 69u8, 8u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 28u8, 86u8,
101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8,
0u8, 73u8, 8u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 8u8, 4u8, 84u8,
0u8, 4u8, 73u8, 0u8, 1u8, 36u8, 52u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8,
86u8, 111u8, 116u8, 101u8, 0u8, 0u8, 4u8, 128u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8,
116u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 40u8, 78u8, 111u8,
116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 8u8, 136u8, 65u8, 32u8, 68u8,
73u8, 68u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8,
101u8, 46u8, 212u8, 84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 109u8, 97u8, 121u8, 32u8,
101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 111u8, 116u8,
104u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 46u8, 56u8, 78u8,
111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 2u8,
4u8, 68u8, 78u8, 111u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 46u8, 60u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8,
120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 3u8, 4u8, 144u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 44u8, 32u8, 98u8, 117u8,
116u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8,
101u8, 100u8, 46u8, 68u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 4u8, 4u8, 76u8, 68u8, 117u8, 112u8, 108u8,
105u8, 99u8, 97u8, 116u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
46u8, 84u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 86u8, 111u8,
116u8, 105u8, 110u8, 103u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 5u8, 4u8, 96u8, 77u8, 105u8,
115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8,
103u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 80u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 0u8, 6u8, 4u8,
148u8, 80u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 32u8, 109u8, 117u8,
115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8,
108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 46u8, 60u8, 70u8, 105u8, 114u8, 115u8,
116u8, 86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 0u8, 7u8, 12u8, 252u8,
70u8, 105u8, 114u8, 115u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 111u8, 110u8, 32u8,
97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 99u8, 114u8, 101u8,
97u8, 116u8, 101u8, 115u8, 32u8, 105u8, 116u8, 44u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8,
32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8,
114u8, 111u8, 118u8, 97u8, 108u8, 46u8, 1u8, 1u8, 65u8, 108u8, 108u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 109u8, 111u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8,
101u8, 32u8, 115u8, 111u8, 109u8, 101u8, 116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 97u8, 115u8,
32u8, 34u8, 71u8, 67u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 34u8, 46u8,
252u8, 84u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 101u8, 46u8, 103u8,
46u8, 44u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 44u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8,
105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8,
115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 42u8, 97u8, 112u8, 112u8,
114u8, 111u8, 118u8, 101u8, 100u8, 42u8, 46u8, 84u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8,
100u8, 0u8, 8u8, 4u8, 180u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8,
101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 0u8, 77u8, 8u8, 8u8, 48u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 20u8, 69u8, 114u8, 114u8, 111u8,
114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 84u8, 79u8, 110u8, 108u8, 121u8, 80u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 65u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 0u8, 0u8, 4u8, 176u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8, 114u8, 105u8, 109u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8,
97u8, 116u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 4u8, 124u8, 71u8, 114u8,
111u8, 117u8, 112u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8,
32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
46u8, 48u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8,
2u8, 4u8, 164u8, 67u8, 97u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8,
80u8, 76u8, 97u8, 115u8, 116u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 97u8, 110u8, 110u8,
111u8, 116u8, 81u8, 117u8, 105u8, 116u8, 0u8, 3u8, 4u8, 168u8, 76u8, 97u8, 115u8, 116u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8,
110u8, 111u8, 116u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 88u8, 77u8, 105u8, 115u8, 115u8,
105u8, 110u8, 103u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 0u8, 4u8, 4u8, 76u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 104u8, 65u8, 99u8,
116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8,
105u8, 116u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 5u8, 4u8, 93u8, 1u8,
84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 46u8, 104u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 0u8, 6u8, 4u8, 21u8, 1u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 119u8, 97u8,
115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8,
32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 108u8,
105u8, 109u8, 105u8, 116u8, 46u8, 0u8, 81u8, 8u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 20u8, 69u8, 114u8,
114u8, 111u8, 114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 36u8, 52u8, 68u8, 117u8, 112u8,
108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 86u8, 111u8, 116u8, 101u8, 0u8, 0u8, 4u8, 128u8, 68u8,
117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8,
1u8, 8u8, 136u8, 65u8, 32u8, 68u8, 73u8, 68u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8,
112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 212u8, 84u8, 104u8, 101u8, 32u8, 68u8,
73u8, 68u8, 32u8, 109u8, 97u8, 121u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 98u8,
101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8, 115u8,
111u8, 109u8, 101u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8,
101u8, 120u8, 116u8, 46u8, 56u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 2u8, 4u8, 68u8, 78u8, 111u8, 32u8, 115u8, 117u8, 99u8,
104u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 60u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8,
3u8, 4u8, 144u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 101u8, 120u8, 105u8,
115u8, 116u8, 115u8, 44u8, 32u8, 98u8, 117u8, 116u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 68u8, 68u8, 117u8, 112u8,
108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
0u8, 4u8, 4u8, 76u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 84u8, 77u8, 105u8, 115u8, 109u8, 97u8,
116u8, 99u8, 104u8, 101u8, 100u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 73u8, 110u8, 100u8,
101u8, 120u8, 0u8, 5u8, 4u8, 96u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 101u8,
100u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
46u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 80u8, 114u8, 111u8, 112u8, 111u8,
114u8, 116u8, 105u8, 111u8, 110u8, 0u8, 6u8, 4u8, 148u8, 80u8, 114u8, 111u8, 112u8, 111u8, 114u8,
116u8, 105u8, 111u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8,
32u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 46u8, 60u8, 70u8, 105u8, 114u8, 115u8, 116u8, 86u8, 111u8, 116u8, 101u8, 82u8,
101u8, 106u8, 101u8, 99u8, 116u8, 0u8, 7u8, 12u8, 252u8, 70u8, 105u8, 114u8, 115u8, 116u8, 32u8,
118u8, 111u8, 116u8, 101u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 115u8, 32u8, 105u8,
116u8, 44u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8,
98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 97u8, 108u8, 46u8,
1u8, 1u8, 65u8, 108u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8,
111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 32u8, 115u8, 111u8, 109u8, 101u8,
116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 97u8, 115u8, 32u8, 34u8, 71u8, 67u8, 32u8, 109u8, 97u8,
106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 34u8, 46u8, 252u8, 84u8, 111u8, 32u8, 114u8, 101u8,
106u8, 101u8, 99u8, 116u8, 32u8, 101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 97u8, 32u8, 80u8, 73u8,
80u8, 44u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8,
114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
98u8, 101u8, 32u8, 42u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 42u8, 46u8, 84u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8,
82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 0u8, 8u8, 4u8, 180u8, 77u8, 97u8, 120u8, 105u8,
109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 0u8, 85u8,
8u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8,
20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 84u8,
79u8, 110u8, 108u8, 121u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8,
65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 0u8, 0u8, 4u8, 176u8, 79u8, 110u8, 108u8, 121u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 68u8,
117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
0u8, 1u8, 4u8, 124u8, 71u8, 114u8, 111u8, 117u8, 112u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 46u8, 48u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 0u8, 2u8, 4u8, 164u8, 67u8, 97u8, 110u8, 39u8, 116u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 80u8, 76u8, 97u8, 115u8, 116u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 81u8, 117u8, 105u8, 116u8, 0u8, 3u8,
4u8, 168u8, 76u8, 97u8, 115u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8,
101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 113u8, 117u8, 105u8, 116u8,
46u8, 88u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 67u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 4u8, 4u8, 76u8, 77u8,
105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 68u8, 73u8, 68u8, 104u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 0u8, 5u8, 4u8, 93u8, 1u8, 84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8,
114u8, 111u8, 117u8, 112u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 46u8, 104u8, 65u8, 99u8, 116u8, 105u8,
118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8,
79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 6u8, 4u8, 21u8, 1u8, 65u8, 99u8,
116u8, 105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 108u8, 105u8,
109u8, 105u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8,
114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8,
32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 0u8, 89u8, 8u8, 8u8,
64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8,
1u8, 36u8, 52u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 86u8, 111u8, 116u8,
101u8, 0u8, 0u8, 4u8, 128u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 32u8,
118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8,
97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8, 77u8,
101u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 8u8, 136u8, 65u8, 32u8, 68u8, 73u8, 68u8, 32u8,
105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8,
212u8, 84u8, 104u8, 101u8, 32u8, 68u8, 73u8, 68u8, 32u8, 109u8, 97u8, 121u8, 32u8, 101u8, 105u8,
116u8, 104u8, 101u8, 114u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 32u8, 111u8, 114u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 111u8, 116u8, 104u8, 101u8,
114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 46u8, 56u8, 78u8, 111u8, 83u8,
117u8, 99u8, 104u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 2u8, 4u8, 68u8,
78u8, 111u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 46u8, 60u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8, 120u8,
112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 3u8, 4u8, 144u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 44u8, 32u8, 98u8, 117u8, 116u8,
32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 46u8, 68u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 4u8, 4u8, 76u8, 68u8, 117u8, 112u8, 108u8, 105u8,
99u8, 97u8, 116u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8,
84u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 86u8, 111u8, 116u8,
105u8, 110u8, 103u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 5u8, 4u8, 96u8, 77u8, 105u8, 115u8,
109u8, 97u8, 116u8, 99u8, 104u8, 101u8, 100u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8,
32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 80u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 0u8, 6u8, 4u8, 148u8,
80u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 46u8, 60u8, 70u8, 105u8, 114u8, 115u8, 116u8,
86u8, 111u8, 116u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 0u8, 7u8, 12u8, 252u8, 70u8,
105u8, 114u8, 115u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 111u8, 110u8, 32u8, 97u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 99u8, 114u8, 101u8, 97u8,
116u8, 101u8, 115u8, 32u8, 105u8, 116u8, 44u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8, 32u8,
109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8,
114u8, 111u8, 118u8, 97u8, 108u8, 46u8, 1u8, 1u8, 65u8, 108u8, 108u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 109u8, 111u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8,
101u8, 32u8, 115u8, 111u8, 109u8, 101u8, 116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 97u8, 115u8,
32u8, 34u8, 71u8, 67u8, 32u8, 109u8, 97u8, 106u8, 111u8, 114u8, 105u8, 116u8, 121u8, 34u8, 46u8,
252u8, 84u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8, 101u8, 46u8, 103u8,
46u8, 44u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 44u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8,
105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 32u8,
115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 42u8, 97u8, 112u8, 112u8,
114u8, 111u8, 118u8, 101u8, 100u8, 42u8, 46u8, 84u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8,
100u8, 0u8, 8u8, 4u8, 180u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8,
101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 0u8, 93u8, 8u8, 8u8, 48u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 111u8, 117u8, 112u8, 20u8, 69u8, 114u8, 114u8, 111u8,
114u8, 8u8, 4u8, 84u8, 0u8, 4u8, 73u8, 0u8, 1u8, 28u8, 84u8, 79u8, 110u8, 108u8, 121u8, 80u8,
114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 65u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 0u8, 0u8, 4u8, 176u8, 79u8, 110u8, 108u8, 121u8, 32u8, 112u8, 114u8, 105u8, 109u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8,
97u8, 116u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 4u8, 124u8, 71u8, 114u8,
111u8, 117u8, 112u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 97u8, 115u8,
32u8, 97u8, 100u8, 100u8, 101u8, 100u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
46u8, 48u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 0u8,
2u8, 4u8, 164u8, 67u8, 97u8, 110u8, 39u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8,
32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8,
80u8, 76u8, 97u8, 115u8, 116u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 67u8, 97u8, 110u8, 110u8,
111u8, 116u8, 81u8, 117u8, 105u8, 116u8, 0u8, 3u8, 4u8, 168u8, 76u8, 97u8, 115u8, 116u8, 32u8,
109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8,
110u8, 111u8, 116u8, 32u8, 113u8, 117u8, 105u8, 116u8, 46u8, 88u8, 77u8, 105u8, 115u8, 115u8,
105u8, 110u8, 103u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 0u8, 4u8, 4u8, 76u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 104u8, 65u8, 99u8,
116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8,
105u8, 116u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 5u8, 4u8, 93u8, 1u8,
84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
99u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 103u8, 114u8, 111u8, 117u8, 112u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 46u8, 104u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 0u8, 6u8, 4u8, 21u8, 1u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 119u8, 97u8,
115u8, 32u8, 103u8, 114u8, 101u8, 97u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8,
32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 108u8,
105u8, 109u8, 105u8, 116u8, 46u8, 0u8, 97u8, 8u8, 0u8, 0u8, 4u8, 8u8, 0u8, 105u8, 1u8, 0u8,
101u8, 8u8, 0u8, 0u8, 4u8, 8u8, 0u8, 32u8, 0u8, 105u8, 8u8, 0u8, 0u8, 4u8, 8u8, 0u8, 201u8, 5u8,
0u8, 109u8, 8u8, 0u8, 0u8, 4u8, 12u8, 0u8, 105u8, 1u8, 32u8, 0u8, 113u8, 8u8, 8u8, 60u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
60u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 4u8, 4u8, 84u8, 1u8, 32u8, 0u8, 20u8, 1u8, 36u8, 97u8, 112u8, 112u8, 114u8, 111u8,
118u8, 97u8, 108u8, 115u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8, 1u8, 40u8, 114u8, 101u8,
106u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 1u8, 12u8, 117u8, 54u8, 52u8, 0u8,
1u8, 24u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 117u8, 8u8, 1u8, 56u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 24u8, 101u8,
120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 36u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8,
60u8, 84u8, 62u8, 0u8, 1u8, 40u8, 97u8, 117u8, 116u8, 111u8, 95u8, 99u8, 108u8, 111u8, 115u8,
101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 117u8, 8u8, 8u8, 60u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
56u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 117u8,
115u8, 0u8, 1u8, 20u8, 28u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 0u8, 0u8, 0u8, 60u8,
65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 79u8, 114u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 0u8, 1u8, 0u8, 76u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 83u8,
117u8, 99u8, 99u8, 101u8, 115u8, 115u8, 102u8, 117u8, 108u8, 0u8, 2u8, 0u8, 60u8, 69u8, 120u8,
101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 3u8,
0u8, 32u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 0u8, 4u8, 0u8, 0u8, 121u8, 8u8,
8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8,
8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 125u8, 8u8, 8u8, 60u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 20u8, 69u8, 114u8, 114u8,
111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 100u8, 40u8, 67u8, 100u8, 100u8, 77u8, 105u8, 115u8,
115u8, 105u8, 110u8, 103u8, 0u8, 0u8, 4u8, 196u8, 84u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 67u8, 68u8,
68u8, 39u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 60u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8,
103u8, 0u8, 1u8, 4u8, 112u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 46u8, 52u8, 68u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 69u8,
114u8, 114u8, 111u8, 114u8, 0u8, 2u8, 4u8, 68u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 36u8, 78u8, 111u8, 83u8,
105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 0u8, 3u8, 4u8, 44u8, 78u8, 111u8, 32u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 115u8, 46u8, 116u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
100u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8, 79u8, 117u8, 116u8,
79u8, 102u8, 66u8, 111u8, 117u8, 110u8, 100u8, 115u8, 0u8, 4u8, 4u8, 160u8, 84u8, 111u8, 111u8,
32u8, 102u8, 101u8, 119u8, 32u8, 111u8, 114u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8,
110u8, 121u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 115u8, 105u8,
103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 115u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8,
83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 0u8, 5u8, 4u8, 52u8, 78u8, 111u8, 116u8, 32u8, 97u8,
32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 56u8, 78u8, 111u8, 83u8, 117u8, 99u8,
104u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 0u8, 6u8, 4u8, 68u8, 78u8, 111u8,
32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8,
46u8, 64u8, 78u8, 111u8, 116u8, 69u8, 110u8, 111u8, 117u8, 103u8, 104u8, 83u8, 105u8, 103u8,
110u8, 101u8, 114u8, 115u8, 0u8, 7u8, 4u8, 76u8, 78u8, 111u8, 116u8, 32u8, 101u8, 110u8, 111u8,
117u8, 103u8, 104u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 46u8, 52u8, 78u8,
111u8, 110u8, 99u8, 101u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 8u8, 4u8,
68u8, 65u8, 32u8, 110u8, 111u8, 110u8, 99u8, 101u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8,
108u8, 111u8, 119u8, 46u8, 48u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 86u8, 111u8,
116u8, 101u8, 100u8, 0u8, 9u8, 4u8, 56u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
118u8, 111u8, 116u8, 101u8, 100u8, 46u8, 56u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
65u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 0u8, 10u8, 4u8, 68u8, 65u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 32u8, 97u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 68u8, 70u8,
97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 67u8, 104u8, 97u8, 114u8, 103u8, 101u8, 70u8,
101u8, 101u8, 0u8, 11u8, 4u8, 160u8, 67u8, 111u8, 117u8, 108u8, 100u8, 110u8, 39u8, 116u8, 32u8,
99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 46u8, 72u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 78u8, 111u8,
116u8, 67u8, 114u8, 101u8, 97u8, 116u8, 111u8, 114u8, 0u8, 12u8, 4u8, 192u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 39u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
111u8, 114u8, 46u8, 64u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 78u8, 111u8, 116u8, 65u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 0u8, 13u8, 4u8, 37u8, 1u8, 67u8, 104u8, 97u8, 110u8,
103u8, 105u8, 110u8, 103u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8,
112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8,
32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 105u8, 115u8, 32u8, 97u8,
32u8, 112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 46u8, 116u8,
83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 76u8,
105u8, 110u8, 107u8, 101u8, 100u8, 84u8, 111u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 0u8, 14u8, 4u8, 17u8, 1u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 32u8, 105u8, 115u8,
32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 107u8, 101u8, 121u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 46u8, 116u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 76u8, 105u8, 110u8, 107u8, 101u8, 100u8, 84u8, 111u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 0u8, 15u8, 4u8, 21u8, 1u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8,
32u8, 105u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
107u8, 101u8, 121u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8,
101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 128u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 84u8, 111u8, 76u8,
105u8, 110u8, 107u8, 84u8, 111u8, 73u8, 116u8, 115u8, 101u8, 108u8, 102u8, 0u8, 16u8, 4u8, 188u8,
77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 100u8, 100u8, 32u8,
105u8, 116u8, 115u8, 101u8, 108u8, 102u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 115u8, 105u8,
103u8, 110u8, 101u8, 114u8, 46u8, 88u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 67u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
0u8, 17u8, 4u8, 88u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8,
32u8, 105u8, 115u8, 32u8, 109u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 52u8, 78u8, 111u8,
116u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 0u8, 18u8, 4u8, 244u8,
84u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8,
97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 109u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 100u8, 105u8, 100u8, 92u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 65u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8,
0u8, 19u8, 4u8, 116u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 97u8,
115u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 101u8, 97u8, 114u8,
108u8, 105u8, 101u8, 114u8, 60u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 69u8,
120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 20u8, 4u8, 80u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8,
100u8, 92u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 65u8, 108u8, 114u8, 101u8,
97u8, 100u8, 121u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 0u8, 21u8, 4u8, 116u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 101u8, 97u8, 114u8, 108u8, 105u8, 101u8,
114u8, 92u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 77u8, 105u8, 115u8, 115u8,
105u8, 110u8, 103u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 22u8, 4u8,
156u8, 77u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 64u8, 70u8,
97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 0u8, 23u8, 4u8, 120u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8,
32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 102u8, 97u8, 105u8, 108u8, 115u8, 56u8, 84u8, 111u8, 111u8, 77u8, 97u8, 110u8, 121u8, 83u8,
105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 0u8, 24u8, 4u8, 108u8, 77u8, 111u8, 114u8, 101u8, 32u8,
115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 114u8,
101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 46u8, 4u8, 92u8, 77u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 32u8, 101u8, 114u8,
114u8, 111u8, 114u8, 115u8, 46u8, 129u8, 8u8, 0u8, 0u8, 4u8, 8u8, 0u8, 16u8, 0u8, 133u8, 8u8,
8u8, 52u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8,
101u8, 56u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 68u8, 101u8, 116u8, 97u8,
105u8, 108u8, 4u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
1u8, 16u8, 0u8, 16u8, 1u8, 24u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 24u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8,
137u8, 8u8, 1u8, 56u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 83u8, 116u8, 97u8,
116u8, 117u8, 115u8, 0u8, 1u8, 60u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8,
110u8, 95u8, 98u8, 108u8, 111u8, 99u8, 107u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8,
78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 28u8, 116u8, 120u8, 95u8, 104u8, 97u8, 115u8,
104u8, 36u8, 1u8, 16u8, 72u8, 50u8, 53u8, 54u8, 0u8, 0u8, 137u8, 8u8, 8u8, 52u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 56u8, 66u8, 114u8,
105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 20u8,
24u8, 65u8, 98u8, 115u8, 101u8, 110u8, 116u8, 0u8, 0u8, 0u8, 28u8, 80u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 1u8, 0u8, 24u8, 70u8, 114u8,
111u8, 122u8, 101u8, 110u8, 0u8, 2u8, 0u8, 40u8, 84u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8,
107u8, 101u8, 100u8, 0u8, 3u8, 0u8, 28u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 0u8,
4u8, 0u8, 0u8, 141u8, 8u8, 0u8, 0u8, 4u8, 8u8, 24u8, 16u8, 0u8, 145u8, 8u8, 8u8, 52u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 28u8, 86u8,
101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8,
0u8, 149u8, 8u8, 8u8, 52u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 52u8,
64u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 78u8, 111u8, 116u8,
83u8, 101u8, 116u8, 0u8, 0u8, 4u8, 164u8, 84u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8,
103u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8,
97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 115u8, 101u8, 116u8, 46u8, 36u8, 66u8, 97u8, 100u8, 67u8, 97u8, 108u8, 108u8, 101u8, 114u8,
0u8, 1u8, 4u8, 216u8, 84u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8,
105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
46u8, 32u8, 66u8, 97u8, 100u8, 65u8, 100u8, 109u8, 105u8, 110u8, 0u8, 2u8, 4u8, 144u8, 84u8,
104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 32u8, 97u8,
100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 40u8, 78u8, 111u8, 86u8, 97u8, 108u8, 105u8,
100u8, 67u8, 100u8, 100u8, 0u8, 3u8, 4u8, 140u8, 84u8, 104u8, 101u8, 32u8, 114u8, 101u8, 99u8,
105u8, 112u8, 105u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 32u8, 104u8, 97u8, 115u8, 32u8,
110u8, 111u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 46u8, 88u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 0u8, 4u8, 4u8, 57u8, 1u8, 84u8, 104u8, 101u8,
32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8,
101u8, 110u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 110u8, 100u8, 115u8, 32u8, 109u8, 105u8, 110u8,
116u8, 101u8, 100u8, 46u8, 48u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
122u8, 101u8, 100u8, 0u8, 5u8, 4u8, 148u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 112u8, 101u8, 114u8, 102u8, 111u8, 114u8,
109u8, 32u8, 97u8, 110u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8,
46u8, 24u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 0u8, 6u8, 4u8, 116u8, 84u8, 104u8, 101u8,
32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 36u8, 78u8,
111u8, 116u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 0u8, 7u8, 4u8, 100u8, 84u8, 104u8, 101u8,
32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 32u8, 70u8, 114u8, 111u8, 122u8, 101u8,
110u8, 84u8, 120u8, 0u8, 8u8, 4u8, 104u8, 84u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 102u8, 114u8, 111u8,
122u8, 101u8, 110u8, 46u8, 72u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 76u8, 105u8, 109u8,
105u8, 116u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 0u8, 9u8, 4u8, 228u8, 84u8, 104u8,
101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 39u8, 115u8, 32u8, 109u8,
105u8, 110u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 104u8, 97u8,
115u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 32u8,
79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 10u8, 4u8, 172u8, 84u8, 104u8, 101u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 39u8, 115u8, 32u8, 109u8, 105u8,
110u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 104u8, 97u8, 115u8,
32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 56u8, 68u8,
105u8, 118u8, 105u8, 115u8, 105u8, 111u8, 110u8, 66u8, 121u8, 90u8, 101u8, 114u8, 111u8, 0u8,
11u8, 4u8, 204u8, 84u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 105u8, 110u8,
116u8, 101u8, 114u8, 118u8, 97u8, 108u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 105u8, 115u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 32u8, 67u8, 97u8, 110u8,
110u8, 111u8, 116u8, 32u8, 100u8, 105u8, 118u8, 105u8, 100u8, 101u8, 46u8, 48u8, 84u8, 105u8,
109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 84u8, 120u8, 0u8, 12u8, 4u8, 120u8, 84u8,
104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
32u8, 105u8, 115u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8,
46u8, 0u8, 153u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8,
97u8, 107u8, 105u8, 110u8, 103u8, 52u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 76u8,
101u8, 100u8, 103u8, 101u8, 114u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 1u8, 0u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 20u8, 1u8,
20u8, 115u8, 116u8, 97u8, 115u8, 104u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 0u8, 1u8, 20u8, 116u8, 111u8, 116u8, 97u8, 108u8, 201u8, 1u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 24u8, 97u8, 99u8, 116u8, 105u8, 118u8,
101u8, 201u8, 1u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 117u8,
110u8, 108u8, 111u8, 99u8, 107u8, 105u8, 110u8, 103u8, 157u8, 8u8, 1u8, 100u8, 86u8, 101u8, 99u8,
60u8, 85u8, 110u8, 108u8, 111u8, 99u8, 107u8, 67u8, 104u8, 117u8, 110u8, 107u8, 60u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 62u8, 62u8, 0u8, 1u8, 60u8, 99u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 53u8, 4u8, 1u8, 52u8, 86u8,
101u8, 99u8, 60u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 62u8, 0u8, 0u8, 157u8,
8u8, 0u8, 0u8, 2u8, 161u8, 8u8, 0u8, 161u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 44u8, 85u8, 110u8, 108u8, 111u8,
99u8, 107u8, 67u8, 104u8, 117u8, 110u8, 107u8, 4u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 1u8, 24u8, 0u8, 8u8, 1u8, 20u8, 118u8, 97u8, 108u8, 117u8, 101u8, 201u8, 1u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 12u8, 101u8, 114u8, 97u8, 121u8, 4u8, 1u8,
32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 0u8, 165u8, 8u8, 8u8, 56u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8,
44u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 4u8, 36u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 12u8, 1u8, 28u8, 116u8, 97u8,
114u8, 103u8, 101u8, 116u8, 115u8, 232u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 48u8, 115u8, 117u8, 98u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 95u8, 105u8, 110u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 1u8, 40u8, 115u8, 117u8, 112u8, 112u8, 114u8, 101u8, 115u8, 115u8,
101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 169u8, 8u8, 8u8, 56u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8,
52u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 69u8, 114u8, 97u8, 73u8, 110u8, 102u8, 111u8, 0u8,
0u8, 8u8, 1u8, 20u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8,
110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 20u8, 115u8, 116u8, 97u8, 114u8, 116u8, 240u8, 1u8, 44u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 54u8, 52u8, 62u8, 0u8, 0u8, 173u8, 8u8,
0u8, 0u8, 4u8, 8u8, 16u8, 0u8, 0u8, 177u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 60u8, 69u8, 114u8, 97u8, 82u8,
101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 111u8, 105u8, 110u8, 116u8, 115u8, 4u8, 36u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 8u8, 1u8, 20u8, 116u8, 111u8,
116u8, 97u8, 108u8, 16u8, 1u8, 44u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 111u8, 105u8,
110u8, 116u8, 0u8, 1u8, 40u8, 105u8, 110u8, 100u8, 105u8, 118u8, 105u8, 100u8, 117u8, 97u8,
108u8, 181u8, 8u8, 1u8, 128u8, 66u8, 84u8, 114u8, 101u8, 101u8, 77u8, 97u8, 112u8, 60u8, 65u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 82u8, 101u8, 119u8, 97u8, 114u8,
100u8, 80u8, 111u8, 105u8, 110u8, 116u8, 62u8, 0u8, 0u8, 181u8, 8u8, 4u8, 32u8, 66u8, 84u8,
114u8, 101u8, 101u8, 77u8, 97u8, 112u8, 8u8, 4u8, 75u8, 1u8, 0u8, 4u8, 86u8, 1u8, 16u8, 0u8, 4u8,
0u8, 185u8, 8u8, 0u8, 0u8, 0u8, 185u8, 8u8, 0u8, 0u8, 2u8, 129u8, 8u8, 0u8, 189u8, 8u8, 8u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8,
103u8, 28u8, 70u8, 111u8, 114u8, 99u8, 105u8, 110u8, 103u8, 0u8, 1u8, 16u8, 40u8, 78u8, 111u8,
116u8, 70u8, 111u8, 114u8, 99u8, 105u8, 110u8, 103u8, 0u8, 0u8, 0u8, 32u8, 70u8, 111u8, 114u8,
99u8, 101u8, 78u8, 101u8, 119u8, 0u8, 1u8, 0u8, 36u8, 70u8, 111u8, 114u8, 99u8, 101u8, 78u8,
111u8, 110u8, 101u8, 0u8, 2u8, 0u8, 44u8, 70u8, 111u8, 114u8, 99u8, 101u8, 65u8, 108u8, 119u8,
97u8, 121u8, 115u8, 0u8, 3u8, 0u8, 0u8, 193u8, 8u8, 0u8, 0u8, 2u8, 197u8, 8u8, 0u8, 197u8, 8u8,
8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8,
110u8, 103u8, 56u8, 85u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 83u8, 108u8,
97u8, 115u8, 104u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8,
0u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 20u8, 1u8, 36u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 12u8, 111u8, 119u8, 110u8, 24u8, 1u8, 28u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 24u8, 111u8, 116u8, 104u8, 101u8, 114u8, 115u8,
201u8, 8u8, 1u8, 100u8, 86u8, 101u8, 99u8, 60u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 44u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 41u8, 62u8, 0u8,
1u8, 36u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 114u8, 115u8, 232u8, 1u8, 56u8, 86u8,
101u8, 99u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8,
24u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 201u8, 8u8, 0u8, 0u8, 2u8, 205u8, 8u8, 0u8, 205u8, 8u8, 0u8, 0u8, 4u8,
8u8, 0u8, 24u8, 0u8, 209u8, 8u8, 0u8, 0u8, 4u8, 8u8, 137u8, 1u8, 24u8, 0u8, 213u8, 8u8, 12u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8,
103u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 52u8, 83u8, 108u8, 97u8,
115u8, 104u8, 105u8, 110u8, 103u8, 83u8, 112u8, 97u8, 110u8, 115u8, 0u8, 0u8, 16u8, 1u8, 40u8,
115u8, 112u8, 97u8, 110u8, 95u8, 105u8, 110u8, 100u8, 101u8, 120u8, 16u8, 1u8, 36u8, 83u8, 112u8,
97u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 40u8, 108u8, 97u8, 115u8, 116u8, 95u8,
115u8, 116u8, 97u8, 114u8, 116u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8,
120u8, 0u8, 1u8, 72u8, 108u8, 97u8, 115u8, 116u8, 95u8, 110u8, 111u8, 110u8, 122u8, 101u8, 114u8,
111u8, 95u8, 115u8, 108u8, 97u8, 115u8, 104u8, 16u8, 1u8, 32u8, 69u8, 114u8, 97u8, 73u8, 110u8,
100u8, 101u8, 120u8, 0u8, 1u8, 20u8, 112u8, 114u8, 105u8, 111u8, 114u8, 53u8, 4u8, 1u8, 52u8,
86u8, 101u8, 99u8, 60u8, 69u8, 114u8, 97u8, 73u8, 110u8, 100u8, 101u8, 120u8, 62u8, 0u8, 0u8,
217u8, 8u8, 12u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8,
105u8, 110u8, 103u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 40u8, 83u8,
112u8, 97u8, 110u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 4u8, 28u8, 66u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 8u8, 1u8, 28u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8,
100u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 32u8, 112u8, 97u8,
105u8, 100u8, 95u8, 111u8, 117u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 221u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8,
116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 56u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 73u8, 100u8, 1u8, 0u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8,
12u8, 1u8, 60u8, 101u8, 108u8, 101u8, 99u8, 116u8, 101u8, 100u8, 95u8, 115u8, 116u8, 97u8, 115u8,
104u8, 101u8, 115u8, 232u8, 1u8, 56u8, 86u8, 101u8, 99u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 1u8, 36u8, 101u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8,
101u8, 115u8, 189u8, 1u8, 1u8, 184u8, 86u8, 101u8, 99u8, 60u8, 40u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 69u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8,
101u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 44u8, 32u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 62u8, 41u8, 62u8, 0u8, 1u8, 28u8, 99u8, 111u8, 109u8, 112u8,
117u8, 116u8, 101u8, 133u8, 1u8, 1u8, 60u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8,
67u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 0u8, 0u8, 225u8, 8u8, 8u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 56u8, 69u8,
108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 4u8,
44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 1u8,
8u8, 24u8, 67u8, 108u8, 111u8, 115u8, 101u8, 100u8, 0u8, 0u8, 0u8, 16u8, 79u8, 112u8, 101u8,
110u8, 4u8, 0u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 0u8, 1u8, 0u8, 0u8, 229u8, 8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 100u8, 80u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 80u8, 114u8, 101u8, 102u8, 115u8, 0u8, 0u8, 8u8, 1u8, 56u8, 105u8, 110u8, 116u8, 101u8,
110u8, 100u8, 101u8, 100u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 1u8, 52u8, 114u8, 117u8, 110u8, 110u8, 105u8, 110u8, 103u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 233u8, 8u8, 8u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 82u8,
101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 115u8, 0u8, 1u8, 32u8, 52u8, 86u8, 49u8, 95u8, 48u8,
95u8, 48u8, 65u8, 110u8, 99u8, 105u8, 101u8, 110u8, 116u8, 0u8, 0u8, 0u8, 24u8, 86u8, 50u8, 95u8,
48u8, 95u8, 48u8, 0u8, 1u8, 0u8, 24u8, 86u8, 51u8, 95u8, 48u8, 95u8, 48u8, 0u8, 2u8, 0u8, 24u8,
86u8, 52u8, 95u8, 48u8, 95u8, 48u8, 0u8, 3u8, 0u8, 24u8, 86u8, 53u8, 95u8, 48u8, 95u8, 48u8, 0u8,
4u8, 0u8, 24u8, 86u8, 54u8, 95u8, 48u8, 95u8, 48u8, 0u8, 5u8, 0u8, 24u8, 86u8, 54u8, 95u8, 48u8,
95u8, 49u8, 0u8, 6u8, 0u8, 24u8, 86u8, 55u8, 95u8, 48u8, 95u8, 48u8, 0u8, 7u8, 0u8, 0u8, 237u8,
8u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 107u8, 105u8,
110u8, 103u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 168u8, 52u8,
78u8, 111u8, 116u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 0u8,
0u8, 4u8, 100u8, 78u8, 111u8, 116u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8,
108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 32u8, 78u8,
111u8, 116u8, 83u8, 116u8, 97u8, 115u8, 104u8, 0u8, 1u8, 4u8, 80u8, 78u8, 111u8, 116u8, 32u8,
97u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
46u8, 52u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 66u8, 111u8, 110u8, 100u8, 101u8,
100u8, 0u8, 2u8, 4u8, 96u8, 83u8, 116u8, 97u8, 115u8, 104u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 46u8,
52u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 80u8, 97u8, 105u8, 114u8, 101u8, 100u8, 0u8,
3u8, 4u8, 116u8, 67u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8,
105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 97u8, 105u8,
114u8, 101u8, 100u8, 46u8, 48u8, 69u8, 109u8, 112u8, 116u8, 121u8, 84u8, 97u8, 114u8, 103u8,
101u8, 116u8, 115u8, 0u8, 4u8, 4u8, 96u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 32u8,
99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 101u8, 109u8, 112u8, 116u8,
121u8, 46u8, 68u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 108u8, 97u8, 115u8,
104u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 5u8, 4u8, 132u8, 83u8, 108u8, 97u8, 115u8, 104u8,
32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8,
111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 111u8, 117u8, 110u8, 100u8, 115u8, 46u8,
68u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 86u8,
97u8, 108u8, 117u8, 101u8, 0u8, 6u8, 4u8, 200u8, 67u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8,
32u8, 98u8, 111u8, 110u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 109u8,
105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
46u8, 48u8, 78u8, 111u8, 77u8, 111u8, 114u8, 101u8, 67u8, 104u8, 117u8, 110u8, 107u8, 115u8, 0u8,
7u8, 4u8, 144u8, 67u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 117u8, 110u8, 108u8, 111u8,
99u8, 107u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 46u8, 52u8, 78u8, 111u8, 85u8, 110u8,
108u8, 111u8, 99u8, 107u8, 67u8, 104u8, 117u8, 110u8, 107u8, 0u8, 8u8, 4u8, 160u8, 67u8, 97u8,
110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 114u8, 101u8, 98u8, 111u8, 110u8, 100u8, 32u8, 119u8,
105u8, 116u8, 104u8, 111u8, 117u8, 116u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 105u8,
110u8, 103u8, 32u8, 99u8, 104u8, 117u8, 110u8, 107u8, 115u8, 46u8, 48u8, 70u8, 117u8, 110u8,
100u8, 101u8, 100u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 0u8, 9u8, 4u8, 200u8, 65u8, 116u8,
116u8, 101u8, 109u8, 112u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 116u8, 97u8,
114u8, 103u8, 101u8, 116u8, 32u8, 97u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 104u8, 97u8, 115u8, 32u8,
102u8, 117u8, 110u8, 100u8, 115u8, 46u8, 72u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
69u8, 114u8, 97u8, 84u8, 111u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 0u8, 10u8, 4u8, 88u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 101u8, 114u8, 97u8, 32u8, 116u8, 111u8,
32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 72u8, 78u8, 111u8, 116u8, 83u8, 111u8,
114u8, 116u8, 101u8, 100u8, 65u8, 110u8, 100u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 0u8,
11u8, 4u8, 128u8, 73u8, 116u8, 101u8, 109u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8,
116u8, 32u8, 115u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 117u8,
110u8, 105u8, 113u8, 117u8, 101u8, 46u8, 56u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
67u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 0u8, 12u8, 4u8, 9u8, 1u8, 82u8, 101u8, 119u8,
97u8, 114u8, 100u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
101u8, 114u8, 97u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 124u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8,
105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 69u8, 97u8, 114u8, 108u8,
121u8, 83u8, 117u8, 98u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 0u8, 13u8, 4u8, 224u8,
84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8,
114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 99u8, 101u8,
105u8, 118u8, 101u8, 100u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 111u8, 112u8, 101u8, 110u8, 32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 46u8,
120u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8,
105u8, 111u8, 110u8, 87u8, 101u8, 97u8, 107u8, 83u8, 117u8, 98u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 0u8, 14u8, 4u8, 252u8, 84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 109u8,
105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 115u8, 32u8, 103u8, 111u8, 111u8, 100u8, 32u8,
97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 101u8, 32u8, 115u8, 116u8, 111u8,
114u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 76u8, 83u8,
110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 85u8, 110u8, 97u8, 118u8, 97u8, 105u8, 108u8,
97u8, 98u8, 108u8, 101u8, 0u8, 15u8, 4u8, 204u8, 84u8, 104u8, 101u8, 32u8, 115u8, 110u8, 97u8,
112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 119u8, 105u8,
110u8, 100u8, 111u8, 119u8, 32u8, 105u8, 115u8, 32u8, 109u8, 105u8, 115u8, 115u8, 105u8, 110u8,
103u8, 46u8, 128u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8,
99u8, 116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 87u8, 105u8, 110u8, 110u8,
101u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 16u8, 4u8, 172u8, 73u8, 110u8, 99u8, 111u8,
114u8, 114u8, 101u8, 99u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8,
32u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 101u8, 100u8, 46u8, 108u8, 79u8, 102u8,
102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8,
66u8, 111u8, 103u8, 117u8, 115u8, 87u8, 105u8, 110u8, 110u8, 101u8, 114u8, 0u8, 17u8, 8u8, 93u8,
1u8, 79u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8,
109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 115u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 99u8, 97u8, 110u8, 100u8, 105u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8,
110u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 40u8, 105u8, 110u8, 100u8, 101u8, 120u8,
32u8, 105u8, 115u8, 32u8, 111u8, 117u8, 116u8, 32u8, 111u8, 102u8, 32u8, 114u8, 97u8, 110u8,
103u8, 101u8, 52u8, 105u8, 110u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8,
41u8, 46u8, 112u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8,
116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 67u8, 111u8, 109u8, 112u8, 97u8,
99u8, 116u8, 0u8, 18u8, 8u8, 89u8, 1u8, 69u8, 114u8, 114u8, 111u8, 114u8, 32u8, 119u8, 104u8,
105u8, 108u8, 101u8, 32u8, 98u8, 117u8, 105u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 105u8, 103u8, 110u8, 109u8, 101u8, 110u8, 116u8, 32u8,
116u8, 121u8, 112u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 111u8, 109u8, 112u8, 97u8, 99u8, 116u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8,
97u8, 110u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 105u8, 102u8, 32u8, 97u8,
110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 164u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8,
97u8, 108u8, 105u8, 100u8, 44u8, 32u8, 111u8, 114u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 32u8, 95u8, 111u8, 118u8, 101u8,
114u8, 102u8, 108u8, 111u8, 119u8, 95u8, 46u8, 120u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8,
105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8,
115u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 0u8, 19u8, 4u8, 17u8, 1u8,
79u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8,
109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 110u8, 32u8,
97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 32u8, 111u8, 110u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 124u8, 79u8,
102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8,
111u8, 110u8, 0u8, 20u8, 4u8, 73u8, 1u8, 79u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 110u8,
111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8,
97u8, 110u8, 32u8, 101u8, 100u8, 103u8, 101u8, 32u8, 116u8, 111u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 110u8,
111u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 99u8, 104u8,
97u8, 105u8, 110u8, 46u8, 132u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8,
108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 108u8, 97u8, 115u8, 104u8, 101u8, 100u8,
78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 21u8, 8u8, 93u8, 1u8,
79u8, 110u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8,
109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8,
111u8, 114u8, 115u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 100u8, 103u8,
101u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 115u8, 117u8, 98u8,
109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 110u8, 111u8, 110u8, 45u8, 122u8,
101u8, 114u8, 111u8, 80u8, 115u8, 108u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 46u8, 116u8, 79u8, 102u8, 102u8,
99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 66u8,
111u8, 103u8, 117u8, 115u8, 83u8, 101u8, 108u8, 102u8, 86u8, 111u8, 116u8, 101u8, 0u8, 22u8, 4u8,
33u8, 1u8, 65u8, 32u8, 115u8, 101u8, 108u8, 102u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 109u8,
117u8, 115u8, 116u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 111u8, 114u8,
105u8, 103u8, 105u8, 110u8, 97u8, 116u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 116u8, 111u8,
32u8, 79u8, 78u8, 76u8, 89u8, 32u8, 116u8, 104u8, 101u8, 109u8, 115u8, 101u8, 108u8, 118u8,
101u8, 115u8, 46u8, 100u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 69u8, 100u8, 103u8,
101u8, 0u8, 23u8, 4u8, 65u8, 1u8, 84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 109u8, 105u8,
116u8, 116u8, 101u8, 100u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 117u8, 110u8, 107u8, 110u8, 111u8, 119u8, 110u8, 32u8, 101u8, 100u8, 103u8, 101u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 109u8, 111u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8,
115u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 110u8, 110u8, 101u8, 114u8, 115u8,
46u8, 104u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8, 101u8, 99u8,
116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 83u8, 99u8, 111u8, 114u8, 101u8,
0u8, 24u8, 4u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8,
100u8, 32u8, 115u8, 99u8, 111u8, 114u8, 101u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 97u8,
116u8, 97u8, 46u8, 132u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 69u8, 108u8,
101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 66u8, 111u8, 103u8, 117u8, 115u8, 69u8, 108u8, 101u8,
99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 105u8, 122u8, 101u8, 0u8, 25u8, 4u8, 116u8, 84u8, 104u8,
101u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 105u8, 122u8,
101u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 56u8,
67u8, 97u8, 108u8, 108u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8,
0u8, 26u8, 4u8, 69u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8,
97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8,
105u8, 109u8, 101u8, 32u8, 100u8, 117u8, 101u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 115u8,
116u8, 114u8, 105u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 111u8, 102u8, 32u8, 101u8,
108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8,
46u8, 88u8, 73u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 83u8, 108u8, 97u8, 115u8,
104u8, 105u8, 110u8, 103u8, 83u8, 112u8, 97u8, 110u8, 115u8, 0u8, 27u8, 4u8, 176u8, 73u8, 110u8,
99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 115u8,
112u8, 97u8, 110u8, 115u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 46u8,
52u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8,
0u8, 28u8, 4u8, 152u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
101u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8,
36u8, 78u8, 111u8, 116u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 0u8, 29u8, 4u8, 136u8, 80u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 115u8, 46u8, 32u8, 78u8, 111u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 0u8,
30u8, 4u8, 96u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 46u8, 96u8, 73u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 31u8, 4u8, 184u8, 71u8, 105u8, 118u8,
101u8, 110u8, 32u8, 112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
46u8, 104u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 86u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 67u8, 111u8, 109u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8,
0u8, 32u8, 4u8, 156u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 112u8,
114u8, 101u8, 102u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8,
110u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 46u8,
100u8, 83u8, 116u8, 97u8, 115u8, 104u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
68u8, 111u8, 101u8, 115u8, 78u8, 111u8, 116u8, 69u8, 120u8, 105u8, 115u8, 116u8, 0u8, 33u8, 4u8,
212u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 114u8, 32u8,
110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8, 115u8,
104u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 100u8, 111u8, 101u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 112u8, 83u8,
116u8, 97u8, 115u8, 104u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 78u8, 111u8,
116u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 0u8,
34u8, 4u8, 184u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 115u8, 116u8,
97u8, 115u8, 104u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 119u8,
97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 101u8, 100u8, 46u8, 84u8, 83u8, 116u8, 97u8, 115u8, 104u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 78u8, 111u8, 116u8, 67u8, 68u8, 68u8, 101u8, 100u8,
0u8, 35u8, 4u8, 120u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 115u8,
116u8, 97u8, 115u8, 104u8, 32u8, 119u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 67u8, 68u8,
68u8, 101u8, 100u8, 46u8, 100u8, 72u8, 105u8, 116u8, 73u8, 110u8, 116u8, 101u8, 110u8, 100u8,
101u8, 100u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 67u8, 111u8, 117u8,
110u8, 116u8, 0u8, 36u8, 4u8, 188u8, 82u8, 117u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8,
32u8, 104u8, 105u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8,
100u8, 101u8, 100u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 152u8, 73u8, 110u8, 116u8,
101u8, 110u8, 100u8, 101u8, 100u8, 67u8, 111u8, 117u8, 110u8, 116u8, 73u8, 115u8, 69u8, 120u8,
99u8, 101u8, 101u8, 100u8, 105u8, 110u8, 103u8, 67u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8,
117u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 0u8, 37u8, 4u8, 53u8, 1u8, 87u8, 104u8, 101u8,
110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 116u8, 101u8, 110u8, 100u8, 101u8, 100u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 116u8, 111u8, 32u8, 114u8, 117u8, 110u8,
32u8, 105u8, 115u8, 32u8, 62u8, 61u8, 32u8, 50u8, 47u8, 51u8, 32u8, 111u8, 102u8, 32u8, 96u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8, 110u8,
116u8, 96u8, 46u8, 48u8, 66u8, 111u8, 110u8, 100u8, 84u8, 111u8, 111u8, 83u8, 109u8, 97u8, 108u8,
108u8, 0u8, 38u8, 4u8, 220u8, 87u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 98u8, 111u8,
110u8, 100u8, 101u8, 100u8, 32u8, 105u8, 115u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8,
104u8, 97u8, 110u8, 32u8, 96u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 66u8, 111u8,
110u8, 100u8, 96u8, 32u8, 66u8, 97u8, 100u8, 83u8, 116u8, 97u8, 116u8, 101u8, 0u8, 39u8, 4u8,
57u8, 1u8, 73u8, 110u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 32u8, 115u8, 116u8, 97u8, 116u8,
101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 32u8, 115u8,
111u8, 109u8, 101u8, 104u8, 111u8, 119u8, 32u8, 99u8, 111u8, 114u8, 114u8, 117u8, 112u8, 116u8,
101u8, 100u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 112u8, 101u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
99u8, 111u8, 110u8, 116u8, 105u8, 110u8, 117u8, 101u8, 46u8, 56u8, 84u8, 111u8, 111u8, 77u8,
97u8, 110u8, 121u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 0u8, 40u8, 4u8, 148u8, 84u8,
111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 115u8, 32u8, 115u8,
117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 46u8, 36u8, 66u8, 97u8, 100u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 0u8, 41u8, 4u8, 61u8, 1u8, 65u8, 32u8, 110u8, 111u8, 109u8, 105u8,
110u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8,
119u8, 97u8, 115u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 101u8,
100u8, 32u8, 111u8, 114u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8,
32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 46u8, 4u8, 116u8, 69u8, 114u8, 114u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 241u8, 8u8, 12u8, 40u8, 115u8, 112u8, 95u8, 115u8,
116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 28u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8,
56u8, 79u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 8u8, 32u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 114u8, 1u8, 0u8, 32u8, 79u8,
102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 1u8, 193u8, 1u8, 0u8, 8u8, 1u8, 32u8, 111u8,
102u8, 102u8, 101u8, 110u8, 100u8, 101u8, 114u8, 193u8, 1u8, 1u8, 32u8, 79u8, 102u8, 102u8,
101u8, 110u8, 100u8, 101u8, 114u8, 0u8, 1u8, 36u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8,
101u8, 114u8, 115u8, 232u8, 1u8, 52u8, 86u8, 101u8, 99u8, 60u8, 82u8, 101u8, 112u8, 111u8, 114u8,
116u8, 101u8, 114u8, 62u8, 0u8, 0u8, 245u8, 8u8, 0u8, 0u8, 4u8, 8u8, 149u8, 1u8, 40u8, 0u8,
249u8, 8u8, 0u8, 0u8, 2u8, 253u8, 8u8, 0u8, 253u8, 8u8, 0u8, 0u8, 4u8, 8u8, 0u8, 241u8, 6u8, 0u8,
1u8, 9u8, 0u8, 0u8, 4u8, 8u8, 5u8, 9u8, 40u8, 0u8, 5u8, 9u8, 12u8, 28u8, 115u8, 112u8, 95u8,
99u8, 111u8, 114u8, 101u8, 24u8, 99u8, 114u8, 121u8, 112u8, 116u8, 111u8, 36u8, 75u8, 101u8,
121u8, 84u8, 121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 0u8, 4u8, 0u8, 56u8, 1u8, 28u8, 91u8, 117u8,
56u8, 59u8, 32u8, 52u8, 93u8, 0u8, 0u8, 9u8, 9u8, 12u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 24u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 48u8, 73u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 0u8, 4u8, 96u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 115u8,
104u8, 105u8, 112u8, 32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 46u8, 92u8, 78u8, 111u8, 65u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 86u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 73u8, 100u8, 0u8, 1u8, 4u8, 156u8, 78u8, 111u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 32u8, 73u8, 68u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 52u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8,
101u8, 100u8, 75u8, 101u8, 121u8, 0u8, 2u8, 4u8, 100u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8,
101u8, 114u8, 101u8, 100u8, 32u8, 100u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8,
32u8, 107u8, 101u8, 121u8, 46u8, 24u8, 78u8, 111u8, 75u8, 101u8, 121u8, 115u8, 0u8, 3u8, 4u8,
164u8, 78u8, 111u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 36u8,
78u8, 111u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 0u8, 4u8, 4u8, 25u8, 1u8, 75u8, 101u8,
121u8, 32u8, 115u8, 101u8, 116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 108u8, 105u8, 118u8,
101u8, 44u8, 32u8, 115u8, 111u8, 32u8, 105u8, 116u8, 39u8, 115u8, 32u8, 105u8, 109u8, 112u8,
111u8, 115u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 97u8, 115u8, 115u8,
111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 32u8, 107u8, 101u8, 121u8, 115u8, 46u8, 4u8, 116u8, 69u8,
114u8, 114u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8,
13u8, 9u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8,
100u8, 112u8, 97u8, 44u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 83u8, 116u8, 97u8, 116u8,
101u8, 4u8, 4u8, 78u8, 1u8, 16u8, 1u8, 16u8, 16u8, 76u8, 105u8, 118u8, 101u8, 0u8, 0u8, 0u8,
48u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 80u8, 97u8, 117u8, 115u8, 101u8, 8u8, 1u8,
48u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 95u8, 97u8, 116u8, 16u8, 1u8,
4u8, 78u8, 0u8, 1u8, 20u8, 100u8, 101u8, 108u8, 97u8, 121u8, 16u8, 1u8, 4u8, 78u8, 0u8, 1u8, 0u8,
24u8, 80u8, 97u8, 117u8, 115u8, 101u8, 100u8, 0u8, 2u8, 0u8, 52u8, 80u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 82u8, 101u8, 115u8, 117u8, 109u8, 101u8, 8u8, 1u8, 48u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 95u8, 97u8, 116u8, 16u8, 1u8, 4u8, 78u8, 0u8, 1u8,
20u8, 100u8, 101u8, 108u8, 97u8, 121u8, 16u8, 1u8, 4u8, 78u8, 0u8, 3u8, 0u8, 0u8, 17u8, 9u8, 8u8,
56u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8,
97u8, 76u8, 83u8, 116u8, 111u8, 114u8, 101u8, 100u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8,
103u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 8u8, 4u8, 78u8, 1u8, 16u8, 20u8, 76u8, 105u8,
109u8, 105u8, 116u8, 0u8, 0u8, 16u8, 1u8, 48u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 100u8, 95u8, 97u8, 116u8, 16u8, 1u8, 4u8, 78u8, 0u8, 1u8, 20u8, 100u8, 101u8, 108u8, 97u8,
121u8, 16u8, 1u8, 4u8, 78u8, 0u8, 1u8, 64u8, 110u8, 101u8, 120u8, 116u8, 95u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8, 21u8, 9u8, 1u8, 108u8, 66u8,
111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 76u8, 105u8, 115u8, 116u8, 60u8, 76u8, 105u8, 109u8, 105u8, 116u8, 62u8, 0u8, 1u8, 24u8,
102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 17u8, 6u8, 1u8, 36u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 78u8, 62u8, 0u8, 0u8, 21u8, 9u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8,
115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 64u8, 119u8, 101u8, 97u8, 107u8, 95u8, 98u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8,
95u8, 118u8, 101u8, 99u8, 56u8, 87u8, 101u8, 97u8, 107u8, 66u8, 111u8, 117u8, 110u8, 100u8,
101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 165u8, 1u8, 4u8, 83u8, 0u8, 0u8, 4u8, 0u8,
161u8, 1u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8, 25u8, 9u8, 12u8, 56u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8,
24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8,
84u8, 0u8, 1u8, 28u8, 44u8, 80u8, 97u8, 117u8, 115u8, 101u8, 70u8, 97u8, 105u8, 108u8, 101u8,
100u8, 0u8, 0u8, 8u8, 5u8, 1u8, 65u8, 116u8, 116u8, 101u8, 109u8, 112u8, 116u8, 32u8, 116u8,
111u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 108u8, 32u8, 71u8, 82u8, 65u8, 78u8, 68u8, 80u8,
65u8, 32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8,
101u8, 116u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 108u8, 105u8, 118u8, 101u8, 164u8,
40u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8,
32u8, 111u8, 114u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 101u8,
110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 41u8, 46u8, 48u8,
82u8, 101u8, 115u8, 117u8, 109u8, 101u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 1u8, 8u8,
17u8, 1u8, 65u8, 116u8, 116u8, 101u8, 109u8, 112u8, 116u8, 32u8, 116u8, 111u8, 32u8, 115u8,
105u8, 103u8, 110u8, 97u8, 108u8, 32u8, 71u8, 82u8, 65u8, 78u8, 68u8, 80u8, 65u8, 32u8, 114u8,
101u8, 115u8, 117u8, 109u8, 101u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 115u8, 101u8, 116u8,
32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 32u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8, 160u8,
40u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 108u8, 105u8, 118u8, 101u8, 32u8, 111u8,
114u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 32u8, 114u8, 101u8, 115u8, 117u8, 109u8, 101u8, 41u8, 46u8, 52u8, 67u8,
104u8, 97u8, 110u8, 103u8, 101u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 0u8, 2u8, 4u8,
232u8, 65u8, 116u8, 116u8, 101u8, 109u8, 112u8, 116u8, 32u8, 116u8, 111u8, 32u8, 115u8, 105u8,
103u8, 110u8, 97u8, 108u8, 32u8, 71u8, 82u8, 65u8, 78u8, 68u8, 80u8, 65u8, 32u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 111u8, 110u8, 101u8, 32u8,
97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8,
103u8, 46u8, 28u8, 84u8, 111u8, 111u8, 83u8, 111u8, 111u8, 110u8, 0u8, 3u8, 4u8, 188u8, 67u8,
97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 108u8, 32u8, 102u8,
111u8, 114u8, 99u8, 101u8, 100u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 115u8,
111u8, 32u8, 115u8, 111u8, 111u8, 110u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 108u8,
97u8, 115u8, 116u8, 46u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 75u8, 101u8,
121u8, 79u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 80u8, 114u8, 111u8, 111u8,
102u8, 0u8, 4u8, 4u8, 49u8, 1u8, 65u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 119u8, 110u8,
101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 112u8,
114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 112u8, 97u8, 114u8,
116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8,
99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 32u8,
105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 96u8, 73u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 69u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8,
105u8, 111u8, 110u8, 80u8, 114u8, 111u8, 111u8, 102u8, 0u8, 5u8, 4u8, 49u8, 1u8, 65u8, 110u8,
32u8, 101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
112u8, 114u8, 111u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
32u8, 97u8, 115u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8,
101u8, 113u8, 117u8, 105u8, 118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8,
101u8, 112u8, 111u8, 114u8, 116u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 46u8, 88u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 79u8,
102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 0u8, 6u8, 4u8,
21u8, 1u8, 65u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 101u8, 113u8, 117u8, 105u8,
118u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8,
116u8, 32u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 98u8, 117u8, 116u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 112u8, 114u8, 101u8, 118u8, 105u8,
111u8, 117u8, 115u8, 108u8, 121u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8,
46u8, 4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 91u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8,
115u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8,
115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8,
47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8,
101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8,
115u8, 41u8, 10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 29u8, 9u8, 16u8, 52u8, 102u8, 114u8,
97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 64u8, 119u8, 101u8, 97u8, 107u8, 95u8, 98u8, 111u8, 117u8,
110u8, 100u8, 101u8, 100u8, 95u8, 118u8, 101u8, 99u8, 56u8, 87u8, 101u8, 97u8, 107u8, 66u8,
111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 181u8, 1u8,
4u8, 83u8, 0u8, 0u8, 4u8, 0u8, 33u8, 9u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8,
0u8, 33u8, 9u8, 0u8, 0u8, 2u8, 181u8, 1u8, 0u8, 37u8, 9u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 24u8, 116u8, 114u8, 97u8, 105u8,
116u8, 115u8, 16u8, 109u8, 105u8, 115u8, 99u8, 52u8, 87u8, 114u8, 97u8, 112u8, 112u8, 101u8,
114u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8, 4u8, 4u8, 84u8, 1u8, 41u8, 9u8, 0u8, 8u8, 0u8,
121u8, 4u8, 0u8, 0u8, 0u8, 41u8, 9u8, 1u8, 4u8, 84u8, 0u8, 0u8, 41u8, 9u8, 8u8, 64u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8,
101u8, 100u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 79u8, 112u8, 97u8, 113u8, 117u8,
101u8, 78u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 83u8, 116u8, 97u8, 116u8, 101u8, 12u8,
76u8, 80u8, 101u8, 101u8, 114u8, 73u8, 100u8, 69u8, 110u8, 99u8, 111u8, 100u8, 105u8, 110u8,
103u8, 76u8, 105u8, 109u8, 105u8, 116u8, 0u8, 88u8, 77u8, 117u8, 108u8, 116u8, 105u8, 65u8,
100u8, 100u8, 114u8, 69u8, 110u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 76u8, 105u8, 109u8,
105u8, 116u8, 0u8, 56u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 101u8, 115u8, 76u8,
105u8, 109u8, 105u8, 116u8, 0u8, 0u8, 8u8, 1u8, 28u8, 112u8, 101u8, 101u8, 114u8, 95u8, 105u8,
100u8, 45u8, 9u8, 1u8, 156u8, 87u8, 101u8, 97u8, 107u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8,
100u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 44u8, 32u8, 80u8, 101u8, 101u8, 114u8, 73u8, 100u8,
69u8, 110u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 76u8, 105u8, 109u8, 105u8, 116u8, 62u8,
0u8, 1u8, 72u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 95u8, 97u8, 100u8, 100u8,
114u8, 101u8, 115u8, 115u8, 101u8, 115u8, 49u8, 9u8, 1u8, 45u8, 1u8, 87u8, 101u8, 97u8, 107u8,
66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 60u8, 87u8, 101u8, 97u8,
107u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
44u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 65u8, 100u8, 100u8, 114u8, 69u8, 110u8, 99u8,
111u8, 100u8, 105u8, 110u8, 103u8, 76u8, 105u8, 109u8, 105u8, 116u8, 62u8, 44u8, 32u8, 65u8,
100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 101u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 10u8,
62u8, 0u8, 0u8, 45u8, 9u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8,
112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 64u8,
119u8, 101u8, 97u8, 107u8, 95u8, 98u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 95u8, 118u8,
101u8, 99u8, 56u8, 87u8, 101u8, 97u8, 107u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8,
86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 8u8, 4u8, 83u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 24u8,
86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8, 49u8, 9u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 64u8, 119u8, 101u8, 97u8, 107u8, 95u8, 98u8, 111u8, 117u8, 110u8, 100u8,
101u8, 100u8, 95u8, 118u8, 101u8, 99u8, 56u8, 87u8, 101u8, 97u8, 107u8, 66u8, 111u8, 117u8,
110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 45u8, 9u8, 4u8, 83u8, 0u8,
0u8, 4u8, 0u8, 53u8, 9u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8, 53u8, 9u8,
0u8, 0u8, 2u8, 45u8, 9u8, 0u8, 57u8, 9u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 105u8, 109u8, 95u8, 111u8, 110u8, 108u8, 105u8, 110u8, 101u8, 24u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 40u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 75u8, 101u8, 121u8, 0u8, 0u8, 4u8, 96u8, 78u8,
111u8, 110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 101u8, 110u8, 116u8, 32u8, 112u8, 117u8,
98u8, 108u8, 105u8, 99u8, 32u8, 107u8, 101u8, 121u8, 46u8, 76u8, 68u8, 117u8, 112u8, 108u8,
105u8, 99u8, 97u8, 116u8, 101u8, 100u8, 72u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8,
116u8, 0u8, 1u8, 4u8, 84u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 100u8,
32u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 46u8, 4u8, 173u8, 1u8, 10u8,
9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 91u8, 100u8, 105u8, 115u8, 112u8,
97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 93u8, 40u8, 104u8,
116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8, 115u8, 46u8, 115u8, 117u8,
98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8, 47u8, 118u8, 51u8, 47u8,
114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8,
45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8, 115u8, 41u8, 10u8, 9u8, 9u8,
9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 61u8, 9u8, 16u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8,
115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 44u8, 98u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 95u8, 118u8, 101u8, 99u8, 40u8,
66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8, 101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 36u8,
4u8, 83u8, 0u8, 0u8, 4u8, 0u8, 109u8, 4u8, 1u8, 24u8, 86u8, 101u8, 99u8, 60u8, 84u8, 62u8, 0u8,
0u8, 65u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 117u8, 100u8,
111u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 4u8, 44u8, 82u8, 101u8,
113u8, 117u8, 105u8, 114u8, 101u8, 83u8, 117u8, 100u8, 111u8, 0u8, 0u8, 4u8, 124u8, 83u8, 101u8,
110u8, 100u8, 101u8, 114u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 83u8, 117u8, 100u8, 111u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 4u8, 100u8, 69u8, 114u8, 114u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 101u8, 32u8, 83u8, 117u8, 100u8, 111u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8,
69u8, 9u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8,
116u8, 72u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 85u8, 1u8, 32u8, 0u8, 8u8, 1u8, 20u8, 111u8,
119u8, 110u8, 101u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 73u8, 100u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 240u8, 1u8, 36u8,
79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 85u8, 62u8, 0u8, 0u8, 73u8, 9u8, 8u8, 48u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 52u8, 83u8, 101u8,
99u8, 117u8, 114u8, 105u8, 116u8, 121u8, 84u8, 111u8, 107u8, 101u8, 110u8, 0u8, 0u8, 16u8, 1u8,
48u8, 116u8, 111u8, 116u8, 97u8, 108u8, 95u8, 115u8, 117u8, 112u8, 112u8, 108u8, 121u8, 24u8,
1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 36u8, 111u8, 119u8, 110u8,
101u8, 114u8, 95u8, 100u8, 105u8, 100u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 36u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8,
108u8, 101u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 40u8, 97u8, 115u8,
115u8, 101u8, 116u8, 95u8, 116u8, 121u8, 112u8, 101u8, 225u8, 1u8, 1u8, 36u8, 65u8, 115u8, 115u8,
101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 0u8, 0u8, 77u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 120u8,
0u8, 81u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 221u8, 1u8, 0u8, 85u8, 9u8, 0u8, 0u8, 4u8, 8u8, 120u8,
156u8, 0u8, 89u8, 9u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8,
115u8, 101u8, 116u8, 88u8, 65u8, 115u8, 115u8, 101u8, 116u8, 79u8, 119u8, 110u8, 101u8, 114u8,
115u8, 104u8, 105u8, 112u8, 82u8, 101u8, 108u8, 97u8, 116u8, 105u8, 111u8, 110u8, 0u8, 1u8, 12u8,
32u8, 78u8, 111u8, 116u8, 79u8, 119u8, 110u8, 101u8, 100u8, 0u8, 0u8, 0u8, 44u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 79u8, 119u8, 110u8, 101u8, 100u8, 0u8, 1u8, 0u8, 40u8, 65u8, 115u8,
115u8, 101u8, 116u8, 79u8, 119u8, 110u8, 101u8, 100u8, 0u8, 2u8, 0u8, 0u8, 93u8, 9u8, 0u8, 0u8,
4u8, 8u8, 156u8, 253u8, 1u8, 0u8, 97u8, 9u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 100u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8,
84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 0u8, 0u8, 8u8, 1u8, 36u8, 101u8, 116u8, 104u8, 95u8, 111u8, 119u8,
110u8, 101u8, 114u8, 45u8, 2u8, 1u8, 60u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8,
65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 0u8, 1u8, 40u8, 105u8, 115u8, 95u8, 99u8, 114u8,
101u8, 97u8, 116u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 0u8,
101u8, 9u8, 0u8, 0u8, 4u8, 8u8, 120u8, 120u8, 0u8, 105u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 101u8,
7u8, 0u8, 109u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 65u8, 2u8, 0u8, 113u8, 9u8, 0u8, 0u8, 4u8, 8u8,
156u8, 69u8, 2u8, 0u8, 117u8, 9u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
97u8, 115u8, 115u8, 101u8, 116u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8,
4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 121u8, 9u8, 8u8, 48u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8,
4u8, 4u8, 84u8, 0u8, 1u8, 132u8, 48u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 0u8, 0u8, 4u8, 108u8, 84u8, 104u8, 101u8, 32u8, 117u8, 115u8, 101u8,
114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 101u8, 100u8, 46u8, 76u8, 65u8, 115u8, 115u8, 101u8, 116u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 67u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 0u8, 1u8, 4u8,
140u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8,
114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8, 52u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 0u8, 2u8, 4u8, 144u8, 84u8, 104u8, 101u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8,
105u8, 115u8, 32u8, 111u8, 118u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8,
109u8, 105u8, 116u8, 46u8, 56u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 78u8, 111u8, 116u8,
65u8, 115u8, 99u8, 105u8, 105u8, 0u8, 3u8, 4u8, 156u8, 84u8, 104u8, 101u8, 32u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8, 110u8, 45u8, 97u8,
115u8, 99u8, 105u8, 105u8, 45u8, 101u8, 110u8, 99u8, 111u8, 100u8, 101u8, 100u8, 32u8, 112u8,
97u8, 114u8, 116u8, 115u8, 46u8, 92u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8,
100u8, 0u8, 4u8, 4u8, 196u8, 84u8, 104u8, 101u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 114u8, 101u8,
103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 111u8,
109u8, 101u8, 111u8, 110u8, 101u8, 32u8, 101u8, 108u8, 115u8, 101u8, 46u8, 84u8, 84u8, 111u8,
116u8, 97u8, 108u8, 83u8, 117u8, 112u8, 112u8, 108u8, 121u8, 65u8, 98u8, 111u8, 118u8, 101u8,
76u8, 105u8, 109u8, 105u8, 116u8, 0u8, 5u8, 4u8, 144u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8,
116u8, 97u8, 108u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 121u8, 32u8, 105u8, 115u8, 32u8,
97u8, 98u8, 111u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 46u8, 44u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 65u8, 115u8, 115u8, 101u8, 116u8, 0u8,
6u8, 4u8, 56u8, 78u8, 111u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 46u8, 52u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 70u8, 114u8, 111u8, 122u8,
101u8, 110u8, 0u8, 7u8, 4u8, 112u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 102u8, 114u8,
111u8, 122u8, 101u8, 110u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8, 110u8, 79u8, 119u8, 110u8,
101u8, 114u8, 0u8, 8u8, 4u8, 152u8, 78u8, 111u8, 116u8, 32u8, 97u8, 110u8, 32u8, 111u8, 119u8,
110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 111u8, 110u8, 32u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8,
46u8, 60u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 0u8, 9u8, 4u8, 168u8, 65u8, 110u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 32u8, 119u8, 104u8, 105u8, 108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8,
108u8, 97u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 46u8, 76u8, 84u8, 111u8, 116u8, 97u8, 108u8, 83u8, 117u8, 112u8, 112u8,
108u8, 121u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 10u8, 4u8, 188u8, 65u8,
110u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 32u8, 119u8, 104u8, 105u8,
108u8, 101u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8, 108u8, 97u8, 116u8, 105u8, 110u8, 103u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 117u8, 112u8,
112u8, 108u8, 121u8, 46u8, 72u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 71u8, 114u8,
97u8, 110u8, 117u8, 108u8, 97u8, 114u8, 105u8, 116u8, 121u8, 0u8, 11u8, 4u8, 92u8, 65u8, 110u8,
32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 103u8, 114u8, 97u8, 110u8, 117u8,
108u8, 97u8, 114u8, 105u8, 116u8, 121u8, 46u8, 36u8, 78u8, 111u8, 116u8, 70u8, 114u8, 111u8,
122u8, 101u8, 110u8, 0u8, 12u8, 4u8, 100u8, 84u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 102u8, 114u8, 111u8, 122u8,
101u8, 110u8, 46u8, 60u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 0u8, 13u8, 4u8, 132u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
99u8, 104u8, 101u8, 99u8, 107u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 46u8, 76u8, 73u8,
110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 0u8, 14u8, 4u8, 148u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 110u8,
100u8, 101u8, 114u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8,
46u8, 84u8, 65u8, 115u8, 115u8, 101u8, 116u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8,
68u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8, 0u8, 15u8, 4u8, 124u8, 84u8, 104u8,
101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 100u8, 105u8, 118u8, 105u8, 115u8, 105u8, 98u8, 108u8, 101u8,
46u8, 96u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 69u8, 116u8, 104u8, 101u8, 114u8,
101u8, 117u8, 109u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 16u8, 4u8,
148u8, 65u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 69u8, 116u8,
104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 32u8, 96u8, 69u8, 99u8, 100u8, 115u8, 97u8, 83u8,
105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 96u8, 46u8, 76u8, 78u8, 111u8, 83u8,
117u8, 99u8, 104u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 0u8, 17u8, 4u8, 152u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 32u8, 99u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 32u8, 111u8, 110u8, 101u8, 46u8,
100u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 18u8, 4u8,
140u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
111u8, 102u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8,
101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 46u8, 80u8, 83u8, 101u8, 110u8, 100u8, 101u8,
114u8, 83u8, 97u8, 109u8, 101u8, 65u8, 115u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8,
114u8, 0u8, 19u8, 4u8, 132u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8,
116u8, 111u8, 32u8, 115u8, 101u8, 108u8, 102u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8,
116u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 36u8, 78u8, 111u8, 83u8, 117u8,
99u8, 104u8, 68u8, 111u8, 99u8, 0u8, 20u8, 4u8, 136u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 100u8,
111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8,
112u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 79u8, 102u8, 65u8, 115u8,
115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 0u8, 21u8, 4u8, 188u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8,
110u8, 97u8, 109u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 46u8, 132u8, 70u8, 117u8, 110u8, 100u8,
105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8,
120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 0u8, 22u8, 4u8, 236u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8,
110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 32u8, 110u8, 97u8,
109u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8,
99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 46u8, 88u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8,
101u8, 114u8, 0u8, 23u8, 4u8, 140u8, 83u8, 111u8, 109u8, 101u8, 32u8, 96u8, 65u8, 115u8, 115u8,
101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8, 96u8, 32u8,
119u8, 97u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 132u8, 73u8,
110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8,
101u8, 115u8, 115u8, 67u8, 108u8, 97u8, 105u8, 109u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8,
111u8, 119u8, 101u8, 100u8, 0u8, 24u8, 4u8, 232u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8,
111u8, 114u8, 32u8, 85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 32u8,
99u8, 108u8, 97u8, 105u8, 109u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 96u8, 73u8, 110u8, 118u8,
97u8, 108u8, 105u8, 100u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8, 101u8,
116u8, 84u8, 121u8, 112u8, 101u8, 73u8, 100u8, 0u8, 25u8, 4u8, 112u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 96u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 65u8, 115u8, 115u8,
101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 73u8, 100u8, 96u8, 46u8, 136u8, 65u8, 115u8, 115u8,
101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 78u8, 97u8, 109u8, 101u8, 77u8,
97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 0u8, 26u8, 4u8, 5u8, 1u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8,
108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 104u8, 97u8, 115u8,
32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8,
46u8, 140u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8,
104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 27u8, 4u8, 244u8, 77u8, 97u8,
120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 109u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 46u8, 148u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 84u8, 121u8, 112u8, 101u8, 68u8, 101u8, 102u8, 77u8, 97u8, 120u8, 76u8, 101u8,
110u8, 103u8, 116u8, 104u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 28u8, 4u8,
29u8, 1u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8,
116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 32u8, 109u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 116u8, 121u8, 112u8,
101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 105u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8,
97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 46u8, 100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 75u8, 101u8, 121u8, 73u8, 115u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8,
103u8, 0u8, 29u8, 4u8, 120u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 115u8, 32u8, 109u8, 105u8,
115u8, 115u8, 105u8, 110u8, 103u8, 46u8, 104u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 73u8, 115u8, 76u8, 111u8,
99u8, 107u8, 101u8, 100u8, 0u8, 30u8, 4u8, 124u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8,
105u8, 115u8, 32u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 46u8, 136u8, 65u8, 115u8, 115u8,
101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8,
75u8, 101u8, 121u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8,
116u8, 115u8, 0u8, 31u8, 4u8, 204u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 76u8, 111u8, 99u8, 97u8, 108u8, 32u8, 116u8, 121u8, 112u8,
101u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8,
116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 140u8,
65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 71u8,
108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 0u8, 32u8, 4u8, 168u8, 65u8, 115u8, 115u8, 101u8,
116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 71u8, 108u8, 111u8, 98u8,
97u8, 108u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8, 0u8, 125u8, 9u8, 0u8, 0u8, 4u8, 8u8,
109u8, 2u8, 120u8, 0u8, 129u8, 9u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 115u8, 48u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8,
111u8, 110u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8,
8u8, 117u8, 56u8, 0u8, 0u8, 133u8, 9u8, 12u8, 96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 48u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 60u8,
48u8, 67u8, 65u8, 78u8, 111u8, 116u8, 66u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 0u8, 0u8,
4u8, 212u8, 65u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 97u8, 115u8, 32u8,
109u8, 97u8, 100u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 110u8, 111u8, 110u8,
45u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 32u8, 67u8, 65u8, 46u8, 52u8, 65u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 0u8, 1u8, 4u8, 168u8,
65u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8,
32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 46u8, 76u8,
69u8, 120u8, 112u8, 105u8, 114u8, 121u8, 66u8, 101u8, 102u8, 111u8, 114u8, 101u8, 80u8, 97u8,
121u8, 109u8, 101u8, 110u8, 116u8, 0u8, 2u8, 8u8, 41u8, 1u8, 65u8, 32u8, 100u8, 105u8, 115u8,
116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8, 32u8, 100u8,
97u8, 116u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8,
108u8, 121u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 105u8, 116u8, 115u8, 32u8,
112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 33u8, 1u8,
73u8, 110u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 119u8, 111u8, 114u8, 100u8, 115u8,
44u8, 32u8, 101u8, 118u8, 101u8, 114u8, 121u8, 116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 116u8,
111u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 32u8, 119u8,
111u8, 117u8, 108u8, 100u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8,
108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 102u8, 111u8, 114u8, 102u8, 101u8, 105u8, 116u8, 101u8,
100u8, 46u8, 68u8, 72u8, 111u8, 108u8, 100u8, 101u8, 114u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 80u8, 97u8, 105u8, 100u8, 0u8, 3u8, 4u8, 212u8, 84u8, 104u8, 101u8, 32u8, 116u8,
111u8, 107u8, 101u8, 110u8, 32u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8,
32u8, 112u8, 97u8, 105u8, 100u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 98u8, 101u8,
110u8, 101u8, 102u8, 105u8, 116u8, 46u8, 72u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 68u8,
105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 0u8, 4u8, 4u8, 196u8,
65u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8,
39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 46u8, 88u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 67u8,
108u8, 97u8, 105u8, 109u8, 66u8, 101u8, 102u8, 111u8, 114u8, 101u8, 83u8, 116u8, 97u8, 114u8,
116u8, 0u8, 5u8, 4u8, 97u8, 1u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 32u8, 97u8, 108u8, 108u8, 111u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8,
99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 105u8, 115u8, 32u8, 98u8, 101u8,
102u8, 111u8, 114u8, 101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 45u8, 111u8, 102u8, 45u8,
112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 46u8, 88u8, 67u8, 97u8, 110u8, 110u8, 111u8,
116u8, 67u8, 108u8, 97u8, 105u8, 109u8, 65u8, 102u8, 116u8, 101u8, 114u8, 69u8, 120u8, 112u8,
105u8, 114u8, 121u8, 0u8, 6u8, 4u8, 105u8, 1u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8,
117u8, 116u8, 105u8, 111u8, 110u8, 39u8, 115u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 121u8,
32u8, 104u8, 97u8, 115u8, 32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 46u8, 32u8, 68u8, 73u8,
68u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8,
97u8, 110u8, 121u8, 109u8, 111u8, 114u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 104u8, 97u8,
115u8, 32u8, 102u8, 111u8, 114u8, 102u8, 101u8, 105u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 98u8, 101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 46u8, 128u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 80u8, 101u8, 114u8, 83u8, 104u8, 97u8, 114u8, 101u8, 80u8,
114u8, 111u8, 100u8, 117u8, 99u8, 116u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8,
101u8, 100u8, 0u8, 7u8, 4u8, 41u8, 1u8, 77u8, 117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 105u8,
99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 32u8, 115u8, 104u8, 97u8, 114u8, 101u8, 32u8, 112u8,
97u8, 121u8, 111u8, 117u8, 116u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 88u8, 78u8, 111u8, 116u8,
68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 67u8, 114u8,
101u8, 97u8, 116u8, 111u8, 114u8, 0u8, 8u8, 4u8, 192u8, 68u8, 73u8, 68u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 101u8, 32u8, 119u8,
104u8, 111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8,
64u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 82u8, 101u8, 99u8, 108u8, 97u8, 105u8,
109u8, 101u8, 100u8, 0u8, 9u8, 4u8, 212u8, 68u8, 73u8, 68u8, 32u8, 119u8, 104u8, 111u8, 32u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 105u8,
115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 100u8, 105u8, 100u8, 32u8, 114u8, 101u8, 99u8, 108u8, 97u8,
105u8, 109u8, 46u8, 40u8, 78u8, 111u8, 116u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8,
0u8, 10u8, 4u8, 240u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8,
110u8, 32u8, 104u8, 97u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 112u8, 105u8,
114u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 44u8, 32u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 114u8, 101u8, 39u8, 115u8, 32u8, 110u8, 111u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8,
121u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 76u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 0u8,
11u8, 4u8, 1u8, 1u8, 65u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 99u8,
116u8, 105u8, 118u8, 97u8, 116u8, 101u8, 100u8, 44u8, 32u8, 97u8, 115u8, 32u8, 96u8, 112u8, 97u8,
121u8, 109u8, 101u8, 110u8, 116u8, 95u8, 97u8, 116u8, 32u8, 60u8, 61u8, 32u8, 110u8, 111u8,
119u8, 96u8, 32u8, 104u8, 111u8, 108u8, 100u8, 115u8, 46u8, 108u8, 73u8, 110u8, 115u8, 117u8,
102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 82u8, 101u8, 109u8, 97u8, 105u8, 110u8,
105u8, 110u8, 103u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 0u8, 12u8, 4u8, 45u8, 1u8, 65u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8,
104u8, 97u8, 115u8, 32u8, 105u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8,
110u8, 116u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 99u8, 121u8, 32u8, 116u8, 111u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8,
117u8, 116u8, 101u8, 46u8, 96u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8,
105u8, 111u8, 110u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 73u8, 115u8, 90u8, 101u8, 114u8,
111u8, 0u8, 13u8, 4u8, 148u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 96u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 99u8, 97u8, 110u8,
110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 104u8, 68u8,
105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 80u8, 101u8, 114u8,
83u8, 104u8, 97u8, 114u8, 101u8, 73u8, 115u8, 90u8, 101u8, 114u8, 111u8, 0u8, 14u8, 4u8, 160u8,
68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 96u8,
112u8, 101u8, 114u8, 95u8, 115u8, 104u8, 97u8, 114u8, 101u8, 96u8, 32u8, 99u8, 97u8, 110u8,
110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 122u8, 101u8, 114u8, 111u8, 46u8, 0u8, 137u8, 9u8,
0u8, 0u8, 4u8, 8u8, 156u8, 133u8, 2u8, 0u8, 141u8, 9u8, 0u8, 0u8, 4u8, 8u8, 137u8, 9u8, 120u8,
0u8, 145u8, 9u8, 0u8, 0u8, 2u8, 133u8, 2u8, 0u8, 149u8, 9u8, 0u8, 0u8, 2u8, 137u8, 2u8, 0u8,
153u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 153u8, 2u8, 0u8, 157u8, 9u8, 12u8, 48u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 40u8, 99u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 161u8, 9u8, 12u8, 48u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 97u8, 115u8, 115u8, 101u8, 116u8, 40u8, 99u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8,
4u8, 4u8, 84u8, 0u8, 1u8, 20u8, 56u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 0u8, 4u8, 204u8, 65u8, 32u8, 99u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8,
115u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 46u8, 80u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 78u8, 111u8,
116u8, 82u8, 101u8, 109u8, 111u8, 118u8, 97u8, 98u8, 108u8, 101u8, 0u8, 1u8, 4u8, 29u8, 1u8,
65u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 97u8, 98u8, 108u8, 101u8, 32u8, 97u8, 115u8, 32u8, 96u8,
114u8, 101u8, 102u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 40u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 95u8, 105u8, 100u8, 41u8, 32u8, 62u8, 32u8, 48u8, 96u8, 46u8, 116u8,
70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 67u8, 111u8, 109u8, 112u8, 117u8, 116u8,
101u8, 78u8, 101u8, 120u8, 116u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8,
116u8, 0u8, 2u8, 8u8, 152u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
120u8, 116u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 46u8,
208u8, 84u8, 104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8,
97u8, 110u8, 121u8, 32u8, 117u8, 112u8, 99u8, 111u8, 109u8, 105u8, 110u8, 103u8, 32u8, 99u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 46u8, 96u8, 83u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 68u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8,
84u8, 111u8, 111u8, 83u8, 104u8, 111u8, 114u8, 116u8, 0u8, 3u8, 4u8, 188u8, 84u8, 104u8, 101u8,
32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 112u8, 101u8, 114u8, 105u8,
111u8, 100u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8, 115u8, 104u8, 111u8, 114u8,
116u8, 46u8, 76u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 84u8, 111u8,
111u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 0u8, 4u8, 8u8, 208u8, 84u8, 104u8, 101u8,
32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 115u8, 32u8, 116u8, 97u8, 107u8, 101u8, 110u8, 32u8, 116u8, 111u8, 103u8, 101u8,
116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 111u8, 111u8, 32u8, 99u8,
111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 46u8, 248u8, 70u8, 111u8, 114u8, 32u8, 101u8, 120u8,
97u8, 109u8, 112u8, 108u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 97u8, 114u8,
101u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 44u8, 32u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 111u8, 99u8, 99u8, 117u8, 114u8, 115u8, 32u8, 116u8,
111u8, 111u8, 32u8, 102u8, 114u8, 101u8, 113u8, 117u8, 101u8, 110u8, 116u8, 108u8, 121u8, 46u8,
0u8, 165u8, 9u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8,
114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 72u8, 99u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 95u8, 109u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8,
60u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 0u8, 0u8, 8u8, 1u8, 24u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8, 21u8, 1u8, 1u8,
16u8, 98u8, 111u8, 111u8, 108u8, 0u8, 1u8, 48u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8,
109u8, 101u8, 110u8, 116u8, 115u8, 205u8, 2u8, 1u8, 104u8, 86u8, 101u8, 99u8, 60u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 169u8, 9u8, 8u8, 100u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8,
95u8, 109u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8,
111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 173u8, 9u8, 8u8, 100u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8,
110u8, 99u8, 101u8, 95u8, 109u8, 97u8, 110u8, 97u8, 103u8, 101u8, 114u8, 20u8, 69u8, 114u8,
114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 48u8, 85u8, 110u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 0u8, 0u8, 4u8, 92u8, 85u8, 115u8, 101u8, 114u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 46u8, 44u8, 68u8, 105u8, 100u8, 78u8, 111u8, 116u8, 69u8, 120u8,
105u8, 115u8, 116u8, 0u8, 1u8, 4u8, 52u8, 68u8, 105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 120u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 67u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8,
114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 73u8, 100u8, 0u8, 2u8, 4u8, 156u8, 67u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8,
39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 132u8, 73u8, 110u8, 99u8, 111u8, 114u8,
114u8, 101u8, 99u8, 116u8, 79u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 79u8,
110u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8,
0u8, 3u8, 4u8, 156u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 101u8, 120u8, 105u8, 115u8,
116u8, 32u8, 98u8, 117u8, 116u8, 32u8, 116u8, 114u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8,
111u8, 32u8, 97u8, 100u8, 100u8, 32u8, 105u8, 116u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8,
124u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 67u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8,
101u8, 110u8, 116u8, 115u8, 0u8, 4u8, 4u8, 176u8, 84u8, 104u8, 101u8, 114u8, 101u8, 32u8, 97u8,
114u8, 101u8, 32u8, 100u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 32u8, 99u8,
111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8,
105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 115u8, 46u8, 124u8, 67u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8,
101u8, 110u8, 116u8, 84u8, 111u8, 111u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 0u8,
5u8, 4u8, 17u8, 1u8, 84u8, 104u8, 101u8, 32u8, 119u8, 111u8, 114u8, 115u8, 116u8, 32u8, 99u8,
97u8, 115u8, 101u8, 32u8, 115u8, 99u8, 101u8, 110u8, 97u8, 114u8, 105u8, 111u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8,
32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8,
120u8, 0u8, 177u8, 9u8, 0u8, 0u8, 4u8, 8u8, 156u8, 113u8, 2u8, 0u8, 181u8, 9u8, 8u8, 96u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8,
101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 28u8, 86u8, 101u8, 114u8, 115u8,
105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 185u8, 9u8, 8u8,
96u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8,
97u8, 116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 20u8, 69u8, 114u8,
114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 48u8, 72u8, 65u8, 117u8, 116u8, 104u8, 78u8,
111u8, 116u8, 67u8, 65u8, 65u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 0u8, 0u8,
4u8, 5u8, 1u8, 84u8, 104u8, 101u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 116u8, 111u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 65u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8,
111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 68u8, 73u8, 68u8, 46u8, 56u8, 68u8, 101u8, 116u8, 97u8,
105u8, 108u8, 115u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 0u8, 1u8, 4u8, 216u8, 84u8,
104u8, 101u8, 32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 111u8,
102u8, 32u8, 97u8, 32u8, 67u8, 65u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8,
101u8, 100u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 60u8, 68u8, 117u8, 112u8,
108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 68u8, 105u8, 100u8, 84u8, 97u8, 120u8, 0u8, 2u8, 8u8,
33u8, 1u8, 65u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 111u8, 118u8, 101u8, 114u8, 114u8, 105u8, 100u8, 101u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 68u8, 73u8,
68u8, 32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8,
100u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 111u8, 110u8,
99u8, 101u8, 46u8, 5u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8,
114u8, 101u8, 102u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 109u8, 97u8, 107u8,
101u8, 32u8, 97u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 44u8, 32u8, 97u8, 110u8, 100u8,
32u8, 104u8, 101u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 119u8,
97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 46u8, 60u8, 84u8, 111u8,
111u8, 77u8, 97u8, 110u8, 121u8, 68u8, 105u8, 100u8, 84u8, 97u8, 120u8, 101u8, 115u8, 0u8, 3u8,
4u8, 200u8, 84u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 119u8, 105u8, 116u8,
104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8, 32u8, 111u8,
118u8, 101u8, 114u8, 114u8, 105u8, 100u8, 101u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8,
115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 46u8, 64u8, 84u8, 111u8, 111u8,
77u8, 97u8, 110u8, 121u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 115u8, 0u8, 4u8,
4u8, 228u8, 84u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8,
96u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8,
101u8, 100u8, 46u8, 72u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 104u8, 101u8, 99u8, 107u8,
112u8, 111u8, 105u8, 110u8, 116u8, 73u8, 100u8, 0u8, 5u8, 4u8, 5u8, 1u8, 79u8, 110u8, 32u8, 67u8,
65u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 97u8, 32u8, 99u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 73u8, 68u8, 32u8, 119u8,
97u8, 115u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8,
105u8, 115u8, 116u8, 46u8, 32u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 67u8, 65u8, 0u8, 6u8,
4u8, 164u8, 65u8, 32u8, 67u8, 65u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8,
32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 67u8, 65u8, 73u8, 100u8, 96u8, 32u8, 100u8,
105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 48u8,
78u8, 111u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8, 116u8, 101u8, 0u8, 7u8, 4u8,
136u8, 84u8, 104u8, 101u8, 32u8, 67u8, 65u8, 32u8, 100u8, 105u8, 100u8, 32u8, 110u8, 111u8,
116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 80u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8,
97u8, 116u8, 101u8, 65u8, 102u8, 116u8, 101u8, 114u8, 83u8, 116u8, 97u8, 114u8, 116u8, 0u8, 8u8,
12u8, 220u8, 65u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8,
32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 116u8, 114u8, 105u8,
99u8, 116u8, 108u8, 121u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 34u8, 115u8, 116u8, 97u8, 114u8, 116u8, 34u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8,
140u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 34u8, 115u8, 116u8, 97u8, 114u8, 116u8, 34u8,
32u8, 105u8, 115u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 32u8, 100u8, 101u8,
112u8, 101u8, 110u8, 100u8, 101u8, 110u8, 116u8, 46u8, 129u8, 1u8, 70u8, 111u8, 114u8, 32u8,
101u8, 120u8, 97u8, 109u8, 112u8, 108u8, 101u8, 44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 111u8,
117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8,
114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 44u8,
32u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 45u8,
111u8, 102u8, 45u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 110u8, 32u8,
99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8,
98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 92u8, 68u8, 101u8, 99u8, 108u8, 68u8, 97u8, 116u8,
101u8, 65u8, 102u8, 116u8, 101u8, 114u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 68u8, 97u8,
116u8, 101u8, 0u8, 9u8, 4u8, 236u8, 65u8, 32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 100u8, 101u8,
99u8, 108u8, 97u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 100u8, 97u8, 116u8, 101u8,
32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 108u8, 121u8, 32u8,
97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 105u8, 116u8, 115u8, 32u8, 114u8, 101u8, 99u8, 111u8,
114u8, 100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 46u8, 64u8, 68u8, 101u8, 99u8, 108u8, 68u8, 97u8,
116u8, 101u8, 73u8, 110u8, 70u8, 117u8, 116u8, 117u8, 114u8, 101u8, 0u8, 10u8, 4u8, 180u8, 65u8,
32u8, 67u8, 65u8, 39u8, 115u8, 32u8, 100u8, 101u8, 99u8, 108u8, 97u8, 114u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 100u8, 97u8, 116u8, 101u8, 32u8, 111u8, 99u8, 99u8, 117u8, 114u8, 115u8,
32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 117u8, 116u8, 117u8, 114u8, 101u8,
46u8, 60u8, 78u8, 111u8, 116u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 101u8, 100u8, 66u8,
121u8, 67u8, 65u8, 0u8, 11u8, 4u8, 108u8, 67u8, 65u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 68u8, 73u8, 68u8, 46u8, 0u8, 189u8, 9u8, 0u8, 0u8, 2u8, 24u8, 0u8, 193u8, 9u8, 12u8, 96u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8,
116u8, 101u8, 95u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 24u8, 98u8, 97u8, 108u8,
108u8, 111u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 56u8,
44u8, 67u8, 65u8, 78u8, 111u8, 116u8, 78u8, 111u8, 116u8, 105u8, 99u8, 101u8, 0u8, 0u8, 4u8,
224u8, 65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8,
108u8, 108u8, 111u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 109u8, 97u8, 100u8, 101u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 110u8, 111u8, 110u8, 32u8, 96u8, 73u8, 115u8, 115u8,
117u8, 101u8, 114u8, 78u8, 111u8, 116u8, 105u8, 99u8, 101u8, 96u8, 32u8, 67u8, 65u8, 46u8, 52u8,
65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 120u8, 105u8, 115u8, 116u8, 115u8, 0u8, 1u8,
4u8, 184u8, 65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8,
97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 67u8, 65u8, 46u8, 48u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 0u8, 2u8, 4u8, 180u8, 65u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8,
97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 100u8, 111u8, 101u8,
115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 67u8, 65u8, 46u8, 52u8, 83u8, 116u8, 97u8, 114u8, 116u8,
65u8, 102u8, 116u8, 101u8, 114u8, 69u8, 110u8, 100u8, 0u8, 3u8, 4u8, 17u8, 1u8, 65u8, 32u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8,
116u8, 39u8, 115u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8,
32u8, 119u8, 97u8, 115u8, 32u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 108u8, 121u8, 32u8,
97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8,
111u8, 116u8, 39u8, 115u8, 32u8, 101u8, 110u8, 100u8, 46u8, 44u8, 78u8, 111u8, 119u8, 65u8,
102u8, 116u8, 101u8, 114u8, 69u8, 110u8, 100u8, 0u8, 4u8, 4u8, 13u8, 1u8, 65u8, 32u8, 99u8,
111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8,
116u8, 39u8, 115u8, 32u8, 101u8, 110u8, 100u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 119u8,
97u8, 115u8, 32u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 108u8, 121u8, 32u8, 98u8, 101u8,
102u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 92u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 79u8, 102u8, 67u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 79u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 0u8, 5u8, 4u8, 57u8, 1u8, 73u8, 102u8, 32u8, 115u8, 111u8, 109u8,
101u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8,
99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8,
111u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 99u8, 104u8,
111u8, 105u8, 99u8, 101u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 119u8, 111u8, 117u8,
108u8, 100u8, 32u8, 102u8, 105u8, 116u8, 32u8, 105u8, 110u8, 32u8, 96u8, 117u8, 49u8, 54u8, 96u8,
46u8, 80u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 0u8, 6u8, 4u8, 1u8, 1u8, 86u8, 111u8,
116u8, 105u8, 110u8, 103u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 46u8, 32u8, 65u8, 109u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 32u8, 97u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 32u8, 105u8, 115u8, 32u8,
110u8, 111u8, 32u8, 108u8, 111u8, 110u8, 103u8, 101u8, 114u8, 32u8, 112u8, 111u8, 115u8, 115u8,
105u8, 98u8, 108u8, 101u8, 46u8, 64u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 78u8, 111u8,
116u8, 83u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 0u8, 7u8, 4u8, 104u8, 86u8, 111u8, 116u8,
105u8, 110u8, 103u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 115u8, 116u8, 97u8,
114u8, 116u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 46u8, 72u8, 86u8, 111u8, 116u8, 105u8,
110u8, 103u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 69u8, 110u8, 100u8, 101u8, 100u8,
0u8, 8u8, 4u8, 84u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 101u8, 110u8, 100u8, 101u8,
100u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 46u8, 56u8, 87u8, 114u8, 111u8,
110u8, 103u8, 86u8, 111u8, 116u8, 101u8, 67u8, 111u8, 117u8, 110u8, 116u8, 0u8, 9u8, 4u8, 21u8,
1u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 108u8, 105u8, 115u8, 116u8,
32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8, 100u8, 111u8,
101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 46u8, 68u8, 73u8,
110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 86u8, 111u8, 116u8,
101u8, 115u8, 0u8, 10u8, 4u8, 61u8, 1u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8,
111u8, 119u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8,
32u8, 68u8, 73u8, 68u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8,
110u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 97u8, 118u8, 97u8, 105u8,
108u8, 97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 109u8, 46u8,
68u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 82u8, 67u8, 86u8, 70u8, 97u8, 108u8, 108u8, 98u8,
97u8, 99u8, 107u8, 0u8, 11u8, 4u8, 188u8, 84u8, 104u8, 101u8, 32u8, 82u8, 67u8, 86u8, 32u8,
102u8, 97u8, 108u8, 108u8, 98u8, 97u8, 99u8, 107u8, 32u8, 111u8, 102u8, 32u8, 115u8, 111u8,
109u8, 101u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 32u8, 100u8, 111u8, 101u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 48u8, 82u8, 67u8, 86u8,
83u8, 101u8, 108u8, 102u8, 67u8, 121u8, 99u8, 108u8, 101u8, 0u8, 12u8, 4u8, 180u8, 84u8, 104u8,
101u8, 32u8, 82u8, 67u8, 86u8, 32u8, 102u8, 97u8, 108u8, 108u8, 98u8, 97u8, 99u8, 107u8, 32u8,
112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 46u8,
52u8, 82u8, 67u8, 86u8, 78u8, 111u8, 116u8, 65u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 0u8,
13u8, 4u8, 140u8, 82u8, 67u8, 86u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 0u8, 197u8, 9u8, 8u8, 72u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 4u8, 72u8,
85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 97u8,
108u8, 108u8, 101u8, 114u8, 0u8, 0u8, 4u8, 236u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 0u8, 201u8, 9u8, 8u8, 44u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 48u8, 80u8, 105u8,
112u8, 115u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 4u8, 44u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 0u8, 24u8, 1u8, 8u8, 105u8,
100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 1u8, 12u8, 117u8, 114u8,
108u8, 77u8, 2u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 85u8, 114u8, 108u8,
62u8, 0u8, 1u8, 44u8, 100u8, 101u8, 115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8,
77u8, 3u8, 1u8, 88u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 80u8, 105u8, 112u8, 68u8,
101u8, 115u8, 99u8, 114u8, 105u8, 112u8, 116u8, 105u8, 111u8, 110u8, 62u8, 0u8, 1u8, 40u8, 99u8,
114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 95u8, 97u8, 116u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 1u8, 76u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 101u8, 120u8, 112u8, 105u8, 114u8,
121u8, 53u8, 1u8, 1u8, 92u8, 77u8, 97u8, 121u8, 98u8, 101u8, 66u8, 108u8, 111u8, 99u8, 107u8,
60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 0u8,
205u8, 9u8, 0u8, 0u8, 4u8, 8u8, 73u8, 3u8, 0u8, 0u8, 209u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 44u8, 68u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 73u8, 110u8, 102u8, 111u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 1u8, 0u8, 0u8, 8u8, 1u8, 20u8, 111u8, 119u8, 110u8, 101u8, 114u8, 0u8, 1u8, 36u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 24u8, 97u8, 109u8, 111u8,
117u8, 110u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8,
213u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8,
12u8, 80u8, 105u8, 112u8, 8u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 1u8,
201u8, 5u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8, 16u8,
1u8, 8u8, 105u8, 100u8, 73u8, 3u8, 1u8, 20u8, 80u8, 105u8, 112u8, 73u8, 100u8, 0u8, 1u8, 32u8,
112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 201u8, 5u8, 1u8, 32u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 1u8, 20u8, 115u8, 116u8, 97u8, 116u8, 101u8, 89u8, 3u8,
1u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8, 101u8,
0u8, 1u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 65u8, 3u8, 1u8, 76u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 60u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 62u8, 0u8, 0u8, 217u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 48u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8,
82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 0u8, 0u8, 16u8, 1u8, 40u8, 97u8, 121u8, 101u8, 115u8,
95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8, 97u8,
121u8, 101u8, 115u8, 95u8, 115u8, 116u8, 97u8, 107u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 40u8, 110u8, 97u8, 121u8, 115u8, 95u8, 99u8, 111u8, 117u8,
110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8, 110u8, 97u8, 121u8, 115u8,
95u8, 115u8, 116u8, 97u8, 107u8, 101u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 221u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8,
105u8, 112u8, 115u8, 16u8, 86u8, 111u8, 116u8, 101u8, 0u8, 0u8, 8u8, 0u8, 21u8, 1u8, 1u8, 16u8,
98u8, 111u8, 111u8, 108u8, 0u8, 0u8, 24u8, 1u8, 28u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 225u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8,
105u8, 112u8, 115u8, 64u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 8u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 1u8, 16u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8,
100u8, 1u8, 0u8, 0u8, 12u8, 1u8, 40u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 95u8, 97u8,
116u8, 16u8, 1u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
0u8, 1u8, 28u8, 109u8, 97u8, 100u8, 101u8, 95u8, 98u8, 121u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 8u8, 105u8, 100u8, 93u8, 3u8, 1u8, 40u8, 83u8,
110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 73u8, 100u8, 0u8, 0u8, 229u8, 9u8, 8u8, 44u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8, 28u8, 86u8, 101u8,
114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8,
233u8, 9u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 105u8, 112u8, 115u8,
20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 72u8, 132u8, 82u8, 101u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 78u8, 111u8, 116u8, 66u8, 121u8, 82u8,
101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 0u8, 0u8, 4u8, 49u8, 1u8, 79u8, 110u8, 108u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 71u8, 67u8, 32u8, 114u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8,
111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 64u8, 78u8,
111u8, 116u8, 70u8, 114u8, 111u8, 109u8, 67u8, 111u8, 109u8, 109u8, 117u8, 110u8, 105u8, 116u8,
121u8, 0u8, 1u8, 8u8, 236u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8, 32u8, 99u8, 97u8,
108u8, 108u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 204u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 117u8,
110u8, 105u8, 116u8, 121u8, 44u8, 32u8, 98u8, 117u8, 116u8, 32u8, 105u8, 115u8, 110u8, 39u8,
116u8, 46u8, 56u8, 78u8, 111u8, 116u8, 66u8, 121u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 0u8, 2u8, 8u8, 236u8, 84u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 46u8, 180u8, 84u8, 104u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8,
101u8, 32u8, 98u8, 121u8, 32u8, 99u8, 111u8, 109u8, 109u8, 117u8, 110u8, 105u8, 116u8, 121u8,
44u8, 32u8, 98u8, 117u8, 116u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8, 46u8, 68u8, 84u8, 111u8,
111u8, 77u8, 97u8, 110u8, 121u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 80u8, 105u8, 112u8,
115u8, 0u8, 3u8, 8u8, 41u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 40u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 124u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 41u8, 32u8,
80u8, 73u8, 80u8, 115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 32u8, 116u8, 104u8,
101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 156u8, 97u8, 110u8, 100u8, 32u8,
116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 121u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 64u8, 73u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8,
99u8, 116u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 0u8, 4u8, 4u8, 156u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8,
101u8, 115u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8,
116u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 76u8, 73u8, 110u8, 115u8, 117u8,
102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 0u8, 5u8, 4u8, 180u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 32u8, 99u8,
97u8, 110u8, 39u8, 116u8, 32u8, 97u8, 102u8, 102u8, 111u8, 114u8, 100u8, 32u8, 116u8, 111u8,
32u8, 108u8, 111u8, 99u8, 107u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8,
100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 56u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 0u8, 6u8, 4u8, 112u8, 84u8, 104u8, 101u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 100u8, 111u8, 101u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 76u8, 78u8, 111u8,
116u8, 65u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8,
98u8, 101u8, 114u8, 0u8, 7u8, 4u8, 132u8, 78u8, 111u8, 116u8, 32u8, 112u8, 97u8, 114u8, 116u8,
32u8, 111u8, 102u8, 32u8, 103u8, 111u8, 118u8, 101u8, 114u8, 110u8, 97u8, 110u8, 99u8, 101u8,
32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 96u8, 73u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 70u8, 117u8, 116u8, 117u8, 114u8, 101u8, 66u8, 108u8, 111u8,
99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 0u8, 8u8, 4u8, 216u8, 87u8, 104u8, 101u8,
110u8, 32u8, 97u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 105u8, 115u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 46u8, 84u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 79u8, 102u8, 86u8, 111u8, 116u8, 101u8, 115u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 0u8, 9u8, 4u8, 124u8, 87u8, 104u8, 101u8, 110u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 32u8, 111u8, 118u8,
101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 115u8, 46u8, 104u8, 83u8, 116u8, 97u8, 107u8, 101u8,
65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 79u8, 102u8, 86u8, 111u8, 116u8, 101u8, 115u8, 69u8,
120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 10u8, 4u8, 152u8, 87u8, 104u8, 101u8, 110u8,
32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 97u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 111u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 115u8, 46u8, 88u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8,
67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 0u8, 11u8, 4u8, 76u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 68u8, 73u8, 68u8, 88u8, 73u8, 110u8, 99u8, 111u8, 114u8,
114u8, 101u8, 99u8, 116u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8,
97u8, 116u8, 101u8, 0u8, 12u8, 4u8, 144u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 99u8, 116u8, 32u8, 115u8, 116u8, 97u8, 116u8, 101u8,
52u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 83u8, 107u8, 105u8, 112u8, 80u8, 105u8, 112u8, 0u8,
13u8, 4u8, 252u8, 87u8, 104u8, 101u8, 110u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 105u8, 110u8,
103u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 114u8, 101u8, 115u8,
117u8, 108u8, 116u8, 115u8, 44u8, 32u8, 97u8, 110u8, 32u8, 117u8, 110u8, 115u8, 107u8, 105u8,
112u8, 112u8, 97u8, 98u8, 108u8, 101u8, 32u8, 80u8, 73u8, 80u8, 32u8, 119u8, 97u8, 115u8, 32u8,
115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 46u8, 88u8, 83u8, 110u8, 97u8, 112u8, 115u8,
104u8, 111u8, 116u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 84u8, 111u8, 111u8, 76u8, 97u8,
114u8, 103u8, 101u8, 0u8, 14u8, 4u8, 21u8, 1u8, 84u8, 114u8, 105u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 110u8, 97u8, 112u8,
115u8, 104u8, 111u8, 116u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 111u8, 118u8, 101u8,
114u8, 102u8, 108u8, 111u8, 119u8, 105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 115u8, 32u8, 108u8,
101u8, 110u8, 103u8, 116u8, 104u8, 46u8, 72u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8,
116u8, 73u8, 100u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 0u8, 15u8, 4u8, 93u8,
1u8, 84u8, 114u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8,
32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 80u8, 73u8,
80u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 105u8, 100u8, 32u8, 100u8, 105u8, 102u8, 102u8,
101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 115u8, 105u8, 116u8,
105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 46u8, 112u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 111u8, 101u8, 115u8, 110u8, 116u8, 69u8,
120u8, 105u8, 115u8, 116u8, 0u8, 16u8, 4u8, 252u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 100u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 102u8,
97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8,
105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 109u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 46u8,
108u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 78u8, 111u8, 116u8, 73u8, 110u8,
83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 83u8, 116u8, 97u8, 116u8, 101u8,
0u8, 17u8, 4u8, 252u8, 65u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 105u8, 110u8,
32u8, 97u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 115u8,
116u8, 97u8, 116u8, 101u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 0u8, 237u8, 9u8, 0u8, 0u8, 4u8, 8u8,
120u8, 220u8, 0u8, 241u8, 9u8, 0u8, 0u8, 4u8, 8u8, 120u8, 129u8, 3u8, 0u8, 245u8, 9u8, 0u8, 0u8,
4u8, 8u8, 212u8, 156u8, 0u8, 249u8, 9u8, 0u8, 0u8, 4u8, 8u8, 120u8, 212u8, 0u8, 253u8, 9u8, 8u8,
64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8,
8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 1u8, 10u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 20u8, 69u8, 114u8,
114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 36u8, 84u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 68u8, 111u8, 101u8, 115u8, 78u8, 111u8, 116u8, 69u8, 120u8, 105u8,
115u8, 116u8, 0u8, 0u8, 4u8, 112u8, 84u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 46u8, 112u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8,
105u8, 101u8, 110u8, 116u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 66u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 1u8, 4u8, 156u8, 73u8, 110u8, 115u8, 117u8, 102u8,
102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 104u8, 68u8, 101u8, 115u8, 116u8, 105u8, 110u8, 97u8, 116u8,
105u8, 111u8, 110u8, 73u8, 115u8, 83u8, 97u8, 109u8, 101u8, 80u8, 111u8, 114u8, 116u8, 102u8,
111u8, 108u8, 105u8, 111u8, 0u8, 2u8, 4u8, 232u8, 84u8, 104u8, 101u8, 32u8, 115u8, 111u8, 117u8,
114u8, 99u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 100u8, 101u8, 115u8, 116u8, 105u8, 110u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8,
111u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 100u8,
105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 46u8, 100u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 97u8, 109u8, 101u8, 65u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 73u8, 110u8, 85u8, 115u8, 101u8, 0u8, 3u8, 4u8, 49u8, 1u8, 84u8, 104u8, 101u8,
32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 99u8, 111u8, 117u8,
108u8, 100u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 110u8, 97u8, 109u8,
101u8, 100u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 104u8, 111u8, 115u8, 101u8, 110u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 105u8,
115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 105u8, 110u8, 32u8, 117u8,
115u8, 101u8, 46u8, 148u8, 83u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 75u8,
101u8, 121u8, 78u8, 111u8, 116u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8,
100u8, 70u8, 111u8, 114u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 0u8,
4u8, 4u8, 252u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8,
121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8,
99u8, 99u8, 101u8, 115u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 40u8, 115u8, 41u8, 46u8, 84u8, 85u8, 110u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 67u8, 117u8, 115u8, 116u8, 111u8, 100u8,
105u8, 97u8, 110u8, 0u8, 5u8, 4u8, 244u8, 84u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 102u8,
111u8, 108u8, 105u8, 111u8, 39u8, 115u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 121u8,
32u8, 105u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 115u8, 111u8, 109u8, 101u8, 111u8,
110u8, 101u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 46u8, 96u8, 73u8, 110u8,
115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 84u8, 111u8, 107u8, 101u8,
110u8, 115u8, 76u8, 111u8, 99u8, 107u8, 101u8, 100u8, 0u8, 6u8, 4u8, 188u8, 67u8, 97u8, 110u8,
32u8, 110u8, 111u8, 116u8, 32u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 32u8, 109u8, 111u8,
114u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 116u8, 104u8, 97u8, 110u8,
32u8, 119u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 108u8, 111u8, 99u8, 107u8,
101u8, 100u8, 68u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 111u8,
116u8, 69u8, 109u8, 112u8, 116u8, 121u8, 0u8, 7u8, 4u8, 188u8, 84u8, 104u8, 101u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8,
32u8, 104u8, 97u8, 115u8, 32u8, 115u8, 111u8, 109u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 108u8, 101u8, 102u8, 116u8,
108u8, 68u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8,
0u8, 8u8, 4u8, 180u8, 84u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 115u8, 32u8, 98u8, 101u8, 108u8, 111u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8,
100u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 0u8, 5u8, 10u8, 8u8, 76u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 95u8, 102u8, 101u8,
101u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 12u8, 104u8, 73u8,
110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 4u8, 176u8,
73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8,
116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 101u8, 101u8,
46u8, 76u8, 85u8, 110u8, 72u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 73u8, 109u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 0u8, 1u8, 4u8, 136u8, 78u8, 111u8, 116u8, 32u8, 97u8,
98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8,
32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 109u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
115u8, 104u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8,
83u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8,
2u8, 4u8, 176u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 116u8, 104u8, 101u8,
32u8, 102u8, 101u8, 101u8, 46u8, 0u8, 9u8, 10u8, 0u8, 0u8, 2u8, 13u8, 10u8, 0u8, 13u8, 10u8, 4u8,
24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 1u8, 17u8, 10u8, 1u8, 8u8, 16u8,
78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8, 111u8, 109u8, 101u8, 4u8, 0u8, 17u8, 10u8,
0u8, 0u8, 1u8, 0u8, 0u8, 17u8, 10u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 44u8, 83u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 100u8, 86u8, 51u8, 16u8, 16u8, 67u8, 97u8, 108u8, 108u8, 1u8, 197u8,
7u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 16u8,
52u8, 80u8, 97u8, 108u8, 108u8, 101u8, 116u8, 115u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8,
1u8, 21u8, 10u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 0u8,
20u8, 1u8, 32u8, 109u8, 97u8, 121u8, 98u8, 101u8, 95u8, 105u8, 100u8, 93u8, 2u8, 1u8, 60u8, 79u8,
112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 62u8, 0u8,
1u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 8u8, 1u8, 72u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 114u8, 105u8, 111u8, 114u8, 105u8,
116u8, 121u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 197u8, 7u8, 1u8, 16u8, 67u8, 97u8, 108u8,
108u8, 0u8, 1u8, 56u8, 109u8, 97u8, 121u8, 98u8, 101u8, 95u8, 112u8, 101u8, 114u8, 105u8, 111u8,
100u8, 105u8, 99u8, 193u8, 7u8, 1u8, 148u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 80u8, 101u8, 114u8, 105u8, 111u8,
100u8, 60u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 62u8,
0u8, 1u8, 24u8, 111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 21u8, 10u8, 1u8, 52u8, 80u8, 97u8,
108u8, 108u8, 101u8, 116u8, 115u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 0u8, 0u8, 21u8, 10u8,
12u8, 96u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 114u8, 117u8, 110u8,
116u8, 105u8, 109u8, 101u8, 95u8, 100u8, 101u8, 118u8, 101u8, 108u8, 111u8, 112u8, 28u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 48u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 67u8,
97u8, 108u8, 108u8, 101u8, 114u8, 0u8, 1u8, 20u8, 24u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8,
4u8, 0u8, 25u8, 10u8, 1u8, 116u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8,
116u8, 101u8, 109u8, 58u8, 58u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 60u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 62u8, 0u8, 0u8, 0u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 4u8, 0u8,
29u8, 10u8, 1u8, 248u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 60u8,
82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 73u8,
110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 49u8, 62u8, 0u8, 9u8, 0u8, 72u8, 84u8, 101u8,
99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 4u8, 0u8, 33u8, 10u8, 1u8, 248u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 79u8, 114u8, 105u8,
103u8, 105u8, 110u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8,
101u8, 58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 51u8, 62u8, 0u8, 11u8,
0u8, 64u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8, 105u8,
116u8, 116u8, 101u8, 101u8, 4u8, 0u8, 37u8, 10u8, 1u8, 248u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 58u8, 58u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 60u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8,
32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8,
116u8, 101u8, 101u8, 58u8, 58u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 52u8, 62u8,
0u8, 13u8, 0u8, 16u8, 86u8, 111u8, 105u8, 100u8, 4u8, 0u8, 41u8, 10u8, 1u8, 17u8, 1u8, 115u8,
101u8, 108u8, 102u8, 58u8, 58u8, 115u8, 112u8, 95u8, 97u8, 112u8, 105u8, 95u8, 104u8, 105u8,
100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 115u8, 95u8,
99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 95u8, 114u8, 117u8, 110u8, 116u8,
105u8, 109u8, 101u8, 58u8, 58u8, 104u8, 105u8, 100u8, 100u8, 101u8, 110u8, 95u8, 105u8, 110u8,
99u8, 108u8, 117u8, 100u8, 101u8, 58u8, 58u8, 86u8, 111u8, 105u8, 100u8, 0u8, 4u8, 0u8, 0u8,
25u8, 10u8, 12u8, 52u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8,
111u8, 114u8, 116u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 36u8, 82u8,
97u8, 119u8, 79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 4u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 16u8, 82u8, 111u8, 111u8, 116u8, 0u8, 0u8, 0u8,
24u8, 83u8, 105u8, 103u8, 110u8, 101u8, 100u8, 4u8, 0u8, 0u8, 1u8, 36u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 1u8, 0u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 2u8, 0u8,
0u8, 29u8, 10u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 109u8,
109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 36u8, 82u8, 97u8, 119u8, 79u8, 114u8, 105u8, 103u8,
105u8, 110u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8,
4u8, 73u8, 1u8, 41u8, 1u8, 1u8, 4u8, 32u8, 69u8, 110u8, 100u8, 111u8, 114u8, 115u8, 101u8, 100u8,
0u8, 0u8, 0u8, 0u8, 33u8, 10u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 36u8, 82u8, 97u8, 119u8, 79u8, 114u8,
105u8, 103u8, 105u8, 110u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8,
1u8, 0u8, 4u8, 73u8, 1u8, 69u8, 1u8, 1u8, 4u8, 32u8, 69u8, 110u8, 100u8, 111u8, 114u8, 115u8,
101u8, 100u8, 0u8, 0u8, 0u8, 0u8, 37u8, 10u8, 8u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 36u8, 82u8, 97u8, 119u8,
79u8, 114u8, 105u8, 103u8, 105u8, 110u8, 8u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 1u8, 0u8, 4u8, 73u8, 1u8, 85u8, 1u8, 1u8, 4u8, 32u8, 69u8, 110u8, 100u8, 111u8,
114u8, 115u8, 101u8, 100u8, 0u8, 0u8, 0u8, 0u8, 41u8, 10u8, 8u8, 28u8, 115u8, 112u8, 95u8, 99u8,
111u8, 114u8, 101u8, 16u8, 86u8, 111u8, 105u8, 100u8, 0u8, 1u8, 0u8, 0u8, 45u8, 10u8, 12u8, 64u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 114u8, 24u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8,
114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 64u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8,
83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 0u8, 4u8, 100u8, 70u8, 97u8, 105u8,
108u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 78u8, 111u8, 116u8, 70u8, 111u8, 117u8,
110u8, 100u8, 0u8, 1u8, 4u8, 124u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 102u8, 105u8,
110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 100u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8, 92u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8,
66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 73u8, 110u8, 80u8, 97u8,
115u8, 116u8, 0u8, 2u8, 4u8, 164u8, 71u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 97u8, 114u8,
103u8, 101u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8,
97u8, 115u8, 116u8, 46u8, 72u8, 82u8, 101u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 78u8, 111u8, 67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 0u8, 3u8, 4u8, 240u8, 82u8, 101u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8,
100u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 105u8, 116u8, 32u8, 100u8,
111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 116u8, 105u8, 109u8,
101u8, 46u8, 4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
91u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8,
99u8, 115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8,
111u8, 47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8,
118u8, 101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 41u8, 10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 49u8, 10u8, 8u8, 68u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8,
110u8, 116u8, 20u8, 86u8, 101u8, 110u8, 117u8, 101u8, 0u8, 0u8, 8u8, 1u8, 28u8, 99u8, 114u8,
101u8, 97u8, 116u8, 111u8, 114u8, 120u8, 1u8, 40u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 73u8, 100u8, 0u8, 1u8, 40u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 116u8, 121u8,
112u8, 101u8, 173u8, 3u8, 1u8, 36u8, 86u8, 101u8, 110u8, 117u8, 101u8, 84u8, 121u8, 112u8, 101u8,
0u8, 0u8, 53u8, 10u8, 0u8, 0u8, 4u8, 8u8, 165u8, 3u8, 177u8, 3u8, 0u8, 57u8, 10u8, 0u8, 0u8, 4u8,
8u8, 165u8, 3u8, 0u8, 0u8, 61u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8,
115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 44u8, 73u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 8u8, 24u8, 77u8, 111u8, 109u8, 101u8,
110u8, 116u8, 1u8, 32u8, 44u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 1u8, 16u8, 0u8, 28u8, 1u8, 56u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 177u8, 3u8, 1u8, 52u8, 73u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 73u8, 100u8, 0u8, 1u8, 32u8, 118u8, 101u8, 110u8, 117u8,
101u8, 95u8, 105u8, 100u8, 165u8, 3u8, 1u8, 28u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 100u8,
0u8, 1u8, 24u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 65u8, 10u8, 1u8, 68u8, 73u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8,
115u8, 0u8, 1u8, 60u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8,
95u8, 116u8, 121u8, 112u8, 101u8, 181u8, 3u8, 1u8, 108u8, 83u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 84u8, 121u8, 112u8, 101u8, 60u8, 66u8, 108u8, 111u8, 99u8,
107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 62u8, 0u8, 1u8, 40u8, 99u8, 114u8, 101u8, 97u8,
116u8, 101u8, 100u8, 95u8, 97u8, 116u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 116u8, 114u8, 97u8,
100u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8, 105u8,
111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 1u8, 40u8, 118u8, 97u8,
108u8, 117u8, 101u8, 95u8, 100u8, 97u8, 116u8, 101u8, 240u8, 1u8, 56u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 62u8, 0u8, 0u8, 65u8, 10u8,
8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 68u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 12u8, 28u8, 85u8, 110u8,
107u8, 110u8, 111u8, 119u8, 110u8, 0u8, 0u8, 0u8, 28u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8,
103u8, 0u8, 1u8, 0u8, 24u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 2u8, 0u8, 0u8, 69u8,
10u8, 0u8, 0u8, 4u8, 8u8, 177u8, 3u8, 193u8, 3u8, 0u8, 73u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8,
36u8, 76u8, 101u8, 103u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 4u8, 36u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 1u8, 12u8, 64u8, 80u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 84u8, 111u8, 107u8, 101u8, 110u8, 76u8, 111u8, 99u8, 107u8, 0u8, 0u8, 0u8,
64u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 80u8, 101u8, 110u8, 100u8,
105u8, 110u8, 103u8, 0u8, 1u8, 0u8, 80u8, 69u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8,
110u8, 84u8, 111u8, 66u8, 101u8, 83u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 8u8, 0u8, 0u8,
1u8, 36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 0u8, 0u8, 32u8, 1u8, 12u8,
117u8, 54u8, 52u8, 0u8, 2u8, 0u8, 0u8, 77u8, 10u8, 0u8, 0u8, 4u8, 8u8, 177u8, 3u8, 212u8, 0u8,
81u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 68u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8,
116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 1u8, 12u8, 28u8, 85u8,
110u8, 107u8, 110u8, 111u8, 119u8, 110u8, 0u8, 0u8, 0u8, 28u8, 80u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 0u8, 1u8, 0u8, 32u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 101u8, 100u8, 0u8,
2u8, 0u8, 0u8, 85u8, 10u8, 0u8, 0u8, 4u8, 8u8, 212u8, 177u8, 3u8, 0u8, 89u8, 10u8, 0u8, 0u8, 4u8,
8u8, 156u8, 165u8, 3u8, 0u8, 93u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8,
95u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 28u8, 86u8, 101u8,
114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8,
97u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8,
0u8, 1u8, 100u8, 48u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 86u8, 101u8, 110u8, 117u8,
101u8, 0u8, 0u8, 4u8, 84u8, 86u8, 101u8, 110u8, 117u8, 101u8, 32u8, 100u8, 111u8, 101u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 48u8, 85u8, 110u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 0u8, 1u8, 4u8, 168u8, 83u8,
101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8,
32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 60u8,
78u8, 111u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 65u8, 102u8, 102u8, 105u8, 114u8,
109u8, 0u8, 2u8, 4u8, 208u8, 78u8, 111u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8,
32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
100u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
88u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 78u8, 111u8,
116u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 101u8, 100u8, 0u8, 3u8, 4u8, 136u8, 73u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8,
110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8,
109u8, 101u8, 100u8, 46u8, 84u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 78u8, 111u8, 116u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 0u8, 4u8, 4u8,
184u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 105u8, 111u8, 110u8, 46u8, 80u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 78u8, 111u8, 116u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 5u8, 4u8,
184u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 102u8, 97u8, 105u8, 108u8, 105u8, 110u8, 103u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8,
116u8, 105u8, 111u8, 110u8, 46u8, 52u8, 76u8, 101u8, 103u8, 78u8, 111u8, 116u8, 80u8, 101u8,
110u8, 100u8, 105u8, 110u8, 103u8, 0u8, 6u8, 4u8, 152u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8,
101u8, 100u8, 32u8, 108u8, 101u8, 103u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8,
112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8,
105u8, 111u8, 110u8, 46u8, 72u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
122u8, 101u8, 100u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 0u8, 7u8, 4u8, 152u8, 83u8, 105u8,
103u8, 110u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 84u8, 82u8, 101u8, 99u8, 101u8, 105u8,
112u8, 116u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 67u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 0u8, 8u8, 4u8, 84u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 68u8, 82u8,
101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 78u8, 111u8, 116u8, 67u8, 108u8, 97u8, 105u8, 109u8,
101u8, 100u8, 0u8, 9u8, 4u8, 84u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 110u8,
111u8, 116u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 46u8, 68u8, 85u8,
110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 86u8, 101u8, 110u8,
117u8, 101u8, 0u8, 10u8, 4u8, 164u8, 86u8, 101u8, 110u8, 117u8, 101u8, 32u8, 100u8, 111u8, 101u8,
115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 114u8, 101u8, 113u8,
117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 115u8, 46u8, 72u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8, 111u8, 76u8,
111u8, 99u8, 107u8, 84u8, 111u8, 107u8, 101u8, 110u8, 115u8, 0u8, 11u8, 4u8, 33u8, 1u8, 87u8,
104u8, 105u8, 108u8, 101u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 105u8, 110u8, 103u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 44u8,
32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 108u8, 111u8, 99u8, 107u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 115u8, 32u8, 105u8, 110u8, 118u8, 111u8, 108u8, 118u8, 101u8, 100u8,
46u8, 68u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 70u8,
97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 12u8, 4u8, 120u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 46u8, 92u8, 73u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 68u8, 97u8, 116u8, 101u8, 115u8, 73u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 0u8, 13u8, 4u8, 116u8, 73u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 105u8, 110u8, 118u8,
97u8, 108u8, 105u8, 100u8, 32u8, 100u8, 97u8, 116u8, 101u8, 115u8, 112u8, 73u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8,
66u8, 108u8, 111u8, 99u8, 107u8, 80u8, 97u8, 115u8, 115u8, 101u8, 100u8, 0u8, 14u8, 4u8, 168u8,
73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 39u8, 115u8, 32u8,
116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 115u8, 101u8, 116u8, 116u8, 108u8, 101u8, 32u8,
98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 64u8,
73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8,
114u8, 101u8, 0u8, 15u8, 4u8, 120u8, 79u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8,
115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 105u8,
110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 72u8, 83u8, 97u8, 109u8, 101u8, 83u8, 101u8,
110u8, 100u8, 101u8, 114u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 0u8, 16u8, 4u8,
132u8, 83u8, 101u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8,
99u8, 101u8, 105u8, 118u8, 101u8, 114u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 97u8, 109u8, 101u8, 46u8, 68u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8,
105u8, 111u8, 77u8, 105u8, 115u8, 109u8, 97u8, 116u8, 99u8, 104u8, 0u8, 17u8, 4u8, 37u8, 1u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 105u8, 110u8, 32u8, 114u8,
101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 112u8, 114u8, 111u8, 118u8,
105u8, 100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 115u8,
101u8, 114u8, 46u8, 68u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 79u8, 110u8, 80u8, 97u8,
115u8, 116u8, 66u8, 108u8, 111u8, 99u8, 107u8, 0u8, 18u8, 4u8, 97u8, 1u8, 84u8, 104u8, 101u8,
32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 115u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 112u8, 97u8, 115u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 97u8, 110u8, 110u8,
111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 46u8,
76u8, 78u8, 111u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 80u8, 114u8,
111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 0u8, 19u8, 4u8, 61u8, 1u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 98u8, 97u8, 115u8, 101u8, 100u8, 32u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 32u8,
97u8, 116u8, 32u8, 108u8, 101u8, 97u8, 115u8, 116u8, 32u8, 111u8, 110u8, 101u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 105u8,
110u8, 112u8, 117u8, 116u8, 46u8, 108u8, 85u8, 110u8, 101u8, 120u8, 112u8, 101u8, 99u8, 116u8,
101u8, 100u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 0u8, 20u8, 4u8, 69u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 115u8, 116u8, 97u8, 116u8, 117u8, 115u8, 32u8, 100u8, 111u8, 101u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 32u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 64u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 84u8,
111u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 21u8, 4u8, 140u8, 83u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
97u8, 105u8, 108u8, 115u8, 46u8, 64u8, 76u8, 101u8, 103u8, 67u8, 111u8, 117u8, 110u8, 116u8,
84u8, 111u8, 111u8, 83u8, 109u8, 97u8, 108u8, 108u8, 0u8, 22u8, 4u8, 165u8, 1u8, 76u8, 101u8,
103u8, 115u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 109u8, 97u8, 116u8, 99u8, 104u8, 101u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 108u8, 101u8, 103u8, 115u8, 32u8, 105u8, 110u8,
32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 97u8, 99u8, 116u8, 32u8, 97u8,
115u8, 32u8, 96u8, 102u8, 114u8, 111u8, 109u8, 95u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 96u8, 46u8, 72u8, 85u8, 110u8, 107u8, 110u8, 111u8, 119u8, 110u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 0u8, 23u8, 4u8, 116u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8, 97u8,
116u8, 117u8, 115u8, 32u8, 105u8, 115u8, 32u8, 117u8, 110u8, 107u8, 110u8, 111u8, 119u8, 110u8,
100u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 72u8, 97u8,
115u8, 84u8, 111u8, 111u8, 77u8, 97u8, 110u8, 121u8, 76u8, 101u8, 103u8, 115u8, 0u8, 24u8, 4u8,
196u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 103u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 32u8,
97u8, 32u8, 115u8, 105u8, 110u8, 103u8, 108u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 4u8, 132u8, 69u8, 114u8, 114u8, 111u8, 114u8,
115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 101u8, 116u8, 116u8,
108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8,
101u8, 10u8, 0u8, 0u8, 4u8, 8u8, 105u8, 10u8, 241u8, 3u8, 0u8, 105u8, 10u8, 12u8, 76u8, 112u8,
111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 112u8, 114u8, 105u8, 109u8, 105u8, 116u8,
105u8, 118u8, 101u8, 115u8, 40u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8,
115u8, 40u8, 83u8, 116u8, 97u8, 116u8, 49u8, 115u8, 116u8, 75u8, 101u8, 121u8, 0u8, 0u8, 8u8,
1u8, 20u8, 97u8, 115u8, 115u8, 101u8, 116u8, 209u8, 3u8, 1u8, 40u8, 65u8, 115u8, 115u8, 101u8,
116u8, 83u8, 99u8, 111u8, 112u8, 101u8, 0u8, 1u8, 36u8, 115u8, 116u8, 97u8, 116u8, 95u8, 116u8,
121u8, 112u8, 101u8, 217u8, 3u8, 1u8, 32u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8,
0u8, 0u8, 109u8, 10u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8,
112u8, 114u8, 105u8, 109u8, 105u8, 116u8, 105u8, 118u8, 101u8, 115u8, 76u8, 116u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 95u8, 99u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8,
99u8, 101u8, 92u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 8u8,
1u8, 24u8, 112u8, 97u8, 117u8, 115u8, 101u8, 100u8, 21u8, 1u8, 1u8, 16u8, 98u8, 111u8, 111u8,
108u8, 0u8, 1u8, 48u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8,
116u8, 115u8, 233u8, 7u8, 1u8, 108u8, 66u8, 84u8, 114u8, 101u8, 101u8, 83u8, 101u8, 116u8, 60u8,
84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8,
105u8, 111u8, 110u8, 62u8, 0u8, 0u8, 113u8, 10u8, 0u8, 0u8, 4u8, 8u8, 9u8, 4u8, 120u8, 0u8,
117u8, 10u8, 8u8, 68u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 116u8,
105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 28u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
0u8, 0u8, 4u8, 0u8, 8u8, 1u8, 8u8, 117u8, 56u8, 0u8, 0u8, 121u8, 10u8, 8u8, 68u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8,
115u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 24u8, 60u8, 73u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 0u8, 0u8,
4u8, 84u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 110u8, 111u8, 116u8, 32u8,
97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 60u8, 83u8, 116u8, 97u8, 116u8, 84u8,
121u8, 112u8, 101u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 0u8, 1u8, 4u8, 96u8, 83u8,
116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 46u8, 132u8, 83u8, 116u8, 97u8, 116u8, 84u8,
121u8, 112u8, 101u8, 78u8, 101u8, 101u8, 100u8, 101u8, 100u8, 66u8, 121u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8,
0u8, 2u8, 4u8, 160u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 32u8, 105u8, 115u8,
32u8, 110u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8,
46u8, 100u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8, 82u8, 101u8, 109u8, 111u8, 118u8, 101u8,
83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 73u8, 110u8, 85u8, 115u8, 101u8, 0u8, 3u8,
4u8, 168u8, 65u8, 32u8, 83u8, 116u8, 97u8, 116u8, 116u8, 121u8, 112u8, 101u8, 32u8, 105u8, 115u8,
32u8, 105u8, 110u8, 32u8, 117u8, 115u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 97u8, 110u8,
39u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 46u8,
80u8, 83u8, 116u8, 97u8, 116u8, 84u8, 121u8, 112u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8,
82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 0u8, 4u8, 4u8, 244u8, 84u8, 104u8, 101u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 83u8, 116u8, 97u8, 116u8, 84u8,
121u8, 112u8, 101u8, 115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8,
46u8, 116u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 76u8, 105u8, 109u8, 105u8, 116u8, 82u8, 101u8, 97u8, 99u8,
104u8, 101u8, 100u8, 0u8, 5u8, 4u8, 25u8, 1u8, 84u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
67u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 108u8, 108u8,
111u8, 119u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8,
101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 46u8, 4u8, 100u8, 83u8, 116u8, 97u8, 116u8, 105u8, 115u8,
116u8, 105u8, 99u8, 115u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 32u8, 101u8, 114u8,
114u8, 111u8, 114u8, 115u8, 46u8, 125u8, 10u8, 0u8, 0u8, 4u8, 8u8, 156u8, 21u8, 4u8, 0u8, 129u8,
10u8, 8u8, 40u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 20u8, 69u8,
114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 48u8, 48u8, 85u8, 110u8, 97u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 0u8, 0u8, 4u8, 168u8, 83u8, 101u8, 110u8,
100u8, 101u8, 114u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8,
97u8, 118u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 32u8, 79u8, 118u8,
101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 0u8, 1u8, 4u8, 140u8, 65u8, 110u8, 32u8, 97u8, 114u8,
105u8, 116u8, 104u8, 109u8, 101u8, 116u8, 105u8, 99u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8,
100u8, 46u8, 108u8, 73u8, 110u8, 115u8, 117u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 84u8, 111u8, 107u8, 101u8, 110u8, 115u8, 82u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8,
110u8, 103u8, 0u8, 2u8, 4u8, 128u8, 78u8, 111u8, 116u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8,
104u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 108u8, 101u8, 102u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 115u8, 97u8, 108u8, 101u8, 46u8, 72u8, 70u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 78u8, 111u8, 116u8, 70u8, 111u8, 117u8, 110u8, 100u8,
0u8, 3u8, 4u8, 84u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8,
110u8, 111u8, 116u8, 32u8, 102u8, 111u8, 117u8, 110u8, 100u8, 46u8, 68u8, 70u8, 117u8, 110u8,
100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 78u8, 111u8, 116u8, 76u8, 105u8, 118u8, 101u8,
0u8, 4u8, 4u8, 156u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8,
105u8, 115u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 102u8, 114u8, 111u8, 122u8,
101u8, 110u8, 32u8, 111u8, 114u8, 32u8, 115u8, 116u8, 111u8, 112u8, 112u8, 101u8, 100u8, 46u8,
64u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 67u8, 108u8, 111u8,
115u8, 101u8, 100u8, 0u8, 5u8, 4u8, 172u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 108u8,
111u8, 115u8, 101u8, 100u8, 47u8, 115u8, 116u8, 111u8, 112u8, 112u8, 101u8, 100u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 46u8, 68u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 100u8, 0u8, 6u8, 4u8, 208u8,
73u8, 110u8, 116u8, 101u8, 114u8, 97u8, 99u8, 116u8, 105u8, 110u8, 103u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 97u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8,
114u8, 32u8, 112u8, 97u8, 115u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8,
32u8, 96u8, 77u8, 111u8, 109u8, 101u8, 110u8, 116u8, 96u8, 46u8, 48u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 86u8, 101u8, 110u8, 117u8, 101u8, 0u8, 7u8, 4u8, 104u8, 65u8, 110u8, 32u8,
105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 32u8,
112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 46u8, 68u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 80u8, 114u8, 105u8, 99u8, 101u8, 84u8, 105u8, 101u8, 114u8, 115u8, 0u8, 8u8,
4u8, 37u8, 1u8, 65u8, 110u8, 32u8, 105u8, 110u8, 100u8, 105u8, 118u8, 105u8, 100u8, 117u8, 97u8,
108u8, 32u8, 112u8, 114u8, 105u8, 99u8, 101u8, 32u8, 116u8, 105u8, 101u8, 114u8, 32u8, 119u8,
97u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 111u8, 114u8, 32u8,
97u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 105u8, 99u8, 101u8,
32u8, 116u8, 105u8, 101u8, 114u8, 115u8, 32u8, 119u8, 97u8, 115u8, 32u8, 105u8, 110u8, 118u8,
97u8, 108u8, 105u8, 100u8, 46u8, 84u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 79u8,
102u8, 102u8, 101u8, 114u8, 105u8, 110u8, 103u8, 87u8, 105u8, 110u8, 100u8, 111u8, 119u8, 0u8,
9u8, 4u8, 93u8, 1u8, 87u8, 105u8, 110u8, 100u8, 111u8, 119u8, 32u8, 40u8, 115u8, 116u8, 97u8,
114u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 101u8, 110u8, 100u8, 32u8, 116u8,
105u8, 109u8, 101u8, 41u8, 32u8, 104u8, 97u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 32u8, 112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 44u8,
32u8, 101u8, 46u8, 103u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 116u8, 105u8, 109u8,
101u8, 32u8, 105u8, 115u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 101u8, 110u8, 100u8,
32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 64u8, 77u8, 97u8, 120u8, 80u8, 114u8, 105u8, 99u8, 101u8,
69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 0u8, 10u8, 4u8, 188u8, 80u8, 114u8, 105u8,
99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 118u8, 101u8,
115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 32u8, 112u8, 114u8, 105u8, 99u8,
101u8, 46u8, 88u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 65u8,
109u8, 111u8, 117u8, 110u8, 116u8, 84u8, 111u8, 111u8, 76u8, 111u8, 119u8, 0u8, 11u8, 4u8, 232u8,
73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 97u8, 109u8, 111u8,
117u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 108u8, 111u8, 119u8, 101u8, 114u8, 32u8, 116u8,
104u8, 97u8, 110u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 105u8, 110u8,
118u8, 101u8, 115u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 46u8, 4u8, 132u8, 69u8, 114u8, 114u8, 111u8, 114u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 101u8, 116u8, 116u8, 108u8, 101u8, 109u8, 101u8, 110u8,
116u8, 32u8, 109u8, 111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 133u8, 10u8, 8u8, 60u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 20u8,
69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 76u8, 73u8, 110u8, 115u8, 117u8,
102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 0u8, 0u8, 4u8, 120u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 39u8, 115u8,
32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 111u8,
32u8, 108u8, 111u8, 119u8, 46u8, 60u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 73u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 1u8, 4u8, 136u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 102u8,
111u8, 114u8, 32u8, 100u8, 105u8, 115u8, 98u8, 117u8, 114u8, 115u8, 101u8, 109u8, 101u8, 110u8,
116u8, 46u8, 4u8, 120u8, 69u8, 114u8, 114u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 114u8, 101u8, 97u8, 115u8, 117u8, 114u8, 121u8, 32u8, 109u8,
111u8, 100u8, 117u8, 108u8, 101u8, 46u8, 137u8, 10u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 20u8, 69u8, 114u8, 114u8,
111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 12u8, 64u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8,
100u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 0u8, 0u8, 4u8, 116u8, 79u8,
102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8,
64u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 67u8, 100u8, 100u8, 77u8, 105u8, 115u8, 115u8,
105u8, 110u8, 103u8, 0u8, 1u8, 4u8, 128u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 100u8,
111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8,
32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 67u8, 68u8, 68u8, 48u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 78u8, 111u8, 110u8, 99u8, 101u8, 0u8, 2u8, 12u8, 104u8, 80u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 110u8, 111u8, 110u8, 99u8, 101u8, 32u8, 119u8, 97u8,
115u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 17u8, 1u8, 73u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 110u8, 111u8,
110u8, 99u8, 101u8, 32u8, 60u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
110u8, 111u8, 110u8, 99u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 93u8, 1u8, 73u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 110u8, 111u8,
110u8, 99u8, 101u8, 32u8, 62u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
110u8, 111u8, 110u8, 99u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 40u8, 115u8, 41u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 102u8, 97u8, 105u8, 108u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 0u8,
141u8, 10u8, 8u8, 44u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 98u8, 97u8, 115u8, 101u8,
20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 8u8, 28u8, 84u8, 111u8, 111u8,
76u8, 111u8, 110u8, 103u8, 0u8, 0u8, 8u8, 128u8, 69u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8,
100u8, 32u8, 97u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8, 99u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 29u8, 1u8, 84u8,
104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8,
32u8, 98u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 121u8, 32u8, 115u8, 111u8,
114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 108u8, 105u8, 115u8, 116u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 110u8, 103u8, 115u8, 44u8, 32u8, 105u8, 110u8, 99u8, 108u8, 117u8,
100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 46u8,
60u8, 67u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 79u8, 118u8, 101u8, 114u8, 102u8, 108u8,
111u8, 119u8, 0u8, 1u8, 24u8, 184u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8,
110u8, 99u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 32u8, 102u8, 111u8,
114u8, 32u8, 115u8, 111u8, 109u8, 101u8, 116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 111u8, 118u8,
101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 0u8, 29u8, 1u8, 87u8, 104u8, 101u8,
110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 115u8,
32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 115u8, 32u8, 111u8, 110u8, 32u8, 101u8, 46u8,
103u8, 46u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 112u8, 97u8, 99u8, 105u8, 116u8,
121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 102u8, 105u8, 101u8, 114u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 57u8, 1u8, 70u8,
111u8, 114u8, 32u8, 101u8, 120u8, 97u8, 109u8, 112u8, 108u8, 101u8, 44u8, 32u8, 119u8, 101u8,
32u8, 109u8, 105u8, 103u8, 104u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 96u8, 112u8,
117u8, 98u8, 32u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 32u8, 80u8, 105u8, 112u8, 73u8,
100u8, 40u8, 117u8, 51u8, 50u8, 41u8, 59u8, 96u8, 44u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
96u8, 117u8, 51u8, 50u8, 58u8, 58u8, 77u8, 65u8, 88u8, 96u8, 32u8, 99u8, 97u8, 112u8, 97u8, 99u8,
105u8, 116u8, 121u8, 46u8, 89u8, 1u8, 73u8, 110u8, 32u8, 112u8, 114u8, 97u8, 99u8, 116u8, 105u8,
99u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 115u8, 101u8, 32u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8,
104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 98u8, 117u8, 116u8, 32u8, 110u8, 111u8, 32u8,
99u8, 111u8, 100u8, 101u8, 32u8, 112u8, 97u8, 116u8, 104u8, 32u8, 115u8, 104u8, 111u8, 117u8,
108u8, 100u8, 32u8, 114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 32u8, 105u8, 110u8, 32u8, 97u8,
32u8, 112u8, 97u8, 110u8, 105u8, 99u8, 44u8, 252u8, 115u8, 111u8, 32u8, 116u8, 104u8, 101u8,
115u8, 101u8, 32u8, 99u8, 111u8, 114u8, 110u8, 101u8, 114u8, 32u8, 99u8, 97u8, 115u8, 101u8,
115u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 99u8,
111u8, 118u8, 101u8, 114u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 110u8,
32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8,
46u8, 0u8, 145u8, 10u8, 0u8, 0u8, 4u8, 8u8, 156u8, 17u8, 1u8, 0u8, 149u8, 10u8, 8u8, 88u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 101u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8,
95u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8,
84u8, 0u8, 1u8, 24u8, 32u8, 78u8, 111u8, 83u8, 117u8, 99u8, 104u8, 65u8, 71u8, 0u8, 0u8, 4u8,
236u8, 65u8, 110u8, 32u8, 65u8, 71u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 65u8, 71u8, 73u8, 100u8, 96u8, 32u8,
100u8, 105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 68u8, 85u8, 110u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 100u8, 65u8, 103u8, 101u8, 110u8, 116u8, 0u8, 1u8, 4u8, 232u8, 84u8, 104u8, 101u8, 32u8,
97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 99u8,
97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 46u8, 56u8, 65u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8, 0u8, 2u8,
4u8, 232u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 96u8, 46u8, 40u8, 78u8, 111u8, 116u8, 65u8, 110u8, 65u8, 103u8, 101u8, 110u8, 116u8, 0u8,
3u8, 4u8, 216u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8,
100u8, 32u8, 96u8, 97u8, 103u8, 101u8, 110u8, 116u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 116u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 46u8,
84u8, 82u8, 101u8, 109u8, 111u8, 118u8, 105u8, 110u8, 103u8, 76u8, 97u8, 115u8, 116u8, 70u8,
117u8, 108u8, 108u8, 65u8, 103u8, 101u8, 110u8, 116u8, 0u8, 4u8, 8u8, 224u8, 84u8, 104u8, 105u8,
115u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8, 111u8, 110u8, 101u8,
44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 116u8, 39u8, 115u8, 32u8, 98u8, 101u8, 105u8, 110u8,
103u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 44u8, 104u8, 109u8, 97u8, 107u8,
105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8,
111u8, 114u8, 112u8, 104u8, 97u8, 110u8, 101u8, 100u8, 46u8, 132u8, 83u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 78u8, 111u8, 116u8, 65u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 70u8, 111u8, 114u8, 65u8, 115u8, 115u8, 101u8,
116u8, 0u8, 5u8, 4u8, 29u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
114u8, 39u8, 115u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8, 97u8, 114u8, 121u8, 32u8,
107u8, 101u8, 121u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 104u8,
97u8, 118u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8,
101u8, 100u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 46u8, 0u8, 153u8, 10u8, 8u8, 56u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 114u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 28u8, 83u8, 117u8, 98u8,
115u8, 105u8, 100u8, 121u8, 4u8, 12u8, 65u8, 99u8, 99u8, 1u8, 0u8, 0u8, 8u8, 1u8, 40u8, 112u8,
97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 0u8, 1u8, 12u8, 65u8, 99u8, 99u8,
0u8, 1u8, 36u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 24u8, 1u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 157u8, 10u8, 8u8, 56u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 114u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 20u8, 69u8,
114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 28u8, 68u8, 85u8, 115u8, 101u8, 114u8,
75u8, 101u8, 121u8, 67u8, 100u8, 100u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8, 103u8, 0u8, 0u8,
4u8, 204u8, 84u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8,
121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8,
104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 39u8, 100u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 76u8, 80u8, 97u8, 121u8, 105u8,
110u8, 103u8, 75u8, 101u8, 121u8, 67u8, 100u8, 100u8, 77u8, 105u8, 115u8, 115u8, 105u8, 110u8,
103u8, 0u8, 1u8, 4u8, 204u8, 84u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8,
107u8, 101u8, 121u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 116u8,
116u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8,
39u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 44u8, 78u8,
111u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 0u8, 2u8, 4u8, 172u8, 84u8,
104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8,
100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8,
32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 48u8,
78u8, 111u8, 116u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8, 121u8, 0u8, 3u8, 4u8,
176u8, 84u8, 104u8, 101u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8,
96u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8, 114u8,
101u8, 110u8, 116u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8,
121u8, 96u8, 46u8, 100u8, 78u8, 111u8, 116u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8,
122u8, 101u8, 100u8, 70u8, 111u8, 114u8, 80u8, 97u8, 121u8, 105u8, 110u8, 103u8, 75u8, 101u8,
121u8, 0u8, 4u8, 4u8, 184u8, 84u8, 104u8, 101u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8,
105u8, 122u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 112u8, 97u8, 121u8, 105u8,
110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 92u8, 78u8, 111u8, 116u8, 65u8, 117u8,
116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 70u8, 111u8, 114u8, 85u8, 115u8, 101u8,
114u8, 75u8, 101u8, 121u8, 0u8, 5u8, 4u8, 176u8, 84u8, 104u8, 101u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 117u8,
115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 46u8, 32u8, 79u8, 118u8, 101u8, 114u8,
102u8, 108u8, 111u8, 119u8, 0u8, 6u8, 4u8, 184u8, 84u8, 104u8, 101u8, 32u8, 114u8, 101u8, 109u8,
97u8, 105u8, 110u8, 105u8, 110u8, 103u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 102u8, 111u8,
114u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 111u8,
118u8, 101u8, 114u8, 102u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 0u8, 161u8, 10u8, 8u8, 56u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8,
20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8, 68u8, 85u8, 110u8, 107u8,
110u8, 111u8, 119u8, 110u8, 73u8, 116u8, 110u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8,
0u8, 0u8, 4u8, 204u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 119u8, 97u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 73u8, 116u8,
110u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 101u8, 115u8, 46u8, 92u8, 73u8,
116u8, 110u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 65u8, 108u8, 114u8, 101u8, 97u8, 100u8,
121u8, 67u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 0u8, 1u8, 4u8, 124u8, 73u8, 116u8, 110u8,
32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 108u8,
114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 101u8, 100u8, 46u8,
64u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 0u8, 2u8, 4u8, 124u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 100u8,
32u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 117u8, 114u8, 101u8, 32u8, 119u8, 97u8, 115u8,
32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 46u8, 84u8, 85u8, 110u8, 97u8, 98u8, 108u8,
101u8, 84u8, 111u8, 67u8, 111u8, 118u8, 101u8, 114u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 0u8, 3u8, 4u8, 176u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 99u8, 97u8,
110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8, 110u8, 118u8, 101u8,
114u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 112u8, 114u8, 105u8, 109u8,
105u8, 116u8, 105u8, 118u8, 101u8, 46u8, 0u8, 165u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 16u8, 119u8,
97u8, 115u8, 109u8, 64u8, 80u8, 114u8, 101u8, 102u8, 97u8, 98u8, 87u8, 97u8, 115u8, 109u8, 77u8,
111u8, 100u8, 117u8, 108u8, 101u8, 4u8, 4u8, 84u8, 0u8, 0u8, 16u8, 1u8, 108u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 115u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 121u8, 4u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 121u8,
4u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8,
109u8, 121u8, 4u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 16u8, 99u8, 111u8, 100u8, 101u8, 40u8,
1u8, 28u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8, 62u8, 0u8, 0u8, 169u8, 10u8, 12u8, 64u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
115u8, 16u8, 119u8, 97u8, 115u8, 109u8, 36u8, 79u8, 119u8, 110u8, 101u8, 114u8, 73u8, 110u8,
102u8, 111u8, 4u8, 4u8, 84u8, 0u8, 0u8, 12u8, 1u8, 20u8, 111u8, 119u8, 110u8, 101u8, 114u8, 0u8,
1u8, 56u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 79u8, 102u8, 60u8, 84u8,
62u8, 0u8, 1u8, 28u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 201u8, 1u8, 1u8, 48u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8, 62u8, 0u8, 1u8, 32u8,
114u8, 101u8, 102u8, 99u8, 111u8, 117u8, 110u8, 116u8, 13u8, 5u8, 1u8, 12u8, 117u8, 54u8, 52u8,
0u8, 0u8, 173u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8,
110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 60u8, 82u8, 97u8, 119u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 73u8, 110u8,
102u8, 111u8, 8u8, 32u8, 67u8, 111u8, 100u8, 101u8, 72u8, 97u8, 115u8, 104u8, 1u8, 36u8, 28u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 0u8, 12u8, 1u8, 28u8, 116u8, 114u8,
105u8, 101u8, 95u8, 105u8, 100u8, 40u8, 1u8, 24u8, 84u8, 114u8, 105u8, 101u8, 73u8, 100u8, 0u8,
1u8, 36u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 36u8, 1u8, 32u8, 67u8,
111u8, 100u8, 101u8, 72u8, 97u8, 115u8, 104u8, 0u8, 1u8, 60u8, 115u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 24u8, 1u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 0u8, 0u8, 177u8, 10u8, 0u8, 0u8, 2u8, 181u8, 10u8, 0u8, 181u8,
10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 115u8, 28u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 60u8,
68u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 0u8, 0u8, 4u8, 1u8, 28u8, 116u8, 114u8, 105u8, 101u8, 95u8, 105u8, 100u8, 40u8, 1u8, 24u8,
84u8, 114u8, 105u8, 101u8, 73u8, 100u8, 0u8, 0u8, 185u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8,
108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 83u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 4u8, 4u8, 84u8, 0u8, 0u8, 12u8, 1u8, 24u8, 108u8, 105u8, 109u8, 105u8,
116u8, 115u8, 189u8, 10u8, 1u8, 24u8, 76u8, 105u8, 109u8, 105u8, 116u8, 115u8, 0u8, 1u8, 76u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 115u8, 193u8, 10u8, 1u8, 84u8, 73u8, 110u8, 115u8, 116u8, 114u8,
117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 60u8,
84u8, 62u8, 0u8, 1u8, 60u8, 104u8, 111u8, 115u8, 116u8, 95u8, 102u8, 110u8, 95u8, 119u8, 101u8,
105u8, 103u8, 104u8, 116u8, 115u8, 197u8, 10u8, 1u8, 64u8, 72u8, 111u8, 115u8, 116u8, 70u8,
110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 60u8, 84u8, 62u8, 0u8, 0u8, 189u8, 10u8,
12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 24u8,
76u8, 105u8, 109u8, 105u8, 116u8, 115u8, 0u8, 0u8, 44u8, 1u8, 48u8, 101u8, 118u8, 101u8, 110u8,
116u8, 95u8, 116u8, 111u8, 112u8, 105u8, 99u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 48u8, 115u8, 116u8, 97u8, 99u8, 107u8, 95u8, 104u8, 101u8, 105u8, 103u8, 104u8, 116u8, 17u8,
6u8, 1u8, 44u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 60u8, 117u8, 51u8, 50u8, 62u8, 0u8, 1u8,
28u8, 103u8, 108u8, 111u8, 98u8, 97u8, 108u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 40u8, 112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 115u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 1u8, 48u8, 109u8, 101u8, 109u8, 111u8, 114u8, 121u8, 95u8, 112u8, 97u8,
103u8, 101u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8, 116u8, 97u8, 98u8,
108u8, 101u8, 95u8, 115u8, 105u8, 122u8, 101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
52u8, 98u8, 114u8, 95u8, 116u8, 97u8, 98u8, 108u8, 101u8, 95u8, 115u8, 105u8, 122u8, 101u8, 16u8,
1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 44u8, 115u8, 117u8, 98u8, 106u8, 101u8, 99u8, 116u8,
95u8, 108u8, 101u8, 110u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8, 99u8, 97u8, 108u8,
108u8, 95u8, 100u8, 101u8, 112u8, 116u8, 104u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
44u8, 112u8, 97u8, 121u8, 108u8, 111u8, 97u8, 100u8, 95u8, 108u8, 101u8, 110u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 1u8, 32u8, 99u8, 111u8, 100u8, 101u8, 95u8, 108u8, 101u8, 110u8, 16u8,
1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8, 193u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 72u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 115u8, 4u8, 4u8, 84u8,
0u8, 0u8, 208u8, 1u8, 28u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 16u8, 1u8, 12u8,
117u8, 51u8, 50u8, 0u8, 1u8, 32u8, 105u8, 54u8, 52u8, 99u8, 111u8, 110u8, 115u8, 116u8, 16u8,
1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 54u8, 52u8, 108u8, 111u8, 97u8, 100u8, 16u8,
1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 32u8, 105u8, 54u8, 52u8, 115u8, 116u8, 111u8, 114u8,
101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 115u8, 101u8, 108u8, 101u8, 99u8,
116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 16u8, 114u8, 35u8, 105u8, 102u8, 16u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 8u8, 98u8, 114u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 20u8, 98u8, 114u8, 95u8, 105u8, 102u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 32u8,
98u8, 114u8, 95u8, 116u8, 97u8, 98u8, 108u8, 101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
72u8, 98u8, 114u8, 95u8, 116u8, 97u8, 98u8, 108u8, 101u8, 95u8, 112u8, 101u8, 114u8, 95u8, 101u8,
110u8, 116u8, 114u8, 121u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 16u8, 99u8, 97u8,
108u8, 108u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 52u8, 99u8, 97u8, 108u8, 108u8, 95u8,
105u8, 110u8, 100u8, 105u8, 114u8, 101u8, 99u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 92u8, 99u8, 97u8, 108u8, 108u8, 95u8, 105u8, 110u8, 100u8, 105u8, 114u8, 101u8, 99u8, 116u8,
95u8, 112u8, 101u8, 114u8, 95u8, 112u8, 97u8, 114u8, 97u8, 109u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 1u8, 36u8, 108u8, 111u8, 99u8, 97u8, 108u8, 95u8, 103u8, 101u8, 116u8, 16u8, 1u8,
12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 36u8, 108u8, 111u8, 99u8, 97u8, 108u8, 95u8, 115u8, 101u8,
116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 36u8, 108u8, 111u8, 99u8, 97u8, 108u8, 95u8,
116u8, 101u8, 101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8, 103u8, 108u8, 111u8,
98u8, 97u8, 108u8, 95u8, 103u8, 101u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 40u8,
103u8, 108u8, 111u8, 98u8, 97u8, 108u8, 95u8, 115u8, 101u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8,
50u8, 0u8, 1u8, 56u8, 109u8, 101u8, 109u8, 111u8, 114u8, 121u8, 95u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 44u8, 109u8, 101u8, 109u8,
111u8, 114u8, 121u8, 95u8, 103u8, 114u8, 111u8, 119u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 24u8, 105u8, 54u8, 52u8, 99u8, 108u8, 122u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
24u8, 105u8, 54u8, 52u8, 99u8, 116u8, 122u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 36u8,
105u8, 54u8, 52u8, 112u8, 111u8, 112u8, 99u8, 110u8, 116u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 1u8, 24u8, 105u8, 54u8, 52u8, 101u8, 113u8, 122u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8,
1u8, 52u8, 105u8, 54u8, 52u8, 101u8, 120u8, 116u8, 101u8, 110u8, 100u8, 115u8, 105u8, 51u8, 50u8,
16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 52u8, 105u8, 54u8, 52u8, 101u8, 120u8, 116u8,
101u8, 110u8, 100u8, 117u8, 105u8, 51u8, 50u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
40u8, 105u8, 51u8, 50u8, 119u8, 114u8, 97u8, 112u8, 105u8, 54u8, 52u8, 16u8, 1u8, 12u8, 117u8,
51u8, 50u8, 0u8, 1u8, 20u8, 105u8, 54u8, 52u8, 101u8, 113u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 1u8, 20u8, 105u8, 54u8, 52u8, 110u8, 101u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
24u8, 105u8, 54u8, 52u8, 108u8, 116u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 108u8, 116u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 103u8, 116u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 103u8, 116u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 108u8, 101u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 108u8, 101u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 103u8, 101u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 103u8, 101u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8,
105u8, 54u8, 52u8, 97u8, 100u8, 100u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 105u8,
54u8, 52u8, 115u8, 117u8, 98u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 105u8, 54u8,
52u8, 109u8, 117u8, 108u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 54u8, 52u8,
100u8, 105u8, 118u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 54u8,
52u8, 100u8, 105u8, 118u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8,
54u8, 52u8, 114u8, 101u8, 109u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8,
105u8, 54u8, 52u8, 114u8, 101u8, 109u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8,
24u8, 105u8, 54u8, 52u8, 97u8, 110u8, 100u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 20u8,
105u8, 54u8, 52u8, 111u8, 114u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 105u8, 54u8,
52u8, 120u8, 111u8, 114u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 24u8, 105u8, 54u8, 52u8,
115u8, 104u8, 108u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 54u8, 52u8,
115u8, 104u8, 114u8, 115u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8, 54u8,
52u8, 115u8, 104u8, 114u8, 117u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8, 105u8,
54u8, 52u8, 114u8, 111u8, 116u8, 108u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 1u8, 28u8,
105u8, 54u8, 52u8, 114u8, 111u8, 116u8, 114u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8, 0u8, 0u8,
197u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 52u8, 72u8, 111u8, 115u8, 116u8, 70u8, 110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
115u8, 4u8, 4u8, 84u8, 0u8, 0u8, 216u8, 1u8, 24u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8,
1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 44u8, 105u8, 115u8, 95u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 36u8, 99u8, 111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 32u8, 1u8,
24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 111u8, 119u8, 110u8, 95u8, 99u8,
111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 64u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 95u8, 105u8, 115u8, 95u8,
111u8, 114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 28u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 32u8, 103u8, 97u8, 115u8, 95u8, 108u8, 101u8, 102u8,
116u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 28u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8,
1u8, 68u8, 118u8, 97u8, 108u8, 117u8, 101u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8,
101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8,
1u8, 60u8, 109u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 95u8, 98u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 48u8, 98u8,
108u8, 111u8, 99u8, 107u8, 95u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 12u8, 110u8, 111u8, 119u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
95u8, 116u8, 111u8, 95u8, 102u8, 101u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 12u8, 103u8, 97u8, 115u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 20u8, 105u8, 110u8, 112u8, 117u8, 116u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 0u8, 1u8, 56u8, 105u8, 110u8, 112u8, 117u8, 116u8, 95u8, 112u8, 101u8,
114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
0u8, 1u8, 32u8, 114u8, 35u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 60u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8,
95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 0u8, 1u8, 36u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8,
101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 24u8, 114u8, 97u8,
110u8, 100u8, 111u8, 109u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8,
52u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 101u8, 118u8, 101u8, 110u8, 116u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 92u8, 100u8, 101u8, 112u8,
111u8, 115u8, 105u8, 116u8, 95u8, 101u8, 118u8, 101u8, 110u8, 116u8, 95u8, 112u8, 101u8, 114u8,
95u8, 116u8, 111u8, 112u8, 105u8, 99u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
0u8, 1u8, 88u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 95u8, 101u8, 118u8, 101u8,
110u8, 116u8, 95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 100u8, 101u8, 98u8, 117u8, 103u8, 95u8, 109u8,
101u8, 115u8, 115u8, 97u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 44u8, 115u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 96u8, 115u8, 101u8, 116u8,
95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 112u8, 101u8, 114u8, 95u8, 110u8,
101u8, 119u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 96u8, 115u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
95u8, 112u8, 101u8, 114u8, 95u8, 111u8, 108u8, 100u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8,
24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 115u8, 101u8, 116u8, 95u8, 99u8,
111u8, 100u8, 101u8, 95u8, 104u8, 97u8, 115u8, 104u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 52u8, 99u8, 108u8, 101u8, 97u8, 114u8, 95u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 88u8,
99u8, 108u8, 101u8, 97u8, 114u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8,
112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 64u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 95u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 0u8, 1u8, 100u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 95u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 44u8, 103u8, 101u8, 116u8,
95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 80u8, 103u8, 101u8, 116u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 48u8, 116u8, 97u8, 107u8, 101u8, 95u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8,
84u8, 116u8, 97u8, 107u8, 101u8, 95u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 95u8,
112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 1u8,
24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 16u8, 99u8, 97u8, 108u8, 108u8, 32u8,
1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 100u8, 101u8, 108u8, 101u8,
103u8, 97u8, 116u8, 101u8, 95u8, 99u8, 97u8, 108u8, 108u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 0u8, 1u8, 92u8, 99u8, 97u8, 108u8, 108u8, 95u8, 116u8, 114u8, 97u8, 110u8,
115u8, 102u8, 101u8, 114u8, 95u8, 115u8, 117u8, 114u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 80u8, 99u8, 97u8, 108u8,
108u8, 95u8, 112u8, 101u8, 114u8, 95u8, 99u8, 108u8, 111u8, 110u8, 101u8, 100u8, 95u8, 98u8,
121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 44u8,
105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 120u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8,
116u8, 105u8, 97u8, 116u8, 101u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
95u8, 115u8, 117u8, 114u8, 99u8, 104u8, 97u8, 114u8, 103u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 100u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8,
105u8, 97u8, 116u8, 101u8, 95u8, 112u8, 101u8, 114u8, 95u8, 115u8, 97u8, 108u8, 116u8, 95u8,
98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8,
52u8, 104u8, 97u8, 115u8, 104u8, 95u8, 115u8, 104u8, 97u8, 50u8, 95u8, 50u8, 53u8, 54u8, 32u8,
1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 88u8, 104u8, 97u8, 115u8, 104u8,
95u8, 115u8, 104u8, 97u8, 50u8, 95u8, 50u8, 53u8, 54u8, 95u8, 112u8, 101u8, 114u8, 95u8, 98u8,
121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 60u8,
104u8, 97u8, 115u8, 104u8, 95u8, 107u8, 101u8, 99u8, 99u8, 97u8, 107u8, 95u8, 50u8, 53u8, 54u8,
32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 96u8, 104u8, 97u8, 115u8,
104u8, 95u8, 107u8, 101u8, 99u8, 99u8, 97u8, 107u8, 95u8, 50u8, 53u8, 54u8, 95u8, 112u8, 101u8,
114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
0u8, 1u8, 60u8, 104u8, 97u8, 115u8, 104u8, 95u8, 98u8, 108u8, 97u8, 107u8, 101u8, 50u8, 95u8,
50u8, 53u8, 54u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 96u8,
104u8, 97u8, 115u8, 104u8, 95u8, 98u8, 108u8, 97u8, 107u8, 101u8, 50u8, 95u8, 50u8, 53u8, 54u8,
95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8,
103u8, 104u8, 116u8, 0u8, 1u8, 60u8, 104u8, 97u8, 115u8, 104u8, 95u8, 98u8, 108u8, 97u8, 107u8,
101u8, 50u8, 95u8, 49u8, 50u8, 56u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
0u8, 1u8, 96u8, 104u8, 97u8, 115u8, 104u8, 95u8, 98u8, 108u8, 97u8, 107u8, 101u8, 50u8, 95u8,
49u8, 50u8, 56u8, 95u8, 112u8, 101u8, 114u8, 95u8, 98u8, 121u8, 116u8, 101u8, 32u8, 1u8, 24u8,
87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 0u8, 1u8, 52u8, 101u8, 99u8, 100u8, 115u8, 97u8, 95u8,
114u8, 101u8, 99u8, 111u8, 118u8, 101u8, 114u8, 32u8, 1u8, 24u8, 87u8, 101u8, 105u8, 103u8,
104u8, 116u8, 0u8, 1u8, 80u8, 101u8, 99u8, 100u8, 115u8, 97u8, 95u8, 116u8, 111u8, 95u8, 101u8,
116u8, 104u8, 95u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 1u8, 24u8, 87u8, 101u8,
105u8, 103u8, 104u8, 116u8, 0u8, 0u8, 201u8, 10u8, 12u8, 64u8, 112u8, 97u8, 108u8, 108u8, 101u8,
116u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 24u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8,
116u8, 88u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 83u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 0u8, 0u8, 4u8, 1u8, 1u8,
65u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8,
32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 103u8,
114u8, 101u8, 97u8, 116u8, 101u8, 114u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 111u8, 110u8, 101u8, 46u8, 64u8, 73u8, 110u8, 118u8, 97u8, 108u8,
105u8, 100u8, 67u8, 97u8, 108u8, 108u8, 70u8, 108u8, 97u8, 103u8, 115u8, 0u8, 1u8, 4u8, 53u8,
1u8, 73u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 99u8, 111u8, 109u8, 98u8, 105u8, 110u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 102u8, 108u8, 97u8, 103u8, 115u8,
32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8,
115u8, 101u8, 97u8, 108u8, 95u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 111u8, 114u8, 32u8, 96u8,
115u8, 101u8, 97u8, 108u8, 95u8, 100u8, 101u8, 108u8, 101u8, 103u8, 97u8, 116u8, 101u8, 95u8,
99u8, 97u8, 108u8, 108u8, 96u8, 46u8, 32u8, 79u8, 117u8, 116u8, 79u8, 102u8, 71u8, 97u8, 115u8,
0u8, 2u8, 4u8, 184u8, 84u8, 104u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8,
100u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 101u8, 120u8, 104u8,
97u8, 117u8, 115u8, 116u8, 101u8, 100u8, 32u8, 105u8, 116u8, 115u8, 32u8, 103u8, 97u8, 115u8,
32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 80u8, 79u8, 117u8, 116u8, 112u8, 117u8, 116u8,
66u8, 117u8, 102u8, 102u8, 101u8, 114u8, 84u8, 111u8, 111u8, 83u8, 109u8, 97u8, 108u8, 108u8,
0u8, 3u8, 4u8, 1u8, 1u8, 84u8, 104u8, 101u8, 32u8, 111u8, 117u8, 116u8, 112u8, 117u8, 116u8,
32u8, 98u8, 117u8, 102u8, 102u8, 101u8, 114u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8,
101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 32u8, 65u8, 80u8, 73u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8,
116u8, 111u8, 111u8, 32u8, 115u8, 109u8, 97u8, 108u8, 108u8, 46u8, 56u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 4u8, 8u8, 53u8,
1u8, 80u8, 101u8, 114u8, 102u8, 111u8, 114u8, 109u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 46u8,
32u8, 80u8, 114u8, 111u8, 98u8, 97u8, 98u8, 108u8, 121u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8,
115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 105u8, 115u8, 110u8, 39u8, 116u8,
32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 148u8, 102u8, 114u8, 101u8, 101u8, 32u8, 98u8,
97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 101u8, 110u8, 100u8, 101u8, 114u8, 39u8, 115u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 46u8, 76u8, 77u8, 97u8, 120u8, 67u8, 97u8, 108u8, 108u8, 68u8, 101u8, 112u8, 116u8,
104u8, 82u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 0u8, 5u8, 8u8, 33u8, 1u8, 80u8, 101u8,
114u8, 102u8, 111u8, 114u8, 109u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8,
108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 100u8, 101u8, 110u8, 105u8, 101u8, 100u8, 32u8, 98u8,
101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 97u8, 108u8,
108u8, 105u8, 110u8, 103u8, 32u8, 100u8, 101u8, 112u8, 116u8, 104u8, 32u8, 114u8, 101u8, 97u8,
99u8, 104u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
148u8, 111u8, 102u8, 32u8, 119u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 115u8, 112u8,
101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 46u8, 64u8, 67u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 78u8, 111u8, 116u8, 70u8, 111u8, 117u8, 110u8, 100u8, 0u8, 6u8,
4u8, 188u8, 78u8, 111u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 119u8,
97u8, 115u8, 32u8, 102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 97u8, 100u8,
100u8, 114u8, 101u8, 115u8, 115u8, 46u8, 48u8, 67u8, 111u8, 100u8, 101u8, 84u8, 111u8, 111u8,
76u8, 97u8, 114u8, 103u8, 101u8, 0u8, 7u8, 8u8, 61u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8,
100u8, 101u8, 32u8, 115u8, 117u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 96u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 95u8,
119u8, 105u8, 116u8, 104u8, 95u8, 99u8, 111u8, 100u8, 101u8, 96u8, 32u8, 101u8, 120u8, 99u8,
101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 68u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 46u8, 48u8, 67u8, 111u8, 100u8, 101u8, 78u8, 111u8,
116u8, 70u8, 111u8, 117u8, 110u8, 100u8, 0u8, 8u8, 4u8, 196u8, 78u8, 111u8, 32u8, 99u8, 111u8,
100u8, 101u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 102u8, 111u8,
117u8, 110u8, 100u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 112u8,
112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8, 97u8, 115u8,
104u8, 46u8, 44u8, 79u8, 117u8, 116u8, 79u8, 102u8, 66u8, 111u8, 117u8, 110u8, 100u8, 115u8, 0u8,
9u8, 4u8, 37u8, 1u8, 65u8, 32u8, 98u8, 117u8, 102u8, 102u8, 101u8, 114u8, 32u8, 111u8, 117u8,
116u8, 115u8, 105u8, 100u8, 101u8, 32u8, 111u8, 102u8, 32u8, 115u8, 97u8, 110u8, 100u8, 98u8,
111u8, 120u8, 32u8, 109u8, 101u8, 109u8, 111u8, 114u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8,
112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 99u8, 111u8,
110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 65u8, 80u8, 73u8, 32u8, 102u8, 117u8, 110u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 56u8, 68u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8,
70u8, 97u8, 105u8, 108u8, 101u8, 100u8, 0u8, 10u8, 4u8, 41u8, 1u8, 73u8, 110u8, 112u8, 117u8,
116u8, 32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 65u8, 80u8, 73u8, 32u8, 102u8, 117u8, 110u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8, 101u8, 32u8, 97u8, 115u8, 32u8, 101u8, 120u8,
112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 116u8, 121u8, 112u8, 101u8, 46u8, 60u8, 67u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 84u8, 114u8, 97u8, 112u8, 112u8, 101u8, 100u8,
0u8, 11u8, 4u8, 136u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 116u8, 114u8,
97u8, 112u8, 112u8, 101u8, 100u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8, 103u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 52u8, 86u8, 97u8, 108u8, 117u8,
101u8, 84u8, 111u8, 111u8, 76u8, 97u8, 114u8, 103u8, 101u8, 0u8, 12u8, 4u8, 204u8, 84u8, 104u8,
101u8, 32u8, 115u8, 105u8, 122u8, 101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8,
32u8, 105u8, 110u8, 32u8, 96u8, 84u8, 58u8, 58u8, 77u8, 97u8, 120u8, 86u8, 97u8, 108u8, 117u8,
101u8, 83u8, 105u8, 122u8, 101u8, 96u8, 32u8, 119u8, 97u8, 115u8, 32u8, 101u8, 120u8, 99u8,
101u8, 101u8, 100u8, 101u8, 100u8, 46u8, 96u8, 84u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8,
116u8, 101u8, 100u8, 87u8, 104u8, 105u8, 108u8, 101u8, 82u8, 101u8, 101u8, 110u8, 116u8, 114u8,
97u8, 110u8, 116u8, 0u8, 13u8, 8u8, 25u8, 1u8, 84u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 119u8, 104u8, 105u8, 108u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 224u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 97u8, 108u8, 108u8, 32u8, 115u8, 116u8, 97u8, 99u8, 107u8, 46u8, 32u8, 67u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8, 116u8, 101u8, 114u8, 109u8, 105u8,
110u8, 97u8, 116u8, 101u8, 96u8, 46u8, 56u8, 73u8, 110u8, 112u8, 117u8, 116u8, 70u8, 111u8,
114u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 0u8, 14u8, 4u8, 65u8, 1u8, 96u8, 115u8, 101u8,
97u8, 108u8, 95u8, 99u8, 97u8, 108u8, 108u8, 96u8, 32u8, 102u8, 111u8, 114u8, 119u8, 97u8, 114u8,
100u8, 101u8, 100u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 32u8, 105u8, 110u8, 112u8, 117u8, 116u8, 46u8, 32u8, 73u8, 116u8, 32u8,
116u8, 104u8, 101u8, 114u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 110u8,
111u8, 32u8, 108u8, 111u8, 110u8, 103u8, 101u8, 114u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8,
97u8, 98u8, 108u8, 101u8, 46u8, 80u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8, 83u8, 117u8, 98u8,
106u8, 101u8, 99u8, 116u8, 84u8, 111u8, 111u8, 76u8, 111u8, 110u8, 103u8, 0u8, 15u8, 4u8, 216u8,
84u8, 104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 106u8, 101u8, 99u8, 116u8, 32u8, 112u8, 97u8,
115u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8,
114u8, 97u8, 110u8, 100u8, 111u8, 109u8, 96u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 52u8, 84u8,
111u8, 111u8, 77u8, 97u8, 110u8, 121u8, 84u8, 111u8, 112u8, 105u8, 99u8, 115u8, 0u8, 16u8, 4u8,
29u8, 1u8, 84u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 111u8, 112u8, 105u8, 99u8, 115u8, 32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 95u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 96u8, 32u8, 101u8, 120u8,
99u8, 101u8, 101u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8,
116u8, 46u8, 60u8, 68u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 84u8, 111u8,
112u8, 105u8, 99u8, 115u8, 0u8, 17u8, 4u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8,
112u8, 105u8, 99u8, 115u8, 32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
95u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 96u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 97u8, 116u8, 32u8, 108u8, 101u8, 97u8, 115u8, 116u8, 32u8, 111u8,
110u8, 101u8, 32u8, 100u8, 117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 46u8, 64u8,
78u8, 111u8, 67u8, 104u8, 97u8, 105u8, 110u8, 69u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8,
111u8, 110u8, 0u8, 18u8, 12u8, 69u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8,
110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 32u8, 97u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 101u8,
120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 46u8, 32u8, 67u8, 97u8, 108u8, 108u8,
105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8,
101u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 32u8, 114u8, 101u8, 115u8, 117u8,
108u8, 116u8, 115u8, 77u8, 1u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 101u8,
114u8, 114u8, 111u8, 114u8, 46u8, 32u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 117u8, 115u8, 117u8, 97u8, 108u8, 108u8, 121u8,
32u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8,
112u8, 112u8, 101u8, 110u8, 32u8, 97u8, 115u8, 32u8, 100u8, 101u8, 112u8, 108u8, 111u8, 121u8,
105u8, 110u8, 103u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 48u8, 105u8, 115u8, 32u8, 114u8, 101u8, 106u8, 101u8, 99u8, 116u8,
101u8, 100u8, 46u8, 68u8, 68u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 81u8, 117u8,
101u8, 117u8, 101u8, 70u8, 117u8, 108u8, 108u8, 0u8, 19u8, 20u8, 1u8, 1u8, 82u8, 101u8, 109u8,
111u8, 118u8, 97u8, 108u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 32u8, 102u8, 97u8, 105u8, 108u8, 101u8, 100u8, 32u8, 98u8, 101u8, 99u8,
97u8, 117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8,
105u8, 111u8, 110u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8, 102u8,
117u8, 108u8, 108u8, 46u8, 0u8, 184u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8,
104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 99u8, 97u8,
108u8, 108u8, 105u8, 110u8, 103u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8, 116u8, 101u8,
114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 96u8, 46u8, 77u8, 1u8, 84u8, 104u8, 101u8, 32u8,
113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8, 102u8, 105u8, 108u8, 108u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 110u8, 103u8, 32u8,
99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8,
101u8, 109u8, 112u8, 116u8, 105u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 32u8, 102u8,
105u8, 120u8, 101u8, 100u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 101u8, 97u8,
99u8, 104u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 33u8, 1u8, 84u8, 114u8, 121u8, 105u8,
110u8, 103u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8,
103u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8,
119u8, 97u8, 121u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 115u8, 111u8, 108u8, 118u8, 101u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 46u8, 68u8, 68u8,
117u8, 112u8, 108u8, 105u8, 99u8, 97u8, 116u8, 101u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 0u8, 20u8, 4u8, 200u8, 65u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8,
101u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8, 46u8, 92u8, 84u8,
101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 100u8, 73u8, 110u8, 67u8, 111u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 111u8, 114u8, 0u8, 21u8, 12u8, 184u8, 65u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 115u8, 101u8, 108u8, 102u8, 32u8, 100u8,
101u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 105u8,
116u8, 115u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 111u8, 114u8,
46u8, 0u8, 208u8, 84u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8,
116u8, 114u8, 105u8, 103u8, 103u8, 101u8, 114u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8,
32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 116u8, 111u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8,
116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 96u8, 46u8, 92u8, 68u8, 101u8,
98u8, 117u8, 103u8, 77u8, 101u8, 115u8, 115u8, 97u8, 103u8, 101u8, 73u8, 110u8, 118u8, 97u8,
108u8, 105u8, 100u8, 85u8, 84u8, 70u8, 56u8, 0u8, 22u8, 4u8, 61u8, 1u8, 84u8, 104u8, 101u8, 32u8,
100u8, 101u8, 98u8, 117u8, 103u8, 32u8, 109u8, 101u8, 115u8, 115u8, 97u8, 103u8, 101u8, 32u8,
115u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8,
115u8, 101u8, 97u8, 108u8, 95u8, 100u8, 101u8, 98u8, 117u8, 103u8, 95u8, 109u8, 101u8, 115u8,
115u8, 97u8, 103u8, 101u8, 96u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 99u8, 111u8, 110u8,
116u8, 97u8, 105u8, 110u8, 32u8, 105u8, 110u8, 118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 85u8,
84u8, 70u8, 45u8, 56u8, 46u8, 64u8, 82u8, 101u8, 101u8, 110u8, 116u8, 114u8, 97u8, 110u8, 99u8,
101u8, 68u8, 101u8, 110u8, 105u8, 101u8, 100u8, 0u8, 23u8, 4u8, 13u8, 1u8, 65u8, 32u8, 99u8,
97u8, 108u8, 108u8, 32u8, 116u8, 114u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 105u8,
110u8, 118u8, 111u8, 107u8, 101u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 102u8, 108u8, 97u8,
103u8, 103u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 110u8, 111u8, 110u8, 45u8, 114u8, 101u8,
101u8, 110u8, 116u8, 114u8, 97u8, 110u8, 116u8, 46u8, 112u8, 83u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 78u8, 111u8, 116u8, 69u8, 110u8,
111u8, 117u8, 103u8, 104u8, 70u8, 117u8, 110u8, 100u8, 115u8, 0u8, 24u8, 4u8, 33u8, 1u8, 79u8,
114u8, 105u8, 103u8, 105u8, 110u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8,
104u8, 97u8, 118u8, 101u8, 32u8, 101u8, 110u8, 111u8, 117u8, 103u8, 104u8, 32u8, 98u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 115u8,
46u8, 112u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 68u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 76u8, 105u8, 109u8, 105u8, 116u8, 69u8, 120u8, 104u8, 97u8, 117u8, 115u8, 116u8,
101u8, 100u8, 0u8, 25u8, 4u8, 13u8, 1u8, 77u8, 111u8, 114u8, 101u8, 32u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
101u8, 100u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 46u8, 36u8, 67u8, 111u8, 100u8, 101u8, 73u8, 110u8, 85u8, 115u8, 101u8, 0u8, 26u8,
4u8, 73u8, 1u8, 67u8, 111u8, 100u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 97u8, 108u8,
32u8, 119u8, 97u8, 115u8, 32u8, 100u8, 101u8, 110u8, 105u8, 101u8, 100u8, 32u8, 98u8, 101u8,
99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8,
32u8, 105u8, 115u8, 32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 105u8, 110u8, 32u8, 117u8,
115u8, 101u8, 32u8, 98u8, 121u8, 32u8, 97u8, 116u8, 32u8, 108u8, 101u8, 97u8, 115u8, 116u8, 32u8,
111u8, 110u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 46u8, 64u8, 67u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 82u8, 101u8, 118u8, 101u8, 114u8, 116u8, 101u8,
100u8, 0u8, 27u8, 16u8, 37u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 32u8, 114u8, 97u8, 110u8, 32u8, 116u8, 111u8, 32u8, 99u8, 111u8, 109u8, 112u8,
108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8, 98u8, 117u8, 116u8, 32u8, 100u8, 101u8, 99u8,
105u8, 100u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 118u8, 101u8, 114u8, 116u8,
32u8, 105u8, 116u8, 115u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 46u8, 73u8, 1u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8,
32u8, 110u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 105u8, 115u8, 32u8, 111u8, 110u8, 108u8,
121u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 46u8, 32u8,
87u8, 104u8, 101u8, 110u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 100u8, 32u8, 100u8, 105u8,
114u8, 101u8, 99u8, 116u8, 108u8, 121u8, 93u8, 1u8, 111u8, 114u8, 32u8, 118u8, 105u8, 97u8, 32u8,
82u8, 80u8, 67u8, 32u8, 97u8, 110u8, 32u8, 96u8, 79u8, 107u8, 96u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8,
32u8, 73u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 110u8, 101u8, 101u8, 100u8,
115u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 115u8, 112u8, 101u8, 99u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 102u8, 108u8, 97u8, 103u8, 115u8, 196u8, 116u8, 111u8, 32u8, 100u8, 101u8,
116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 32u8, 119u8, 104u8, 101u8, 116u8, 104u8, 101u8,
114u8, 32u8, 97u8, 32u8, 114u8, 101u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 32u8,
104u8, 97u8, 115u8, 32u8, 116u8, 97u8, 107u8, 101u8, 110u8, 32u8, 112u8, 108u8, 97u8, 99u8,
101u8, 46u8, 48u8, 67u8, 111u8, 100u8, 101u8, 82u8, 101u8, 106u8, 101u8, 99u8, 116u8, 101u8,
100u8, 0u8, 28u8, 12u8, 69u8, 1u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 39u8, 115u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 119u8, 97u8, 115u8, 32u8,
102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8,
118u8, 97u8, 108u8, 105u8, 100u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8, 103u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 114u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 109u8, 101u8, 110u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8,
46u8, 81u8, 1u8, 65u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8,
108u8, 101u8, 100u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8, 32u8, 99u8, 97u8, 110u8, 32u8,
98u8, 101u8, 32u8, 102u8, 111u8, 117u8, 110u8, 100u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 111u8, 100u8, 101u8, 32u8, 99u8, 111u8, 110u8, 115u8, 111u8, 108u8, 101u8,
32u8, 105u8, 102u8, 32u8, 100u8, 101u8, 98u8, 117u8, 103u8, 32u8, 109u8, 101u8, 115u8, 115u8,
97u8, 103u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8,
101u8, 100u8, 224u8, 111u8, 114u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8,
101u8, 98u8, 117u8, 103u8, 32u8, 98u8, 117u8, 102u8, 102u8, 101u8, 114u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 82u8, 80u8, 67u8, 32u8, 99u8, 108u8, 105u8, 101u8, 110u8, 116u8,
115u8, 46u8, 4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8,
91u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8,
99u8, 115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8,
111u8, 47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8,
118u8, 101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8,
114u8, 115u8, 41u8, 10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 205u8, 10u8, 8u8, 72u8,
112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 95u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 115u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 16u8,
76u8, 82u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 67u8, 97u8, 108u8, 108u8, 78u8, 111u8,
116u8, 70u8, 111u8, 117u8, 110u8, 100u8, 0u8, 0u8, 4u8, 21u8, 1u8, 84u8, 104u8, 101u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 102u8, 117u8, 110u8, 99u8, 95u8, 105u8, 100u8,
58u8, 32u8, 117u8, 51u8, 50u8, 96u8, 32u8, 100u8, 105u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8,
116u8, 114u8, 97u8, 110u8, 115u8, 108u8, 97u8, 116u8, 101u8, 32u8, 105u8, 110u8, 116u8, 111u8,
32u8, 97u8, 32u8, 107u8, 110u8, 111u8, 119u8, 110u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8,
109u8, 101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8, 84u8, 68u8, 97u8, 116u8, 97u8, 76u8, 101u8,
102u8, 116u8, 65u8, 102u8, 116u8, 101u8, 114u8, 68u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8,
103u8, 0u8, 1u8, 4u8, 212u8, 68u8, 97u8, 116u8, 97u8, 32u8, 108u8, 101u8, 102u8, 116u8, 32u8,
105u8, 110u8, 32u8, 105u8, 110u8, 112u8, 117u8, 116u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8,
100u8, 101u8, 99u8, 111u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 114u8, 103u8, 117u8, 109u8,
101u8, 110u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 46u8,
52u8, 73u8, 110u8, 76u8, 101u8, 110u8, 84u8, 111u8, 111u8, 76u8, 97u8, 114u8, 103u8, 101u8, 0u8,
2u8, 4u8, 45u8, 1u8, 73u8, 110u8, 112u8, 117u8, 116u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
32u8, 112u8, 97u8, 115u8, 115u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 109u8,
97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 119u8, 97u8, 115u8, 32u8, 116u8, 111u8, 111u8, 32u8,
108u8, 97u8, 114u8, 103u8, 101u8, 46u8, 104u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8,
105u8, 97u8, 116u8, 111u8, 114u8, 87u8, 105u8, 116u8, 104u8, 78u8, 111u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 3u8, 8u8, 176u8, 65u8, 32u8, 99u8, 111u8, 110u8, 116u8,
114u8, 97u8, 99u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8, 97u8, 116u8, 116u8, 101u8, 109u8,
112u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 115u8,
116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 101u8, 100u8, 44u8, 13u8, 1u8, 98u8, 117u8, 116u8,
32u8, 110u8, 111u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 119u8,
97u8, 115u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8,
119u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 39u8, 115u8, 32u8, 107u8,
101u8, 121u8, 32u8, 119u8, 105u8, 116u8, 104u8, 46u8, 0u8, 209u8, 10u8, 8u8, 60u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 52u8,
82u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 8u8,
36u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 1u8, 0u8, 28u8, 66u8, 97u8,
108u8, 97u8, 110u8, 99u8, 101u8, 1u8, 24u8, 1u8, 8u8, 44u8, 85u8, 110u8, 114u8, 101u8, 113u8,
117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 4u8, 0u8, 213u8, 10u8, 1u8, 112u8, 79u8, 112u8, 116u8,
105u8, 111u8, 110u8, 60u8, 40u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 44u8,
32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 41u8, 62u8, 0u8, 0u8, 0u8, 36u8, 82u8, 101u8,
113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 4u8, 0u8, 16u8, 1u8, 12u8, 117u8, 51u8, 50u8,
0u8, 1u8, 0u8, 0u8, 213u8, 10u8, 4u8, 24u8, 79u8, 112u8, 116u8, 105u8, 111u8, 110u8, 4u8, 4u8,
84u8, 1u8, 205u8, 8u8, 1u8, 8u8, 16u8, 78u8, 111u8, 110u8, 101u8, 0u8, 0u8, 0u8, 16u8, 83u8,
111u8, 109u8, 101u8, 4u8, 0u8, 205u8, 8u8, 0u8, 0u8, 1u8, 0u8, 0u8, 217u8, 10u8, 16u8, 52u8,
102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 28u8,
115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 44u8, 98u8, 111u8, 117u8, 110u8, 100u8, 101u8,
100u8, 95u8, 118u8, 101u8, 99u8, 40u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 86u8,
101u8, 99u8, 8u8, 4u8, 84u8, 1u8, 8u8, 4u8, 83u8, 0u8, 0u8, 4u8, 0u8, 40u8, 1u8, 24u8, 86u8,
101u8, 99u8, 60u8, 84u8, 62u8, 0u8, 0u8, 221u8, 10u8, 12u8, 60u8, 112u8, 97u8, 108u8, 108u8,
101u8, 116u8, 95u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 24u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8,
24u8, 32u8, 84u8, 111u8, 111u8, 76u8, 97u8, 114u8, 103u8, 101u8, 0u8, 0u8, 4u8, 160u8, 80u8,
114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8, 111u8,
32u8, 108u8, 97u8, 114u8, 103u8, 101u8, 32u8, 116u8, 111u8, 32u8, 115u8, 116u8, 111u8, 114u8,
101u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 48u8, 65u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 78u8, 111u8, 116u8, 101u8, 100u8, 0u8, 1u8, 4u8, 164u8, 80u8, 114u8,
101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 108u8, 114u8,
101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 110u8, 111u8, 116u8, 101u8,
100u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 52u8, 78u8, 111u8, 116u8,
65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 0u8, 2u8, 4u8, 200u8, 84u8,
104u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 112u8, 101u8, 114u8, 102u8, 111u8, 114u8, 109u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 78u8, 111u8, 116u8, 78u8, 111u8, 116u8,
101u8, 100u8, 0u8, 3u8, 4u8, 252u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8,
97u8, 103u8, 101u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8, 32u8, 105u8,
116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 121u8, 101u8, 116u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 110u8, 111u8, 116u8, 101u8, 100u8, 46u8, 36u8, 82u8, 101u8,
113u8, 117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 0u8, 4u8, 4u8, 9u8, 1u8, 65u8, 32u8, 112u8,
114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 109u8, 97u8, 121u8, 32u8, 110u8, 111u8,
116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 97u8, 114u8, 101u8, 32u8,
111u8, 117u8, 116u8, 115u8, 116u8, 97u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 114u8, 101u8,
113u8, 117u8, 101u8, 115u8, 116u8, 115u8, 46u8, 48u8, 78u8, 111u8, 116u8, 82u8, 101u8, 113u8,
117u8, 101u8, 115u8, 116u8, 101u8, 100u8, 0u8, 5u8, 4u8, 45u8, 1u8, 84u8, 104u8, 101u8, 32u8,
112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8,
115u8, 116u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8, 32u8, 110u8,
111u8, 32u8, 111u8, 117u8, 116u8, 115u8, 116u8, 97u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8,
114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 115u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
46u8, 4u8, 173u8, 1u8, 10u8, 9u8, 9u8, 9u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 91u8,
100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 32u8, 101u8, 114u8, 114u8, 111u8, 114u8,
115u8, 93u8, 40u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8, 47u8, 47u8, 100u8, 111u8, 99u8,
115u8, 46u8, 115u8, 117u8, 98u8, 115u8, 116u8, 114u8, 97u8, 116u8, 101u8, 46u8, 105u8, 111u8,
47u8, 118u8, 51u8, 47u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 47u8, 101u8, 118u8,
101u8, 110u8, 116u8, 115u8, 45u8, 97u8, 110u8, 100u8, 45u8, 101u8, 114u8, 114u8, 111u8, 114u8,
115u8, 41u8, 10u8, 9u8, 9u8, 9u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 10u8, 9u8, 9u8, 9u8, 225u8, 10u8, 8u8, 68u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 95u8, 116u8, 101u8, 115u8, 116u8, 95u8, 117u8, 116u8, 105u8, 108u8,
115u8, 20u8, 69u8, 114u8, 114u8, 111u8, 114u8, 4u8, 4u8, 84u8, 0u8, 1u8, 0u8, 0u8, 229u8, 10u8,
16u8, 40u8, 115u8, 112u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 28u8, 103u8,
101u8, 110u8, 101u8, 114u8, 105u8, 99u8, 76u8, 117u8, 110u8, 99u8, 104u8, 101u8, 99u8, 107u8,
101u8, 100u8, 95u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 72u8, 85u8,
110u8, 99u8, 104u8, 101u8, 99u8, 107u8, 101u8, 100u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8,
115u8, 105u8, 99u8, 16u8, 28u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 1u8, 65u8, 5u8,
16u8, 67u8, 97u8, 108u8, 108u8, 1u8, 201u8, 5u8, 36u8, 83u8, 105u8, 103u8, 110u8, 97u8, 116u8,
117u8, 114u8, 101u8, 1u8, 213u8, 7u8, 20u8, 69u8, 120u8, 116u8, 114u8, 97u8, 1u8, 233u8, 10u8,
0u8, 4u8, 0u8, 40u8, 0u8, 0u8, 0u8, 233u8, 10u8, 0u8, 0u8, 4u8, 32u8, 237u8, 10u8, 241u8, 10u8,
245u8, 10u8, 249u8, 10u8, 1u8, 11u8, 5u8, 11u8, 13u8, 11u8, 17u8, 11u8, 0u8, 237u8, 10u8, 16u8,
48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 40u8,
101u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 115u8, 72u8, 99u8, 104u8, 101u8,
99u8, 107u8, 95u8, 115u8, 112u8, 101u8, 99u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 64u8, 67u8, 104u8, 101u8, 99u8, 107u8, 83u8, 112u8, 101u8, 99u8, 86u8, 101u8, 114u8,
115u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8, 0u8, 0u8, 0u8, 0u8, 241u8, 10u8, 16u8, 48u8, 102u8,
114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 40u8, 101u8, 120u8,
116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 115u8, 64u8, 99u8, 104u8, 101u8, 99u8, 107u8,
95u8, 116u8, 120u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 56u8, 67u8, 104u8,
101u8, 99u8, 107u8, 84u8, 120u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 4u8, 4u8, 84u8,
0u8, 0u8, 0u8, 0u8, 245u8, 10u8, 16u8, 48u8, 102u8, 114u8, 97u8, 109u8, 101u8, 95u8, 115u8,
121u8, 115u8, 116u8, 101u8, 109u8, 40u8, 101u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8,
110u8, 115u8, 52u8, 99u8, 104u8, 101u8, 99u8, 107u8, 95u8, 103u8, 101u8, 110u8, 101u8, 115u8,
105u8, 115u8, 48u8, 67u8, 104u8, 101u8, 99u8, 107u8, 71u8, 101u8, 110u8, 101u8, 115u8, 105u8,
115u8, 4u8, 4u8, 84u8, 0u8, 0u8, 0u8, 0u8, 249u8, 10u8, 16u8, 48u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 40u8, 101u8, 120u8, 116u8, 101u8, 110u8,
115u8, 105u8, 111u8, 110u8, 115u8, 60u8, 99u8, 104u8, 101u8, 99u8, 107u8, 95u8, 109u8, 111u8,
114u8, 116u8, 97u8, 108u8, 105u8, 116u8, 121u8, 56u8, 67u8, 104u8, 101u8, 99u8, 107u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 105u8, 116u8, 121u8, 4u8, 4u8, 84u8, 0u8, 0u8, 4u8, 0u8, 253u8,
10u8, 1u8, 12u8, 69u8, 114u8, 97u8, 0u8, 0u8, 253u8, 10u8, 16u8, 40u8, 115u8, 112u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 28u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8, 99u8,
12u8, 101u8, 114u8, 97u8, 12u8, 69u8, 114u8, 97u8, 0u8, 1u8, 1u8, 4u8, 32u8, 73u8, 109u8, 109u8,
111u8, 114u8, 116u8, 97u8, 108u8, 0u8, 0u8, 0u8, 28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 1u8, 0u8, 28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 4u8,
0u8, 8u8, 0u8, 0u8, 2u8, 0u8, 28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 51u8, 4u8, 0u8, 8u8,
0u8, 0u8, 3u8, 0u8, 28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8,
4u8, 0u8, 28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 5u8, 0u8,
28u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 6u8, 0u8, 28u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 7u8, 0u8, 28u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 8u8, 0u8, 28u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 9u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 10u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 11u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 12u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 13u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 14u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 15u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 16u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 17u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 18u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 19u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 20u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 21u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 22u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 23u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 24u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 25u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 26u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 27u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 28u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 29u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 30u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 31u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 32u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 33u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 34u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 35u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 36u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 37u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 38u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 51u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 39u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 40u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 41u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 42u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 43u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 44u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 45u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 46u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 47u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 48u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 52u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 49u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 50u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 51u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 52u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 53u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 54u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 55u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 56u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 57u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 58u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 53u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 59u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 60u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 61u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 62u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 63u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 64u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 65u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 66u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 67u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 68u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 54u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 69u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 70u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 71u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 72u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 73u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 74u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 75u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 76u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 77u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 78u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 55u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 79u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 80u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 81u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 82u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 83u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 84u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 85u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 86u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 87u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 88u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 56u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 89u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 90u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 91u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 92u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 93u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 94u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 95u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 96u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 97u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 98u8, 0u8, 32u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 57u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 99u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 48u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 100u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 101u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 102u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 103u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 104u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8,
105u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 54u8, 4u8, 0u8, 8u8, 0u8,
0u8, 106u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 55u8, 4u8, 0u8, 8u8,
0u8, 0u8, 107u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 56u8, 4u8, 0u8,
8u8, 0u8, 0u8, 108u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 48u8, 57u8, 4u8,
0u8, 8u8, 0u8, 0u8, 109u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 49u8, 48u8,
4u8, 0u8, 8u8, 0u8, 0u8, 110u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 49u8,
49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 111u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
49u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 112u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 49u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 113u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 49u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 114u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 49u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 115u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 49u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 116u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 49u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 117u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 49u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 118u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 49u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 119u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 120u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8,
121u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 50u8, 4u8, 0u8, 8u8, 0u8,
0u8, 122u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 51u8, 4u8, 0u8, 8u8,
0u8, 0u8, 123u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 52u8, 4u8, 0u8,
8u8, 0u8, 0u8, 124u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 53u8, 4u8,
0u8, 8u8, 0u8, 0u8, 125u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8, 54u8,
4u8, 0u8, 8u8, 0u8, 0u8, 126u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 50u8,
55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 127u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
50u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 128u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 50u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 129u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 51u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 130u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 51u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 131u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 51u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 132u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 133u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 134u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 135u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 136u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8,
137u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 56u8, 4u8, 0u8, 8u8, 0u8,
0u8, 138u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 51u8, 57u8, 4u8, 0u8, 8u8,
0u8, 0u8, 139u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 52u8, 48u8, 4u8, 0u8,
8u8, 0u8, 0u8, 140u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 52u8, 49u8, 4u8,
0u8, 8u8, 0u8, 0u8, 141u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 52u8, 50u8,
4u8, 0u8, 8u8, 0u8, 0u8, 142u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 52u8,
51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 143u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
52u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 144u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 52u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 145u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 52u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 146u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 52u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 147u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 52u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 148u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 52u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 149u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 150u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 151u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 152u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8,
153u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 52u8, 4u8, 0u8, 8u8, 0u8,
0u8, 154u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 53u8, 4u8, 0u8, 8u8,
0u8, 0u8, 155u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 54u8, 4u8, 0u8,
8u8, 0u8, 0u8, 156u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 55u8, 4u8,
0u8, 8u8, 0u8, 0u8, 157u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8, 56u8,
4u8, 0u8, 8u8, 0u8, 0u8, 158u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 53u8,
57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 159u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
54u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 160u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 54u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 161u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 54u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 162u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 54u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 163u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 54u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 164u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 54u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 165u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 54u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 166u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 54u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 167u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 54u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 168u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 54u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8,
169u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8, 48u8, 4u8, 0u8, 8u8, 0u8,
0u8, 170u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8, 49u8, 4u8, 0u8, 8u8,
0u8, 0u8, 171u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8, 50u8, 4u8, 0u8,
8u8, 0u8, 0u8, 172u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8, 51u8, 4u8,
0u8, 8u8, 0u8, 0u8, 173u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8, 52u8,
4u8, 0u8, 8u8, 0u8, 0u8, 174u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 55u8,
53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 175u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
55u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 176u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 55u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 177u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 55u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 178u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 55u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 179u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 56u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 180u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 181u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 182u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 183u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 184u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8,
185u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 54u8, 4u8, 0u8, 8u8, 0u8,
0u8, 186u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 55u8, 4u8, 0u8, 8u8,
0u8, 0u8, 187u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 56u8, 4u8, 0u8,
8u8, 0u8, 0u8, 188u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 56u8, 57u8, 4u8,
0u8, 8u8, 0u8, 0u8, 189u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 57u8, 48u8,
4u8, 0u8, 8u8, 0u8, 0u8, 190u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 57u8,
49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 191u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8,
57u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 192u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
49u8, 57u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 193u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 49u8, 57u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 194u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 49u8, 57u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 195u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 49u8, 57u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 196u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 49u8, 57u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 197u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 57u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 198u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 49u8, 57u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 199u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 200u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8,
201u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 50u8, 4u8, 0u8, 8u8, 0u8,
0u8, 202u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 51u8, 4u8, 0u8, 8u8,
0u8, 0u8, 203u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 52u8, 4u8, 0u8,
8u8, 0u8, 0u8, 204u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 53u8, 4u8,
0u8, 8u8, 0u8, 0u8, 205u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8, 54u8,
4u8, 0u8, 8u8, 0u8, 0u8, 206u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 48u8,
55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 207u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8,
48u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 208u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
50u8, 48u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 209u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 50u8, 49u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 210u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 50u8, 49u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 211u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 49u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 212u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 213u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 214u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 215u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 216u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8,
217u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 56u8, 4u8, 0u8, 8u8, 0u8,
0u8, 218u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 49u8, 57u8, 4u8, 0u8, 8u8,
0u8, 0u8, 219u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 50u8, 48u8, 4u8, 0u8,
8u8, 0u8, 0u8, 220u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 50u8, 49u8, 4u8,
0u8, 8u8, 0u8, 0u8, 221u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 50u8, 50u8,
4u8, 0u8, 8u8, 0u8, 0u8, 222u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 50u8,
51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 223u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8,
50u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 224u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
50u8, 50u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 225u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 50u8, 50u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 226u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 50u8, 50u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 227u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 50u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 228u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 50u8, 50u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 229u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 230u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 231u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 232u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8,
233u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 52u8, 4u8, 0u8, 8u8, 0u8,
0u8, 234u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 53u8, 4u8, 0u8, 8u8,
0u8, 0u8, 235u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 54u8, 4u8, 0u8,
8u8, 0u8, 0u8, 236u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 55u8, 4u8,
0u8, 8u8, 0u8, 0u8, 237u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8, 56u8,
4u8, 0u8, 8u8, 0u8, 0u8, 238u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 51u8,
57u8, 4u8, 0u8, 8u8, 0u8, 0u8, 239u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8,
52u8, 48u8, 4u8, 0u8, 8u8, 0u8, 0u8, 240u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8,
50u8, 52u8, 49u8, 4u8, 0u8, 8u8, 0u8, 0u8, 241u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8,
108u8, 50u8, 52u8, 50u8, 4u8, 0u8, 8u8, 0u8, 0u8, 242u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8,
97u8, 108u8, 50u8, 52u8, 51u8, 4u8, 0u8, 8u8, 0u8, 0u8, 243u8, 0u8, 36u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 50u8, 52u8, 52u8, 4u8, 0u8, 8u8, 0u8, 0u8, 244u8, 0u8, 36u8, 77u8, 111u8,
114u8, 116u8, 97u8, 108u8, 50u8, 52u8, 53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 245u8, 0u8, 36u8, 77u8,
111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 52u8, 54u8, 4u8, 0u8, 8u8, 0u8, 0u8, 246u8, 0u8, 36u8,
77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 52u8, 55u8, 4u8, 0u8, 8u8, 0u8, 0u8, 247u8, 0u8,
36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 52u8, 56u8, 4u8, 0u8, 8u8, 0u8, 0u8, 248u8,
0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 52u8, 57u8, 4u8, 0u8, 8u8, 0u8, 0u8,
249u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8, 48u8, 4u8, 0u8, 8u8, 0u8,
0u8, 250u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8, 49u8, 4u8, 0u8, 8u8,
0u8, 0u8, 251u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8, 50u8, 4u8, 0u8,
8u8, 0u8, 0u8, 252u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8, 51u8, 4u8,
0u8, 8u8, 0u8, 0u8, 253u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8, 52u8,
4u8, 0u8, 8u8, 0u8, 0u8, 254u8, 0u8, 36u8, 77u8, 111u8, 114u8, 116u8, 97u8, 108u8, 50u8, 53u8,
53u8, 4u8, 0u8, 8u8, 0u8, 0u8, 255u8, 0u8, 0u8, 1u8, 11u8, 16u8, 48u8, 102u8, 114u8, 97u8, 109u8,
101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 40u8, 101u8, 120u8, 116u8, 101u8, 110u8,
115u8, 105u8, 111u8, 110u8, 115u8, 44u8, 99u8, 104u8, 101u8, 99u8, 107u8, 95u8, 110u8, 111u8,
110u8, 99u8, 101u8, 40u8, 67u8, 104u8, 101u8, 99u8, 107u8, 78u8, 111u8, 110u8, 99u8, 101u8, 4u8,
4u8, 84u8, 0u8, 0u8, 4u8, 0u8, 121u8, 4u8, 1u8, 32u8, 84u8, 58u8, 58u8, 73u8, 110u8, 100u8,
101u8, 120u8, 0u8, 0u8, 5u8, 11u8, 12u8, 76u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 95u8, 101u8, 120u8, 116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 115u8, 48u8, 99u8,
104u8, 101u8, 99u8, 107u8, 95u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 44u8, 67u8, 104u8,
101u8, 99u8, 107u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 4u8, 4u8, 84u8, 0u8, 0u8, 4u8, 0u8,
9u8, 11u8, 1u8, 20u8, 67u8, 87u8, 60u8, 84u8, 62u8, 0u8, 0u8, 9u8, 11u8, 16u8, 48u8, 102u8,
114u8, 97u8, 109u8, 101u8, 95u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 40u8, 101u8, 120u8,
116u8, 101u8, 110u8, 115u8, 105u8, 111u8, 110u8, 115u8, 48u8, 99u8, 104u8, 101u8, 99u8, 107u8,
95u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 44u8, 67u8, 104u8, 101u8, 99u8, 107u8, 87u8,
101u8, 105u8, 103u8, 104u8, 116u8, 4u8, 4u8, 84u8, 0u8, 0u8, 0u8, 0u8, 13u8, 11u8, 8u8, 104u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 95u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 96u8, 67u8,
104u8, 97u8, 114u8, 103u8, 101u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 80u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 4u8, 4u8, 84u8, 0u8, 0u8, 4u8, 0u8,
201u8, 1u8, 1u8, 48u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 60u8, 84u8,
62u8, 0u8, 0u8, 17u8, 11u8, 8u8, 72u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 95u8, 112u8,
101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 68u8, 83u8, 116u8, 111u8,
114u8, 101u8, 67u8, 97u8, 108u8, 108u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 4u8,
4u8, 84u8, 0u8, 0u8, 0u8, 0u8, 21u8, 11u8, 12u8, 96u8, 112u8, 111u8, 108u8, 121u8, 109u8, 101u8,
115u8, 104u8, 95u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 95u8, 100u8, 101u8, 118u8,
101u8, 108u8, 111u8, 112u8, 28u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 28u8, 82u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 0u8, 0u8, 0u8, 0u8, 200u8, 24u8, 83u8, 121u8, 115u8,
116u8, 101u8, 109u8, 1u8, 24u8, 83u8, 121u8, 115u8, 116u8, 101u8, 109u8, 64u8, 28u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 1u8, 1u8, 4u8, 2u8, 0u8, 12u8, 65u8, 1u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
4u8, 232u8, 32u8, 84u8, 104u8, 101u8, 32u8, 102u8, 117u8, 108u8, 108u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8,
99u8, 117u8, 108u8, 97u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 73u8,
68u8, 46u8, 56u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 67u8, 111u8,
117u8, 110u8, 116u8, 0u8, 0u8, 16u8, 4u8, 0u8, 4u8, 184u8, 32u8, 84u8, 111u8, 116u8, 97u8, 108u8,
32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 32u8, 99u8, 111u8,
117u8, 110u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 44u8, 66u8,
108u8, 111u8, 99u8, 107u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 1u8, 0u8, 28u8, 96u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 4u8, 136u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 64u8, 65u8, 108u8, 108u8, 69u8,
120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 76u8, 101u8, 110u8, 0u8, 0u8, 16u8,
4u8, 0u8, 4u8, 65u8, 1u8, 32u8, 84u8, 111u8, 116u8, 97u8, 108u8, 32u8, 108u8, 101u8, 110u8,
103u8, 116u8, 104u8, 32u8, 40u8, 105u8, 110u8, 32u8, 98u8, 121u8, 116u8, 101u8, 115u8, 41u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 108u8, 108u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 115u8, 32u8, 112u8, 117u8, 116u8, 32u8, 116u8, 111u8, 103u8, 101u8,
116u8, 104u8, 101u8, 114u8, 44u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8,
36u8, 66u8, 108u8, 111u8, 99u8, 107u8, 72u8, 97u8, 115u8, 104u8, 1u8, 1u8, 4u8, 5u8, 16u8, 36u8,
128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 152u8, 32u8, 77u8,
97u8, 112u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 104u8, 97u8, 115u8, 104u8, 101u8, 115u8, 46u8, 52u8, 69u8, 120u8, 116u8, 114u8, 105u8,
110u8, 115u8, 105u8, 99u8, 68u8, 97u8, 116u8, 97u8, 1u8, 1u8, 4u8, 5u8, 16u8, 40u8, 4u8, 0u8,
4u8, 61u8, 1u8, 32u8, 69u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 32u8,
100u8, 97u8, 116u8, 97u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 40u8,
109u8, 97u8, 112u8, 115u8, 32u8, 97u8, 110u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8,
115u8, 105u8, 99u8, 39u8, 115u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8,
32u8, 105u8, 116u8, 115u8, 32u8, 100u8, 97u8, 116u8, 97u8, 41u8, 46u8, 24u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 9u8, 1u8, 32u8, 84u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8,
32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 101u8, 100u8, 46u8, 32u8, 83u8, 101u8,
116u8, 32u8, 98u8, 121u8, 32u8, 96u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 95u8, 98u8,
108u8, 111u8, 99u8, 107u8, 96u8, 46u8, 40u8, 80u8, 97u8, 114u8, 101u8, 110u8, 116u8, 72u8, 97u8,
115u8, 104u8, 1u8, 0u8, 36u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 4u8, 112u8, 32u8, 72u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 112u8, 114u8, 101u8, 118u8, 105u8, 111u8, 117u8, 115u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 46u8, 24u8, 68u8, 105u8, 103u8, 101u8, 115u8, 116u8, 1u8, 0u8, 44u8, 4u8, 0u8, 4u8, 240u8,
32u8, 68u8, 105u8, 103u8, 101u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
44u8, 32u8, 97u8, 108u8, 115u8, 111u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 104u8, 101u8, 97u8, 100u8,
101u8, 114u8, 46u8, 24u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 1u8, 0u8, 60u8, 4u8, 0u8,
28u8, 160u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 100u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 0u8,
29u8, 1u8, 32u8, 78u8, 79u8, 84u8, 69u8, 58u8, 32u8, 84u8, 104u8, 101u8, 32u8, 105u8, 116u8,
101u8, 109u8, 32u8, 105u8, 115u8, 32u8, 117u8, 110u8, 98u8, 111u8, 117u8, 110u8, 100u8, 32u8,
97u8, 110u8, 100u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 116u8, 104u8, 101u8,
114u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 98u8,
101u8, 32u8, 114u8, 101u8, 97u8, 100u8, 32u8, 111u8, 110u8, 32u8, 99u8, 104u8, 97u8, 105u8,
110u8, 46u8, 208u8, 32u8, 73u8, 116u8, 32u8, 99u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8,
116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 32u8, 105u8, 110u8, 102u8, 108u8, 97u8,
116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 80u8, 111u8, 86u8, 32u8, 115u8, 105u8, 122u8,
101u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 0u8, 45u8,
1u8, 32u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8,
32u8, 108u8, 97u8, 114u8, 103u8, 101u8, 32u8, 105u8, 110u8, 45u8, 109u8, 101u8, 109u8, 111u8,
114u8, 121u8, 32u8, 115u8, 105u8, 122u8, 101u8, 46u8, 32u8, 66u8, 111u8, 120u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 110u8,
111u8, 116u8, 32u8, 103u8, 111u8, 32u8, 111u8, 117u8, 116u8, 45u8, 111u8, 102u8, 45u8, 109u8,
101u8, 109u8, 111u8, 114u8, 121u8, 252u8, 32u8, 106u8, 117u8, 115u8, 116u8, 32u8, 105u8, 110u8,
32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 115u8, 111u8, 109u8, 101u8, 111u8, 110u8, 101u8, 32u8,
115u8, 116u8, 105u8, 108u8, 108u8, 32u8, 114u8, 101u8, 97u8, 100u8, 115u8, 32u8, 116u8, 104u8,
101u8, 109u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 119u8, 105u8, 116u8, 104u8, 105u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 46u8, 40u8,
69u8, 118u8, 101u8, 110u8, 116u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8,
0u8, 0u8, 0u8, 4u8, 184u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 105u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 69u8, 118u8, 101u8, 110u8, 116u8, 115u8, 60u8, 84u8, 62u8,
96u8, 32u8, 108u8, 105u8, 115u8, 116u8, 46u8, 44u8, 69u8, 118u8, 101u8, 110u8, 116u8, 84u8,
111u8, 112u8, 105u8, 99u8, 115u8, 1u8, 1u8, 4u8, 2u8, 36u8, 113u8, 4u8, 4u8, 0u8, 40u8, 37u8,
1u8, 32u8, 77u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8,
101u8, 110u8, 32u8, 97u8, 32u8, 116u8, 111u8, 112u8, 105u8, 99u8, 32u8, 40u8, 114u8, 101u8,
112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 84u8,
58u8, 58u8, 72u8, 97u8, 115u8, 104u8, 41u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 32u8, 118u8,
101u8, 99u8, 116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
101u8, 115u8, 148u8, 32u8, 111u8, 102u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 60u8, 69u8, 118u8, 101u8, 110u8, 116u8,
115u8, 60u8, 84u8, 62u8, 62u8, 96u8, 32u8, 108u8, 105u8, 115u8, 116u8, 46u8, 0u8, 81u8, 1u8,
32u8, 65u8, 108u8, 108u8, 32u8, 116u8, 111u8, 112u8, 105u8, 99u8, 32u8, 118u8, 101u8, 99u8,
116u8, 111u8, 114u8, 115u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 100u8, 101u8, 116u8, 101u8,
114u8, 109u8, 105u8, 110u8, 105u8, 115u8, 116u8, 105u8, 99u8, 32u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 32u8, 108u8, 111u8, 99u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8,
100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 111u8, 112u8, 105u8, 99u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
69u8, 1u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 115u8, 32u8, 108u8, 105u8, 103u8, 104u8,
116u8, 45u8, 99u8, 108u8, 105u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 108u8,
101u8, 118u8, 101u8, 114u8, 97u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 115u8, 116u8, 111u8,
114u8, 97u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 99u8, 107u8, 105u8, 110u8, 103u8, 32u8,
109u8, 101u8, 99u8, 104u8, 97u8, 110u8, 105u8, 115u8, 109u8, 32u8, 97u8, 110u8, 100u8, 228u8,
32u8, 105u8, 110u8, 32u8, 99u8, 97u8, 115u8, 101u8, 32u8, 111u8, 102u8, 32u8, 99u8, 104u8, 97u8,
110u8, 103u8, 101u8, 115u8, 32u8, 102u8, 101u8, 116u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8,
32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8,
115u8, 32u8, 111u8, 102u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 101u8, 115u8, 116u8, 46u8,
0u8, 77u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 104u8,
97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 96u8, 40u8, 84u8,
58u8, 58u8, 66u8, 108u8, 111u8, 99u8, 107u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 44u8, 32u8,
69u8, 118u8, 101u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 41u8, 96u8, 32u8, 98u8,
101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 105u8, 102u8, 32u8, 119u8, 101u8, 32u8, 117u8,
115u8, 101u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 106u8, 117u8, 115u8, 116u8, 77u8,
1u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 69u8, 118u8, 101u8, 110u8, 116u8, 73u8, 110u8, 100u8,
101u8, 120u8, 96u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 99u8, 97u8,
115u8, 101u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 112u8, 105u8,
99u8, 32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8,
99u8, 111u8, 110u8, 116u8, 101u8, 110u8, 116u8, 115u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 1u8, 1u8, 32u8,
110u8, 111u8, 32u8, 110u8, 111u8, 116u8, 105u8, 102u8, 105u8, 99u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 116u8, 114u8, 105u8, 103u8,
103u8, 101u8, 114u8, 101u8, 100u8, 32u8, 116u8, 104u8, 117u8, 115u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 109u8, 105u8, 103u8, 104u8, 116u8, 32u8, 98u8,
101u8, 32u8, 108u8, 111u8, 115u8, 116u8, 46u8, 72u8, 76u8, 97u8, 115u8, 116u8, 82u8, 117u8,
110u8, 116u8, 105u8, 109u8, 101u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 0u8, 0u8,
117u8, 4u8, 4u8, 0u8, 4u8, 85u8, 1u8, 32u8, 83u8, 116u8, 111u8, 114u8, 101u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 95u8, 118u8, 101u8, 114u8, 115u8, 105u8,
111u8, 110u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 115u8, 112u8, 101u8, 99u8, 95u8, 110u8,
97u8, 109u8, 101u8, 96u8, 32u8, 111u8, 102u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8,
101u8, 32u8, 117u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 32u8, 104u8, 97u8, 112u8, 112u8,
101u8, 110u8, 101u8, 100u8, 46u8, 84u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 100u8,
84u8, 111u8, 85u8, 51u8, 50u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8,
21u8, 1u8, 4u8, 0u8, 4u8, 77u8, 1u8, 32u8, 84u8, 114u8, 117u8, 101u8, 32u8, 105u8, 102u8, 32u8,
119u8, 101u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 117u8, 112u8, 103u8, 114u8, 97u8, 100u8,
101u8, 100u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 116u8, 121u8,
112u8, 101u8, 32u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 32u8, 105u8,
115u8, 32u8, 96u8, 117u8, 51u8, 50u8, 96u8, 46u8, 32u8, 70u8, 97u8, 108u8, 115u8, 101u8, 32u8,
40u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 41u8, 32u8, 105u8, 102u8, 32u8, 110u8,
111u8, 116u8, 46u8, 96u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 100u8, 84u8, 111u8,
84u8, 114u8, 105u8, 112u8, 108u8, 101u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8,
1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 8u8, 93u8, 1u8, 32u8, 84u8, 114u8, 117u8, 101u8, 32u8, 105u8,
102u8, 32u8, 119u8, 101u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 117u8, 112u8, 103u8, 114u8,
97u8, 100u8, 101u8, 100u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 65u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 110u8, 102u8, 111u8, 32u8, 99u8, 111u8, 110u8, 116u8,
97u8, 105u8, 110u8, 115u8, 32u8, 116u8, 104u8, 114u8, 101u8, 101u8, 32u8, 116u8, 121u8, 112u8,
101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 96u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8,
116u8, 96u8, 46u8, 32u8, 70u8, 97u8, 108u8, 115u8, 101u8, 72u8, 32u8, 40u8, 100u8, 101u8, 102u8,
97u8, 117u8, 108u8, 116u8, 41u8, 32u8, 105u8, 102u8, 32u8, 110u8, 111u8, 116u8, 46u8, 56u8, 69u8,
120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 80u8, 104u8, 97u8, 115u8, 101u8, 0u8, 0u8,
105u8, 4u8, 4u8, 0u8, 4u8, 136u8, 32u8, 84u8, 104u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8,
117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 112u8, 104u8, 97u8, 115u8, 101u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 1u8, 129u8, 4u8, 1u8,
72u8, 24u8, 48u8, 66u8, 108u8, 111u8, 99u8, 107u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8,
115u8, 145u8, 4u8, 133u8, 1u8, 0u8, 200u8, 23u8, 168u8, 4u8, 0u8, 0u8, 0u8, 0u8, 32u8, 74u8,
169u8, 209u8, 1u8, 0u8, 0u8, 128u8, 54u8, 190u8, 38u8, 0u8, 0u8, 0u8, 0u8, 1u8, 128u8, 145u8,
75u8, 135u8, 46u8, 1u8, 0u8, 0u8, 1u8, 0u8, 152u8, 247u8, 62u8, 93u8, 1u8, 0u8, 0u8, 1u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 128u8, 54u8, 190u8, 38u8, 0u8, 0u8, 0u8, 0u8, 1u8, 128u8,
25u8, 158u8, 241u8, 162u8, 1u8, 0u8, 0u8, 1u8, 0u8, 32u8, 74u8, 169u8, 209u8, 1u8, 0u8, 0u8, 1u8,
0u8, 136u8, 82u8, 106u8, 116u8, 0u8, 0u8, 0u8, 128u8, 54u8, 190u8, 38u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 4u8, 208u8, 32u8, 66u8, 108u8, 111u8, 99u8, 107u8, 32u8, 38u8, 32u8, 101u8, 120u8,
116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 115u8, 58u8, 32u8, 98u8, 97u8, 115u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8,
115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 115u8, 46u8, 44u8,
66u8, 108u8, 111u8, 99u8, 107u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 157u8, 4u8, 48u8, 0u8,
0u8, 120u8, 0u8, 0u8, 0u8, 160u8, 0u8, 0u8, 0u8, 160u8, 0u8, 4u8, 168u8, 32u8, 84u8, 104u8,
101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 108u8, 101u8, 110u8, 103u8,
116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 40u8,
105u8, 110u8, 32u8, 98u8, 121u8, 116u8, 101u8, 115u8, 41u8, 46u8, 56u8, 66u8, 108u8, 111u8, 99u8,
107u8, 72u8, 97u8, 115u8, 104u8, 67u8, 111u8, 117u8, 110u8, 116u8, 16u8, 16u8, 250u8, 0u8, 0u8,
0u8, 4u8, 85u8, 1u8, 32u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 104u8, 97u8, 115u8, 104u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8,
115u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 40u8, 111u8, 108u8, 100u8,
101u8, 115u8, 116u8, 32u8, 112u8, 114u8, 117u8, 110u8, 101u8, 100u8, 32u8, 102u8, 105u8, 114u8,
115u8, 116u8, 41u8, 46u8, 32u8, 68u8, 98u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 165u8, 4u8,
64u8, 128u8, 240u8, 250u8, 2u8, 0u8, 0u8, 0u8, 0u8, 0u8, 194u8, 235u8, 11u8, 0u8, 0u8, 0u8, 0u8,
4u8, 9u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8,
111u8, 102u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 32u8, 100u8, 97u8, 116u8,
97u8, 98u8, 97u8, 115u8, 101u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8,
32u8, 99u8, 97u8, 110u8, 32u8, 105u8, 110u8, 118u8, 111u8, 107u8, 101u8, 46u8, 28u8, 86u8, 101u8,
114u8, 115u8, 105u8, 111u8, 110u8, 169u8, 4u8, 65u8, 4u8, 48u8, 112u8, 111u8, 108u8, 121u8,
109u8, 101u8, 115u8, 104u8, 95u8, 100u8, 101u8, 118u8, 48u8, 112u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 95u8, 100u8, 101u8, 118u8, 1u8, 0u8, 0u8, 0u8, 66u8, 75u8, 76u8, 0u8, 0u8,
0u8, 0u8, 0u8, 76u8, 223u8, 106u8, 203u8, 104u8, 153u8, 7u8, 96u8, 155u8, 4u8, 0u8, 0u8, 0u8,
55u8, 227u8, 151u8, 252u8, 124u8, 145u8, 245u8, 228u8, 1u8, 0u8, 0u8, 0u8, 64u8, 254u8, 58u8,
212u8, 1u8, 248u8, 149u8, 154u8, 6u8, 0u8, 0u8, 0u8, 210u8, 188u8, 152u8, 151u8, 238u8, 208u8,
143u8, 21u8, 3u8, 0u8, 0u8, 0u8, 247u8, 139u8, 39u8, 139u8, 229u8, 63u8, 69u8, 76u8, 2u8, 0u8,
0u8, 0u8, 237u8, 153u8, 197u8, 172u8, 178u8, 94u8, 237u8, 245u8, 3u8, 0u8, 0u8, 0u8, 203u8,
202u8, 37u8, 227u8, 159u8, 20u8, 35u8, 135u8, 2u8, 0u8, 0u8, 0u8, 104u8, 122u8, 212u8, 74u8,
211u8, 127u8, 3u8, 194u8, 1u8, 0u8, 0u8, 0u8, 188u8, 157u8, 137u8, 144u8, 79u8, 91u8, 146u8,
63u8, 1u8, 0u8, 0u8, 0u8, 104u8, 182u8, 107u8, 161u8, 34u8, 201u8, 63u8, 167u8, 1u8, 0u8, 0u8,
0u8, 55u8, 200u8, 187u8, 19u8, 80u8, 169u8, 162u8, 168u8, 1u8, 0u8, 0u8, 0u8, 171u8, 60u8, 5u8,
114u8, 41u8, 31u8, 235u8, 139u8, 1u8, 0u8, 0u8, 0u8, 24u8, 239u8, 88u8, 163u8, 182u8, 123u8,
167u8, 112u8, 1u8, 0u8, 0u8, 0u8, 50u8, 147u8, 66u8, 153u8, 71u8, 115u8, 4u8, 127u8, 1u8, 0u8,
0u8, 0u8, 0u8, 26u8, 11u8, 41u8, 241u8, 125u8, 1u8, 244u8, 1u8, 0u8, 0u8, 0u8, 242u8, 142u8,
128u8, 128u8, 182u8, 226u8, 223u8, 208u8, 2u8, 0u8, 0u8, 0u8, 187u8, 107u8, 169u8, 5u8, 60u8,
92u8, 157u8, 120u8, 2u8, 0u8, 0u8, 0u8, 159u8, 36u8, 44u8, 44u8, 136u8, 111u8, 63u8, 206u8, 1u8,
0u8, 0u8, 0u8, 89u8, 90u8, 195u8, 76u8, 94u8, 161u8, 245u8, 254u8, 1u8, 0u8, 0u8, 0u8, 3u8, 0u8,
0u8, 0u8, 1u8, 4u8, 132u8, 32u8, 71u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
104u8, 97u8, 105u8, 110u8, 39u8, 115u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 40u8, 83u8, 83u8, 53u8, 56u8, 80u8,
114u8, 101u8, 102u8, 105u8, 120u8, 57u8, 3u8, 8u8, 42u8, 0u8, 20u8, 168u8, 32u8, 84u8, 104u8,
101u8, 32u8, 100u8, 101u8, 115u8, 105u8, 103u8, 110u8, 97u8, 116u8, 101u8, 100u8, 32u8, 83u8,
83u8, 56u8, 53u8, 32u8, 112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 0u8, 57u8, 1u8, 32u8,
84u8, 104u8, 105u8, 115u8, 32u8, 114u8, 101u8, 112u8, 108u8, 97u8, 99u8, 101u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 34u8, 115u8, 115u8, 53u8, 56u8, 70u8, 111u8, 114u8, 109u8, 97u8,
116u8, 34u8, 32u8, 112u8, 114u8, 111u8, 112u8, 101u8, 114u8, 116u8, 121u8, 32u8, 100u8, 101u8,
99u8, 108u8, 97u8, 114u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 115u8, 112u8, 101u8, 99u8, 46u8, 32u8, 82u8, 101u8, 97u8,
115u8, 111u8, 110u8, 32u8, 105u8, 115u8, 49u8, 1u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 32u8, 115u8, 104u8, 111u8,
117u8, 108u8, 100u8, 32u8, 107u8, 110u8, 111u8, 119u8, 32u8, 97u8, 98u8, 111u8, 117u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 102u8, 105u8, 120u8, 32u8, 105u8, 110u8,
32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 109u8, 97u8, 107u8, 101u8,
32u8, 117u8, 115u8, 101u8, 32u8, 111u8, 102u8, 32u8, 105u8, 116u8, 32u8, 97u8, 115u8, 112u8,
32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 1u8,
189u8, 4u8, 0u8, 16u8, 66u8, 97u8, 98u8, 101u8, 1u8, 16u8, 66u8, 97u8, 98u8, 101u8, 64u8, 40u8,
69u8, 112u8, 111u8, 99u8, 104u8, 73u8, 110u8, 100u8, 101u8, 120u8, 1u8, 0u8, 32u8, 32u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 84u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8,
44u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8, 1u8, 0u8,
193u8, 4u8, 4u8, 0u8, 4u8, 108u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
105u8, 101u8, 115u8, 46u8, 44u8, 71u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 83u8, 108u8,
111u8, 116u8, 1u8, 0u8, 209u8, 4u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 248u8,
32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 108u8, 111u8, 116u8, 32u8, 97u8, 116u8, 32u8, 119u8,
104u8, 105u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8,
32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 108u8,
121u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 46u8, 32u8, 84u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 48u8, 144u8, 32u8, 117u8, 110u8, 116u8, 105u8, 108u8, 32u8,
116u8, 104u8, 101u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8,
46u8, 44u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 83u8, 108u8, 111u8, 116u8, 1u8, 0u8,
209u8, 4u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 84u8, 32u8, 67u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 32u8, 115u8, 108u8, 111u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 46u8, 40u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8, 110u8, 101u8, 115u8, 115u8,
1u8, 0u8, 4u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 40u8, 184u8,
32u8, 84u8, 104u8, 101u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 114u8, 97u8, 110u8,
100u8, 111u8, 109u8, 110u8, 101u8, 115u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 42u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 42u8, 32u8, 101u8, 112u8,
111u8, 99u8, 104u8, 46u8, 0u8, 44u8, 32u8, 35u8, 32u8, 83u8, 101u8, 99u8, 117u8, 114u8, 105u8,
116u8, 121u8, 0u8, 5u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 77u8, 85u8, 83u8, 84u8, 32u8,
78u8, 79u8, 84u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 103u8, 97u8, 109u8, 98u8, 108u8, 105u8, 110u8, 103u8, 44u8, 32u8, 97u8, 115u8, 32u8, 105u8,
116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 102u8, 108u8, 117u8,
101u8, 110u8, 99u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 248u8, 32u8, 109u8, 97u8, 108u8,
105u8, 99u8, 105u8, 111u8, 117u8, 115u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 104u8, 111u8, 114u8,
116u8, 32u8, 116u8, 101u8, 114u8, 109u8, 46u8, 32u8, 73u8, 116u8, 32u8, 77u8, 65u8, 89u8, 32u8,
98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 109u8, 97u8, 110u8,
121u8, 21u8, 1u8, 32u8, 99u8, 114u8, 121u8, 112u8, 116u8, 111u8, 103u8, 114u8, 97u8, 112u8,
104u8, 105u8, 99u8, 32u8, 112u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 115u8, 44u8,
32u8, 104u8, 111u8, 119u8, 101u8, 118u8, 101u8, 114u8, 44u8, 32u8, 115u8, 111u8, 32u8, 108u8,
111u8, 110u8, 103u8, 32u8, 97u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 114u8, 101u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
105u8, 115u8, 21u8, 1u8, 32u8, 40u8, 108u8, 105u8, 107u8, 101u8, 32u8, 101u8, 118u8, 101u8,
114u8, 121u8, 116u8, 104u8, 105u8, 110u8, 103u8, 32u8, 101u8, 108u8, 115u8, 101u8, 32u8, 111u8,
110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 41u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8,
112u8, 117u8, 98u8, 108u8, 105u8, 99u8, 46u8, 32u8, 70u8, 111u8, 114u8, 32u8, 101u8, 120u8, 97u8,
109u8, 112u8, 108u8, 101u8, 44u8, 32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8,
5u8, 1u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 97u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 110u8, 101u8, 101u8,
100u8, 101u8, 100u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8,
116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 104u8,
111u8, 115u8, 101u8, 110u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 13u8, 1u8, 32u8, 97u8, 100u8,
118u8, 101u8, 114u8, 115u8, 97u8, 114u8, 121u8, 44u8, 32u8, 102u8, 111u8, 114u8, 32u8, 112u8,
117u8, 114u8, 112u8, 111u8, 115u8, 101u8, 115u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 97u8,
115u8, 32u8, 112u8, 117u8, 98u8, 108u8, 105u8, 99u8, 45u8, 99u8, 111u8, 105u8, 110u8, 32u8,
122u8, 101u8, 114u8, 111u8, 45u8, 107u8, 110u8, 111u8, 119u8, 108u8, 101u8, 100u8, 103u8, 101u8,
32u8, 112u8, 114u8, 111u8, 111u8, 102u8, 115u8, 46u8, 96u8, 80u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 69u8, 112u8, 111u8, 99u8, 104u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 67u8,
104u8, 97u8, 110u8, 103u8, 101u8, 0u8, 0u8, 213u8, 4u8, 4u8, 0u8, 4u8, 97u8, 1u8, 32u8, 80u8,
101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 99u8,
111u8, 110u8, 102u8, 105u8, 103u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8,
104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 98u8, 101u8, 32u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8,
112u8, 111u8, 99u8, 104u8, 32u8, 105u8, 115u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 101u8,
100u8, 46u8, 56u8, 78u8, 101u8, 120u8, 116u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8, 110u8,
101u8, 115u8, 115u8, 1u8, 0u8, 4u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 4u8, 92u8, 32u8, 78u8, 101u8, 120u8, 116u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8,
32u8, 114u8, 97u8, 110u8, 100u8, 111u8, 109u8, 110u8, 101u8, 115u8, 115u8, 46u8, 60u8, 78u8,
101u8, 120u8, 116u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8,
1u8, 0u8, 193u8, 4u8, 4u8, 0u8, 4u8, 96u8, 32u8, 78u8, 101u8, 120u8, 116u8, 32u8, 101u8, 112u8,
111u8, 99u8, 104u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8,
115u8, 46u8, 48u8, 83u8, 101u8, 103u8, 109u8, 101u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8,
120u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 36u8, 124u8, 32u8, 82u8, 97u8, 110u8, 100u8,
111u8, 109u8, 110u8, 101u8, 115u8, 115u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 99u8,
111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 248u8,
32u8, 87u8, 101u8, 32u8, 109u8, 97u8, 107u8, 101u8, 32u8, 97u8, 32u8, 116u8, 114u8, 97u8, 100u8,
101u8, 45u8, 111u8, 102u8, 102u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8, 32u8,
115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 97u8, 99u8, 99u8, 101u8, 115u8, 115u8,
101u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 46u8, 1u8, 1u8, 32u8, 87u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 45u8, 99u8, 111u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 114u8, 97u8, 110u8,
100u8, 111u8, 109u8, 110u8, 101u8, 115u8, 115u8, 32u8, 105u8, 110u8, 32u8, 115u8, 101u8, 103u8,
109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 117u8, 112u8, 32u8, 116u8, 111u8,
148u8, 32u8, 96u8, 85u8, 78u8, 68u8, 69u8, 82u8, 95u8, 67u8, 79u8, 78u8, 83u8, 84u8, 82u8, 85u8,
67u8, 84u8, 73u8, 79u8, 78u8, 95u8, 83u8, 69u8, 71u8, 77u8, 69u8, 78u8, 84u8, 95u8, 76u8, 69u8,
78u8, 71u8, 84u8, 72u8, 96u8, 46u8, 0u8, 236u8, 32u8, 79u8, 110u8, 99u8, 101u8, 32u8, 97u8, 32u8,
115u8, 101u8, 103u8, 109u8, 101u8, 110u8, 116u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8,
115u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8, 104u8, 44u8,
32u8, 119u8, 101u8, 32u8, 98u8, 101u8, 103u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 101u8, 120u8, 116u8, 32u8, 111u8, 110u8, 101u8, 46u8, 9u8, 1u8, 32u8, 87u8, 101u8, 32u8,
114u8, 101u8, 115u8, 101u8, 116u8, 32u8, 97u8, 108u8, 108u8, 32u8, 115u8, 101u8, 103u8, 109u8,
101u8, 110u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8,
110u8, 32u8, 116u8, 111u8, 32u8, 96u8, 48u8, 96u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 98u8, 101u8, 103u8, 105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8,
101u8, 118u8, 101u8, 114u8, 121u8, 28u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 46u8, 68u8,
85u8, 110u8, 100u8, 101u8, 114u8, 67u8, 111u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 1u8, 1u8, 4u8, 5u8, 16u8, 225u8, 4u8, 4u8, 0u8, 4u8, 21u8, 1u8, 32u8, 84u8,
87u8, 79u8, 88u8, 45u8, 78u8, 79u8, 84u8, 69u8, 58u8, 32u8, 96u8, 83u8, 101u8, 103u8, 109u8,
101u8, 110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8,
110u8, 32u8, 105u8, 110u8, 99u8, 114u8, 101u8, 97u8, 115u8, 105u8, 110u8, 103u8, 32u8, 105u8,
110u8, 116u8, 101u8, 103u8, 101u8, 114u8, 44u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 111u8, 107u8, 97u8, 121u8, 46u8, 44u8, 73u8, 110u8, 105u8,
116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 100u8, 0u8, 0u8, 233u8, 4u8, 4u8, 0u8, 8u8, 1u8,
1u8, 32u8, 84u8, 101u8, 109u8, 112u8, 111u8, 114u8, 97u8, 114u8, 121u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 32u8, 40u8, 99u8, 108u8, 101u8, 97u8, 114u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8,
98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 102u8, 105u8, 110u8, 97u8, 108u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 41u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 115u8,
32u8, 96u8, 83u8, 111u8, 109u8, 101u8, 96u8, 29u8, 1u8, 32u8, 105u8, 102u8, 32u8, 112u8, 101u8,
114u8, 45u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8,
108u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8,
108u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 99u8, 97u8,
108u8, 108u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 76u8, 65u8, 117u8, 116u8, 104u8,
111u8, 114u8, 86u8, 114u8, 102u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8, 110u8, 101u8, 115u8,
115u8, 1u8, 0u8, 233u8, 4u8, 4u8, 0u8, 16u8, 21u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8,
102u8, 105u8, 101u8, 108u8, 100u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 97u8,
108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 98u8, 101u8, 32u8, 112u8, 111u8, 112u8, 117u8, 108u8,
97u8, 116u8, 101u8, 100u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8, 103u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 32u8, 112u8, 114u8, 111u8, 99u8, 101u8, 115u8, 115u8, 105u8, 110u8, 103u8,
32u8, 117u8, 110u8, 108u8, 101u8, 115u8, 115u8, 25u8, 1u8, 32u8, 115u8, 101u8, 99u8, 111u8,
110u8, 100u8, 97u8, 114u8, 121u8, 32u8, 112u8, 108u8, 97u8, 105u8, 110u8, 32u8, 115u8, 108u8,
111u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8,
100u8, 32u8, 40u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 100u8, 111u8, 110u8, 39u8, 116u8,
32u8, 99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 32u8, 97u8, 32u8, 86u8, 82u8, 70u8, 32u8,
111u8, 117u8, 116u8, 112u8, 117u8, 116u8, 41u8, 46u8, 0u8, 81u8, 1u8, 32u8, 73u8, 116u8, 32u8,
105u8, 115u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 110u8, 32u8, 96u8, 111u8, 110u8, 95u8,
105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 96u8, 44u8, 32u8, 98u8,
101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
99u8, 111u8, 110u8, 116u8, 97u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8,
97u8, 115u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 40u8, 69u8, 112u8, 111u8, 99u8,
104u8, 83u8, 116u8, 97u8, 114u8, 116u8, 1u8, 0u8, 153u8, 3u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 20u8, 93u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 104u8, 97u8,
118u8, 101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 44u8, 32u8, 114u8, 101u8,
115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 108u8, 121u8, 32u8, 96u8, 78u8, 45u8,
49u8, 96u8, 32u8, 97u8, 110u8, 100u8, 20u8, 32u8, 96u8, 78u8, 96u8, 46u8, 73u8, 1u8, 32u8, 78u8,
79u8, 84u8, 69u8, 58u8, 32u8, 87u8, 101u8, 32u8, 116u8, 114u8, 97u8, 99u8, 107u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8,
114u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 110u8, 111u8, 116u8, 97u8, 116u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 112u8, 111u8, 111u8, 108u8, 32u8, 111u8, 102u8, 89u8, 1u8, 32u8, 101u8, 110u8,
116u8, 114u8, 111u8, 112u8, 121u8, 32u8, 119u8, 97u8, 115u8, 32u8, 102u8, 105u8, 120u8, 101u8,
100u8, 32u8, 40u8, 105u8, 46u8, 101u8, 46u8, 32u8, 105u8, 116u8, 32u8, 119u8, 97u8, 115u8, 32u8,
107u8, 110u8, 111u8, 119u8, 110u8, 32u8, 116u8, 111u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8,
32u8, 111u8, 98u8, 115u8, 101u8, 114u8, 118u8, 101u8, 114u8, 115u8, 41u8, 46u8, 32u8, 83u8,
105u8, 110u8, 99u8, 101u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 115u8, 32u8, 97u8, 114u8,
101u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 105u8, 110u8, 89u8, 1u8,
32u8, 115u8, 108u8, 111u8, 116u8, 115u8, 44u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8,
44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 109u8, 97u8, 121u8, 32u8, 110u8, 111u8, 116u8, 32u8,
108u8, 105u8, 110u8, 101u8, 32u8, 117u8, 112u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8,
104u8, 101u8, 32u8, 115u8, 108u8, 111u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
115u8, 46u8, 32u8, 76u8, 97u8, 116u8, 101u8, 110u8, 101u8, 115u8, 115u8, 1u8, 0u8, 16u8, 16u8,
0u8, 0u8, 0u8, 0u8, 20u8, 216u8, 32u8, 72u8, 111u8, 119u8, 32u8, 108u8, 97u8, 116u8, 101u8, 32u8,
116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 32u8, 105u8, 115u8, 32u8, 99u8, 111u8, 109u8, 112u8, 97u8, 114u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8, 115u8, 32u8, 112u8, 97u8, 114u8, 101u8, 110u8,
116u8, 46u8, 0u8, 21u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 101u8, 110u8, 116u8, 114u8,
121u8, 32u8, 105u8, 115u8, 32u8, 112u8, 111u8, 112u8, 117u8, 108u8, 97u8, 116u8, 101u8, 100u8,
32u8, 97u8, 115u8, 32u8, 112u8, 97u8, 114u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
110u8, 100u8, 32u8, 105u8, 115u8, 32u8, 99u8, 108u8, 101u8, 97u8, 110u8, 101u8, 100u8, 32u8,
117u8, 112u8, 17u8, 1u8, 32u8, 111u8, 110u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 102u8,
105u8, 110u8, 97u8, 108u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 81u8,
117u8, 101u8, 114u8, 121u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 101u8, 110u8, 116u8, 114u8, 121u8, 32u8, 111u8,
117u8, 116u8, 115u8, 105u8, 100u8, 101u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 176u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8,
111u8, 110u8, 116u8, 101u8, 120u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8,
97u8, 108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 121u8, 105u8, 101u8, 108u8, 100u8, 32u8, 122u8,
101u8, 114u8, 111u8, 46u8, 44u8, 69u8, 112u8, 111u8, 99u8, 104u8, 67u8, 111u8, 110u8, 102u8,
105u8, 103u8, 0u8, 0u8, 237u8, 4u8, 4u8, 0u8, 8u8, 97u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8,
99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 46u8, 32u8, 83u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 98u8, 101u8, 32u8, 96u8, 78u8, 111u8,
110u8, 101u8, 96u8, 32u8, 97u8, 115u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 105u8,
110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 100u8, 32u8, 105u8, 110u8, 36u8,
32u8, 103u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 46u8, 60u8, 78u8, 101u8, 120u8, 116u8,
69u8, 112u8, 111u8, 99u8, 104u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 0u8, 0u8, 237u8, 4u8,
4u8, 0u8, 8u8, 45u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 102u8, 105u8,
103u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 44u8,
32u8, 96u8, 78u8, 111u8, 110u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 110u8, 111u8,
116u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 232u8, 32u8, 40u8, 121u8, 111u8, 117u8,
32u8, 99u8, 97u8, 110u8, 32u8, 102u8, 97u8, 108u8, 108u8, 98u8, 97u8, 99u8, 107u8, 32u8, 116u8,
111u8, 32u8, 96u8, 69u8, 112u8, 111u8, 99u8, 104u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8,
96u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 115u8, 101u8, 41u8, 46u8, 1u8, 241u8, 4u8, 0u8, 12u8, 52u8,
69u8, 112u8, 111u8, 99u8, 104u8, 68u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
32u8, 44u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 12u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 105u8, 109u8, 101u8, 44u8,
32u8, 105u8, 110u8, 32u8, 115u8, 108u8, 111u8, 116u8, 115u8, 44u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 115u8,
104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 108u8, 97u8, 115u8, 116u8, 46u8, 25u8, 1u8, 32u8, 78u8,
79u8, 84u8, 69u8, 58u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8,
105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 112u8, 111u8, 115u8, 115u8,
105u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 112u8, 111u8, 99u8, 104u8, 32u8, 100u8, 117u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 33u8, 1u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 104u8, 97u8, 115u8, 32u8, 115u8,
116u8, 97u8, 114u8, 116u8, 101u8, 100u8, 46u8, 32u8, 65u8, 116u8, 116u8, 101u8, 109u8, 112u8,
116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 100u8, 111u8, 32u8, 115u8, 111u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 114u8, 105u8, 99u8, 107u8, 32u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 112u8, 114u8, 111u8, 100u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
68u8, 69u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 66u8, 108u8, 111u8, 99u8, 107u8,
84u8, 105u8, 109u8, 101u8, 32u8, 32u8, 112u8, 23u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 20u8, 5u8, 1u8,
32u8, 84u8, 104u8, 101u8, 32u8, 101u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8,
97u8, 118u8, 101u8, 114u8, 97u8, 103u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8,
116u8, 105u8, 109u8, 101u8, 32u8, 97u8, 116u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
66u8, 65u8, 66u8, 69u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8,
99u8, 114u8, 101u8, 97u8, 116u8, 105u8, 110u8, 103u8, 17u8, 1u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 115u8, 46u8, 32u8, 83u8, 105u8, 110u8, 99u8, 101u8, 32u8, 66u8, 65u8, 66u8, 69u8, 32u8,
105u8, 115u8, 32u8, 112u8, 114u8, 111u8, 98u8, 97u8, 98u8, 105u8, 108u8, 105u8, 115u8, 116u8,
105u8, 99u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8,
114u8, 105u8, 118u8, 105u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 102u8, 105u8, 103u8, 117u8,
114u8, 101u8, 32u8, 111u8, 117u8, 116u8, 5u8, 1u8, 32u8, 119u8, 104u8, 97u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 120u8, 112u8, 101u8, 99u8, 116u8, 101u8, 100u8, 32u8, 97u8, 118u8,
101u8, 114u8, 97u8, 103u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 116u8, 105u8,
109u8, 101u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 98u8,
97u8, 115u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 108u8,
111u8, 116u8, 9u8, 1u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 99u8, 117u8, 114u8, 105u8, 116u8,
121u8, 32u8, 112u8, 97u8, 114u8, 97u8, 109u8, 101u8, 116u8, 101u8, 114u8, 32u8, 96u8, 99u8, 96u8,
32u8, 40u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 96u8, 49u8, 32u8, 45u8, 32u8, 99u8, 96u8,
32u8, 114u8, 101u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 115u8, 160u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 114u8, 111u8, 98u8, 97u8, 98u8, 105u8, 108u8, 105u8, 116u8, 121u8,
32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 108u8, 111u8, 116u8, 32u8, 98u8, 101u8, 105u8,
110u8, 103u8, 32u8, 101u8, 109u8, 112u8, 116u8, 121u8, 41u8, 46u8, 56u8, 77u8, 97u8, 120u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8, 16u8, 16u8, 160u8, 134u8,
1u8, 0u8, 4u8, 136u8, 32u8, 77u8, 97u8, 120u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8,
115u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 1u8, 5u8, 5u8, 1u8, 36u8, 84u8,
105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 1u8, 36u8, 84u8, 105u8, 109u8, 101u8,
115u8, 116u8, 97u8, 109u8, 112u8, 8u8, 12u8, 78u8, 111u8, 119u8, 1u8, 0u8, 32u8, 32u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 144u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8,
36u8, 68u8, 105u8, 100u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8,
4u8, 180u8, 32u8, 68u8, 105u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 109u8,
101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 32u8, 103u8, 101u8, 116u8, 32u8, 117u8, 112u8, 100u8,
97u8, 116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 98u8,
108u8, 111u8, 99u8, 107u8, 63u8, 1u8, 9u8, 5u8, 0u8, 4u8, 52u8, 77u8, 105u8, 110u8, 105u8, 109u8,
117u8, 109u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 32u8, 184u8, 11u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 16u8, 77u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 105u8, 110u8, 105u8,
109u8, 117u8, 109u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8, 98u8, 101u8, 116u8,
119u8, 101u8, 101u8, 110u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 46u8, 32u8, 66u8,
101u8, 119u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 42u8, 101u8, 120u8, 112u8, 101u8, 99u8,
116u8, 101u8, 100u8, 42u8, 93u8, 1u8, 32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 112u8, 114u8, 111u8, 100u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 112u8,
112u8, 97u8, 114u8, 97u8, 116u8, 117u8, 115u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8, 100u8,
101u8, 115u8, 46u8, 32u8, 89u8, 111u8, 117u8, 114u8, 32u8, 99u8, 104u8, 111u8, 115u8, 101u8,
110u8, 32u8, 99u8, 111u8, 110u8, 115u8, 101u8, 110u8, 115u8, 117u8, 115u8, 32u8, 115u8, 121u8,
115u8, 116u8, 101u8, 109u8, 32u8, 119u8, 105u8, 108u8, 108u8, 93u8, 1u8, 32u8, 103u8, 101u8,
110u8, 101u8, 114u8, 97u8, 108u8, 108u8, 121u8, 32u8, 119u8, 111u8, 114u8, 107u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8,
116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 32u8, 97u8, 32u8, 115u8, 101u8, 110u8, 115u8,
105u8, 98u8, 108u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 116u8, 105u8, 109u8,
101u8, 46u8, 32u8, 101u8, 46u8, 103u8, 46u8, 32u8, 70u8, 111u8, 114u8, 32u8, 65u8, 117u8, 114u8,
97u8, 44u8, 32u8, 105u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 160u8, 32u8,
100u8, 111u8, 117u8, 98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 112u8, 101u8,
114u8, 105u8, 111u8, 100u8, 32u8, 111u8, 110u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 115u8, 101u8, 116u8, 116u8, 105u8, 110u8, 103u8, 115u8, 46u8, 0u8, 2u8, 28u8, 73u8,
110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 1u8, 28u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8,
115u8, 4u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 0u8, 1u8, 4u8, 2u8, 16u8,
17u8, 5u8, 4u8, 0u8, 4u8, 136u8, 32u8, 84u8, 104u8, 101u8, 32u8, 108u8, 111u8, 111u8, 107u8,
117u8, 112u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8,
116u8, 111u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 1u8, 21u8, 5u8, 1u8,
108u8, 4u8, 28u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 24u8, 64u8, 64u8, 66u8, 15u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 172u8, 32u8, 84u8, 104u8,
101u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 110u8, 101u8, 101u8, 100u8,
101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 114u8, 101u8, 115u8, 101u8, 114u8, 118u8, 105u8,
110u8, 103u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 1u8, 25u8, 5u8,
3u8, 40u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8, 1u8, 40u8, 65u8,
117u8, 116u8, 104u8, 111u8, 114u8, 115u8, 104u8, 105u8, 112u8, 12u8, 24u8, 85u8, 110u8, 99u8,
108u8, 101u8, 115u8, 1u8, 0u8, 29u8, 5u8, 4u8, 0u8, 4u8, 28u8, 32u8, 85u8, 110u8, 99u8, 108u8,
101u8, 115u8, 24u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 0u8, 0u8, 0u8, 4u8, 0u8, 4u8, 100u8,
32u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 48u8, 68u8, 105u8,
100u8, 83u8, 101u8, 116u8, 85u8, 110u8, 99u8, 108u8, 101u8, 115u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8,
4u8, 188u8, 32u8, 87u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 117u8, 110u8, 99u8,
108u8, 101u8, 115u8, 32u8, 119u8, 101u8, 114u8, 101u8, 32u8, 97u8, 108u8, 114u8, 101u8, 97u8,
100u8, 121u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8,
32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 1u8, 37u8, 5u8, 0u8, 4u8, 64u8, 85u8, 110u8, 99u8,
108u8, 101u8, 71u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 16u8,
16u8, 0u8, 0u8, 0u8, 0u8, 12u8, 204u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8, 98u8, 97u8,
99u8, 107u8, 32u8, 119u8, 101u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 97u8,
99u8, 99u8, 101u8, 112u8, 116u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 115u8, 46u8, 228u8,
32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 109u8, 101u8, 97u8, 110u8, 115u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 119u8, 101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 100u8, 101u8, 97u8,
108u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 117u8, 110u8, 99u8, 108u8, 101u8, 45u8, 112u8,
97u8, 114u8, 101u8, 110u8, 116u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8,
101u8, 148u8, 32u8, 96u8, 85u8, 110u8, 99u8, 108u8, 101u8, 71u8, 101u8, 110u8, 101u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 43u8, 32u8, 49u8, 96u8, 32u8, 98u8, 101u8, 102u8,
111u8, 114u8, 101u8, 32u8, 96u8, 110u8, 111u8, 119u8, 96u8, 46u8, 1u8, 45u8, 5u8, 4u8, 32u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 1u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 115u8, 8u8, 52u8, 84u8, 111u8, 116u8, 97u8, 108u8, 73u8, 115u8, 115u8, 117u8, 97u8,
110u8, 99u8, 101u8, 1u8, 0u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 152u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8,
108u8, 32u8, 117u8, 110u8, 105u8, 116u8, 115u8, 32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 100u8,
32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8,
46u8, 20u8, 76u8, 111u8, 99u8, 107u8, 115u8, 1u8, 1u8, 4u8, 2u8, 0u8, 49u8, 5u8, 4u8, 0u8, 8u8,
184u8, 32u8, 65u8, 110u8, 121u8, 32u8, 108u8, 105u8, 113u8, 117u8, 105u8, 100u8, 105u8, 116u8,
121u8, 32u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8, 111u8, 110u8, 32u8, 115u8, 111u8, 109u8,
101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 115u8, 46u8, 37u8, 1u8, 32u8, 78u8, 79u8, 84u8, 69u8, 58u8, 32u8, 83u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8, 32u8, 97u8,
99u8, 99u8, 101u8, 115u8, 115u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 115u8,
101u8, 116u8, 116u8, 105u8, 110u8, 103u8, 44u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 105u8,
110u8, 103u8, 32u8, 97u8, 110u8, 100u8, 32u8, 102u8, 114u8, 101u8, 101u8, 105u8, 110u8, 103u8,
32u8, 97u8, 32u8, 108u8, 111u8, 99u8, 107u8, 46u8, 1u8, 61u8, 5u8, 1u8, 112u8, 4u8, 72u8, 69u8,
120u8, 105u8, 115u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 68u8, 101u8, 112u8, 111u8,
115u8, 105u8, 116u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 4u8, 212u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8,
117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 114u8, 101u8, 113u8, 117u8,
105u8, 114u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 97u8,
110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 112u8, 101u8, 110u8,
46u8, 1u8, 69u8, 5u8, 5u8, 72u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8,
111u8, 110u8, 80u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 1u8, 72u8, 84u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 80u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8,
8u8, 68u8, 78u8, 101u8, 120u8, 116u8, 70u8, 101u8, 101u8, 77u8, 117u8, 108u8, 116u8, 105u8,
112u8, 108u8, 105u8, 101u8, 114u8, 1u8, 0u8, 73u8, 5u8, 64u8, 0u8, 0u8, 100u8, 167u8, 179u8,
182u8, 224u8, 13u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 56u8, 83u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 77u8, 5u8, 4u8,
0u8, 0u8, 0u8, 0u8, 8u8, 72u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 66u8, 121u8, 116u8, 101u8, 70u8, 101u8, 101u8, 24u8, 64u8, 100u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 13u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8,
102u8, 101u8, 101u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 112u8, 97u8, 105u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 109u8, 97u8, 107u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8,
116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 59u8, 32u8, 116u8,
104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 45u8, 98u8, 121u8, 116u8, 101u8, 32u8, 112u8, 111u8,
114u8, 116u8, 105u8, 111u8, 110u8, 46u8, 44u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 84u8,
111u8, 70u8, 101u8, 101u8, 81u8, 5u8, 92u8, 4u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 73u8, 180u8, 0u8, 0u8, 0u8, 1u8, 4u8, 13u8, 1u8, 32u8, 84u8,
104u8, 101u8, 32u8, 112u8, 111u8, 108u8, 121u8, 110u8, 111u8, 109u8, 105u8, 97u8, 108u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8,
100u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8,
100u8, 101u8, 114u8, 105u8, 118u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 46u8, 0u8, 6u8, 32u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 1u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 60u8, 40u8, 68u8, 105u8, 100u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 115u8, 0u8, 1u8,
4u8, 6u8, 120u8, 89u8, 5u8, 4u8, 0u8, 4u8, 84u8, 32u8, 68u8, 73u8, 68u8, 32u8, 45u8, 62u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 105u8, 110u8, 102u8, 111u8, 44u8,
73u8, 115u8, 68u8, 105u8, 100u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 1u8, 1u8, 4u8, 6u8,
120u8, 21u8, 1u8, 4u8, 0u8, 4u8, 228u8, 32u8, 68u8, 73u8, 68u8, 32u8, 45u8, 62u8, 32u8, 98u8,
111u8, 111u8, 108u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 110u8, 100u8, 105u8, 99u8,
97u8, 116u8, 101u8, 115u8, 32u8, 105u8, 102u8, 32u8, 115u8, 101u8, 99u8, 111u8, 110u8, 100u8,
97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 102u8,
114u8, 111u8, 122u8, 101u8, 110u8, 46u8, 40u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
68u8, 105u8, 100u8, 0u8, 0u8, 120u8, 4u8, 0u8, 4u8, 224u8, 32u8, 73u8, 116u8, 32u8, 115u8, 116u8,
111u8, 114u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 102u8, 111u8,
114u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 48u8, 67u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 80u8, 97u8, 121u8, 101u8, 114u8, 0u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 1u8, 32u8,
73u8, 116u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 103u8, 97u8, 115u8, 32u8, 102u8, 101u8,
101u8, 32u8, 112u8, 97u8, 121u8, 101u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8,
115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 24u8, 67u8, 108u8, 97u8, 105u8, 109u8, 115u8, 1u8,
1u8, 8u8, 5u8, 2u8, 93u8, 5u8, 236u8, 200u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 10u8, 4u8, 240u8, 32u8, 40u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8, 73u8, 68u8,
44u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 32u8, 116u8, 121u8, 112u8, 101u8, 41u8, 32u8, 40u8,
105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 44u8, 115u8, 99u8, 111u8, 112u8, 101u8, 41u8, 32u8,
45u8, 62u8, 32u8, 65u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8,
108u8, 97u8, 105u8, 109u8, 115u8, 40u8, 75u8, 101u8, 121u8, 82u8, 101u8, 99u8, 111u8, 114u8,
100u8, 115u8, 0u8, 1u8, 4u8, 5u8, 0u8, 109u8, 5u8, 4u8, 0u8, 4u8, 69u8, 1u8, 32u8, 77u8, 97u8,
112u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8,
73u8, 100u8, 32u8, 116u8, 111u8, 32u8, 96u8, 75u8, 101u8, 121u8, 82u8, 101u8, 99u8, 111u8, 114u8,
100u8, 96u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 111u8, 108u8, 100u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 107u8, 101u8, 121u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 32u8, 97u8, 110u8, 100u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 46u8, 28u8, 68u8, 105u8, 100u8, 75u8, 101u8, 121u8,
115u8, 1u8, 1u8, 8u8, 6u8, 5u8, 113u8, 5u8, 21u8, 1u8, 4u8, 0u8, 4u8, 1u8, 1u8, 32u8, 65u8, 32u8,
114u8, 101u8, 118u8, 101u8, 114u8, 115u8, 101u8, 32u8, 100u8, 111u8, 117u8, 98u8, 108u8, 101u8,
32u8, 109u8, 97u8, 112u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8,
102u8, 105u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 97u8, 108u8, 108u8, 32u8, 107u8, 101u8,
121u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 46u8, 68u8, 77u8, 117u8, 108u8, 116u8, 105u8, 80u8, 117u8, 114u8,
112u8, 111u8, 115u8, 101u8, 78u8, 111u8, 110u8, 99u8, 101u8, 1u8, 0u8, 32u8, 32u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 188u8, 32u8, 78u8, 111u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8,
32u8, 101u8, 110u8, 115u8, 117u8, 114u8, 101u8, 32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8,
32u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 32u8, 115u8, 116u8, 97u8, 114u8,
116u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 49u8, 46u8, 104u8, 79u8, 102u8, 102u8,
67u8, 104u8, 97u8, 105u8, 110u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 78u8, 111u8, 110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 6u8, 120u8, 32u8,
32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 200u8, 32u8, 65u8, 117u8, 116u8, 104u8, 111u8,
114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 110u8, 111u8, 110u8, 99u8, 101u8,
32u8, 112u8, 101u8, 114u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8,
32u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 105u8, 115u8, 32u8,
48u8, 46u8, 56u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8,
111u8, 110u8, 115u8, 0u8, 1u8, 8u8, 2u8, 5u8, 117u8, 5u8, 121u8, 5u8, 4u8, 0u8, 4u8, 176u8, 32u8,
65u8, 108u8, 108u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 110u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 47u8, 107u8, 101u8, 121u8, 32u8, 104u8, 97u8,
115u8, 76u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 71u8, 105u8, 118u8, 101u8, 110u8, 1u8, 1u8, 8u8, 6u8, 5u8, 125u8, 5u8, 105u8, 1u8,
132u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 77u8, 1u8, 32u8,
65u8, 108u8, 108u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 110u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 104u8, 97u8, 115u8, 32u8, 103u8, 105u8,
118u8, 101u8, 110u8, 46u8, 32u8, 40u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8,
101u8, 114u8, 44u8, 32u8, 97u8, 117u8, 116u8, 104u8, 95u8, 105u8, 100u8, 32u8, 45u8, 62u8, 32u8,
97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 101u8, 100u8, 41u8, 108u8, 67u8, 100u8,
100u8, 65u8, 117u8, 116u8, 104u8, 70u8, 111u8, 114u8, 77u8, 97u8, 115u8, 116u8, 101u8, 114u8,
75u8, 101u8, 121u8, 82u8, 111u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 1u8, 0u8, 21u8, 1u8,
4u8, 0u8, 8u8, 101u8, 1u8, 32u8, 79u8, 98u8, 115u8, 111u8, 108u8, 101u8, 116u8, 101u8, 100u8,
32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 97u8, 114u8, 105u8, 97u8,
98u8, 108u8, 101u8, 32u8, 115u8, 117u8, 112u8, 101u8, 114u8, 99u8, 101u8, 100u8, 101u8, 100u8,
32u8, 98u8, 121u8, 32u8, 96u8, 67u8, 100u8, 100u8, 65u8, 117u8, 116u8, 104u8, 70u8, 111u8, 114u8,
80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 82u8, 111u8, 116u8, 97u8,
116u8, 105u8, 111u8, 110u8, 96u8, 46u8, 32u8, 73u8, 116u8, 32u8, 105u8, 115u8, 32u8, 107u8,
101u8, 112u8, 116u8, 32u8, 104u8, 101u8, 114u8, 101u8, 152u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 112u8, 117u8, 114u8, 112u8, 111u8, 115u8, 101u8, 32u8, 111u8, 102u8,
32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 105u8, 103u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 46u8, 112u8, 67u8, 100u8, 100u8, 65u8, 117u8, 116u8, 104u8, 70u8,
111u8, 114u8, 80u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 75u8, 101u8, 121u8, 82u8, 111u8,
116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 8u8, 93u8, 1u8, 32u8,
65u8, 32u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 32u8, 102u8, 108u8, 97u8, 103u8, 32u8,
116u8, 104u8, 97u8, 116u8, 44u8, 32u8, 105u8, 102u8, 32u8, 115u8, 101u8, 116u8, 44u8, 32u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8,
117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 97u8, 32u8, 67u8, 68u8, 68u8, 32u8, 112u8, 114u8, 111u8, 118u8, 105u8,
100u8, 101u8, 114u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 32u8, 116u8,
111u8, 156u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 105u8, 109u8, 97u8, 114u8, 121u8, 32u8, 107u8, 101u8, 121u8, 32u8, 111u8, 102u8,
32u8, 97u8, 110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 56u8,
83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
1u8, 0u8, 129u8, 5u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 72u8, 65u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 75u8, 101u8, 121u8, 82u8, 101u8, 102u8, 67u8, 111u8, 117u8, 110u8, 116u8,
1u8, 1u8, 4u8, 2u8, 0u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 28u8, 196u8, 32u8,
72u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 34u8, 115u8, 116u8, 114u8, 111u8,
110u8, 103u8, 34u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 115u8,
32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 107u8, 101u8, 121u8, 46u8, 0u8, 252u8, 32u8, 83u8, 116u8, 114u8, 111u8, 110u8,
103u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 115u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 32u8, 107u8, 101u8,
121u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 108u8, 101u8, 97u8, 118u8, 105u8, 110u8, 103u8,
32u8, 105u8, 116u8, 39u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8,
46u8, 0u8, 204u8, 32u8, 80u8, 97u8, 108u8, 108u8, 101u8, 116u8, 115u8, 32u8, 117u8, 115u8, 105u8,
110u8, 103u8, 32u8, 34u8, 115u8, 116u8, 114u8, 111u8, 110u8, 103u8, 34u8, 32u8, 114u8, 101u8,
102u8, 101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 99u8,
99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 107u8, 101u8, 121u8, 115u8, 58u8, 172u8, 32u8, 42u8,
32u8, 82u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 58u8, 32u8, 70u8, 111u8, 114u8, 32u8, 96u8,
117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8,
96u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8, 96u8, 0u8, 1u8, 133u8,
5u8, 1u8, 136u8, 4u8, 48u8, 73u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 80u8, 79u8, 76u8,
89u8, 88u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 1u8, 181u8, 5u8, 7u8, 76u8, 67u8, 100u8, 100u8, 83u8, 101u8, 114u8, 118u8, 105u8,
99u8, 101u8, 80u8, 114u8, 111u8, 118u8, 105u8, 100u8, 101u8, 114u8, 115u8, 1u8, 56u8, 73u8,
110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 50u8, 71u8, 114u8, 111u8, 117u8, 112u8, 12u8,
52u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8,
0u8, 33u8, 1u8, 4u8, 0u8, 4u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 115u8, 116u8, 111u8,
114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8,
114u8, 101u8, 100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 60u8, 73u8, 110u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8, 185u8, 5u8, 4u8, 0u8, 4u8,
244u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
34u8, 105u8, 110u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8,
100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 101u8,
100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 72u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8,
0u8, 0u8, 0u8, 4u8, 196u8, 32u8, 76u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8,
104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8,
101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 46u8, 1u8, 193u8, 5u8, 1u8,
25u8, 1u8, 0u8, 1u8, 197u8, 5u8, 8u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 1u8, 72u8, 73u8, 110u8,
115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 49u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 36u8, 36u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 1u8, 0u8,
109u8, 4u8, 4u8, 0u8, 4u8, 144u8, 32u8, 84u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8,
101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 46u8, 40u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 79u8, 102u8, 0u8, 1u8, 4u8, 6u8, 36u8,
201u8, 5u8, 4u8, 0u8, 4u8, 136u8, 32u8, 65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 24u8, 86u8, 111u8,
116u8, 105u8, 110u8, 103u8, 0u8, 1u8, 4u8, 6u8, 36u8, 65u8, 8u8, 4u8, 0u8, 4u8, 212u8, 32u8,
80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 86u8, 111u8, 116u8, 101u8, 115u8, 32u8,
111u8, 110u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 44u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8, 105u8,
115u8, 32u8, 111u8, 110u8, 103u8, 111u8, 105u8, 110u8, 103u8, 46u8, 52u8, 80u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8,
0u8, 0u8, 0u8, 4u8, 72u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8,
32u8, 115u8, 111u8, 32u8, 102u8, 97u8, 114u8, 46u8, 28u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 1u8, 0u8, 33u8, 1u8, 4u8, 0u8, 4u8, 152u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 46u8, 52u8, 86u8, 111u8, 116u8, 101u8, 84u8, 104u8, 114u8, 101u8, 115u8, 104u8,
111u8, 108u8, 100u8, 1u8, 0u8, 153u8, 3u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8,
128u8, 32u8, 86u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8,
108u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8,
111u8, 118u8, 97u8, 108u8, 46u8, 72u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 67u8,
111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 0u8, 0u8, 120u8, 4u8, 0u8,
4u8, 84u8, 32u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8,
100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 48u8, 69u8, 120u8, 112u8, 105u8, 114u8,
101u8, 115u8, 65u8, 102u8, 116u8, 101u8, 114u8, 1u8, 0u8, 53u8, 1u8, 4u8, 1u8, 4u8, 164u8, 32u8,
84u8, 105u8, 109u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8,
99u8, 104u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
119u8, 105u8, 108u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 56u8, 83u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8,
0u8, 69u8, 8u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 205u8, 5u8, 1u8, 37u8, 1u8, 0u8, 1u8,
73u8, 8u8, 9u8, 76u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 1u8, 56u8, 73u8, 110u8, 115u8, 116u8,
97u8, 110u8, 99u8, 101u8, 49u8, 71u8, 114u8, 111u8, 117u8, 112u8, 12u8, 52u8, 65u8, 99u8, 116u8,
105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8, 33u8, 1u8, 4u8,
0u8, 4u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 34u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8,
97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8,
86u8, 101u8, 99u8, 46u8, 60u8, 73u8, 110u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8,
109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8, 185u8, 5u8, 4u8, 0u8, 4u8, 244u8, 32u8, 84u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 34u8, 105u8, 110u8, 97u8,
99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
104u8, 105u8, 112u8, 44u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8,
32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 86u8, 101u8,
99u8, 46u8, 72u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 196u8,
32u8, 76u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8,
109u8, 97u8, 110u8, 121u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 99u8,
97u8, 110u8, 32u8, 98u8, 101u8, 46u8, 1u8, 209u8, 5u8, 1u8, 57u8, 1u8, 0u8, 1u8, 77u8, 8u8, 10u8,
72u8, 84u8, 101u8, 99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 1u8, 72u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8,
101u8, 51u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 36u8, 36u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 1u8, 0u8, 109u8, 4u8, 4u8, 0u8, 4u8,
144u8, 32u8, 84u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 101u8, 115u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 46u8, 40u8, 80u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 79u8, 102u8, 0u8, 1u8, 4u8, 6u8, 36u8, 201u8, 5u8, 4u8, 0u8, 4u8,
136u8, 32u8, 65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 24u8, 86u8, 111u8, 116u8, 105u8, 110u8, 103u8, 0u8,
1u8, 4u8, 6u8, 36u8, 65u8, 8u8, 4u8, 0u8, 4u8, 212u8, 32u8, 80u8, 111u8, 108u8, 121u8, 109u8,
101u8, 115u8, 104u8, 86u8, 111u8, 116u8, 101u8, 115u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
44u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 111u8, 110u8, 103u8,
111u8, 105u8, 110u8, 103u8, 46u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 72u8, 32u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 115u8, 111u8, 32u8, 102u8,
97u8, 114u8, 46u8, 28u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8, 33u8, 1u8, 4u8,
0u8, 4u8, 152u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 52u8, 86u8,
111u8, 116u8, 101u8, 84u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 1u8, 0u8,
153u8, 3u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 128u8, 32u8, 86u8, 111u8, 116u8,
101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 102u8, 111u8,
114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 97u8, 108u8, 46u8, 72u8,
82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8,
97u8, 116u8, 111u8, 114u8, 0u8, 0u8, 120u8, 4u8, 0u8, 4u8, 84u8, 32u8, 82u8, 101u8, 108u8, 101u8,
97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 46u8, 48u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 65u8, 102u8, 116u8, 101u8,
114u8, 1u8, 0u8, 53u8, 1u8, 4u8, 1u8, 4u8, 164u8, 32u8, 84u8, 105u8, 109u8, 101u8, 32u8, 97u8,
102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 97u8, 32u8, 112u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 101u8,
120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 69u8, 8u8, 4u8, 0u8, 4u8, 68u8, 32u8,
83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 46u8, 1u8, 213u8, 5u8, 1u8, 65u8, 1u8, 0u8, 1u8, 81u8, 8u8, 11u8, 112u8, 84u8, 101u8,
99u8, 104u8, 110u8, 105u8, 99u8, 97u8, 108u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8,
101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 1u8, 56u8,
73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 51u8, 71u8, 114u8, 111u8, 117u8, 112u8,
12u8, 52u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8,
115u8, 1u8, 0u8, 33u8, 1u8, 4u8, 0u8, 4u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8,
32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 115u8,
116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8,
100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 60u8, 73u8, 110u8, 97u8, 99u8,
116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8, 185u8, 5u8,
4u8, 0u8, 4u8, 244u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8,
116u8, 32u8, 34u8, 105u8, 110u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8,
101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8, 115u8, 116u8, 111u8,
114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8,
114u8, 101u8, 100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 72u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8,
77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8, 116u8, 1u8, 0u8, 16u8,
16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 196u8, 32u8, 76u8, 105u8, 109u8, 105u8, 116u8, 32u8, 111u8, 102u8,
32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8,
118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 116u8, 104u8,
101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 46u8, 1u8, 217u8, 5u8, 1u8,
73u8, 1u8, 0u8, 1u8, 85u8, 8u8, 12u8, 64u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8,
111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 1u8, 72u8, 73u8, 110u8, 115u8, 116u8,
97u8, 110u8, 99u8, 101u8, 52u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
36u8, 36u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 1u8, 0u8, 109u8, 4u8,
4u8, 0u8, 4u8, 144u8, 32u8, 84u8, 104u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 101u8, 115u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 46u8, 40u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 79u8, 102u8, 0u8, 1u8, 4u8, 6u8, 36u8, 201u8, 5u8, 4u8,
0u8, 4u8, 136u8, 32u8, 65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 24u8, 86u8, 111u8, 116u8, 105u8, 110u8,
103u8, 0u8, 1u8, 4u8, 6u8, 36u8, 65u8, 8u8, 4u8, 0u8, 4u8, 212u8, 32u8, 80u8, 111u8, 108u8,
121u8, 109u8, 101u8, 115u8, 104u8, 86u8, 111u8, 116u8, 101u8, 115u8, 32u8, 111u8, 110u8, 32u8,
97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 44u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 111u8,
110u8, 103u8, 111u8, 105u8, 110u8, 103u8, 46u8, 52u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8,
72u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 115u8, 111u8,
32u8, 102u8, 97u8, 114u8, 46u8, 28u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 1u8, 0u8,
33u8, 1u8, 4u8, 0u8, 4u8, 152u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8,
46u8, 52u8, 86u8, 111u8, 116u8, 101u8, 84u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8,
100u8, 1u8, 0u8, 153u8, 3u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 128u8, 32u8,
86u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8,
97u8, 108u8, 46u8, 72u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 67u8, 111u8, 111u8,
114u8, 100u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 0u8, 0u8, 120u8, 4u8, 0u8, 4u8, 84u8,
32u8, 82u8, 101u8, 108u8, 101u8, 97u8, 115u8, 101u8, 32u8, 99u8, 111u8, 111u8, 114u8, 100u8,
105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 46u8, 48u8, 69u8, 120u8, 112u8, 105u8, 114u8, 101u8,
115u8, 65u8, 102u8, 116u8, 101u8, 114u8, 1u8, 0u8, 53u8, 1u8, 4u8, 1u8, 4u8, 164u8, 32u8, 84u8,
105u8, 109u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8,
104u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 119u8,
105u8, 108u8, 108u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 46u8, 56u8, 83u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 69u8,
8u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8,
101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 221u8, 5u8, 1u8, 81u8, 1u8, 0u8, 1u8, 89u8,
8u8, 13u8, 104u8, 85u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 67u8, 111u8, 109u8, 109u8,
105u8, 116u8, 116u8, 101u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8,
112u8, 1u8, 56u8, 73u8, 110u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8, 52u8, 71u8, 114u8, 111u8,
117u8, 112u8, 12u8, 52u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8,
101u8, 114u8, 115u8, 1u8, 0u8, 33u8, 1u8, 4u8, 0u8, 4u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 34u8, 97u8, 99u8, 116u8, 105u8, 118u8,
101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8,
32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8,
111u8, 114u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 60u8, 73u8,
110u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8,
1u8, 0u8, 185u8, 5u8, 4u8, 0u8, 4u8, 244u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 32u8, 34u8, 105u8, 110u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8,
34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 44u8, 32u8,
115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 110u8, 32u8, 111u8,
114u8, 100u8, 101u8, 114u8, 101u8, 100u8, 32u8, 86u8, 101u8, 99u8, 46u8, 72u8, 65u8, 99u8, 116u8,
105u8, 118u8, 101u8, 77u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 76u8, 105u8, 109u8, 105u8,
116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 196u8, 32u8, 76u8, 105u8, 109u8, 105u8,
116u8, 32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8,
34u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 34u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8,
114u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8,
101u8, 46u8, 1u8, 225u8, 5u8, 1u8, 89u8, 1u8, 0u8, 1u8, 93u8, 8u8, 14u8, 32u8, 77u8, 117u8,
108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 1u8, 32u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8,
105u8, 103u8, 48u8, 52u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 78u8, 111u8,
110u8, 99u8, 101u8, 1u8, 0u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 33u8, 1u8,
32u8, 78u8, 111u8, 110u8, 99u8, 101u8, 32u8, 116u8, 111u8, 32u8, 101u8, 110u8, 115u8, 117u8,
114u8, 101u8, 32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 32u8, 77u8, 117u8, 108u8, 116u8,
105u8, 83u8, 105u8, 103u8, 32u8, 97u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 101u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 100u8,
59u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
49u8, 46u8, 60u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 83u8, 105u8, 103u8,
110u8, 101u8, 114u8, 115u8, 1u8, 1u8, 8u8, 6u8, 5u8, 97u8, 8u8, 105u8, 1u8, 132u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 212u8, 32u8, 83u8, 105u8, 103u8,
110u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8,
105u8, 115u8, 105u8, 103u8, 46u8, 32u8, 40u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 41u8, 32u8, 61u8, 62u8, 32u8, 115u8,
105u8, 103u8, 110u8, 101u8, 114u8, 46u8, 60u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 79u8,
102u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 1u8, 1u8, 4u8, 6u8, 0u8, 32u8, 32u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 204u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 97u8, 112u8, 112u8, 114u8, 111u8, 118u8, 101u8, 100u8, 47u8, 97u8,
99u8, 99u8, 101u8, 112u8, 116u8, 101u8, 100u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8,
115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8,
103u8, 46u8, 84u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8, 103u8, 83u8, 105u8, 103u8,
110u8, 115u8, 82u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 1u8, 1u8, 4u8, 6u8, 0u8,
32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 224u8, 32u8, 67u8, 111u8, 110u8, 102u8,
105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8,
105u8, 114u8, 101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 112u8, 114u8,
111u8, 99u8, 101u8, 115u8, 115u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 116u8, 120u8, 46u8, 56u8, 77u8, 117u8, 108u8, 116u8,
105u8, 83u8, 105u8, 103u8, 84u8, 120u8, 68u8, 111u8, 110u8, 101u8, 1u8, 1u8, 4u8, 6u8, 0u8, 32u8,
32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 53u8, 1u8, 32u8, 78u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 115u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8,
105u8, 110u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 46u8,
32u8, 85u8, 115u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 116u8, 120u8, 32u8, 105u8, 100u8, 59u8,
32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 48u8,
46u8, 36u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 0u8, 1u8, 4u8, 5u8,
101u8, 8u8, 201u8, 5u8, 4u8, 0u8, 4u8, 117u8, 1u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 115u8, 32u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8,
102u8, 111u8, 114u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8,
97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 40u8, 109u8, 117u8,
108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8,
97u8, 108u8, 32u8, 105u8, 100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 79u8, 112u8, 116u8, 105u8, 111u8,
110u8, 60u8, 84u8, 58u8, 58u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 62u8, 46u8,
44u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 73u8, 100u8, 115u8, 0u8, 1u8, 8u8,
6u8, 2u8, 105u8, 8u8, 32u8, 4u8, 0u8, 4u8, 148u8, 32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 112u8,
105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 73u8, 68u8,
115u8, 46u8, 20u8, 86u8, 111u8, 116u8, 101u8, 115u8, 1u8, 1u8, 4u8, 5u8, 109u8, 8u8, 21u8, 1u8,
4u8, 0u8, 4u8, 37u8, 1u8, 32u8, 73u8, 110u8, 100u8, 105u8, 118u8, 105u8, 100u8, 117u8, 97u8,
108u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 115u8, 105u8, 103u8,
110u8, 101u8, 114u8, 32u8, 118u8, 111u8, 116u8, 101u8, 115u8, 46u8, 32u8, 40u8, 109u8, 117u8,
108u8, 116u8, 105u8, 32u8, 115u8, 105u8, 103u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8,
114u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 41u8, 32u8, 61u8, 62u8,
32u8, 118u8, 111u8, 116u8, 101u8, 46u8, 72u8, 77u8, 117u8, 108u8, 116u8, 105u8, 83u8, 105u8,
103u8, 84u8, 111u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 1u8, 1u8, 4u8, 6u8,
0u8, 120u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 164u8,
32u8, 77u8, 97u8, 112u8, 115u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 115u8,
105u8, 103u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8,
105u8, 116u8, 115u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 56u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8,
1u8, 1u8, 4u8, 5u8, 101u8, 8u8, 113u8, 8u8, 76u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 124u8, 32u8, 68u8, 101u8, 116u8, 97u8,
105u8, 108u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8,
115u8, 105u8, 103u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 72u8, 84u8,
114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 86u8, 101u8, 114u8, 115u8,
105u8, 111u8, 110u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 244u8, 32u8, 84u8, 104u8,
101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 44u8, 32u8,
117u8, 115u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 111u8, 110u8, 95u8, 114u8,
117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 95u8, 117u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8,
96u8, 46u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8,
105u8, 111u8, 110u8, 1u8, 0u8, 121u8, 8u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 229u8, 5u8,
1u8, 97u8, 1u8, 0u8, 1u8, 125u8, 8u8, 15u8, 24u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 1u8,
24u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 40u8, 40u8, 67u8, 111u8, 110u8, 116u8, 114u8,
111u8, 108u8, 108u8, 101u8, 114u8, 1u8, 0u8, 0u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 12u8, 65u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 117u8, 108u8,
116u8, 105u8, 115u8, 105u8, 103u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8,
99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 46u8, 32u8, 84u8, 104u8,
101u8, 32u8, 103u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 32u8, 115u8, 105u8, 103u8, 110u8,
101u8, 114u8, 115u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 32u8, 116u8, 104u8, 101u8,
105u8, 114u8, 69u8, 1u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 122u8, 97u8,
116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 114u8, 101u8, 32u8,
97u8, 98u8, 108u8, 101u8, 32u8, 116u8, 111u8, 32u8, 103u8, 101u8, 116u8, 32u8, 116u8, 104u8,
101u8, 105u8, 114u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8,
100u8, 101u8, 108u8, 105u8, 118u8, 101u8, 114u8, 101u8, 100u8, 46u8, 32u8, 84u8, 104u8, 101u8,
32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 111u8,
114u8, 156u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 115u8, 32u8, 115u8,
111u8, 109u8, 101u8, 32u8, 80u8, 79u8, 76u8, 89u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
105u8, 114u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 60u8, 66u8,
114u8, 105u8, 100u8, 103u8, 101u8, 84u8, 120u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8,
1u8, 1u8, 8u8, 2u8, 2u8, 129u8, 8u8, 133u8, 8u8, 212u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 89u8, 1u8, 32u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 32u8, 111u8, 102u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 105u8, 100u8, 101u8,
110u8, 116u8, 105u8, 102u8, 105u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 112u8,
97u8, 105u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8,
99u8, 105u8, 112u8, 105u8, 101u8, 110u8, 116u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 104u8, 32u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 110u8, 111u8, 110u8, 99u8, 101u8, 46u8, 20u8, 65u8, 100u8, 109u8, 105u8, 110u8, 1u8,
0u8, 0u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 60u8, 32u8,
84u8, 104u8, 101u8, 32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 32u8, 107u8, 101u8, 121u8, 46u8,
24u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 4u8, 188u8, 32u8,
87u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 111u8, 112u8,
101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 102u8, 114u8, 111u8,
122u8, 101u8, 110u8, 46u8, 48u8, 70u8, 114u8, 101u8, 101u8, 122u8, 101u8, 65u8, 100u8, 109u8,
105u8, 110u8, 115u8, 1u8, 1u8, 4u8, 2u8, 0u8, 21u8, 1u8, 4u8, 0u8, 4u8, 9u8, 1u8, 32u8, 70u8,
114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 97u8,
100u8, 109u8, 105u8, 110u8, 115u8, 46u8, 32u8, 32u8, 84u8, 104u8, 101u8, 115u8, 101u8, 32u8,
97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 111u8, 110u8,
108u8, 121u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 46u8, 32u8, 84u8, 105u8, 109u8, 101u8, 108u8, 111u8,
99u8, 107u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 8u8, 61u8, 1u8, 32u8, 84u8, 104u8, 101u8,
32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8,
99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 105u8, 109u8, 101u8, 108u8, 111u8, 99u8, 107u8,
32u8, 112u8, 101u8, 114u8, 105u8, 111u8, 100u8, 44u8, 32u8, 105u8, 110u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 115u8, 44u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 101u8, 49u8, 1u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8,
105u8, 111u8, 110u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 100u8,
117u8, 114u8, 105u8, 110u8, 103u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 100u8, 109u8, 105u8, 110u8, 32u8, 107u8, 101u8, 121u8, 32u8, 99u8, 97u8,
110u8, 32u8, 102u8, 114u8, 101u8, 101u8, 122u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 44u8, 66u8, 114u8,
105u8, 100u8, 103u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 1u8, 0u8, 141u8, 8u8, 80u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
8u8, 41u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 114u8, 105u8,
100u8, 103u8, 101u8, 100u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 112u8, 101u8, 114u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 119u8, 105u8, 116u8, 104u8, 105u8,
110u8, 32u8, 97u8, 32u8, 115u8, 101u8, 116u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 118u8,
97u8, 108u8, 32u8, 111u8, 102u8, 248u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 46u8, 32u8,
70u8, 105u8, 101u8, 108u8, 100u8, 115u8, 58u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8,
98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 118u8, 97u8, 108u8,
32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 48u8, 80u8, 111u8, 108u8,
121u8, 120u8, 66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 100u8, 1u8, 1u8, 4u8, 6u8, 120u8, 141u8,
8u8, 80u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 8u8, 81u8, 1u8, 32u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8,
32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 32u8, 105u8, 110u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 118u8, 97u8, 108u8, 46u8, 32u8, 70u8, 105u8,
101u8, 108u8, 100u8, 115u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8,
103u8, 101u8, 100u8, 148u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 97u8, 110u8,
100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 105u8, 110u8, 116u8,
101u8, 114u8, 118u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 46u8, 76u8,
66u8, 114u8, 105u8, 100u8, 103u8, 101u8, 76u8, 105u8, 109u8, 105u8, 116u8, 69u8, 120u8, 101u8,
109u8, 112u8, 116u8, 101u8, 100u8, 1u8, 1u8, 4u8, 5u8, 120u8, 21u8, 1u8, 4u8, 0u8, 4u8, 192u8,
32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 99u8, 111u8, 110u8, 115u8, 116u8, 114u8, 97u8, 105u8, 110u8, 101u8, 100u8, 32u8,
98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 114u8, 105u8, 100u8, 103u8, 101u8, 32u8,
108u8, 105u8, 109u8, 105u8, 116u8, 46u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 145u8, 8u8, 4u8, 0u8, 4u8, 68u8, 32u8,
83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 46u8, 1u8, 233u8, 5u8, 1u8, 109u8, 1u8, 0u8, 1u8, 149u8, 8u8, 16u8, 28u8, 83u8, 116u8,
97u8, 107u8, 105u8, 110u8, 103u8, 1u8, 28u8, 83u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8,
156u8, 48u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 68u8, 101u8, 112u8, 116u8, 104u8,
1u8, 0u8, 16u8, 16u8, 84u8, 0u8, 0u8, 0u8, 28u8, 140u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 116u8, 111u8, 32u8, 107u8,
101u8, 101u8, 112u8, 32u8, 105u8, 110u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8,
46u8, 0u8, 57u8, 1u8, 32u8, 73u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 105u8, 115u8, 32u8, 107u8, 101u8, 112u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
101u8, 114u8, 97u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8, 91u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 95u8, 101u8, 114u8, 97u8, 32u8, 45u8, 32u8, 104u8, 105u8, 115u8, 116u8,
111u8, 114u8, 121u8, 95u8, 100u8, 101u8, 112u8, 116u8, 104u8, 59u8, 32u8, 99u8, 117u8, 114u8,
114u8, 101u8, 110u8, 116u8, 95u8, 101u8, 114u8, 97u8, 93u8, 96u8, 46u8, 0u8, 97u8, 1u8, 32u8,
77u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8,
104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 100u8, 101u8, 108u8, 97u8, 121u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8,
111u8, 116u8, 104u8, 101u8, 114u8, 119u8, 105u8, 115u8, 101u8, 46u8, 32u8, 73u8, 46u8, 101u8,
46u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 109u8, 117u8,
115u8, 116u8, 57u8, 1u8, 32u8, 97u8, 108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 98u8, 101u8, 32u8,
105u8, 110u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 46u8, 32u8, 73u8, 46u8,
101u8, 46u8, 32u8, 96u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 101u8, 114u8, 97u8, 32u8,
62u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 95u8, 101u8, 114u8, 97u8, 32u8, 45u8,
32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 121u8, 95u8, 100u8, 101u8, 112u8, 116u8, 104u8,
96u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 48u8, 32u8, 103u8, 117u8, 97u8, 114u8,
97u8, 110u8, 116u8, 101u8, 101u8, 100u8, 46u8, 56u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8,
4u8, 168u8, 32u8, 84u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 97u8, 108u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8,
103u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 105u8, 112u8, 97u8, 110u8, 116u8, 115u8,
46u8, 84u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 86u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8,
0u8, 4u8, 65u8, 1u8, 32u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8,
103u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 105u8, 112u8, 97u8, 110u8, 116u8, 115u8,
32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 101u8, 109u8, 101u8, 114u8, 103u8, 101u8,
110u8, 99u8, 121u8, 32u8, 99u8, 111u8, 110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8,
32u8, 97u8, 114u8, 101u8, 32u8, 105u8, 109u8, 112u8, 111u8, 115u8, 101u8, 100u8, 46u8, 52u8,
73u8, 110u8, 118u8, 117u8, 108u8, 110u8, 101u8, 114u8, 97u8, 98u8, 108u8, 101u8, 115u8, 1u8, 0u8,
232u8, 4u8, 0u8, 12u8, 89u8, 1u8, 32u8, 65u8, 110u8, 121u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 109u8, 97u8,
121u8, 32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 98u8, 101u8, 32u8, 115u8, 108u8, 97u8,
115u8, 104u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 102u8, 111u8, 114u8, 99u8, 105u8, 98u8,
108u8, 121u8, 32u8, 107u8, 105u8, 99u8, 107u8, 101u8, 100u8, 46u8, 32u8, 73u8, 116u8, 39u8,
115u8, 32u8, 97u8, 32u8, 86u8, 101u8, 99u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8, 32u8, 116u8,
104u8, 101u8, 121u8, 39u8, 114u8, 101u8, 77u8, 1u8, 32u8, 101u8, 97u8, 115u8, 121u8, 32u8, 116u8,
111u8, 32u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8, 32u8, 97u8,
110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 102u8, 111u8, 114u8, 109u8,
97u8, 110u8, 99u8, 101u8, 32u8, 104u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 109u8, 105u8,
110u8, 105u8, 109u8, 97u8, 108u8, 32u8, 40u8, 119u8, 101u8, 32u8, 101u8, 120u8, 112u8, 101u8,
99u8, 116u8, 32u8, 110u8, 111u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8,
110u8, 32u8, 102u8, 111u8, 117u8, 114u8, 172u8, 32u8, 105u8, 110u8, 118u8, 117u8, 108u8, 110u8,
101u8, 114u8, 97u8, 98u8, 108u8, 101u8, 115u8, 41u8, 32u8, 97u8, 110u8, 100u8, 32u8, 114u8,
101u8, 115u8, 116u8, 114u8, 105u8, 99u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8,
101u8, 115u8, 116u8, 110u8, 101u8, 116u8, 115u8, 46u8, 24u8, 66u8, 111u8, 110u8, 100u8, 101u8,
100u8, 0u8, 1u8, 4u8, 5u8, 0u8, 0u8, 4u8, 0u8, 4u8, 1u8, 1u8, 32u8, 77u8, 97u8, 112u8, 32u8,
102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 108u8, 108u8, 32u8, 108u8, 111u8, 99u8, 107u8, 101u8,
100u8, 32u8, 34u8, 115u8, 116u8, 97u8, 115u8, 104u8, 34u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8,
110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 24u8, 76u8, 101u8, 100u8, 103u8, 101u8, 114u8, 0u8, 1u8, 4u8, 2u8, 0u8, 153u8, 8u8,
4u8, 0u8, 4u8, 69u8, 1u8, 32u8, 77u8, 97u8, 112u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8,
108u8, 108u8, 32u8, 40u8, 117u8, 110u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 41u8, 32u8,
34u8, 99u8, 111u8, 110u8, 116u8, 114u8, 111u8, 108u8, 108u8, 101u8, 114u8, 34u8, 32u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 110u8, 102u8, 111u8, 32u8, 114u8, 101u8, 103u8, 97u8, 114u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 97u8, 107u8, 105u8, 110u8, 103u8, 46u8,
20u8, 80u8, 97u8, 121u8, 101u8, 101u8, 1u8, 1u8, 4u8, 5u8, 0u8, 253u8, 5u8, 4u8, 0u8, 4u8, 228u8,
32u8, 87u8, 104u8, 101u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 119u8,
97u8, 114u8, 100u8, 32u8, 112u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 109u8, 97u8, 100u8, 101u8, 46u8, 32u8, 75u8,
101u8, 121u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 46u8,
40u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 1u8, 1u8, 4u8, 5u8, 0u8,
1u8, 6u8, 8u8, 0u8, 0u8, 4u8, 69u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 112u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 40u8, 119u8, 97u8, 110u8, 110u8, 97u8, 98u8, 101u8, 41u8,
32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8,
115u8, 104u8, 32u8, 107u8, 101u8, 121u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8,
112u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 46u8, 40u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 0u8, 1u8,
4u8, 5u8, 0u8, 165u8, 8u8, 4u8, 0u8, 4u8, 101u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8,
97u8, 112u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 107u8, 101u8, 121u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8,
115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 111u8, 102u8, 32u8,
97u8, 108u8, 108u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8,
32u8, 116u8, 111u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 46u8, 40u8,
67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 69u8, 114u8, 97u8, 0u8, 0u8, 16u8, 4u8, 0u8,
16u8, 92u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8,
101u8, 114u8, 97u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 46u8, 0u8, 101u8, 1u8, 32u8, 84u8,
104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 116u8,
101u8, 115u8, 116u8, 32u8, 112u8, 108u8, 97u8, 110u8, 110u8, 101u8, 100u8, 32u8, 101u8, 114u8,
97u8, 44u8, 32u8, 100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8,
110u8, 32u8, 104u8, 111u8, 119u8, 32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 128u8, 32u8, 115u8, 101u8, 116u8, 44u8, 32u8, 105u8, 116u8, 32u8, 109u8,
105u8, 103u8, 104u8, 116u8, 32u8, 98u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8,
32u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 46u8, 36u8, 65u8, 99u8, 116u8, 105u8, 118u8,
101u8, 69u8, 114u8, 97u8, 0u8, 0u8, 169u8, 8u8, 4u8, 0u8, 16u8, 216u8, 32u8, 84u8, 104u8, 101u8,
32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 105u8, 110u8,
102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 44u8, 32u8, 105u8, 116u8, 32u8,
104u8, 111u8, 108u8, 100u8, 115u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 97u8, 110u8,
100u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 46u8, 0u8, 89u8, 1u8, 32u8, 84u8, 104u8, 101u8,
32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 105u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8,
99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8, 114u8, 101u8, 119u8, 97u8,
114u8, 100u8, 101u8, 100u8, 46u8, 32u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
101u8, 114u8, 97u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 172u8, 32u8, 101u8,
113u8, 117u8, 97u8, 108u8, 32u8, 116u8, 111u8, 32u8, 91u8, 96u8, 83u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 73u8, 110u8, 116u8, 101u8, 114u8, 102u8, 97u8, 99u8, 101u8, 58u8, 58u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 96u8, 93u8, 46u8, 84u8, 69u8,
114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 114u8, 116u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8,
110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 0u8, 1u8, 4u8, 5u8, 16u8, 16u8, 4u8, 0u8, 16u8, 49u8,
1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8,
105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 97u8, 116u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8,
96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 96u8, 32u8,
101u8, 114u8, 97u8, 115u8, 46u8, 0u8, 97u8, 1u8, 32u8, 78u8, 111u8, 116u8, 101u8, 58u8, 32u8,
84u8, 104u8, 105u8, 115u8, 32u8, 116u8, 114u8, 97u8, 99u8, 107u8, 115u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 105u8, 110u8, 103u8, 32u8, 115u8, 101u8, 115u8,
115u8, 105u8, 111u8, 110u8, 32u8, 40u8, 105u8, 46u8, 101u8, 46u8, 32u8, 115u8, 101u8, 115u8,
115u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 119u8, 104u8, 101u8,
110u8, 32u8, 101u8, 114u8, 97u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 32u8, 98u8, 101u8,
105u8, 110u8, 103u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 41u8, 240u8, 32u8, 102u8,
111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 105u8, 110u8,
32u8, 96u8, 91u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 69u8, 114u8, 97u8, 32u8, 45u8,
32u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 44u8, 32u8,
67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 69u8, 114u8, 97u8, 93u8, 96u8, 46u8, 44u8, 69u8,
114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8,
173u8, 8u8, 197u8, 1u8, 12u8, 0u8, 0u8, 0u8, 24u8, 120u8, 32u8, 69u8, 120u8, 112u8, 111u8, 115u8,
117u8, 114u8, 101u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 32u8, 97u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 97u8, 1u8, 32u8, 84u8,
104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 107u8, 101u8, 121u8, 101u8, 100u8, 32u8, 102u8,
105u8, 114u8, 115u8, 116u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8,
97u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8,
111u8, 119u8, 32u8, 98u8, 117u8, 108u8, 107u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8,
111u8, 110u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 0u8, 168u8, 32u8, 73u8, 115u8, 32u8, 105u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 96u8, 72u8, 73u8, 83u8, 84u8,
79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 96u8, 32u8, 101u8, 114u8, 97u8, 115u8,
46u8, 65u8, 1u8, 32u8, 73u8, 102u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 32u8,
104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 101u8,
116u8, 32u8, 111u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 101u8,
109u8, 112u8, 116u8, 121u8, 32u8, 101u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8, 101u8, 32u8,
105u8, 115u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8, 72u8, 69u8,
114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 67u8, 108u8, 105u8, 112u8,
112u8, 101u8, 100u8, 1u8, 1u8, 8u8, 5u8, 5u8, 173u8, 8u8, 197u8, 1u8, 12u8, 0u8, 0u8, 0u8, 44u8,
152u8, 32u8, 67u8, 108u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 69u8, 120u8, 112u8, 111u8,
115u8, 117u8, 114u8, 101u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 32u8, 97u8, 116u8, 32u8, 101u8, 114u8, 97u8, 46u8, 0u8, 89u8, 1u8, 32u8,
84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 115u8, 105u8, 109u8, 105u8, 108u8, 97u8,
114u8, 32u8, 116u8, 111u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 115u8, 83u8, 116u8, 97u8, 107u8,
101u8, 114u8, 115u8, 96u8, 93u8, 32u8, 98u8, 117u8, 116u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 115u8, 32u8, 101u8, 120u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 105u8, 115u8, 32u8,
114u8, 101u8, 100u8, 117u8, 99u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
220u8, 32u8, 96u8, 84u8, 58u8, 58u8, 77u8, 97u8, 120u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8,
116u8, 111u8, 114u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 80u8, 101u8, 114u8,
86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 96u8, 32u8, 98u8, 105u8, 103u8,
103u8, 101u8, 115u8, 116u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 46u8, 29u8,
1u8, 32u8, 40u8, 78u8, 111u8, 116u8, 101u8, 58u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8,
101u8, 108u8, 100u8, 32u8, 96u8, 116u8, 111u8, 116u8, 97u8, 108u8, 96u8, 32u8, 97u8, 110u8,
100u8, 32u8, 96u8, 111u8, 119u8, 110u8, 96u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8, 101u8, 32u8, 114u8, 101u8, 109u8, 97u8,
105u8, 110u8, 115u8, 32u8, 117u8, 110u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8, 41u8,
46u8, 244u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 117u8, 115u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 116u8, 104u8, 101u8,
32u8, 105u8, 47u8, 111u8, 32u8, 99u8, 111u8, 115u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 101u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 32u8,
112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 46u8, 0u8, 93u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 105u8, 115u8, 32u8, 107u8, 101u8, 121u8, 101u8, 100u8, 32u8, 102u8, 105u8, 115u8, 116u8,
32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 105u8, 110u8,
100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8, 98u8,
117u8, 108u8, 107u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 116u8,
97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 168u8, 32u8,
73u8, 115u8, 32u8, 105u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8,
97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8,
68u8, 69u8, 80u8, 84u8, 72u8, 96u8, 32u8, 101u8, 114u8, 97u8, 115u8, 46u8, 65u8, 1u8, 32u8, 73u8,
102u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 32u8, 104u8, 97u8, 115u8, 110u8,
39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 114u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 101u8, 109u8, 112u8, 116u8, 121u8,
32u8, 101u8, 120u8, 112u8, 111u8, 115u8, 117u8, 114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 114u8,
101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8, 72u8, 69u8, 114u8, 97u8, 115u8, 86u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 80u8, 114u8, 101u8, 102u8, 115u8, 1u8, 1u8,
8u8, 5u8, 5u8, 173u8, 8u8, 1u8, 6u8, 8u8, 0u8, 0u8, 20u8, 17u8, 1u8, 32u8, 83u8, 105u8, 109u8,
105u8, 108u8, 97u8, 114u8, 32u8, 116u8, 111u8, 32u8, 96u8, 69u8, 114u8, 97u8, 115u8, 83u8, 116u8,
97u8, 107u8, 101u8, 114u8, 115u8, 96u8, 44u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 104u8,
111u8, 108u8, 100u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 102u8, 101u8,
114u8, 101u8, 110u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8,
100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 46u8, 0u8, 97u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 105u8, 115u8, 32u8, 107u8, 101u8, 121u8, 101u8, 100u8, 32u8, 102u8, 105u8, 114u8, 115u8,
116u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 105u8,
110u8, 100u8, 101u8, 120u8, 32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 32u8,
98u8, 117u8, 108u8, 107u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8,
97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8,
116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 0u8, 168u8,
32u8, 73u8, 115u8, 32u8, 105u8, 116u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8,
95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 96u8, 32u8, 101u8, 114u8, 97u8, 115u8, 46u8, 76u8, 69u8,
114u8, 97u8, 115u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 82u8, 101u8,
119u8, 97u8, 114u8, 100u8, 0u8, 1u8, 4u8, 5u8, 16u8, 24u8, 4u8, 0u8, 12u8, 9u8, 1u8, 32u8, 84u8,
104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8,
97u8, 116u8, 111u8, 114u8, 32u8, 101u8, 114u8, 97u8, 32u8, 112u8, 97u8, 121u8, 111u8, 117u8,
116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8,
32u8, 96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 96u8,
32u8, 101u8, 114u8, 97u8, 115u8, 46u8, 0u8, 33u8, 1u8, 32u8, 69u8, 114u8, 97u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 118u8, 101u8, 110u8, 39u8, 116u8, 32u8, 102u8,
105u8, 110u8, 105u8, 115u8, 104u8, 101u8, 100u8, 32u8, 121u8, 101u8, 116u8, 32u8, 111u8, 114u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 32u8, 100u8, 111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 104u8, 97u8,
118u8, 101u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 64u8, 69u8, 114u8, 97u8,
115u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 80u8, 111u8, 105u8, 110u8, 116u8, 115u8, 1u8, 1u8,
4u8, 5u8, 16u8, 177u8, 8u8, 20u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 172u8, 32u8, 82u8, 101u8, 119u8,
97u8, 114u8, 100u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8,
97u8, 115u8, 116u8, 32u8, 96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8,
84u8, 72u8, 96u8, 32u8, 101u8, 114u8, 97u8, 115u8, 46u8, 37u8, 1u8, 32u8, 73u8, 102u8, 32u8,
114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8,
98u8, 101u8, 101u8, 110u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8,
32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 48u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8,
32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8, 56u8,
69u8, 114u8, 97u8, 115u8, 84u8, 111u8, 116u8, 97u8, 108u8, 83u8, 116u8, 97u8, 107u8, 101u8, 1u8,
1u8, 4u8, 5u8, 16u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 8u8, 236u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8,
32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8,
96u8, 72u8, 73u8, 83u8, 84u8, 79u8, 82u8, 89u8, 95u8, 68u8, 69u8, 80u8, 84u8, 72u8, 96u8, 32u8,
101u8, 114u8, 97u8, 115u8, 46u8, 29u8, 1u8, 32u8, 73u8, 102u8, 32u8, 116u8, 111u8, 116u8, 97u8,
108u8, 32u8, 104u8, 97u8, 115u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8,
115u8, 101u8, 116u8, 32u8, 111u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8,
110u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 32u8, 116u8, 104u8, 101u8, 110u8,
32u8, 48u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8,
116u8, 117u8, 114u8, 110u8, 101u8, 100u8, 46u8, 32u8, 70u8, 111u8, 114u8, 99u8, 101u8, 69u8,
114u8, 97u8, 1u8, 0u8, 189u8, 8u8, 4u8, 0u8, 4u8, 84u8, 32u8, 77u8, 111u8, 100u8, 101u8, 32u8,
111u8, 102u8, 32u8, 101u8, 114u8, 97u8, 32u8, 102u8, 111u8, 114u8, 99u8, 105u8, 110u8, 103u8,
46u8, 76u8, 83u8, 108u8, 97u8, 115u8, 104u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 70u8, 114u8,
97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 1u8, 0u8, 137u8, 1u8, 16u8, 0u8, 0u8, 0u8, 0u8, 12u8,
248u8, 32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 101u8, 114u8, 99u8, 101u8, 110u8, 116u8, 97u8,
103u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 108u8, 97u8, 115u8,
104u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 112u8,
111u8, 114u8, 116u8, 101u8, 114u8, 115u8, 46u8, 0u8, 228u8, 32u8, 84u8, 104u8, 101u8, 32u8,
114u8, 101u8, 115u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 108u8,
97u8, 115u8, 104u8, 101u8, 100u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 105u8, 115u8,
32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 83u8, 108u8, 97u8, 115u8, 104u8, 96u8, 46u8, 76u8, 67u8, 97u8, 110u8, 99u8,
101u8, 108u8, 101u8, 100u8, 83u8, 108u8, 97u8, 115u8, 104u8, 80u8, 97u8, 121u8, 111u8, 117u8,
116u8, 1u8, 0u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 8u8, 21u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8,
116u8, 32u8, 111u8, 102u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8, 121u8, 32u8,
103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8,
116u8, 101u8, 114u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 108u8, 97u8, 115u8,
104u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8,
119u8, 97u8, 115u8, 236u8, 32u8, 99u8, 97u8, 110u8, 99u8, 101u8, 108u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 101u8, 120u8, 116u8, 114u8, 97u8, 111u8, 114u8, 100u8, 105u8, 110u8, 97u8, 114u8,
121u8, 32u8, 99u8, 105u8, 114u8, 99u8, 117u8, 109u8, 115u8, 116u8, 97u8, 110u8, 99u8, 101u8,
115u8, 32u8, 40u8, 101u8, 46u8, 103u8, 46u8, 32u8, 103u8, 111u8, 118u8, 101u8, 114u8, 110u8,
97u8, 110u8, 99u8, 101u8, 41u8, 46u8, 64u8, 85u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8,
100u8, 83u8, 108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 1u8, 1u8, 4u8, 5u8, 16u8, 193u8, 8u8, 4u8,
0u8, 4u8, 196u8, 32u8, 65u8, 108u8, 108u8, 32u8, 117u8, 110u8, 97u8, 112u8, 112u8, 108u8, 105u8,
101u8, 100u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 108u8, 97u8, 116u8, 101u8, 114u8, 46u8, 40u8, 66u8, 111u8, 110u8, 100u8,
101u8, 100u8, 69u8, 114u8, 97u8, 115u8, 1u8, 0u8, 113u8, 4u8, 4u8, 0u8, 16u8, 37u8, 1u8, 32u8,
65u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 115u8, 116u8, 105u8, 108u8, 108u8, 45u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8,
101u8, 114u8, 97u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 105u8,
114u8, 115u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8,
100u8, 101u8, 120u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 101u8, 114u8,
97u8, 46u8, 0u8, 200u8, 32u8, 77u8, 117u8, 115u8, 116u8, 32u8, 99u8, 111u8, 110u8, 116u8, 97u8,
105u8, 110u8, 115u8, 32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 97u8, 110u8, 103u8, 101u8, 58u8, 188u8, 32u8, 96u8, 91u8,
97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 101u8, 114u8, 97u8, 32u8, 45u8, 32u8, 98u8, 111u8,
117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 95u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 59u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 95u8, 101u8, 114u8, 97u8, 93u8, 96u8,
76u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 83u8, 108u8, 97u8, 115u8,
104u8, 73u8, 110u8, 69u8, 114u8, 97u8, 0u8, 1u8, 8u8, 5u8, 5u8, 173u8, 8u8, 209u8, 8u8, 4u8, 0u8,
8u8, 69u8, 1u8, 32u8, 65u8, 108u8, 108u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8,
103u8, 32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 111u8, 110u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 32u8, 109u8, 97u8, 112u8, 112u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 101u8, 114u8, 97u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 104u8, 105u8, 103u8, 104u8, 101u8, 115u8, 116u8, 32u8, 115u8, 108u8, 97u8,
115u8, 104u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 114u8, 116u8, 105u8, 111u8, 110u8, 112u8,
32u8, 97u8, 110u8, 100u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 32u8, 118u8, 97u8, 108u8,
117u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 46u8,
76u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 83u8, 108u8, 97u8, 115u8,
104u8, 73u8, 110u8, 69u8, 114u8, 97u8, 0u8, 1u8, 8u8, 5u8, 5u8, 173u8, 8u8, 24u8, 4u8, 0u8, 4u8,
97u8, 1u8, 32u8, 65u8, 108u8, 108u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8,
32u8, 101u8, 118u8, 101u8, 110u8, 116u8, 115u8, 32u8, 111u8, 110u8, 32u8, 110u8, 111u8, 109u8,
105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 44u8, 32u8, 109u8, 97u8, 112u8, 112u8, 101u8,
100u8, 32u8, 98u8, 121u8, 32u8, 101u8, 114u8, 97u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 104u8, 105u8, 103u8, 104u8, 101u8, 115u8, 116u8, 32u8, 115u8, 108u8, 97u8, 115u8,
104u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8,
32u8, 101u8, 114u8, 97u8, 46u8, 52u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 83u8,
112u8, 97u8, 110u8, 115u8, 0u8, 1u8, 4u8, 5u8, 0u8, 213u8, 8u8, 4u8, 0u8, 4u8, 140u8, 32u8, 83u8,
108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 115u8, 112u8, 97u8, 110u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 115u8, 46u8, 36u8, 83u8, 112u8, 97u8, 110u8, 83u8, 108u8, 97u8, 115u8,
104u8, 1u8, 1u8, 4u8, 5u8, 129u8, 8u8, 217u8, 8u8, 128u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 61u8, 1u8, 32u8, 82u8, 101u8, 99u8, 111u8, 114u8, 100u8, 115u8,
32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8,
98u8, 111u8, 117u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8,
117u8, 109u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8,
115u8, 116u8, 97u8, 115u8, 104u8, 32u8, 119u8, 105u8, 116u8, 104u8, 105u8, 110u8, 32u8, 97u8,
32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 32u8, 115u8, 112u8, 97u8, 110u8,
44u8, 184u8, 32u8, 97u8, 115u8, 32u8, 119u8, 101u8, 108u8, 108u8, 32u8, 97u8, 115u8, 32u8, 104u8,
111u8, 119u8, 32u8, 109u8, 117u8, 99u8, 104u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8,
32u8, 104u8, 97u8, 115u8, 32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 97u8, 105u8, 100u8, 32u8,
111u8, 117u8, 116u8, 46u8, 88u8, 69u8, 97u8, 114u8, 108u8, 105u8, 101u8, 115u8, 116u8, 85u8,
110u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 83u8, 108u8, 97u8, 115u8, 104u8, 0u8, 0u8,
16u8, 4u8, 0u8, 4u8, 252u8, 32u8, 84u8, 104u8, 101u8, 32u8, 101u8, 97u8, 114u8, 108u8, 105u8,
101u8, 115u8, 116u8, 32u8, 101u8, 114u8, 97u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 119u8, 101u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 112u8,
101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 44u8, 32u8, 117u8, 110u8, 97u8, 112u8, 112u8, 108u8,
105u8, 101u8, 100u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 46u8, 72u8, 83u8, 110u8, 97u8,
112u8, 115u8, 104u8, 111u8, 116u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
115u8, 0u8, 0u8, 232u8, 4u8, 0u8, 8u8, 101u8, 1u8, 32u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8,
114u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 101u8, 103u8, 105u8,
110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 25u8, 1u8,
32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8,
111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 61u8, 61u8, 32u8, 96u8,
69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8,
58u8, 58u8, 79u8, 112u8, 101u8, 110u8, 40u8, 95u8, 41u8, 96u8, 46u8, 72u8, 83u8, 110u8, 97u8,
112u8, 115u8, 104u8, 111u8, 116u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8,
115u8, 0u8, 0u8, 232u8, 4u8, 0u8, 8u8, 101u8, 1u8, 32u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 32u8, 111u8, 102u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 101u8, 103u8, 105u8,
110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 119u8, 105u8, 110u8, 100u8, 111u8, 119u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 111u8, 110u8, 108u8, 121u8, 25u8, 1u8,
32u8, 104u8, 97u8, 118u8, 101u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 119u8,
104u8, 101u8, 110u8, 32u8, 91u8, 96u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8,
111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 93u8, 32u8, 61u8, 61u8, 32u8, 96u8,
69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8,
58u8, 58u8, 79u8, 112u8, 101u8, 110u8, 40u8, 95u8, 41u8, 96u8, 46u8, 52u8, 81u8, 117u8, 101u8,
117u8, 101u8, 100u8, 69u8, 108u8, 101u8, 99u8, 116u8, 101u8, 100u8, 0u8, 0u8, 221u8, 8u8, 4u8,
0u8, 12u8, 101u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 115u8, 101u8, 116u8, 46u8, 32u8,
65u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8,
97u8, 110u8, 32u8, 101u8, 114u8, 97u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 97u8, 118u8, 97u8, 105u8, 108u8, 97u8, 98u8, 108u8, 101u8, 32u8,
40u8, 112u8, 111u8, 116u8, 101u8, 110u8, 116u8, 105u8, 97u8, 108u8, 108u8, 121u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 116u8, 104u8, 101u8, 97u8, 1u8, 32u8, 114u8, 101u8, 115u8, 117u8,
108u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 110u8, 32u8, 111u8, 102u8, 102u8, 99u8, 104u8,
97u8, 105u8, 110u8, 32u8, 119u8, 111u8, 114u8, 107u8, 101u8, 114u8, 41u8, 44u8, 32u8, 105u8,
116u8, 32u8, 105u8, 115u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8,
108u8, 121u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 32u8, 79u8, 116u8, 104u8, 101u8, 114u8,
119u8, 105u8, 115u8, 101u8, 44u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 45u8, 99u8,
104u8, 97u8, 105u8, 110u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 52u8,
32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8, 44u8,
81u8, 117u8, 101u8, 117u8, 101u8, 100u8, 83u8, 99u8, 111u8, 114u8, 101u8, 0u8, 0u8, 229u8, 6u8,
4u8, 0u8, 4u8, 176u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 99u8, 111u8, 114u8, 101u8, 32u8,
111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
32u8, 91u8, 96u8, 81u8, 117u8, 101u8, 117u8, 101u8, 100u8, 69u8, 108u8, 101u8, 99u8, 116u8,
101u8, 100u8, 96u8, 93u8, 46u8, 68u8, 69u8, 114u8, 97u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8,
111u8, 110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 1u8, 0u8, 225u8, 8u8, 4u8, 0u8, 8u8, 73u8,
1u8, 32u8, 70u8, 108u8, 97u8, 103u8, 32u8, 116u8, 111u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
111u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8,
111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 99u8,
104u8, 97u8, 105u8, 110u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 96u8, 79u8, 112u8, 101u8, 110u8, 40u8, 95u8, 41u8, 96u8,
44u8, 32u8, 119u8, 101u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 108u8, 32u8, 115u8, 111u8,
108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8,
115u8, 117u8, 98u8, 109u8, 105u8, 116u8, 116u8, 101u8, 100u8, 46u8, 84u8, 73u8, 115u8, 67u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 70u8,
105u8, 110u8, 97u8, 108u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 8u8, 77u8, 1u8, 32u8, 84u8, 114u8,
117u8, 101u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 42u8, 42u8, 112u8, 108u8, 97u8, 110u8, 110u8, 101u8, 100u8, 42u8,
42u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 102u8,
105u8, 110u8, 97u8, 108u8, 46u8, 32u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8,
116u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 100u8, 111u8, 101u8, 115u8, 32u8, 110u8, 111u8,
116u8, 32u8, 116u8, 97u8, 107u8, 101u8, 32u8, 101u8, 114u8, 97u8, 88u8, 32u8, 102u8, 111u8,
114u8, 99u8, 105u8, 110u8, 103u8, 32u8, 105u8, 110u8, 116u8, 111u8, 32u8, 97u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 46u8, 80u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 101u8, 100u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 0u8, 1u8, 4u8,
5u8, 120u8, 229u8, 8u8, 4u8, 0u8, 4u8, 236u8, 32u8, 69u8, 110u8, 116u8, 105u8, 116u8, 105u8,
101u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 114u8, 117u8, 110u8, 32u8, 111u8,
112u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8, 47u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 32u8, 110u8, 111u8, 100u8, 101u8, 115u8, 46u8, 88u8, 86u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 67u8, 111u8, 109u8, 109u8, 105u8, 115u8, 115u8, 105u8,
111u8, 110u8, 67u8, 97u8, 112u8, 1u8, 0u8, 137u8, 1u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 21u8, 1u8,
32u8, 69u8, 118u8, 101u8, 114u8, 121u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 32u8, 104u8, 97u8, 115u8, 32u8, 99u8, 111u8, 109u8, 109u8, 105u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 98u8, 101u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 97u8,
110u8, 103u8, 101u8, 32u8, 91u8, 48u8, 44u8, 32u8, 67u8, 97u8, 112u8, 93u8, 46u8, 80u8, 77u8,
105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 66u8, 111u8, 110u8, 100u8, 84u8, 104u8, 114u8, 101u8,
115u8, 104u8, 111u8, 108u8, 100u8, 1u8, 0u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 208u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 105u8,
110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 119u8,
105u8, 116u8, 104u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 97u8, 32u8, 118u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 111u8,
110u8, 100u8, 46u8, 72u8, 83u8, 108u8, 97u8, 115u8, 104u8, 105u8, 110u8, 103u8, 65u8, 108u8,
108u8, 111u8, 119u8, 101u8, 100u8, 70u8, 111u8, 114u8, 1u8, 0u8, 141u8, 1u8, 4u8, 2u8, 0u8, 56u8,
83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
1u8, 0u8, 233u8, 8u8, 4u8, 6u8, 16u8, 204u8, 32u8, 84u8, 114u8, 117u8, 101u8, 32u8, 105u8, 102u8,
32u8, 110u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 117u8, 112u8, 103u8, 114u8, 97u8, 100u8, 101u8, 100u8, 32u8, 116u8,
111u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
46u8, 124u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8,
115u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 97u8,
108u8, 108u8, 101u8, 116u8, 46u8, 0u8, 160u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8,
115u8, 32u8, 115u8, 101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 118u8, 54u8, 46u8, 48u8, 46u8, 49u8,
32u8, 102u8, 111u8, 114u8, 32u8, 110u8, 101u8, 119u8, 32u8, 110u8, 101u8, 116u8, 119u8, 111u8,
114u8, 107u8, 115u8, 46u8, 1u8, 249u8, 5u8, 1u8, 129u8, 1u8, 44u8, 56u8, 83u8, 101u8, 115u8,
115u8, 105u8, 111u8, 110u8, 115u8, 80u8, 101u8, 114u8, 69u8, 114u8, 97u8, 16u8, 16u8, 3u8, 0u8,
0u8, 0u8, 4u8, 112u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 112u8, 101u8, 114u8, 32u8, 101u8,
114u8, 97u8, 46u8, 60u8, 66u8, 111u8, 110u8, 100u8, 105u8, 110u8, 103u8, 68u8, 117u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 16u8, 16u8, 7u8, 0u8, 0u8, 0u8, 4u8, 228u8, 32u8, 78u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 100u8, 32u8, 102u8, 117u8, 110u8,
100u8, 115u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 114u8, 101u8, 109u8, 97u8, 105u8, 110u8,
32u8, 98u8, 111u8, 110u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 46u8, 72u8, 83u8,
108u8, 97u8, 115u8, 104u8, 68u8, 101u8, 102u8, 101u8, 114u8, 68u8, 117u8, 114u8, 97u8, 116u8,
105u8, 111u8, 110u8, 16u8, 16u8, 4u8, 0u8, 0u8, 0u8, 20u8, 1u8, 1u8, 32u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 101u8, 114u8, 97u8, 115u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 115u8, 108u8, 97u8, 115u8, 104u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8,
32u8, 100u8, 101u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 98u8, 121u8, 44u8, 32u8,
97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 97u8, 116u8,
105u8, 111u8, 110u8, 46u8, 0u8, 188u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 115u8, 104u8,
111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 108u8, 101u8, 115u8, 115u8, 32u8, 116u8,
104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 111u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 45u8, 1u8, 32u8, 83u8,
101u8, 116u8, 32u8, 116u8, 111u8, 32u8, 48u8, 32u8, 105u8, 102u8, 32u8, 115u8, 108u8, 97u8,
115u8, 104u8, 101u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8,
32u8, 97u8, 112u8, 112u8, 108u8, 105u8, 101u8, 100u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8,
105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 44u8, 32u8, 119u8, 105u8, 116u8, 104u8, 111u8, 117u8,
116u8, 32u8, 111u8, 112u8, 112u8, 111u8, 114u8, 116u8, 117u8, 110u8, 105u8, 116u8, 121u8, 32u8,
102u8, 111u8, 114u8, 56u8, 32u8, 105u8, 110u8, 116u8, 101u8, 114u8, 118u8, 101u8, 110u8, 116u8,
105u8, 111u8, 110u8, 46u8, 68u8, 69u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 76u8,
111u8, 111u8, 107u8, 97u8, 104u8, 101u8, 97u8, 100u8, 16u8, 16u8, 75u8, 0u8, 0u8, 0u8, 28u8,
113u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 111u8, 102u8, 32u8, 116u8,
104u8, 101u8, 32u8, 101u8, 114u8, 97u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 101u8, 108u8, 101u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8,
117u8, 98u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 114u8, 101u8,
32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 46u8, 0u8, 109u8, 1u8, 32u8, 83u8, 101u8,
116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 116u8, 111u8, 32u8,
122u8, 101u8, 114u8, 111u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 100u8, 105u8, 115u8, 97u8,
98u8, 108u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 102u8, 102u8, 99u8, 104u8, 97u8,
105u8, 110u8, 32u8, 99u8, 111u8, 109u8, 112u8, 117u8, 116u8, 101u8, 32u8, 97u8, 110u8, 100u8,
32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8,
32u8, 115u8, 101u8, 113u8, 45u8, 112u8, 104u8, 114u8, 97u8, 103u8, 109u8, 101u8, 110u8, 32u8,
119u8, 105u8, 108u8, 108u8, 36u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 46u8, 0u8,
117u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 98u8, 111u8, 117u8, 110u8,
100u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 98u8, 101u8, 105u8, 110u8, 103u8, 32u8, 119u8,
105u8, 116u8, 104u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8,
32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 46u8, 32u8, 72u8, 101u8, 110u8, 99u8,
101u8, 44u8, 32u8, 115u8, 101u8, 116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 32u8,
116u8, 111u8, 32u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 109u8, 111u8, 114u8,
101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 156u8, 32u8, 108u8, 101u8,
110u8, 103u8, 116u8, 104u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 112u8, 111u8,
105u8, 110u8, 116u8, 108u8, 101u8, 115u8, 115u8, 46u8, 52u8, 77u8, 97u8, 120u8, 73u8, 116u8,
101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 16u8, 16u8, 10u8, 0u8, 0u8, 0u8, 12u8,
41u8, 1u8, 32u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8,
101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 105u8, 110u8,
103u8, 32u8, 105u8, 116u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 116u8,
111u8, 32u8, 114u8, 117u8, 110u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8,
102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8, 115u8, 117u8, 98u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 46u8, 0u8, 236u8, 32u8, 73u8, 102u8, 32u8, 115u8, 101u8, 116u8, 32u8,
116u8, 111u8, 32u8, 48u8, 44u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 95u8, 115u8,
111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 110u8,
111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8,
32u8, 97u8, 116u8, 32u8, 97u8, 108u8, 108u8, 46u8, 80u8, 77u8, 105u8, 110u8, 83u8, 111u8, 108u8,
117u8, 116u8, 105u8, 111u8, 110u8, 83u8, 99u8, 111u8, 114u8, 101u8, 66u8, 117u8, 109u8, 112u8,
137u8, 1u8, 16u8, 32u8, 161u8, 7u8, 0u8, 4u8, 97u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8,
104u8, 114u8, 101u8, 115u8, 104u8, 111u8, 108u8, 100u8, 32u8, 111u8, 102u8, 32u8, 105u8, 109u8,
112u8, 114u8, 111u8, 118u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 112u8, 114u8, 111u8,
118u8, 105u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 110u8, 101u8,
119u8, 32u8, 115u8, 111u8, 108u8, 117u8, 116u8, 105u8, 111u8, 110u8, 32u8, 116u8, 111u8, 32u8,
98u8, 101u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 101u8, 100u8, 46u8, 128u8, 77u8, 97u8,
120u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 82u8, 101u8, 119u8, 97u8,
114u8, 100u8, 101u8, 100u8, 80u8, 101u8, 114u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 16u8, 16u8, 0u8, 8u8, 0u8, 0u8, 16u8, 248u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8,
97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8,
114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 0u8,
105u8, 1u8, 32u8, 70u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 36u8, 77u8, 97u8, 120u8, 78u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 101u8, 100u8, 80u8, 101u8, 114u8, 86u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 96u8, 32u8, 98u8, 105u8, 103u8, 103u8, 101u8,
115u8, 116u8, 32u8, 115u8, 116u8, 97u8, 107u8, 101u8, 114u8, 115u8, 32u8, 99u8, 97u8, 110u8,
32u8, 99u8, 108u8, 97u8, 105u8, 109u8, 33u8, 1u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8,
114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 117u8,
115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 32u8, 116u8,
104u8, 101u8, 32u8, 105u8, 47u8, 111u8, 32u8, 99u8, 111u8, 115u8, 116u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8,
114u8, 32u8, 112u8, 97u8, 121u8, 111u8, 117u8, 116u8, 46u8, 92u8, 77u8, 97u8, 120u8, 86u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 80u8, 101u8, 114u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 121u8, 2u8, 16u8, 16u8, 9u8, 5u8, 0u8, 12u8, 244u8, 32u8, 77u8, 97u8,
120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8, 115u8,
115u8, 105u8, 111u8, 110u8, 101u8, 100u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8,
121u8, 46u8, 0u8, 89u8, 1u8, 32u8, 77u8, 97u8, 120u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8,
114u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8,
115u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 61u8, 32u8, 96u8, 77u8, 97u8, 120u8, 86u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 80u8, 101u8, 114u8, 73u8, 100u8, 101u8,
110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 42u8, 32u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8,
118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 95u8, 99u8, 111u8, 117u8, 110u8,
116u8, 40u8, 41u8, 96u8, 46u8, 132u8, 77u8, 97u8, 120u8, 86u8, 97u8, 114u8, 105u8, 97u8, 98u8,
108u8, 101u8, 73u8, 110u8, 102u8, 108u8, 97u8, 116u8, 105u8, 111u8, 110u8, 84u8, 111u8, 116u8,
97u8, 108u8, 73u8, 115u8, 115u8, 117u8, 97u8, 110u8, 99u8, 101u8, 24u8, 64u8, 0u8, 128u8, 198u8,
164u8, 126u8, 141u8, 3u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 113u8, 1u8, 32u8,
77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8,
32u8, 111u8, 102u8, 32u8, 96u8, 84u8, 58u8, 58u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 99u8,
121u8, 58u8, 58u8, 116u8, 111u8, 116u8, 97u8, 108u8, 95u8, 105u8, 115u8, 115u8, 117u8, 97u8,
110u8, 99u8, 101u8, 40u8, 41u8, 96u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 116u8, 104u8,
97u8, 116u8, 32u8, 110u8, 111u8, 110u8, 45u8, 105u8, 110u8, 102u8, 108u8, 97u8, 116u8, 101u8,
100u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 32u8, 103u8, 101u8, 116u8, 32u8,
112u8, 97u8, 105u8, 100u8, 46u8, 68u8, 70u8, 105u8, 120u8, 101u8, 100u8, 89u8, 101u8, 97u8,
114u8, 108u8, 121u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 24u8, 64u8, 0u8, 192u8, 68u8, 74u8,
84u8, 127u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 1u8, 1u8, 32u8, 84u8, 111u8,
116u8, 97u8, 108u8, 32u8, 121u8, 101u8, 97u8, 114u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8,
100u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 112u8,
97u8, 105u8, 100u8, 32u8, 100u8, 117u8, 114u8, 105u8, 110u8, 103u8, 32u8, 102u8, 105u8, 120u8,
101u8, 100u8, 32u8, 114u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 115u8, 99u8, 104u8, 101u8,
100u8, 117u8, 108u8, 101u8, 46u8, 44u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 66u8,
111u8, 110u8, 100u8, 24u8, 64u8, 64u8, 66u8, 15u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 4u8, 240u8, 32u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8,
109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 80u8, 79u8, 76u8, 89u8, 88u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 109u8, 117u8, 115u8, 116u8, 32u8, 98u8, 101u8, 32u8, 98u8,
111u8, 110u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 110u8, 101u8,
119u8, 32u8, 98u8, 111u8, 110u8, 100u8, 46u8, 1u8, 237u8, 8u8, 17u8, 32u8, 79u8, 102u8, 102u8,
101u8, 110u8, 99u8, 101u8, 115u8, 1u8, 32u8, 79u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8,
115u8, 12u8, 28u8, 82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 115u8, 0u8, 1u8, 4u8, 5u8, 36u8,
241u8, 8u8, 4u8, 0u8, 4u8, 73u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 109u8,
97u8, 114u8, 121u8, 32u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 117u8, 114u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 111u8, 108u8, 100u8, 115u8, 32u8, 97u8, 108u8, 108u8,
32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8,
100u8, 115u8, 32u8, 107u8, 101u8, 121u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 114u8, 101u8,
112u8, 111u8, 114u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8,
114u8, 115u8, 46u8, 88u8, 67u8, 111u8, 110u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8,
82u8, 101u8, 112u8, 111u8, 114u8, 116u8, 115u8, 73u8, 110u8, 100u8, 101u8, 120u8, 1u8, 1u8, 8u8,
5u8, 5u8, 245u8, 8u8, 109u8, 4u8, 4u8, 0u8, 4u8, 41u8, 1u8, 32u8, 65u8, 32u8, 118u8, 101u8, 99u8,
116u8, 111u8, 114u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 115u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 107u8,
105u8, 110u8, 100u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 104u8, 97u8, 112u8, 112u8, 101u8,
110u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8,
101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 115u8, 108u8, 111u8, 116u8, 46u8, 72u8, 82u8,
101u8, 112u8, 111u8, 114u8, 116u8, 115u8, 66u8, 121u8, 75u8, 105u8, 110u8, 100u8, 73u8, 110u8,
100u8, 101u8, 120u8, 1u8, 1u8, 4u8, 5u8, 149u8, 1u8, 40u8, 4u8, 0u8, 24u8, 17u8, 1u8, 32u8, 69u8,
110u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 101u8, 115u8, 32u8, 97u8, 108u8, 108u8, 32u8,
114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 107u8,
105u8, 110u8, 100u8, 32u8, 97u8, 108u8, 111u8, 110u8, 103u8, 32u8, 119u8, 105u8, 116u8, 104u8,
32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 116u8, 104u8, 101u8, 121u8,
32u8, 104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 101u8, 100u8, 46u8, 0u8, 188u8, 32u8, 65u8, 108u8,
108u8, 32u8, 114u8, 101u8, 112u8, 111u8, 114u8, 116u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8,
115u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
116u8, 105u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 111u8, 102u8, 102u8, 101u8, 110u8, 99u8,
101u8, 46u8, 0u8, 73u8, 1u8, 32u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 116u8, 121u8,
112u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 109u8, 97u8, 112u8,
112u8, 105u8, 110u8, 103u8, 32u8, 105u8, 115u8, 32u8, 96u8, 86u8, 101u8, 99u8, 60u8, 117u8, 56u8,
62u8, 96u8, 44u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 98u8, 101u8, 99u8,
97u8, 117u8, 115u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 115u8, 32u8, 111u8, 102u8,
105u8, 1u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8, 110u8, 116u8, 32u8, 116u8,
121u8, 112u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 110u8, 111u8, 116u8, 32u8, 115u8,
117u8, 112u8, 112u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 109u8, 111u8, 109u8, 101u8, 110u8, 116u8, 32u8, 115u8, 111u8, 32u8, 119u8, 101u8,
32u8, 97u8, 114u8, 101u8, 32u8, 100u8, 111u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8,
32u8, 109u8, 97u8, 110u8, 117u8, 97u8, 108u8, 32u8, 115u8, 101u8, 114u8, 105u8, 97u8, 108u8,
105u8, 122u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 1u8, 145u8, 1u8, 0u8, 0u8, 18u8, 28u8,
83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 1u8, 28u8, 83u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 28u8, 40u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 1u8,
0u8, 232u8, 4u8, 0u8, 4u8, 124u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8,
101u8, 110u8, 116u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 118u8, 97u8, 108u8,
105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 46u8, 48u8, 67u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 73u8, 110u8, 100u8, 101u8, 120u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8,
120u8, 32u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 105u8, 110u8, 100u8, 101u8,
120u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 46u8, 52u8, 81u8, 117u8, 101u8, 117u8, 101u8, 100u8, 67u8, 104u8, 97u8, 110u8,
103u8, 101u8, 100u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 8u8, 57u8, 1u8, 32u8, 84u8, 114u8, 117u8,
101u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8,
108u8, 121u8, 105u8, 110u8, 103u8, 32u8, 101u8, 99u8, 111u8, 110u8, 111u8, 109u8, 105u8, 99u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 111u8, 114u8,
32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 105u8, 110u8, 103u8, 32u8, 98u8, 101u8, 104u8,
105u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 115u8, 164u8, 32u8, 104u8, 97u8, 115u8, 32u8, 99u8, 104u8, 97u8, 110u8,
103u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8,
115u8, 101u8, 116u8, 46u8, 40u8, 81u8, 117u8, 101u8, 117u8, 101u8, 100u8, 75u8, 101u8, 121u8,
115u8, 1u8, 0u8, 249u8, 8u8, 4u8, 0u8, 8u8, 61u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 113u8,
117u8, 101u8, 117u8, 101u8, 100u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 46u8, 32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 98u8,
101u8, 103u8, 105u8, 110u8, 115u8, 44u8, 32u8, 116u8, 104u8, 101u8, 115u8, 101u8, 32u8, 107u8,
101u8, 121u8, 115u8, 224u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 98u8, 101u8, 32u8, 117u8,
115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8,
110u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 39u8, 115u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 107u8,
101u8, 121u8, 115u8, 46u8, 72u8, 68u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 86u8, 97u8,
108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 1u8, 0u8, 53u8, 4u8, 4u8, 0u8, 20u8,
128u8, 32u8, 73u8, 110u8, 100u8, 105u8, 99u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 100u8,
105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8,
116u8, 111u8, 114u8, 115u8, 46u8, 0u8, 61u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 118u8, 101u8,
99u8, 32u8, 105u8, 115u8, 32u8, 97u8, 108u8, 119u8, 97u8, 121u8, 115u8, 32u8, 107u8, 101u8,
112u8, 116u8, 32u8, 115u8, 111u8, 114u8, 116u8, 101u8, 100u8, 32u8, 115u8, 111u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 119u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 102u8, 105u8, 110u8,
100u8, 32u8, 119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8,
118u8, 101u8, 110u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 32u8,
105u8, 115u8, 61u8, 1u8, 32u8, 100u8, 105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 117u8,
115u8, 105u8, 110u8, 103u8, 32u8, 98u8, 105u8, 110u8, 97u8, 114u8, 121u8, 32u8, 115u8, 101u8,
97u8, 114u8, 99u8, 104u8, 46u8, 32u8, 73u8, 116u8, 32u8, 103u8, 101u8, 116u8, 115u8, 32u8, 99u8,
108u8, 101u8, 97u8, 114u8, 101u8, 100u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 96u8, 111u8,
110u8, 95u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 95u8, 101u8, 110u8, 100u8, 105u8,
110u8, 103u8, 96u8, 32u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 115u8, 100u8, 32u8, 97u8,
32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8, 105u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 46u8, 32u8, 78u8, 101u8, 120u8, 116u8,
75u8, 101u8, 121u8, 115u8, 0u8, 1u8, 4u8, 5u8, 0u8, 241u8, 6u8, 4u8, 0u8, 4u8, 156u8, 32u8, 84u8,
104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8,
110u8, 32u8, 107u8, 101u8, 121u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 46u8, 32u8, 75u8, 101u8, 121u8, 79u8,
119u8, 110u8, 101u8, 114u8, 0u8, 1u8, 4u8, 5u8, 1u8, 9u8, 0u8, 4u8, 0u8, 4u8, 9u8, 1u8, 32u8,
84u8, 104u8, 101u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 107u8, 101u8, 121u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8, 107u8, 101u8, 121u8, 32u8,
105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 75u8, 101u8, 121u8, 84u8, 121u8, 112u8,
101u8, 73u8, 100u8, 96u8, 32u8, 43u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 99u8, 111u8,
100u8, 101u8, 100u8, 32u8, 107u8, 101u8, 121u8, 46u8, 1u8, 237u8, 6u8, 1u8, 153u8, 1u8, 0u8, 1u8,
9u8, 9u8, 19u8, 72u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 68u8, 105u8,
115u8, 99u8, 111u8, 118u8, 101u8, 114u8, 121u8, 0u8, 0u8, 0u8, 0u8, 0u8, 20u8, 28u8, 71u8, 114u8,
97u8, 110u8, 100u8, 112u8, 97u8, 1u8, 28u8, 71u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 24u8,
20u8, 83u8, 116u8, 97u8, 116u8, 101u8, 1u8, 0u8, 13u8, 9u8, 4u8, 0u8, 4u8, 144u8, 32u8, 83u8,
116u8, 97u8, 116u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8,
121u8, 32u8, 115u8, 101u8, 116u8, 46u8, 52u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8,
67u8, 104u8, 97u8, 110u8, 103u8, 101u8, 0u8, 0u8, 17u8, 9u8, 4u8, 0u8, 4u8, 196u8, 32u8, 80u8,
101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 58u8,
32u8, 40u8, 115u8, 105u8, 103u8, 110u8, 97u8, 108u8, 101u8, 100u8, 32u8, 97u8, 116u8, 44u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 99u8, 104u8, 97u8, 110u8,
103u8, 101u8, 41u8, 46u8, 40u8, 78u8, 101u8, 120u8, 116u8, 70u8, 111u8, 114u8, 99u8, 101u8,
100u8, 0u8, 0u8, 16u8, 4u8, 0u8, 4u8, 188u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 119u8, 104u8, 101u8,
114u8, 101u8, 32u8, 119u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8, 102u8, 111u8, 114u8, 99u8,
101u8, 32u8, 97u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 46u8, 28u8, 83u8, 116u8, 97u8,
108u8, 108u8, 101u8, 100u8, 0u8, 0u8, 153u8, 3u8, 4u8, 0u8, 4u8, 144u8, 32u8, 96u8, 116u8, 114u8,
117u8, 101u8, 96u8, 32u8, 105u8, 102u8, 32u8, 119u8, 101u8, 32u8, 97u8, 114u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8, 115u8, 116u8, 97u8, 108u8, 108u8,
101u8, 100u8, 46u8, 48u8, 67u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 83u8, 101u8, 116u8,
73u8, 100u8, 1u8, 0u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 93u8, 1u8, 32u8,
84u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8,
99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 115u8, 32u8, 40u8, 98u8, 111u8, 116u8, 104u8, 32u8,
105u8, 110u8, 32u8, 116u8, 101u8, 114u8, 109u8, 115u8, 32u8, 111u8, 102u8, 32u8, 107u8, 101u8,
121u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 108u8, 121u8,
105u8, 110u8, 103u8, 32u8, 101u8, 99u8, 111u8, 110u8, 111u8, 109u8, 105u8, 99u8, 32u8, 114u8,
101u8, 115u8, 112u8, 111u8, 110u8, 115u8, 105u8, 98u8, 105u8, 108u8, 105u8, 116u8, 105u8, 101u8,
115u8, 41u8, 196u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 34u8, 115u8, 101u8,
116u8, 34u8, 32u8, 111u8, 102u8, 32u8, 71u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 32u8, 118u8,
97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8,
32u8, 103u8, 101u8, 110u8, 101u8, 115u8, 105u8, 115u8, 46u8, 48u8, 83u8, 101u8, 116u8, 73u8,
100u8, 83u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 0u8, 1u8, 4u8, 5u8, 32u8, 16u8, 4u8, 0u8,
16u8, 89u8, 1u8, 32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8, 32u8, 102u8,
114u8, 111u8, 109u8, 32u8, 103u8, 114u8, 97u8, 110u8, 100u8, 112u8, 97u8, 32u8, 115u8, 101u8,
116u8, 32u8, 73u8, 68u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8,
100u8, 101u8, 120u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 42u8, 109u8, 111u8,
115u8, 116u8, 32u8, 114u8, 101u8, 99u8, 101u8, 110u8, 116u8, 42u8, 32u8, 115u8, 101u8, 115u8,
115u8, 105u8, 111u8, 110u8, 32u8, 102u8, 111u8, 114u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8,
32u8, 105u8, 116u8, 115u8, 104u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8,
119u8, 101u8, 114u8, 101u8, 32u8, 114u8, 101u8, 115u8, 112u8, 111u8, 110u8, 115u8, 105u8, 98u8,
108u8, 101u8, 46u8, 0u8, 184u8, 32u8, 84u8, 87u8, 79u8, 88u8, 45u8, 78u8, 79u8, 84u8, 69u8, 58u8,
32u8, 96u8, 83u8, 101u8, 116u8, 73u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8,
32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 99u8, 111u8,
110u8, 116u8, 114u8, 111u8, 108u8, 46u8, 1u8, 249u8, 6u8, 1u8, 157u8, 1u8, 4u8, 56u8, 77u8, 97u8,
120u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8, 16u8, 16u8,
160u8, 134u8, 1u8, 0u8, 4u8, 92u8, 32u8, 77u8, 97u8, 120u8, 32u8, 65u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 117u8, 115u8, 101u8,
1u8, 25u8, 9u8, 21u8, 40u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8, 105u8, 99u8, 97u8, 108u8,
0u8, 0u8, 0u8, 0u8, 0u8, 22u8, 32u8, 73u8, 109u8, 79u8, 110u8, 108u8, 105u8, 110u8, 101u8, 1u8,
32u8, 73u8, 109u8, 79u8, 110u8, 108u8, 105u8, 110u8, 101u8, 16u8, 56u8, 72u8, 101u8, 97u8, 114u8,
116u8, 98u8, 101u8, 97u8, 116u8, 65u8, 102u8, 116u8, 101u8, 114u8, 1u8, 0u8, 16u8, 16u8, 0u8,
0u8, 0u8, 0u8, 44u8, 29u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8,
119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 105u8, 116u8, 39u8, 115u8, 32u8, 111u8, 107u8, 32u8,
116u8, 111u8, 32u8, 115u8, 101u8, 110u8, 100u8, 32u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8,
101u8, 97u8, 116u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 36u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8,
46u8, 0u8, 37u8, 1u8, 32u8, 65u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 101u8, 103u8,
105u8, 110u8, 110u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 101u8, 97u8, 99u8, 104u8,
32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 119u8, 101u8, 32u8, 115u8, 101u8,
116u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 118u8, 97u8,
108u8, 117u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8,
100u8, 32u8, 102u8, 97u8, 108u8, 108u8, 53u8, 1u8, 32u8, 114u8, 111u8, 117u8, 103u8, 104u8,
108u8, 121u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 105u8, 100u8, 100u8,
108u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 100u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8,
84u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 97u8, 32u8, 105u8, 115u8, 32u8, 116u8, 111u8,
32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 119u8, 97u8, 105u8, 116u8, 32u8, 102u8, 111u8,
114u8, 25u8, 1u8, 32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8,
111u8, 114u8, 115u8, 32u8, 116u8, 111u8, 32u8, 112u8, 114u8, 111u8, 100u8, 117u8, 99u8, 101u8,
32u8, 97u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 44u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
101u8, 168u8, 32u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 32u8, 108u8,
97u8, 116u8, 101u8, 114u8, 32u8, 111u8, 110u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 110u8,
111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 110u8, 101u8, 99u8, 101u8, 115u8, 115u8, 97u8, 114u8,
121u8, 46u8, 0u8, 57u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 98u8, 101u8,
32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 102u8, 97u8, 108u8, 108u8,
98u8, 97u8, 99u8, 107u8, 32u8, 105u8, 102u8, 32u8, 119u8, 101u8, 32u8, 102u8, 97u8, 105u8, 108u8,
32u8, 116u8, 111u8, 32u8, 103u8, 101u8, 116u8, 32u8, 97u8, 32u8, 112u8, 114u8, 111u8, 112u8,
101u8, 114u8, 32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 45u8, 1u8, 32u8, 112u8,
114u8, 111u8, 103u8, 114u8, 101u8, 115u8, 115u8, 32u8, 101u8, 115u8, 116u8, 105u8, 109u8, 97u8,
116u8, 101u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 96u8, 78u8, 101u8, 120u8, 116u8, 83u8,
101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 82u8, 111u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8,
96u8, 44u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 111u8, 115u8, 101u8, 32u8, 101u8, 115u8,
116u8, 105u8, 109u8, 97u8, 116u8, 101u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8,
32u8, 98u8, 101u8, 1u8, 1u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 97u8, 99u8, 99u8, 117u8,
114u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 119u8, 101u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8,
108u8, 97u8, 116u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 72u8, 101u8, 97u8, 114u8,
116u8, 98u8, 101u8, 97u8, 116u8, 65u8, 102u8, 116u8, 101u8, 114u8, 96u8, 46u8, 16u8, 75u8, 101u8,
121u8, 115u8, 1u8, 0u8, 29u8, 9u8, 4u8, 0u8, 4u8, 208u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8, 32u8,
107u8, 101u8, 121u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 109u8, 97u8, 121u8, 32u8,
105u8, 115u8, 115u8, 117u8, 101u8, 32u8, 97u8, 32u8, 104u8, 101u8, 97u8, 114u8, 116u8, 98u8,
101u8, 97u8, 116u8, 46u8, 72u8, 82u8, 101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 100u8, 72u8,
101u8, 97u8, 114u8, 116u8, 98u8, 101u8, 97u8, 116u8, 115u8, 0u8, 1u8, 8u8, 5u8, 5u8, 153u8, 3u8,
37u8, 9u8, 4u8, 0u8, 8u8, 61u8, 1u8, 32u8, 70u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8,
32u8, 115u8, 101u8, 115u8, 115u8, 105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
44u8, 32u8, 119u8, 101u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 97u8, 32u8, 109u8, 97u8, 112u8,
112u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 96u8, 83u8, 101u8, 115u8, 115u8, 105u8,
111u8, 110u8, 73u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 96u8, 65u8,
117u8, 116u8, 104u8, 73u8, 110u8, 100u8, 101u8, 120u8, 96u8, 32u8, 116u8, 111u8, 176u8, 32u8,
96u8, 87u8, 114u8, 97u8, 112u8, 112u8, 101u8, 114u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8,
60u8, 66u8, 111u8, 117u8, 110u8, 100u8, 101u8, 100u8, 79u8, 112u8, 97u8, 113u8, 117u8, 101u8,
78u8, 101u8, 116u8, 119u8, 111u8, 114u8, 107u8, 83u8, 116u8, 97u8, 116u8, 101u8, 62u8, 96u8,
46u8, 56u8, 65u8, 117u8, 116u8, 104u8, 111u8, 114u8, 101u8, 100u8, 66u8, 108u8, 111u8, 99u8,
107u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8, 173u8, 8u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 8u8, 21u8,
1u8, 32u8, 70u8, 111u8, 114u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 115u8, 101u8, 115u8, 115u8,
105u8, 111u8, 110u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 44u8, 32u8, 119u8, 101u8, 32u8,
107u8, 101u8, 101u8, 112u8, 32u8, 97u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8,
32u8, 111u8, 102u8, 32u8, 96u8, 86u8, 97u8, 108u8, 105u8, 100u8, 97u8, 116u8, 111u8, 114u8, 73u8,
100u8, 60u8, 84u8, 62u8, 96u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 200u8, 32u8, 110u8,
117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
115u8, 32u8, 97u8, 117u8, 116u8, 104u8, 111u8, 114u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8,
116u8, 104u8, 101u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 117u8, 116u8, 104u8,
111u8, 114u8, 105u8, 116u8, 121u8, 46u8, 1u8, 37u8, 7u8, 1u8, 177u8, 1u8, 4u8, 64u8, 85u8, 110u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 80u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8,
32u8, 32u8, 255u8, 255u8, 255u8, 255u8, 255u8, 255u8, 255u8, 255u8, 16u8, 240u8, 32u8, 65u8,
32u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 117u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8,
32u8, 102u8, 111u8, 114u8, 32u8, 98u8, 97u8, 115u8, 101u8, 32u8, 112u8, 114u8, 105u8, 111u8,
114u8, 105u8, 116u8, 121u8, 32u8, 111u8, 102u8, 32u8, 117u8, 110u8, 115u8, 105u8, 103u8, 110u8,
101u8, 100u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
115u8, 46u8, 0u8, 21u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 101u8,
120u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 115u8, 111u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 105u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 116u8, 117u8, 110u8, 101u8,
100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 117u8, 108u8,
97u8, 114u8, 32u8, 114u8, 117u8, 110u8, 116u8, 105u8, 109u8, 101u8, 44u8, 32u8, 119u8, 104u8,
101u8, 110u8, 180u8, 32u8, 109u8, 117u8, 108u8, 116u8, 105u8, 112u8, 108u8, 101u8, 32u8, 112u8,
97u8, 108u8, 108u8, 101u8, 116u8, 115u8, 32u8, 115u8, 101u8, 110u8, 100u8, 32u8, 117u8, 110u8,
115u8, 105u8, 103u8, 110u8, 101u8, 100u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 1u8, 57u8, 9u8, 23u8, 96u8, 82u8, 97u8, 110u8, 100u8,
111u8, 109u8, 110u8, 101u8, 115u8, 115u8, 67u8, 111u8, 108u8, 108u8, 101u8, 99u8, 116u8, 105u8,
118u8, 101u8, 70u8, 108u8, 105u8, 112u8, 1u8, 96u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8,
110u8, 101u8, 115u8, 115u8, 67u8, 111u8, 108u8, 108u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8,
70u8, 108u8, 105u8, 112u8, 4u8, 56u8, 82u8, 97u8, 110u8, 100u8, 111u8, 109u8, 77u8, 97u8, 116u8,
101u8, 114u8, 105u8, 97u8, 108u8, 1u8, 0u8, 61u8, 9u8, 4u8, 0u8, 12u8, 97u8, 1u8, 32u8, 83u8,
101u8, 114u8, 105u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8,
32u8, 104u8, 101u8, 97u8, 100u8, 101u8, 114u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
116u8, 104u8, 101u8, 32u8, 108u8, 97u8, 115u8, 116u8, 32u8, 56u8, 49u8, 32u8, 98u8, 108u8, 111u8,
99u8, 107u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 99u8, 116u8, 115u8, 32u8, 97u8,
115u8, 32u8, 114u8, 97u8, 110u8, 100u8, 111u8, 109u8, 32u8, 115u8, 101u8, 101u8, 100u8, 32u8,
109u8, 97u8, 116u8, 101u8, 114u8, 105u8, 97u8, 108u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8,
97u8, 1u8, 32u8, 105u8, 115u8, 32u8, 97u8, 114u8, 114u8, 97u8, 110u8, 103u8, 101u8, 100u8, 32u8,
97u8, 115u8, 32u8, 97u8, 32u8, 114u8, 105u8, 110u8, 103u8, 32u8, 98u8, 117u8, 102u8, 102u8,
101u8, 114u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 98u8, 108u8, 111u8, 99u8, 107u8,
95u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 37u8, 32u8, 56u8, 49u8, 96u8, 32u8, 98u8,
101u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
32u8, 105u8, 110u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 86u8, 101u8, 99u8, 96u8,
32u8, 111u8, 102u8, 68u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 108u8, 100u8, 101u8, 115u8,
116u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 0u8, 0u8, 0u8, 0u8, 24u8, 16u8, 83u8, 117u8, 100u8,
111u8, 1u8, 16u8, 83u8, 117u8, 100u8, 111u8, 4u8, 12u8, 75u8, 101u8, 121u8, 1u8, 0u8, 0u8, 128u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 132u8, 32u8, 84u8, 104u8,
101u8, 32u8, 96u8, 65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 117u8, 100u8, 111u8, 32u8, 107u8, 101u8, 121u8,
46u8, 1u8, 69u8, 7u8, 1u8, 213u8, 1u8, 0u8, 1u8, 65u8, 9u8, 25u8, 20u8, 65u8, 115u8, 115u8,
101u8, 116u8, 1u8, 20u8, 65u8, 115u8, 115u8, 101u8, 116u8, 124u8, 28u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 69u8, 9u8, 132u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 116u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 46u8, 124u8, 32u8, 40u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8,
101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 48u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 1u8, 0u8, 97u8, 7u8, 8u8,
0u8, 0u8, 8u8, 112u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 114u8, 101u8, 103u8,
105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 99u8, 111u8, 110u8, 102u8,
105u8, 103u8, 46u8, 148u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8,
62u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 82u8, 101u8, 103u8, 105u8, 115u8, 116u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 110u8, 102u8, 105u8, 103u8, 24u8, 84u8,
111u8, 107u8, 101u8, 110u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 73u8, 9u8, 200u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 224u8, 32u8, 68u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 115u8, 112u8, 111u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 5u8, 1u8, 32u8, 40u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 83u8, 101u8, 99u8, 117u8, 114u8, 105u8, 116u8,
121u8, 84u8, 111u8, 107u8, 101u8, 110u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8,
32u8, 91u8, 114u8, 101u8, 116u8, 117u8, 114u8, 110u8, 115u8, 32u8, 83u8, 101u8, 99u8, 117u8,
114u8, 105u8, 116u8, 121u8, 84u8, 111u8, 107u8, 101u8, 110u8, 32u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 93u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 115u8, 1u8,
1u8, 4u8, 2u8, 156u8, 249u8, 1u8, 4u8, 0u8, 8u8, 236u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8,
111u8, 107u8, 101u8, 110u8, 32u8, 99u8, 111u8, 114u8, 114u8, 101u8, 115u8, 112u8, 111u8, 110u8,
100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8,
107u8, 101u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 96u8, 32u8, 40u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 96u8, 65u8, 115u8, 115u8,
101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 96u8, 36u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
79u8, 102u8, 1u8, 1u8, 8u8, 2u8, 6u8, 77u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 180u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8,
111u8, 116u8, 97u8, 108u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 112u8, 101u8,
114u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 100u8, 32u8, 40u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 68u8, 73u8, 68u8, 41u8, 32u8, 45u8, 62u8,
32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 44u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8,
102u8, 105u8, 101u8, 114u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 233u8, 1u8, 4u8, 0u8, 4u8, 184u8,
32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 110u8, 97u8, 109u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 102u8, 105u8, 101u8,
114u8, 115u8, 46u8, 80u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 84u8, 121u8, 112u8, 101u8,
73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 0u8, 229u8, 1u8, 16u8,
0u8, 0u8, 0u8, 0u8, 12u8, 196u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8,
32u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 121u8, 112u8, 101u8, 58u8, 58u8, 67u8, 117u8,
115u8, 116u8, 111u8, 109u8, 96u8, 32u8, 73u8, 68u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8,
101u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 46u8, 0u8, 208u8, 32u8, 78u8,
117u8, 109u8, 98u8, 101u8, 114u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 32u8, 115u8, 116u8, 97u8, 114u8, 116u8,
32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 49u8, 32u8, 114u8, 97u8, 116u8, 104u8, 101u8, 114u8,
32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 48u8, 46u8, 44u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8,
84u8, 121u8, 112u8, 101u8, 115u8, 1u8, 1u8, 4u8, 5u8, 229u8, 1u8, 40u8, 4u8, 0u8, 4u8, 248u8,
32u8, 77u8, 97u8, 112u8, 115u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 97u8, 115u8,
115u8, 101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 105u8, 100u8, 115u8, 32u8, 116u8,
111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8,
101u8, 100u8, 32u8, 115u8, 116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 116u8,
101u8, 110u8, 116u8, 115u8, 46u8, 72u8, 67u8, 117u8, 115u8, 116u8, 111u8, 109u8, 84u8, 121u8,
112u8, 101u8, 115u8, 73u8, 110u8, 118u8, 101u8, 114u8, 115u8, 101u8, 1u8, 1u8, 4u8, 2u8, 40u8,
229u8, 1u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 97u8, 1u8, 32u8, 73u8, 110u8, 118u8, 101u8, 114u8,
115u8, 101u8, 32u8, 109u8, 97u8, 112u8, 32u8, 111u8, 102u8, 32u8, 96u8, 67u8, 117u8, 115u8,
116u8, 111u8, 109u8, 84u8, 121u8, 112u8, 101u8, 115u8, 96u8, 44u8, 32u8, 102u8, 114u8, 111u8,
109u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 101u8, 114u8, 101u8, 100u8, 32u8, 115u8,
116u8, 114u8, 105u8, 110u8, 103u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 110u8, 116u8, 115u8,
32u8, 116u8, 111u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 32u8, 116u8, 121u8, 112u8, 101u8, 32u8, 105u8, 100u8, 115u8, 46u8, 48u8, 70u8,
117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 1u8, 1u8, 4u8, 2u8,
156u8, 221u8, 1u8, 4u8, 0u8, 8u8, 156u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 97u8, 109u8,
101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8,
110u8, 116u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 114u8, 111u8, 117u8,
110u8, 100u8, 46u8, 96u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8, 62u8, 32u8,
102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 80u8,
73u8, 115u8, 115u8, 117u8, 101u8, 100u8, 73u8, 110u8, 70u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 1u8, 1u8, 4u8, 2u8, 81u8, 9u8, 24u8, 64u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 17u8, 1u8, 32u8, 84u8,
104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 115u8, 32u8, 111u8, 102u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 115u8, 32u8, 105u8,
115u8, 115u8, 117u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 97u8, 108u8, 108u8, 32u8, 114u8,
101u8, 99u8, 111u8, 114u8, 100u8, 101u8, 100u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 114u8, 111u8, 117u8, 110u8, 100u8, 115u8, 46u8, 140u8, 32u8, 40u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8,
114u8, 111u8, 117u8, 110u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8,
99u8, 101u8, 24u8, 70u8, 114u8, 111u8, 122u8, 101u8, 110u8, 1u8, 1u8, 4u8, 2u8, 156u8, 21u8, 1u8,
4u8, 0u8, 8u8, 232u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8, 111u8, 102u8,
32u8, 102u8, 114u8, 111u8, 122u8, 101u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 115u8,
32u8, 105u8, 109u8, 112u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 97u8,
115u8, 32u8, 97u8, 32u8, 109u8, 101u8, 109u8, 98u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8,
32u8, 109u8, 97u8, 112u8, 46u8, 60u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 45u8,
62u8, 32u8, 98u8, 111u8, 111u8, 108u8, 92u8, 65u8, 115u8, 115u8, 101u8, 116u8, 79u8, 119u8,
110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 82u8, 101u8, 108u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 1u8, 1u8, 8u8, 6u8, 2u8, 85u8, 9u8, 89u8, 9u8, 4u8, 0u8, 8u8, 136u8, 32u8, 84u8,
105u8, 99u8, 107u8, 101u8, 114u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 111u8, 107u8,
101u8, 110u8, 32u8, 111u8, 119u8, 110u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 32u8,
117u8, 115u8, 101u8, 114u8, 132u8, 32u8, 40u8, 117u8, 115u8, 101u8, 114u8, 44u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
79u8, 119u8, 110u8, 101u8, 114u8, 115u8, 104u8, 105u8, 112u8, 56u8, 65u8, 115u8, 115u8, 101u8,
116u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 1u8, 1u8, 8u8, 2u8, 5u8,
93u8, 9u8, 1u8, 2u8, 20u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 124u8, 32u8, 68u8, 111u8, 99u8, 117u8,
109u8, 101u8, 110u8, 116u8, 115u8, 32u8, 97u8, 116u8, 116u8, 97u8, 99u8, 104u8, 101u8, 100u8,
32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 116u8, 32u8, 40u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 100u8, 111u8, 99u8, 95u8, 105u8, 100u8,
41u8, 32u8, 45u8, 62u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 96u8, 65u8,
115u8, 115u8, 101u8, 116u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 115u8, 73u8,
100u8, 83u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 2u8, 156u8, 253u8,
1u8, 16u8, 0u8, 0u8, 0u8, 0u8, 8u8, 128u8, 32u8, 80u8, 101u8, 114u8, 45u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 32u8, 73u8,
68u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 46u8, 76u8, 32u8, 40u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 100u8, 111u8, 99u8, 95u8, 105u8, 100u8,
56u8, 67u8, 108u8, 97u8, 115u8, 115u8, 105u8, 99u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
115u8, 0u8, 1u8, 4u8, 2u8, 156u8, 97u8, 9u8, 4u8, 0u8, 4u8, 240u8, 32u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 114u8, 101u8, 103u8, 105u8, 115u8, 116u8, 114u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 111u8, 110u8, 32u8,
80u8, 111u8, 108u8, 121u8, 109u8, 97u8, 116u8, 104u8, 32u8, 67u8, 108u8, 97u8, 115u8, 115u8,
105u8, 99u8, 32u8, 47u8, 32u8, 69u8, 116u8, 104u8, 101u8, 114u8, 101u8, 117u8, 109u8, 46u8, 64u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 79u8, 102u8, 65u8, 116u8, 83u8, 99u8, 111u8, 112u8,
101u8, 1u8, 1u8, 8u8, 6u8, 6u8, 101u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 12u8, 204u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 115u8, 32u8, 103u8, 101u8, 116u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8,
111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 97u8, 115u8, 105u8, 115u8, 32u8, 111u8,
102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 96u8,
46u8, 157u8, 1u8, 32u8, 82u8, 105u8, 103u8, 104u8, 116u8, 32u8, 110u8, 111u8, 119u8, 32u8, 105u8,
116u8, 32u8, 105u8, 115u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 104u8, 101u8, 108u8, 112u8,
102u8, 117u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 85u8, 73u8,
32u8, 112u8, 117u8, 114u8, 112u8, 111u8, 115u8, 101u8, 115u8, 32u8, 98u8, 117u8, 116u8, 32u8,
105u8, 110u8, 32u8, 102u8, 117u8, 116u8, 117u8, 114u8, 101u8, 32u8, 105u8, 116u8, 32u8, 99u8,
97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8,
100u8, 111u8, 32u8, 109u8, 105u8, 114u8, 97u8, 99u8, 108u8, 101u8, 115u8, 32u8, 111u8, 110u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 136u8, 32u8, 40u8, 83u8, 99u8, 111u8, 112u8, 101u8,
73u8, 100u8, 44u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
41u8, 32u8, 61u8, 62u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 64u8, 65u8,
103u8, 103u8, 114u8, 101u8, 103u8, 97u8, 116u8, 101u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 1u8, 1u8, 8u8, 2u8, 6u8, 77u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 37u8, 1u8, 32u8, 83u8, 116u8, 111u8, 114u8, 101u8,
32u8, 97u8, 103u8, 103u8, 114u8, 101u8, 103u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 111u8, 115u8, 101u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 104u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 96u8,
83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 96u8, 46u8, 120u8, 32u8, 40u8, 84u8, 105u8, 99u8,
107u8, 101u8, 114u8, 44u8, 32u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 41u8, 32u8, 61u8,
62u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 46u8, 36u8, 83u8, 99u8, 111u8, 112u8,
101u8, 73u8, 100u8, 79u8, 102u8, 1u8, 1u8, 8u8, 2u8, 6u8, 77u8, 9u8, 120u8, 128u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 220u8, 32u8, 84u8, 114u8, 97u8, 99u8,
107u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8,
116u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8,
32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 132u8, 32u8, 40u8, 84u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
41u8, 32u8, 61u8, 62u8, 32u8, 83u8, 99u8, 111u8, 112u8, 101u8, 73u8, 100u8, 46u8, 100u8, 68u8,
105u8, 115u8, 97u8, 98u8, 108u8, 101u8, 73u8, 110u8, 118u8, 101u8, 115u8, 116u8, 111u8, 114u8,
85u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8,
21u8, 1u8, 4u8, 0u8, 16u8, 49u8, 1u8, 32u8, 68u8, 101u8, 99u8, 105u8, 100u8, 101u8, 115u8, 32u8,
119u8, 104u8, 101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 105u8, 110u8, 118u8, 101u8, 115u8, 116u8,
111u8, 114u8, 32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 32u8,
114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 109u8, 101u8, 110u8, 116u8, 32u8, 105u8, 115u8,
32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8,
116u8, 104u8, 105u8, 115u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 140u8, 32u8, 96u8,
102u8, 97u8, 108u8, 115u8, 101u8, 96u8, 32u8, 109u8, 101u8, 97u8, 110u8, 115u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 101u8, 110u8, 102u8, 111u8,
114u8, 99u8, 101u8, 100u8, 46u8, 0u8, 64u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
61u8, 62u8, 32u8, 98u8, 111u8, 111u8, 108u8, 46u8, 76u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8,
101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 115u8, 0u8, 1u8,
8u8, 2u8, 5u8, 105u8, 9u8, 49u8, 2u8, 4u8, 0u8, 4u8, 124u8, 32u8, 77u8, 101u8, 116u8, 97u8,
116u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 46u8, 100u8, 65u8,
115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 86u8, 97u8,
108u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 0u8, 1u8, 8u8, 2u8, 5u8,
105u8, 9u8, 57u8, 2u8, 4u8, 0u8, 4u8, 160u8, 32u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 39u8,
115u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 118u8, 97u8, 108u8, 117u8,
101u8, 115u8, 46u8, 108u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 78u8, 97u8, 109u8, 101u8, 84u8, 111u8, 75u8,
101u8, 121u8, 0u8, 1u8, 8u8, 2u8, 2u8, 109u8, 9u8, 69u8, 2u8, 4u8, 0u8, 4u8, 136u8, 32u8, 65u8,
115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 76u8,
111u8, 99u8, 97u8, 108u8, 32u8, 78u8, 97u8, 109u8, 101u8, 32u8, 45u8, 62u8, 32u8, 75u8, 101u8,
121u8, 46u8, 112u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 78u8, 97u8, 109u8, 101u8, 84u8, 111u8, 75u8,
101u8, 121u8, 0u8, 1u8, 4u8, 2u8, 65u8, 2u8, 97u8, 2u8, 4u8, 0u8, 4u8, 140u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 71u8, 108u8,
111u8, 98u8, 97u8, 108u8, 32u8, 78u8, 97u8, 109u8, 101u8, 32u8, 45u8, 62u8, 32u8, 75u8, 101u8,
121u8, 46u8, 108u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 76u8, 111u8, 99u8, 97u8, 108u8, 75u8, 101u8, 121u8, 84u8, 111u8, 78u8, 97u8, 109u8,
101u8, 0u8, 1u8, 8u8, 2u8, 5u8, 113u8, 9u8, 65u8, 2u8, 4u8, 0u8, 4u8, 136u8, 32u8, 65u8, 115u8,
115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 76u8, 111u8,
99u8, 97u8, 108u8, 32u8, 75u8, 101u8, 121u8, 32u8, 45u8, 62u8, 32u8, 78u8, 97u8, 109u8, 101u8,
46u8, 112u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 84u8, 111u8, 78u8, 97u8, 109u8,
101u8, 0u8, 1u8, 4u8, 5u8, 97u8, 2u8, 65u8, 2u8, 4u8, 0u8, 4u8, 140u8, 32u8, 65u8, 115u8, 115u8,
101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 71u8, 108u8, 111u8,
98u8, 97u8, 108u8, 32u8, 75u8, 101u8, 121u8, 32u8, 45u8, 62u8, 32u8, 78u8, 97u8, 109u8, 101u8,
46u8, 92u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8,
76u8, 111u8, 99u8, 97u8, 108u8, 83u8, 112u8, 101u8, 99u8, 115u8, 0u8, 1u8, 8u8, 2u8, 5u8, 113u8,
9u8, 73u8, 2u8, 4u8, 0u8, 4u8, 128u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8,
116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 76u8, 111u8, 99u8, 97u8, 108u8, 32u8, 75u8, 101u8,
121u8, 32u8, 115u8, 112u8, 101u8, 99u8, 115u8, 46u8, 96u8, 65u8, 115u8, 115u8, 101u8, 116u8,
77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 83u8,
112u8, 101u8, 99u8, 115u8, 0u8, 1u8, 4u8, 5u8, 97u8, 2u8, 73u8, 2u8, 4u8, 0u8, 4u8, 132u8, 32u8,
65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8,
71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 75u8, 101u8, 121u8, 32u8, 115u8, 112u8, 101u8, 99u8,
115u8, 46u8, 100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8,
116u8, 97u8, 78u8, 101u8, 120u8, 116u8, 76u8, 111u8, 99u8, 97u8, 108u8, 75u8, 101u8, 121u8, 1u8,
1u8, 4u8, 2u8, 156u8, 69u8, 2u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 124u8, 32u8,
78u8, 101u8, 120u8, 116u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8,
97u8, 100u8, 97u8, 116u8, 97u8, 32u8, 76u8, 111u8, 99u8, 97u8, 108u8, 32u8, 75u8, 101u8, 121u8,
46u8, 104u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 78u8, 101u8, 120u8, 116u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 75u8, 101u8, 121u8, 1u8,
0u8, 97u8, 2u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 128u8, 32u8, 78u8, 101u8,
120u8, 116u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8,
97u8, 116u8, 97u8, 32u8, 71u8, 108u8, 111u8, 98u8, 97u8, 108u8, 32u8, 75u8, 101u8, 121u8, 46u8,
56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 1u8, 0u8, 117u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 73u8, 7u8, 1u8, 217u8,
1u8, 20u8, 72u8, 65u8, 115u8, 115u8, 101u8, 116u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8,
76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 16u8, 16u8, 128u8, 0u8, 0u8, 0u8, 0u8, 100u8, 70u8,
117u8, 110u8, 100u8, 105u8, 110u8, 103u8, 82u8, 111u8, 117u8, 110u8, 100u8, 78u8, 97u8, 109u8,
101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 16u8, 16u8, 128u8, 0u8, 0u8,
0u8, 0u8, 104u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8,
97u8, 78u8, 97u8, 109u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 16u8,
16u8, 0u8, 1u8, 0u8, 0u8, 0u8, 108u8, 65u8, 115u8, 115u8, 101u8, 116u8, 77u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 86u8, 97u8, 108u8, 117u8, 101u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8,
103u8, 116u8, 104u8, 16u8, 16u8, 0u8, 32u8, 0u8, 0u8, 0u8, 116u8, 65u8, 115u8, 115u8, 101u8,
116u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 84u8, 121u8, 112u8, 101u8, 68u8,
101u8, 102u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 103u8, 116u8, 104u8, 16u8, 16u8, 0u8, 32u8,
0u8, 0u8, 0u8, 1u8, 121u8, 9u8, 26u8, 76u8, 67u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 68u8,
105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 1u8, 76u8, 67u8,
97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 12u8, 52u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8,
116u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 4u8, 2u8, 109u8, 2u8, 117u8, 2u8, 4u8, 0u8, 12u8,
53u8, 1u8, 32u8, 65u8, 108u8, 108u8, 32u8, 99u8, 97u8, 112u8, 105u8, 116u8, 97u8, 108u8, 32u8,
100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 111u8, 110u8, 115u8, 44u8,
32u8, 116u8, 105u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8,
32u8, 114u8, 101u8, 115u8, 112u8, 101u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 99u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
115u8, 32u8, 40u8, 67u8, 65u8, 115u8, 41u8, 46u8, 0u8, 92u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8,
41u8, 32u8, 61u8, 62u8, 32u8, 68u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8,
111u8, 110u8, 40u8, 72u8, 111u8, 108u8, 100u8, 101u8, 114u8, 80u8, 97u8, 105u8, 100u8, 1u8, 1u8,
4u8, 2u8, 125u8, 9u8, 21u8, 1u8, 4u8, 0u8, 12u8, 140u8, 32u8, 72u8, 97u8, 115u8, 32u8, 97u8,
110u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 32u8, 104u8, 111u8, 108u8, 100u8, 101u8, 114u8,
32u8, 98u8, 101u8, 101u8, 110u8, 32u8, 112u8, 97u8, 105u8, 100u8, 32u8, 121u8, 101u8, 116u8,
63u8, 0u8, 164u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8, 44u8, 32u8, 68u8, 73u8, 68u8, 41u8, 32u8,
45u8, 62u8, 32u8, 87u8, 97u8, 115u8, 32u8, 68u8, 73u8, 68u8, 32u8, 112u8, 97u8, 105u8, 100u8,
32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 67u8, 65u8, 73u8, 100u8, 63u8, 56u8, 83u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8,
0u8, 129u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 105u8, 7u8, 1u8, 101u8, 2u8, 0u8,
1u8, 133u8, 9u8, 27u8, 40u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
1u8, 40u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 44u8, 44u8, 84u8,
111u8, 116u8, 97u8, 108u8, 83u8, 117u8, 112u8, 112u8, 108u8, 121u8, 1u8, 1u8, 8u8, 2u8, 5u8,
137u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 12u8, 180u8, 32u8, 84u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 117u8, 112u8, 112u8,
108u8, 121u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 116u8, 111u8, 107u8, 101u8,
110u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8,
112u8, 111u8, 105u8, 110u8, 116u8, 46u8, 0u8, 236u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 44u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
73u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 115u8, 117u8,
112u8, 112u8, 108u8, 121u8, 32u8, 97u8, 116u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 28u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 1u8, 1u8, 8u8, 2u8, 5u8, 141u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 12u8, 136u8, 32u8, 66u8, 97u8, 108u8,
97u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8, 32u8, 97u8,
116u8, 32u8, 97u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
46u8, 0u8, 5u8, 1u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 100u8,
105u8, 100u8, 44u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
32u8, 73u8, 68u8, 41u8, 32u8, 45u8, 62u8, 32u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8, 32u8, 97u8, 116u8, 32u8, 97u8, 32u8,
99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 80u8, 67u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8,
110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 2u8, 156u8, 133u8, 2u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 16u8, 140u8, 32u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8,
115u8, 32u8, 73u8, 68u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8,
32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 46u8, 168u8, 32u8, 73u8, 68u8, 32u8,
111u8, 102u8, 32u8, 102u8, 105u8, 114u8, 115u8, 116u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8,
112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 105u8, 115u8, 32u8, 49u8, 32u8, 105u8, 110u8, 115u8,
116u8, 101u8, 97u8, 100u8, 32u8, 111u8, 102u8, 32u8, 48u8, 46u8, 0u8, 124u8, 32u8, 40u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 110u8, 111u8, 46u8, 32u8, 111u8,
102u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 56u8,
66u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 85u8, 112u8, 100u8, 97u8, 116u8, 101u8, 115u8, 1u8,
1u8, 8u8, 2u8, 5u8, 77u8, 9u8, 145u8, 9u8, 4u8, 0u8, 8u8, 188u8, 32u8, 67u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8,
97u8, 32u8, 68u8, 73u8, 68u8, 39u8, 115u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8,
32u8, 119u8, 97u8, 115u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 46u8, 240u8,
32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 100u8, 105u8, 100u8, 41u8, 32u8,
45u8, 62u8, 32u8, 91u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8,
73u8, 68u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8,
98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 99u8, 104u8, 97u8, 110u8, 103u8, 101u8, 100u8,
93u8, 40u8, 84u8, 105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 115u8, 1u8, 1u8, 8u8,
2u8, 5u8, 137u8, 9u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 24u8, 92u8, 32u8, 67u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8,
115u8, 116u8, 97u8, 109u8, 112u8, 115u8, 46u8, 0u8, 9u8, 1u8, 32u8, 69u8, 118u8, 101u8, 114u8,
121u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 45u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 97u8, 116u8, 101u8, 100u8, 32u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8,
111u8, 105u8, 110u8, 116u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 105u8, 116u8, 115u8, 32u8,
73u8, 68u8, 32u8, 116u8, 111u8, 32u8, 105u8, 116u8, 115u8, 32u8, 100u8, 117u8, 101u8, 32u8,
116u8, 105u8, 109u8, 101u8, 46u8, 33u8, 1u8, 32u8, 69u8, 118u8, 101u8, 114u8, 121u8, 32u8, 99u8,
104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 109u8, 97u8, 110u8, 117u8,
97u8, 108u8, 108u8, 121u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 109u8,
97u8, 112u8, 115u8, 32u8, 105u8, 116u8, 115u8, 32u8, 73u8, 68u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 99u8,
111u8, 114u8, 100u8, 105u8, 110u8, 103u8, 46u8, 0u8, 208u8, 32u8, 40u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 40u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8,
111u8, 105u8, 110u8, 116u8, 32u8, 73u8, 68u8, 41u8, 32u8, 45u8, 62u8, 32u8, 99u8, 104u8, 101u8,
99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 116u8,
97u8, 109u8, 112u8, 88u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 77u8,
97u8, 120u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8, 1u8, 0u8, 32u8,
32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 25u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8,
109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 99u8, 111u8, 109u8, 112u8, 108u8, 101u8,
120u8, 105u8, 116u8, 121u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 97u8, 114u8, 98u8, 105u8, 116u8, 114u8, 97u8, 114u8,
121u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 39u8, 115u8, 32u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 115u8, 101u8, 116u8, 156u8, 32u8, 40u8, 105u8, 46u8,
101u8, 46u8, 32u8, 96u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 96u8, 32u8,
115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 32u8, 98u8,
101u8, 108u8, 111u8, 119u8, 41u8, 46u8, 72u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 2u8,
156u8, 153u8, 2u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 12u8, 180u8, 32u8, 67u8, 104u8,
101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8,
117u8, 108u8, 101u8, 32u8, 73u8, 68u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8,
101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 115u8, 46u8,
0u8, 96u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 73u8, 68u8, 36u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 149u8, 9u8, 4u8, 0u8, 12u8,
136u8, 32u8, 67u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 32u8, 115u8,
99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 115u8, 46u8, 0u8, 92u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8,
101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8, 91u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 93u8, 64u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 82u8, 101u8, 102u8,
67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 1u8, 8u8, 2u8, 5u8, 153u8, 9u8, 16u8, 16u8, 0u8, 0u8, 0u8,
0u8, 32u8, 1u8, 1u8, 32u8, 72u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 34u8,
115u8, 116u8, 114u8, 111u8, 110u8, 103u8, 34u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8,
110u8, 99u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8,
32u8, 116u8, 111u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 83u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 73u8, 100u8, 96u8, 63u8, 0u8, 252u8, 32u8, 84u8, 104u8,
101u8, 32u8, 112u8, 114u8, 101u8, 115u8, 101u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8,
97u8, 32u8, 34u8, 115u8, 116u8, 114u8, 111u8, 110u8, 103u8, 34u8, 32u8, 114u8, 101u8, 102u8,
101u8, 114u8, 101u8, 110u8, 99u8, 101u8, 44u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 101u8, 110u8, 115u8, 101u8, 32u8, 111u8, 102u8, 32u8, 96u8, 82u8, 99u8, 60u8, 84u8,
62u8, 96u8, 44u8, 224u8, 32u8, 101u8, 110u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 114u8, 101u8, 102u8, 101u8, 114u8, 101u8,
110u8, 99u8, 101u8, 100u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8,
118u8, 101u8, 100u8, 46u8, 216u8, 32u8, 84u8, 104u8, 117u8, 115u8, 44u8, 32u8, 97u8, 115u8, 32u8,
108u8, 111u8, 110u8, 103u8, 32u8, 97u8, 115u8, 32u8, 96u8, 115u8, 116u8, 114u8, 111u8, 110u8,
103u8, 95u8, 114u8, 101u8, 102u8, 95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 40u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 95u8, 105u8, 100u8, 41u8, 32u8, 62u8, 32u8, 48u8, 96u8,
44u8, 172u8, 32u8, 96u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 95u8, 115u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 40u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8,
95u8, 105u8, 100u8, 41u8, 96u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 101u8, 114u8, 114u8,
111u8, 114u8, 46u8, 0u8, 168u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8,
115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 73u8, 68u8, 41u8, 32u8, 45u8, 62u8,
32u8, 115u8, 116u8, 114u8, 111u8, 110u8, 103u8, 32u8, 114u8, 101u8, 102u8, 32u8, 99u8, 111u8,
117u8, 110u8, 116u8, 56u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 80u8, 111u8,
105u8, 110u8, 116u8, 115u8, 1u8, 1u8, 8u8, 2u8, 5u8, 153u8, 9u8, 145u8, 9u8, 4u8, 0u8, 12u8,
196u8, 32u8, 65u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 104u8, 101u8, 99u8,
107u8, 112u8, 111u8, 105u8, 110u8, 116u8, 115u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8,
110u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 97u8, 116u8, 101u8, 100u8, 46u8, 0u8, 164u8, 32u8, 40u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 44u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8,
73u8, 68u8, 41u8, 32u8, 45u8, 62u8, 32u8, 91u8, 99u8, 104u8, 101u8, 99u8, 107u8, 112u8, 111u8,
105u8, 110u8, 116u8, 32u8, 73u8, 68u8, 93u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 157u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8,
83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 46u8, 1u8, 113u8, 7u8, 1u8, 125u8, 2u8, 0u8, 1u8, 161u8, 9u8, 28u8, 68u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 77u8, 97u8, 110u8, 97u8, 103u8, 101u8,
114u8, 1u8, 68u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 77u8, 97u8,
110u8, 97u8, 103u8, 101u8, 114u8, 12u8, 64u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8,
109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 165u8,
9u8, 8u8, 0u8, 0u8, 4u8, 232u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 99u8, 111u8, 109u8,
112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 40u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 45u8, 62u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8, 109u8, 112u8, 108u8,
105u8, 97u8, 110u8, 99u8, 101u8, 41u8, 72u8, 84u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8,
67u8, 108u8, 97u8, 105u8, 109u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 1u8, 1u8, 4u8, 2u8,
156u8, 185u8, 2u8, 4u8, 0u8, 4u8, 220u8, 32u8, 76u8, 105u8, 115u8, 116u8, 32u8, 111u8, 102u8,
32u8, 116u8, 114u8, 117u8, 115u8, 116u8, 101u8, 100u8, 32u8, 99u8, 108u8, 97u8, 105u8, 109u8,
32u8, 105u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
32u8, 45u8, 62u8, 32u8, 73u8, 115u8, 115u8, 117u8, 101u8, 114u8, 32u8, 73u8, 100u8, 101u8, 110u8,
116u8, 105u8, 116u8, 121u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8,
114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 169u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8,
1u8, 121u8, 7u8, 1u8, 157u8, 2u8, 4u8, 88u8, 77u8, 97u8, 120u8, 67u8, 111u8, 110u8, 100u8, 105u8,
116u8, 105u8, 111u8, 110u8, 67u8, 111u8, 109u8, 112u8, 108u8, 101u8, 120u8, 105u8, 116u8, 121u8,
16u8, 16u8, 50u8, 0u8, 0u8, 0u8, 0u8, 1u8, 173u8, 9u8, 29u8, 60u8, 67u8, 111u8, 114u8, 112u8,
111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 1u8, 60u8, 67u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8, 111u8, 110u8, 36u8,
64u8, 77u8, 97u8, 120u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 76u8, 101u8, 110u8,
103u8, 116u8, 104u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 28u8, 93u8, 1u8, 32u8, 68u8,
101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8,
109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 98u8, 121u8, 116u8, 101u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8,
32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 114u8, 101u8, 101u8, 45u8, 102u8, 111u8, 114u8, 109u8,
32u8, 96u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 67u8, 65u8, 32u8, 99u8, 97u8, 110u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 46u8, 0u8,
41u8, 1u8, 32u8, 78u8, 111u8, 116u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8,
110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 96u8, 99u8, 104u8, 97u8,
114u8, 96u8, 115u8, 32u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 91u8, 103u8, 114u8, 97u8, 112u8, 104u8, 101u8,
109u8, 101u8, 115u8, 93u8, 46u8, 65u8, 1u8, 32u8, 87u8, 104u8, 105u8, 108u8, 101u8, 32u8, 116u8,
104u8, 105u8, 115u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8, 101u8, 32u8, 117u8, 110u8, 110u8,
97u8, 116u8, 117u8, 114u8, 97u8, 108u8, 32u8, 105u8, 110u8, 32u8, 116u8, 101u8, 114u8, 109u8,
115u8, 32u8, 111u8, 102u8, 32u8, 104u8, 117u8, 109u8, 97u8, 110u8, 32u8, 117u8, 110u8, 100u8,
101u8, 114u8, 115u8, 116u8, 97u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8,
97u8, 32u8, 116u8, 101u8, 120u8, 116u8, 39u8, 115u8, 32u8, 108u8, 101u8, 110u8, 103u8, 116u8,
104u8, 44u8, 101u8, 1u8, 32u8, 105u8, 116u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 99u8, 108u8,
111u8, 115u8, 101u8, 108u8, 121u8, 32u8, 114u8, 101u8, 102u8, 108u8, 101u8, 99u8, 116u8, 115u8,
32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 99u8, 111u8, 115u8, 116u8, 115u8, 32u8, 40u8, 96u8, 39u8, 97u8, 39u8, 96u8, 32u8,
105u8, 115u8, 32u8, 99u8, 104u8, 101u8, 97u8, 112u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8,
115u8, 116u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 97u8, 110u8, 32u8,
101u8, 109u8, 111u8, 106u8, 105u8, 41u8, 46u8, 0u8, 208u8, 32u8, 91u8, 103u8, 114u8, 97u8, 112u8,
104u8, 101u8, 109u8, 101u8, 115u8, 93u8, 58u8, 32u8, 104u8, 116u8, 116u8, 112u8, 115u8, 58u8,
47u8, 47u8, 101u8, 110u8, 46u8, 119u8, 105u8, 107u8, 105u8, 112u8, 101u8, 100u8, 105u8, 97u8,
46u8, 111u8, 114u8, 103u8, 47u8, 119u8, 105u8, 107u8, 105u8, 47u8, 71u8, 114u8, 97u8, 112u8,
104u8, 101u8, 109u8, 101u8, 92u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 84u8, 97u8,
114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8,
1u8, 1u8, 4u8, 2u8, 156u8, 213u8, 2u8, 8u8, 0u8, 1u8, 16u8, 240u8, 32u8, 84u8, 104u8, 101u8,
32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 116u8, 97u8,
114u8, 103u8, 101u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 100u8, 101u8, 102u8, 97u8,
117u8, 108u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 67u8, 65u8, 115u8, 32u8, 102u8, 111u8,
114u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8,
140u8, 32u8, 101u8, 105u8, 116u8, 104u8, 101u8, 114u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8,
32u8, 101u8, 120u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 105u8,
110u8, 99u8, 108u8, 117u8, 100u8, 101u8, 100u8, 46u8, 0u8, 120u8, 32u8, 40u8, 116u8, 105u8, 99u8,
107u8, 101u8, 114u8, 32u8, 61u8, 62u8, 32u8, 116u8, 97u8, 114u8, 103u8, 101u8, 116u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 41u8, 84u8, 68u8, 101u8,
102u8, 97u8, 117u8, 108u8, 116u8, 87u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8,
110u8, 103u8, 84u8, 97u8, 120u8, 1u8, 1u8, 4u8, 2u8, 156u8, 121u8, 2u8, 16u8, 0u8, 0u8, 0u8, 0u8,
32u8, 173u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8,
32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 97u8, 120u8,
32u8, 116u8, 111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 32u8, 40u8,
34u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8,
97u8, 120u8, 34u8, 44u8, 32u8, 87u8, 84u8, 41u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 100u8, 105u8, 115u8, 116u8, 114u8, 105u8, 98u8, 117u8, 116u8, 105u8, 110u8, 103u8, 32u8,
100u8, 105u8, 118u8, 105u8, 100u8, 101u8, 110u8, 100u8, 115u8, 46u8, 0u8, 53u8, 1u8, 32u8, 84u8,
111u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 115u8, 116u8, 97u8, 110u8, 100u8, 32u8, 119u8,
105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8, 116u8, 97u8, 120u8,
44u8, 32u8, 101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 108u8, 101u8, 116u8, 39u8, 115u8, 32u8, 97u8,
115u8, 115u8, 117u8, 109u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 121u8, 111u8, 117u8,
32u8, 104u8, 111u8, 108u8, 100u8, 32u8, 65u8, 67u8, 77u8, 69u8, 32u8, 115u8, 104u8, 97u8, 114u8,
101u8, 115u8, 46u8, 196u8, 32u8, 65u8, 67u8, 77u8, 69u8, 32u8, 110u8, 111u8, 119u8, 32u8, 100u8,
101u8, 99u8, 105u8, 100u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 100u8, 105u8, 115u8, 116u8,
114u8, 105u8, 98u8, 117u8, 116u8, 101u8, 32u8, 49u8, 48u8, 48u8, 32u8, 83u8, 69u8, 75u8, 32u8,
116u8, 111u8, 32u8, 65u8, 108u8, 105u8, 99u8, 101u8, 46u8, 89u8, 1u8, 32u8, 65u8, 108u8, 105u8,
99u8, 101u8, 32u8, 108u8, 105u8, 118u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 83u8, 119u8,
101u8, 100u8, 101u8, 110u8, 44u8, 32u8, 115u8, 111u8, 32u8, 83u8, 107u8, 97u8, 116u8, 116u8,
101u8, 118u8, 101u8, 114u8, 107u8, 101u8, 116u8, 32u8, 40u8, 116u8, 104u8, 101u8, 32u8, 83u8,
119u8, 101u8, 100u8, 105u8, 115u8, 104u8, 32u8, 116u8, 97u8, 120u8, 32u8, 97u8, 117u8, 116u8,
104u8, 111u8, 114u8, 105u8, 116u8, 121u8, 41u8, 32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8,
51u8, 48u8, 37u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 97u8, 116u8, 46u8, 93u8, 1u8, 32u8,
84u8, 104u8, 101u8, 110u8, 32u8, 116u8, 104u8, 111u8, 115u8, 101u8, 32u8, 49u8, 48u8, 48u8, 32u8,
42u8, 32u8, 51u8, 48u8, 37u8, 32u8, 97u8, 114u8, 101u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8,
101u8, 108u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 65u8, 108u8, 105u8, 99u8, 101u8,
44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 65u8, 67u8, 77u8, 69u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 115u8, 101u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 109u8, 32u8, 116u8, 111u8, 32u8,
83u8, 107u8, 97u8, 116u8, 116u8, 101u8, 118u8, 101u8, 114u8, 107u8, 101u8, 116u8, 46u8, 0u8,
104u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 61u8, 62u8, 32u8, 37u8, 32u8,
116u8, 111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 41u8, 68u8, 68u8,
105u8, 100u8, 87u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 84u8,
97u8, 120u8, 1u8, 1u8, 4u8, 2u8, 156u8, 245u8, 2u8, 4u8, 0u8, 16u8, 73u8, 1u8, 32u8, 84u8, 104u8,
101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 116u8, 97u8,
120u8, 32u8, 116u8, 111u8, 32u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 32u8,
40u8, 34u8, 119u8, 105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 32u8,
116u8, 97u8, 120u8, 34u8, 44u8, 32u8, 87u8, 84u8, 41u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
32u8, 99u8, 101u8, 114u8, 116u8, 97u8, 105u8, 110u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 120u8, 32u8, 68u8, 73u8, 68u8, 46u8, 109u8, 1u8, 32u8, 73u8, 102u8, 32u8, 97u8,
110u8, 32u8, 101u8, 110u8, 116u8, 114u8, 121u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 115u8,
32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 99u8, 101u8, 114u8, 116u8, 97u8, 105u8, 110u8, 32u8,
68u8, 73u8, 68u8, 44u8, 32u8, 105u8, 116u8, 32u8, 111u8, 118u8, 101u8, 114u8, 114u8, 105u8,
100u8, 101u8, 115u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 105u8, 110u8, 32u8, 96u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 87u8,
105u8, 116u8, 104u8, 104u8, 111u8, 108u8, 100u8, 105u8, 110u8, 103u8, 84u8, 97u8, 120u8, 96u8,
46u8, 0u8, 136u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 61u8, 62u8, 32u8,
91u8, 40u8, 100u8, 105u8, 100u8, 44u8, 32u8, 37u8, 32u8, 116u8, 111u8, 32u8, 119u8, 105u8, 116u8,
104u8, 104u8, 111u8, 108u8, 100u8, 41u8, 93u8, 48u8, 67u8, 65u8, 73u8, 100u8, 83u8, 101u8, 113u8,
117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 2u8, 156u8, 113u8, 2u8, 16u8, 0u8, 0u8, 0u8,
0u8, 8u8, 180u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 112u8, 101u8,
114u8, 45u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 67u8, 65u8, 32u8, 73u8,
68u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8,
110u8, 99u8, 101u8, 46u8, 77u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 102u8, 117u8, 108u8, 108u8,
32u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8,
32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 98u8, 105u8, 110u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
97u8, 110u8, 100u8, 32u8, 97u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 105u8,
110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8,
101u8, 46u8, 64u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8,
116u8, 105u8, 111u8, 110u8, 115u8, 0u8, 1u8, 8u8, 2u8, 5u8, 177u8, 9u8, 225u8, 2u8, 4u8, 0u8,
20u8, 108u8, 32u8, 65u8, 108u8, 108u8, 32u8, 114u8, 101u8, 99u8, 111u8, 114u8, 100u8, 101u8,
100u8, 32u8, 67u8, 65u8, 115u8, 32u8, 116u8, 104u8, 117u8, 115u8, 32u8, 102u8, 97u8, 114u8, 46u8,
164u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 105u8, 99u8,
32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8,
115u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 104u8, 101u8, 114u8, 101u8, 46u8,
125u8, 1u8, 32u8, 83u8, 112u8, 101u8, 99u8, 105u8, 102u8, 105u8, 99u8, 32u8, 96u8, 67u8, 65u8,
75u8, 105u8, 110u8, 100u8, 96u8, 115u8, 44u8, 32u8, 101u8, 46u8, 103u8, 46u8, 44u8, 32u8, 98u8,
101u8, 110u8, 101u8, 102u8, 105u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 99u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8,
115u8, 44u8, 32u8, 109u8, 97u8, 121u8, 32u8, 117u8, 115u8, 101u8, 32u8, 97u8, 100u8, 100u8,
105u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8, 32u8, 111u8, 110u8, 45u8, 99u8, 104u8, 97u8,
105u8, 110u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 0u8, 180u8, 32u8, 40u8,
116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 61u8, 62u8, 32u8, 108u8, 111u8, 99u8, 97u8, 108u8,
32u8, 73u8, 68u8, 32u8, 61u8, 62u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 114u8, 112u8,
111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 41u8, 36u8, 67u8,
65u8, 68u8, 111u8, 99u8, 76u8, 105u8, 110u8, 107u8, 1u8, 1u8, 4u8, 2u8, 109u8, 2u8, 1u8, 3u8,
4u8, 0u8, 20u8, 208u8, 32u8, 65u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 67u8, 65u8, 115u8, 32u8, 116u8, 111u8,
32u8, 96u8, 68u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 96u8, 115u8, 32u8, 118u8,
105u8, 97u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 73u8, 68u8, 115u8, 46u8, 92u8, 32u8,
40u8, 67u8, 65u8, 73u8, 100u8, 32u8, 61u8, 62u8, 32u8, 91u8, 68u8, 111u8, 99u8, 117u8, 109u8,
101u8, 110u8, 116u8, 73u8, 100u8, 93u8, 41u8, 0u8, 5u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8,
96u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 65u8, 99u8, 116u8, 105u8,
111u8, 110u8, 115u8, 96u8, 32u8, 109u8, 97u8, 112u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8,
115u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 61u8, 62u8, 32u8, 76u8, 111u8,
99u8, 97u8, 108u8, 73u8, 100u8, 32u8, 61u8, 62u8, 32u8, 84u8, 104u8, 101u8, 32u8, 67u8, 65u8,
96u8, 44u8, 37u8, 1u8, 32u8, 115u8, 111u8, 32u8, 119u8, 101u8, 32u8, 99u8, 97u8, 110u8, 32u8,
105u8, 110u8, 102u8, 101u8, 114u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 32u8,
61u8, 62u8, 32u8, 67u8, 65u8, 73u8, 100u8, 96u8, 46u8, 32u8, 84u8, 104u8, 101u8, 114u8, 101u8,
102u8, 111u8, 114u8, 101u8, 44u8, 32u8, 119u8, 101u8, 32u8, 100u8, 111u8, 110u8, 39u8, 116u8,
32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 97u8, 32u8, 100u8, 111u8, 117u8, 98u8, 108u8, 101u8,
32u8, 109u8, 97u8, 112u8, 46u8, 28u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 1u8, 1u8,
4u8, 2u8, 109u8, 2u8, 253u8, 2u8, 4u8, 0u8, 8u8, 232u8, 32u8, 65u8, 115u8, 115u8, 111u8, 99u8,
105u8, 97u8, 116u8, 101u8, 115u8, 32u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8,
105u8, 110u8, 32u8, 102u8, 114u8, 101u8, 101u8, 45u8, 102u8, 111u8, 114u8, 109u8, 32u8, 116u8,
101u8, 120u8, 116u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 97u8, 32u8, 67u8, 65u8, 32u8, 98u8,
121u8, 32u8, 105u8, 116u8, 115u8, 32u8, 73u8, 68u8, 46u8, 80u8, 32u8, 40u8, 67u8, 65u8, 73u8,
100u8, 32u8, 61u8, 62u8, 32u8, 67u8, 65u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 41u8,
56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8,
110u8, 1u8, 0u8, 181u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8,
101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 125u8, 7u8, 1u8, 209u8,
2u8, 8u8, 48u8, 77u8, 97u8, 120u8, 84u8, 97u8, 114u8, 103u8, 101u8, 116u8, 73u8, 100u8, 115u8,
16u8, 16u8, 232u8, 3u8, 0u8, 0u8, 0u8, 40u8, 77u8, 97u8, 120u8, 68u8, 105u8, 100u8, 87u8, 104u8,
116u8, 115u8, 16u8, 16u8, 232u8, 3u8, 0u8, 0u8, 0u8, 1u8, 185u8, 9u8, 30u8, 60u8, 67u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 1u8,
60u8, 67u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 66u8, 97u8, 108u8, 108u8,
111u8, 116u8, 24u8, 20u8, 77u8, 101u8, 116u8, 97u8, 115u8, 0u8, 1u8, 4u8, 2u8, 109u8, 2u8, 13u8,
3u8, 4u8, 0u8, 12u8, 128u8, 32u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 32u8,
111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 111u8, 114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8,
32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 0u8, 84u8, 32u8, 40u8, 67u8, 65u8, 73u8,
100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 77u8, 101u8, 116u8,
97u8, 40u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8, 103u8, 101u8, 115u8, 0u8, 1u8, 4u8,
2u8, 109u8, 2u8, 9u8, 3u8, 4u8, 0u8, 16u8, 228u8, 32u8, 84u8, 105u8, 109u8, 101u8, 32u8, 100u8,
101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 99u8, 111u8,
114u8, 112u8, 111u8, 114u8, 97u8, 116u8, 101u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8,
32u8, 97u8, 115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8,
116u8, 104u8, 32u8, 97u8, 32u8, 67u8, 65u8, 46u8, 208u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8,
105u8, 109u8, 101u8, 115u8, 116u8, 97u8, 109u8, 112u8, 115u8, 32u8, 100u8, 101u8, 110u8, 111u8,
116u8, 101u8, 32u8, 119u8, 104u8, 101u8, 110u8, 32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8,
32u8, 115u8, 116u8, 97u8, 114u8, 116u8, 115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 115u8, 116u8,
111u8, 112u8, 115u8, 46u8, 0u8, 104u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8, 41u8, 32u8, 61u8,
62u8, 32u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 84u8, 105u8, 109u8, 101u8, 82u8, 97u8, 110u8,
103u8, 101u8, 64u8, 77u8, 111u8, 116u8, 105u8, 111u8, 110u8, 78u8, 117u8, 109u8, 67u8, 104u8,
111u8, 105u8, 99u8, 101u8, 115u8, 1u8, 1u8, 4u8, 2u8, 109u8, 2u8, 21u8, 6u8, 4u8, 0u8, 36u8,
200u8, 32u8, 83u8, 116u8, 111u8, 114u8, 101u8, 115u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8,
97u8, 110u8, 121u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 32u8, 116u8, 104u8,
101u8, 114u8, 101u8, 32u8, 97u8, 114u8, 101u8, 32u8, 105u8, 110u8, 32u8, 101u8, 97u8, 99u8,
104u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 37u8, 1u8, 32u8, 65u8, 116u8,
32u8, 97u8, 108u8, 108u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 44u8, 32u8, 116u8, 104u8,
101u8, 32u8, 105u8, 110u8, 118u8, 97u8, 114u8, 105u8, 97u8, 110u8, 116u8, 32u8, 104u8, 111u8,
108u8, 100u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 109u8, 111u8, 116u8, 105u8,
111u8, 110u8, 95u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 91u8, 105u8, 100u8, 120u8,
93u8, 96u8, 32u8, 105u8, 115u8, 32u8, 101u8, 113u8, 117u8, 97u8, 108u8, 32u8, 116u8, 111u8, 49u8,
1u8, 32u8, 96u8, 109u8, 101u8, 116u8, 97u8, 115u8, 46u8, 117u8, 110u8, 119u8, 114u8, 97u8, 112u8,
40u8, 41u8, 46u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 115u8, 91u8, 105u8, 100u8, 120u8,
93u8, 46u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 46u8, 108u8, 101u8, 110u8, 40u8, 41u8,
96u8, 46u8, 32u8, 84u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8, 44u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 105u8, 115u8, 32u8, 106u8, 117u8, 115u8, 116u8, 32u8, 97u8, 32u8, 99u8, 97u8, 99u8,
104u8, 101u8, 44u8, 17u8, 1u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8,
118u8, 111u8, 105u8, 100u8, 32u8, 102u8, 101u8, 116u8, 99u8, 104u8, 105u8, 110u8, 103u8, 32u8,
97u8, 108u8, 108u8, 32u8, 116u8, 104u8, 101u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8,
115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 97u8,
115u8, 115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 116u8, 101u8, 120u8, 116u8,
115u8, 46u8, 0u8, 1u8, 1u8, 32u8, 96u8, 117u8, 49u8, 54u8, 96u8, 32u8, 99u8, 104u8, 111u8, 105u8,
99u8, 101u8, 115u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8,
109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 101u8, 110u8, 111u8, 117u8,
103u8, 104u8, 32u8, 116u8, 111u8, 32u8, 102u8, 105u8, 116u8, 32u8, 114u8, 101u8, 97u8, 108u8,
32u8, 117u8, 115u8, 101u8, 32u8, 99u8, 97u8, 115u8, 101u8, 115u8, 46u8, 0u8, 176u8, 32u8, 40u8,
67u8, 65u8, 73u8, 100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8, 115u8, 32u8, 105u8, 110u8,
32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 109u8, 111u8, 116u8, 105u8, 111u8, 110u8, 46u8, 12u8, 82u8,
67u8, 86u8, 1u8, 1u8, 4u8, 2u8, 109u8, 2u8, 21u8, 1u8, 4u8, 0u8, 16u8, 220u8, 32u8, 73u8, 115u8,
32u8, 114u8, 97u8, 110u8, 107u8, 101u8, 100u8, 32u8, 99u8, 104u8, 111u8, 105u8, 99u8, 101u8,
32u8, 118u8, 111u8, 116u8, 105u8, 110u8, 103u8, 32u8, 40u8, 82u8, 67u8, 86u8, 41u8, 32u8, 101u8,
110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 63u8, 101u8, 1u8, 32u8, 70u8, 111u8, 114u8,
32u8, 97u8, 110u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 115u8, 116u8, 97u8, 110u8, 100u8,
105u8, 110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 104u8, 111u8, 119u8, 32u8, 82u8, 67u8, 86u8, 32u8,
105u8, 115u8, 32u8, 104u8, 97u8, 110u8, 100u8, 108u8, 101u8, 100u8, 44u8, 32u8, 115u8, 101u8,
101u8, 32u8, 110u8, 111u8, 116u8, 101u8, 32u8, 111u8, 110u8, 32u8, 96u8, 66u8, 97u8, 108u8,
108u8, 111u8, 116u8, 86u8, 111u8, 116u8, 101u8, 96u8, 39u8, 115u8, 32u8, 96u8, 102u8, 97u8,
108u8, 108u8, 98u8, 97u8, 99u8, 107u8, 96u8, 32u8, 102u8, 105u8, 101u8, 108u8, 100u8, 46u8, 0u8,
60u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 98u8, 111u8, 111u8,
108u8, 28u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 1u8, 1u8, 4u8, 2u8, 109u8, 2u8,
189u8, 9u8, 4u8, 0u8, 28u8, 176u8, 32u8, 83u8, 116u8, 111u8, 114u8, 101u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 116u8, 111u8, 116u8, 97u8, 108u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8,
116u8, 97u8, 108u8, 108u8, 121u8, 32u8, 111u8, 110u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 99u8,
104u8, 111u8, 105u8, 99u8, 101u8, 46u8, 0u8, 104u8, 32u8, 82u8, 67u8, 86u8, 32u8, 105u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 100u8,
32u8, 102u8, 111u8, 114u8, 44u8, 208u8, 32u8, 97u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8,
101u8, 32u8, 97u8, 114u8, 101u8, 32u8, 116u8, 111u8, 111u8, 32u8, 109u8, 97u8, 110u8, 121u8,
32u8, 119u8, 97u8, 110u8, 116u8, 115u8, 32u8, 116u8, 111u8, 32u8, 105u8, 110u8, 116u8, 101u8,
114u8, 112u8, 114u8, 101u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 103u8, 114u8, 97u8, 112u8,
104u8, 44u8, 156u8, 32u8, 97u8, 110u8, 100u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8,
32u8, 105u8, 116u8, 32u8, 119u8, 111u8, 117u8, 108u8, 100u8, 32u8, 110u8, 111u8, 116u8, 32u8,
98u8, 101u8, 32u8, 101u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8, 116u8, 46u8, 0u8,
132u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 91u8, 99u8, 117u8,
114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 115u8, 93u8, 20u8, 86u8, 111u8, 116u8, 101u8, 115u8, 1u8, 1u8, 8u8, 2u8,
6u8, 125u8, 9u8, 45u8, 3u8, 4u8, 0u8, 24u8, 172u8, 32u8, 83u8, 116u8, 111u8, 114u8, 101u8, 115u8,
32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 68u8, 73u8, 68u8, 39u8, 115u8, 32u8, 118u8, 111u8, 116u8,
101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
98u8, 97u8, 108u8, 108u8, 111u8, 116u8, 46u8, 248u8, 32u8, 83u8, 101u8, 101u8, 32u8, 116u8,
104u8, 101u8, 32u8, 100u8, 111u8, 99u8, 117u8, 109u8, 101u8, 110u8, 116u8, 97u8, 116u8, 105u8,
111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 96u8, 66u8, 97u8, 108u8, 108u8, 111u8, 116u8, 86u8,
111u8, 116u8, 101u8, 96u8, 32u8, 102u8, 111u8, 114u8, 32u8, 110u8, 111u8, 116u8, 101u8, 115u8,
32u8, 111u8, 110u8, 32u8, 115u8, 101u8, 109u8, 97u8, 110u8, 116u8, 105u8, 99u8, 115u8, 46u8, 0u8,
132u8, 32u8, 40u8, 67u8, 65u8, 73u8, 100u8, 41u8, 32u8, 61u8, 62u8, 32u8, 40u8, 68u8, 73u8, 68u8,
41u8, 32u8, 61u8, 62u8, 32u8, 91u8, 118u8, 111u8, 116u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8,
104u8, 116u8, 93u8, 0u8, 29u8, 1u8, 32u8, 85u8, 115u8, 101u8, 114u8, 32u8, 109u8, 117u8, 115u8,
116u8, 32u8, 101u8, 110u8, 116u8, 101u8, 114u8, 32u8, 48u8, 32u8, 118u8, 111u8, 116u8, 101u8,
32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
121u8, 32u8, 100u8, 111u8, 110u8, 39u8, 116u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8,
111u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 99u8,
104u8, 111u8, 105u8, 99u8, 101u8, 46u8, 1u8, 149u8, 7u8, 1u8, 5u8, 3u8, 0u8, 1u8, 193u8, 9u8,
31u8, 44u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8, 0u8,
0u8, 0u8, 1u8, 197u8, 9u8, 32u8, 16u8, 80u8, 105u8, 112u8, 115u8, 1u8, 16u8, 80u8, 105u8, 112u8,
115u8, 84u8, 76u8, 80u8, 114u8, 117u8, 110u8, 101u8, 72u8, 105u8, 115u8, 116u8, 111u8, 114u8,
105u8, 99u8, 97u8, 108u8, 80u8, 105u8, 112u8, 115u8, 1u8, 0u8, 21u8, 1u8, 4u8, 0u8, 4u8, 252u8,
32u8, 68u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8, 115u8, 32u8, 119u8, 104u8,
101u8, 116u8, 104u8, 101u8, 114u8, 32u8, 104u8, 105u8, 115u8, 116u8, 111u8, 114u8, 105u8, 99u8,
97u8, 108u8, 32u8, 80u8, 73u8, 80u8, 32u8, 100u8, 97u8, 116u8, 97u8, 32u8, 105u8, 115u8, 32u8,
112u8, 101u8, 114u8, 115u8, 105u8, 115u8, 116u8, 101u8, 100u8, 32u8, 111u8, 114u8, 32u8, 114u8,
101u8, 109u8, 111u8, 118u8, 101u8, 100u8, 88u8, 77u8, 105u8, 110u8, 105u8, 109u8, 117u8, 109u8,
80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 1u8, 0u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 4u8, 29u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 105u8, 110u8, 105u8, 109u8,
117u8, 109u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 116u8, 111u8, 32u8, 98u8,
101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 100u8, 101u8,
112u8, 111u8, 115u8, 105u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 99u8, 111u8, 109u8, 109u8,
117u8, 110u8, 105u8, 116u8, 121u8, 32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8,
105u8, 111u8, 110u8, 46u8, 88u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8, 116u8, 69u8, 110u8,
97u8, 99u8, 116u8, 109u8, 101u8, 110u8, 116u8, 80u8, 101u8, 114u8, 105u8, 111u8, 100u8, 1u8, 0u8,
16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 57u8, 1u8, 32u8, 68u8, 101u8, 102u8, 97u8, 117u8, 108u8,
116u8, 32u8, 101u8, 110u8, 97u8, 99u8, 116u8, 109u8, 101u8, 110u8, 116u8, 32u8, 112u8, 101u8,
114u8, 105u8, 111u8, 100u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 105u8, 108u8, 108u8,
32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 32u8, 97u8, 102u8, 116u8, 101u8, 114u8, 32u8, 97u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 115u8, 32u8, 97u8,
99u8, 99u8, 101u8, 112u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 71u8, 67u8, 46u8, 64u8,
80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 80u8, 105u8, 112u8, 69u8, 120u8, 112u8, 105u8,
114u8, 121u8, 1u8, 0u8, 53u8, 1u8, 4u8, 1u8, 8u8, 244u8, 32u8, 72u8, 111u8, 119u8, 32u8, 109u8,
97u8, 110u8, 121u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 115u8, 32u8, 119u8, 105u8, 108u8,
108u8, 32u8, 105u8, 116u8, 32u8, 116u8, 97u8, 107u8, 101u8, 44u8, 32u8, 97u8, 102u8, 116u8,
101u8, 114u8, 32u8, 97u8, 32u8, 96u8, 80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 96u8, 32u8,
80u8, 73u8, 80u8, 32u8, 101u8, 120u8, 112u8, 105u8, 114u8, 101u8, 115u8, 44u8, 244u8, 32u8, 97u8,
115u8, 115u8, 117u8, 109u8, 105u8, 110u8, 103u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8,
32u8, 110u8, 111u8, 116u8, 32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 105u8, 116u8, 105u8, 111u8,
110u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 110u8, 111u8, 116u8, 104u8, 101u8, 114u8,
32u8, 96u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 83u8, 116u8, 97u8, 116u8,
101u8, 96u8, 63u8, 60u8, 77u8, 97u8, 120u8, 80u8, 105u8, 112u8, 83u8, 107u8, 105u8, 112u8, 67u8,
111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 8u8, 4u8, 0u8, 4u8, 137u8, 1u8, 32u8, 77u8, 97u8, 120u8,
105u8, 109u8, 117u8, 109u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 32u8, 97u8, 32u8, 80u8,
73u8, 80u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8,
101u8, 100u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 116u8, 114u8, 105u8, 103u8,
103u8, 101u8, 114u8, 105u8, 110u8, 103u8, 32u8, 96u8, 67u8, 97u8, 110u8, 110u8, 111u8, 116u8,
83u8, 107u8, 105u8, 112u8, 80u8, 105u8, 112u8, 96u8, 32u8, 105u8, 110u8, 32u8, 96u8, 101u8,
110u8, 97u8, 99u8, 116u8, 95u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 95u8,
114u8, 101u8, 115u8, 117u8, 108u8, 116u8, 115u8, 96u8, 46u8, 56u8, 65u8, 99u8, 116u8, 105u8,
118u8, 101u8, 80u8, 105u8, 112u8, 76u8, 105u8, 109u8, 105u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8,
0u8, 0u8, 0u8, 8u8, 196u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8,
117u8, 109u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 110u8, 117u8, 109u8,
98u8, 101u8, 114u8, 32u8, 102u8, 111u8, 114u8, 32u8, 96u8, 65u8, 99u8, 116u8, 105u8, 118u8,
101u8, 80u8, 105u8, 112u8, 67u8, 111u8, 117u8, 110u8, 116u8, 96u8, 46u8, 1u8, 1u8, 32u8, 79u8,
110u8, 99u8, 101u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 44u8, 32u8, 110u8,
101u8, 119u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8,
98u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 99u8, 111u8, 109u8, 109u8, 117u8, 110u8, 105u8, 116u8, 121u8, 32u8, 109u8, 101u8, 109u8,
98u8, 101u8, 114u8, 115u8, 46u8, 52u8, 80u8, 105u8, 112u8, 73u8, 100u8, 83u8, 101u8, 113u8,
117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 0u8, 73u8, 3u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 9u8, 1u8,
32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 32u8, 115u8, 111u8, 32u8,
102u8, 97u8, 114u8, 46u8, 32u8, 105u8, 100u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8,
117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 116u8,
114u8, 97u8, 99u8, 107u8, 32u8, 111u8, 102u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 111u8, 102u8,
102u8, 45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 72u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 73u8, 100u8, 83u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 0u8, 93u8,
3u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 29u8, 1u8, 32u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8,
111u8, 116u8, 115u8, 32u8, 115u8, 111u8, 32u8, 102u8, 97u8, 114u8, 46u8, 32u8, 105u8, 100u8,
32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 116u8, 111u8,
32u8, 107u8, 101u8, 101u8, 112u8, 32u8, 116u8, 114u8, 97u8, 99u8, 107u8, 32u8, 111u8, 102u8,
32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 115u8, 32u8, 111u8, 102u8, 102u8,
45u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 56u8, 65u8, 99u8, 116u8, 105u8, 118u8, 101u8, 80u8,
105u8, 112u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 0u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8,
200u8, 32u8, 84u8, 111u8, 116u8, 97u8, 108u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8,
111u8, 102u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 112u8, 101u8, 110u8,
100u8, 105u8, 110u8, 103u8, 32u8, 111u8, 114u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 100u8, 32u8, 80u8, 73u8, 80u8, 115u8, 46u8, 64u8, 80u8, 114u8, 111u8, 112u8, 111u8,
115u8, 97u8, 108u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 0u8, 1u8, 4u8, 5u8, 73u8,
3u8, 201u8, 9u8, 4u8, 0u8, 4u8, 152u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8,
105u8, 118u8, 101u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 46u8,
32u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8, 205u8, 9u8,
209u8, 9u8, 192u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 132u8, 32u8, 84u8,
104u8, 111u8, 115u8, 101u8, 32u8, 119u8, 104u8, 111u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8,
108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 97u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8,
105u8, 116u8, 46u8, 140u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8,
40u8, 105u8, 100u8, 44u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 41u8,
32u8, 45u8, 62u8, 32u8, 100u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8, 36u8, 80u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 0u8, 1u8, 4u8, 5u8, 73u8, 3u8, 213u8, 9u8, 4u8,
0u8, 8u8, 196u8, 32u8, 65u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 112u8, 114u8, 111u8, 112u8,
111u8, 115u8, 97u8, 108u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8,
101u8, 110u8, 32u8, 105u8, 100u8, 44u8, 32u8, 105u8, 102u8, 32u8, 105u8, 116u8, 39u8, 115u8,
32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 46u8, 96u8, 32u8, 112u8, 114u8, 111u8,
112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 32u8, 45u8, 62u8, 32u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 56u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8,
108u8, 82u8, 101u8, 115u8, 117u8, 108u8, 116u8, 1u8, 1u8, 4u8, 5u8, 73u8, 3u8, 217u8, 9u8, 160u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 8u8, 212u8, 32u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8, 104u8, 86u8, 111u8,
116u8, 101u8, 115u8, 32u8, 111u8, 110u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8,
32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 44u8, 32u8, 105u8, 102u8, 32u8,
105u8, 116u8, 32u8, 105u8, 115u8, 32u8, 111u8, 110u8, 103u8, 111u8, 105u8, 110u8, 103u8, 46u8,
104u8, 32u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 32u8, 105u8, 100u8, 32u8,
45u8, 62u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 99u8, 111u8, 117u8, 110u8, 116u8, 52u8, 80u8,
114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 86u8, 111u8, 116u8, 101u8, 115u8, 0u8, 1u8, 8u8,
5u8, 5u8, 205u8, 9u8, 221u8, 9u8, 4u8, 0u8, 8u8, 5u8, 1u8, 32u8, 86u8, 111u8, 116u8, 101u8,
115u8, 32u8, 112u8, 101u8, 114u8, 32u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 46u8, 32u8, 85u8,
115u8, 101u8, 100u8, 32u8, 116u8, 111u8, 32u8, 97u8, 118u8, 111u8, 105u8, 100u8, 32u8, 100u8,
111u8, 117u8, 98u8, 108u8, 101u8, 32u8, 118u8, 111u8, 116u8, 101u8, 32u8, 105u8, 115u8, 115u8,
117u8, 101u8, 46u8, 124u8, 32u8, 40u8, 112u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8,
32u8, 105u8, 100u8, 44u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 41u8, 32u8, 45u8,
62u8, 32u8, 86u8, 111u8, 116u8, 101u8, 52u8, 80u8, 105u8, 112u8, 84u8, 111u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 0u8, 1u8, 4u8, 5u8, 73u8, 3u8, 16u8, 4u8, 0u8, 4u8, 252u8,
32u8, 77u8, 97u8, 112u8, 115u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8,
104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 97u8, 116u8, 32u8, 119u8, 104u8,
105u8, 99u8, 104u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8,
98u8, 101u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 44u8, 32u8, 105u8,
102u8, 32u8, 97u8, 110u8, 121u8, 46u8, 36u8, 76u8, 105u8, 118u8, 101u8, 81u8, 117u8, 101u8,
117u8, 101u8, 1u8, 0u8, 97u8, 3u8, 4u8, 0u8, 24u8, 204u8, 32u8, 65u8, 32u8, 108u8, 105u8, 118u8,
101u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 32u8, 40u8, 108u8, 111u8, 119u8, 101u8, 115u8, 116u8, 32u8, 112u8, 114u8, 105u8,
111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 97u8, 116u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
32u8, 48u8, 41u8, 160u8, 32u8, 111u8, 102u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8,
103u8, 32u8, 80u8, 73u8, 80u8, 115u8, 32u8, 117u8, 112u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
46u8, 244u8, 32u8, 80u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 105u8, 115u8,
32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8,
101u8, 32u8, 96u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 96u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 116u8,
101u8, 100u8, 80u8, 105u8, 112u8, 96u8, 46u8, 0u8, 69u8, 1u8, 32u8, 85u8, 110u8, 108u8, 105u8,
107u8, 101u8, 32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8,
101u8, 117u8, 101u8, 96u8, 44u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 32u8, 105u8, 115u8, 32u8, 108u8, 105u8, 118u8, 101u8, 44u8, 32u8, 103u8, 101u8,
116u8, 116u8, 105u8, 110u8, 103u8, 32u8, 117u8, 112u8, 100u8, 97u8, 116u8, 101u8, 100u8, 32u8,
119u8, 105u8, 116u8, 104u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 118u8, 111u8, 116u8, 101u8,
32u8, 99u8, 97u8, 115u8, 116u8, 46u8, 45u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 110u8,
97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 32u8, 105u8, 115u8, 32u8, 116u8, 104u8, 101u8, 114u8,
101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 101u8, 115u8, 115u8, 101u8, 110u8, 116u8, 105u8, 97u8,
108u8, 108u8, 121u8, 32u8, 97u8, 32u8, 112u8, 111u8, 105u8, 110u8, 116u8, 45u8, 105u8, 110u8,
45u8, 116u8, 105u8, 109u8, 101u8, 32u8, 99u8, 108u8, 111u8, 110u8, 101u8, 32u8, 111u8, 102u8,
32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 46u8, 52u8, 83u8,
110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 81u8, 117u8, 101u8, 117u8, 101u8, 1u8, 0u8, 97u8,
3u8, 4u8, 0u8, 20u8, 89u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 112u8, 114u8, 105u8, 111u8,
114u8, 105u8, 116u8, 121u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 40u8, 108u8, 111u8,
119u8, 101u8, 115u8, 116u8, 32u8, 112u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8, 121u8, 32u8,
97u8, 116u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 48u8, 41u8, 32u8, 111u8, 102u8, 32u8,
80u8, 73u8, 80u8, 115u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 105u8,
110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 115u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8,
116u8, 105u8, 110u8, 103u8, 46u8, 244u8, 32u8, 80u8, 114u8, 105u8, 111u8, 114u8, 105u8, 116u8,
121u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8, 100u8, 32u8, 98u8,
121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 96u8,
32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 83u8, 110u8, 97u8, 112u8, 115u8,
104u8, 111u8, 116u8, 116u8, 101u8, 100u8, 80u8, 105u8, 112u8, 96u8, 46u8, 0u8, 9u8, 1u8, 32u8,
65u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 100u8, 32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 97u8,
110u8, 32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 46u8, 32u8,
68u8, 111u8, 105u8, 110u8, 103u8, 32u8, 115u8, 111u8, 32u8, 98u8, 117u8, 109u8, 112u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 96u8, 112u8, 105u8, 112u8, 95u8, 115u8, 107u8, 105u8, 112u8,
95u8, 99u8, 111u8, 117u8, 110u8, 116u8, 96u8, 46u8, 53u8, 1u8, 32u8, 79u8, 110u8, 99u8, 101u8,
32u8, 97u8, 32u8, 40u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8, 117u8, 114u8, 97u8, 98u8, 108u8,
101u8, 41u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8, 104u8, 111u8, 108u8, 100u8, 32u8,
105u8, 115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8, 101u8, 100u8, 44u8, 32u8, 97u8,
32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8,
115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 97u8, 103u8, 97u8, 105u8, 110u8, 46u8,
48u8, 83u8, 110u8, 97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 77u8, 101u8, 116u8, 97u8, 0u8, 0u8,
225u8, 9u8, 4u8, 0u8, 4u8, 188u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 101u8, 116u8, 97u8,
100u8, 97u8, 116u8, 97u8, 32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 110u8,
97u8, 112u8, 115u8, 104u8, 111u8, 116u8, 44u8, 32u8, 105u8, 102u8, 32u8, 116u8, 104u8, 101u8,
114u8, 101u8, 32u8, 105u8, 115u8, 32u8, 111u8, 110u8, 101u8, 46u8, 48u8, 80u8, 105u8, 112u8,
83u8, 107u8, 105u8, 112u8, 67u8, 111u8, 117u8, 110u8, 116u8, 1u8, 1u8, 4u8, 5u8, 73u8, 3u8, 8u8,
4u8, 0u8, 8u8, 208u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 116u8, 105u8, 109u8, 101u8, 115u8, 32u8, 97u8, 32u8, 99u8, 101u8,
114u8, 116u8, 97u8, 105u8, 110u8, 32u8, 80u8, 73u8, 80u8, 32u8, 104u8, 97u8, 115u8, 32u8, 98u8,
101u8, 101u8, 110u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 46u8, 53u8, 1u8,
32u8, 79u8, 110u8, 99u8, 101u8, 32u8, 97u8, 32u8, 40u8, 99u8, 111u8, 110u8, 102u8, 105u8, 103u8,
117u8, 114u8, 97u8, 98u8, 108u8, 101u8, 41u8, 32u8, 116u8, 104u8, 114u8, 101u8, 115u8, 104u8,
104u8, 111u8, 108u8, 100u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 99u8, 101u8, 101u8, 100u8,
101u8, 100u8, 44u8, 32u8, 97u8, 32u8, 80u8, 73u8, 80u8, 32u8, 99u8, 97u8, 110u8, 110u8, 111u8,
116u8, 32u8, 98u8, 101u8, 32u8, 115u8, 107u8, 105u8, 112u8, 112u8, 101u8, 100u8, 32u8, 97u8,
103u8, 97u8, 105u8, 110u8, 46u8, 52u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8,
101u8, 80u8, 105u8, 112u8, 115u8, 1u8, 0u8, 121u8, 3u8, 4u8, 0u8, 8u8, 212u8, 32u8, 65u8, 108u8,
108u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 80u8, 73u8, 80u8,
115u8, 32u8, 119u8, 104u8, 101u8, 114u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 112u8, 114u8,
111u8, 112u8, 111u8, 115u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 99u8, 111u8,
109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 46u8, 57u8, 1u8, 32u8, 84u8, 104u8, 105u8,
115u8, 32u8, 108u8, 105u8, 115u8, 116u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 99u8, 97u8, 99u8,
104u8, 101u8, 32u8, 111u8, 102u8, 32u8, 97u8, 108u8, 108u8, 32u8, 105u8, 100u8, 115u8, 32u8,
105u8, 110u8, 32u8, 96u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 97u8, 108u8, 115u8, 96u8,
32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 96u8, 80u8, 114u8, 111u8, 112u8, 111u8, 115u8, 101u8,
114u8, 58u8, 58u8, 67u8, 111u8, 109u8, 109u8, 105u8, 116u8, 116u8, 101u8, 101u8, 40u8, 95u8,
41u8, 96u8, 46u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8,
105u8, 111u8, 110u8, 1u8, 0u8, 229u8, 9u8, 4u8, 0u8, 0u8, 1u8, 153u8, 7u8, 1u8, 61u8, 3u8, 0u8,
1u8, 233u8, 9u8, 33u8, 36u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 1u8,
36u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 36u8, 76u8, 78u8, 101u8,
120u8, 116u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 78u8, 117u8, 109u8,
98u8, 101u8, 114u8, 1u8, 1u8, 4u8, 6u8, 120u8, 220u8, 32u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 4u8, 204u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8,
99u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8,
110u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 40u8, 80u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 1u8, 1u8, 8u8, 6u8, 5u8, 237u8, 9u8,
129u8, 3u8, 4u8, 0u8, 12u8, 65u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 115u8, 101u8, 116u8, 32u8,
111u8, 102u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 112u8, 111u8,
114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
116u8, 104u8, 101u8, 105u8, 114u8, 32u8, 110u8, 97u8, 109u8, 101u8, 115u8, 46u8, 32u8, 73u8,
102u8, 32u8, 97u8, 32u8, 99u8, 101u8, 114u8, 116u8, 97u8, 105u8, 110u8, 32u8, 112u8, 97u8, 105u8,
114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 68u8, 73u8, 68u8, 32u8, 97u8, 110u8, 100u8, 89u8,
1u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 110u8, 117u8,
109u8, 98u8, 101u8, 114u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8, 116u8, 111u8, 32u8, 96u8, 78u8,
111u8, 110u8, 101u8, 96u8, 32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 115u8, 117u8, 99u8, 104u8,
32u8, 97u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 100u8,
111u8, 101u8, 115u8, 110u8, 39u8, 116u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 46u8, 32u8,
67u8, 111u8, 110u8, 118u8, 101u8, 114u8, 115u8, 101u8, 108u8, 121u8, 44u8, 32u8, 105u8, 102u8,
32u8, 97u8, 53u8, 1u8, 32u8, 112u8, 97u8, 105u8, 114u8, 32u8, 109u8, 97u8, 112u8, 115u8, 32u8,
116u8, 111u8, 32u8, 96u8, 83u8, 111u8, 109u8, 101u8, 40u8, 110u8, 97u8, 109u8, 101u8, 41u8, 96u8,
32u8, 116u8, 104u8, 101u8, 110u8, 32u8, 115u8, 117u8, 99u8, 104u8, 32u8, 97u8, 32u8, 112u8,
111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8,
115u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8,
100u8, 32u8, 96u8, 110u8, 97u8, 109u8, 101u8, 96u8, 46u8, 48u8, 78u8, 97u8, 109u8, 101u8, 84u8,
111u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 1u8, 1u8, 8u8, 6u8, 2u8, 241u8, 9u8, 220u8, 32u8,
1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 228u8, 32u8, 73u8, 110u8, 118u8, 101u8, 114u8,
115u8, 101u8, 32u8, 109u8, 97u8, 112u8, 32u8, 111u8, 102u8, 32u8, 96u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8,
116u8, 111u8, 32u8, 101u8, 110u8, 115u8, 117u8, 114u8, 101u8, 32u8, 98u8, 105u8, 106u8, 101u8,
99u8, 116u8, 105u8, 118u8, 105u8, 116u8, 105u8, 121u8, 44u8, 164u8, 32u8, 97u8, 110u8, 100u8,
32u8, 117u8, 110u8, 105u8, 113u8, 117u8, 101u8, 110u8, 101u8, 115u8, 115u8, 32u8, 111u8, 102u8,
32u8, 110u8, 97u8, 109u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 96u8, 80u8, 111u8, 114u8,
116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 96u8, 46u8, 76u8, 80u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 65u8, 115u8, 115u8, 101u8, 116u8, 67u8, 111u8, 117u8, 110u8,
116u8, 1u8, 1u8, 4u8, 5u8, 212u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 252u8,
32u8, 72u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 32u8, 97u8, 115u8, 115u8, 101u8,
116u8, 115u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8, 110u8, 111u8, 110u8, 45u8, 122u8, 101u8,
114u8, 111u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 116u8, 104u8, 105u8,
115u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 99u8, 111u8,
110u8, 116u8, 97u8, 105u8, 110u8, 115u8, 46u8, 88u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8,
108u8, 105u8, 111u8, 65u8, 115u8, 115u8, 101u8, 116u8, 66u8, 97u8, 108u8, 97u8, 110u8, 99u8,
101u8, 115u8, 1u8, 1u8, 8u8, 5u8, 2u8, 245u8, 9u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 136u8, 32u8, 84u8, 104u8, 101u8, 32u8, 97u8,
115u8, 115u8, 101u8, 116u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 115u8, 32u8,
111u8, 102u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 46u8,
84u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 76u8, 111u8, 99u8, 107u8,
101u8, 100u8, 65u8, 115u8, 115u8, 101u8, 116u8, 115u8, 1u8, 1u8, 8u8, 5u8, 2u8, 245u8, 9u8, 24u8,
64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 160u8,
32u8, 65u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 97u8, 115u8, 115u8,
101u8, 116u8, 115u8, 32u8, 108u8, 111u8, 99u8, 107u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
97u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8, 45u8, 1u8, 32u8,
84u8, 104u8, 101u8, 115u8, 101u8, 32u8, 97u8, 115u8, 115u8, 101u8, 116u8, 115u8, 32u8, 115u8,
104u8, 111u8, 119u8, 32u8, 117u8, 112u8, 32u8, 105u8, 110u8, 32u8, 112u8, 111u8, 114u8, 116u8,
102u8, 111u8, 108u8, 105u8, 111u8, 32u8, 98u8, 97u8, 108u8, 97u8, 110u8, 99u8, 101u8, 32u8, 98u8,
117u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 110u8, 111u8, 116u8, 32u8, 98u8, 101u8, 32u8, 116u8,
114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 114u8, 101u8, 100u8, 32u8, 97u8, 119u8, 97u8,
121u8, 46u8, 72u8, 80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 67u8, 117u8,
115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 0u8, 1u8, 4u8, 5u8, 212u8, 120u8, 4u8, 0u8, 4u8,
129u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8,
110u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 117u8,
108u8, 97u8, 114u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 46u8,
32u8, 78u8, 111u8, 110u8, 101u8, 32u8, 105u8, 109u8, 112u8, 108u8, 105u8, 101u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 105u8, 100u8, 101u8, 110u8, 116u8,
105u8, 116u8, 121u8, 32u8, 111u8, 119u8, 110u8, 101u8, 114u8, 32u8, 105u8, 115u8, 32u8, 116u8,
104u8, 101u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 105u8, 97u8, 110u8, 46u8, 76u8,
80u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8, 73u8, 110u8, 67u8, 117u8,
115u8, 116u8, 111u8, 100u8, 121u8, 1u8, 1u8, 8u8, 6u8, 5u8, 249u8, 9u8, 21u8, 1u8, 4u8, 0u8,
12u8, 85u8, 1u8, 32u8, 84u8, 114u8, 97u8, 99u8, 107u8, 115u8, 32u8, 97u8, 108u8, 108u8, 32u8,
116u8, 104u8, 101u8, 32u8, 112u8, 111u8, 114u8, 116u8, 102u8, 111u8, 108u8, 105u8, 111u8, 115u8,
32u8, 105u8, 110u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 121u8, 32u8, 111u8, 102u8,
32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8, 99u8, 117u8, 108u8, 97u8, 114u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8,
117u8, 115u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 85u8, 73u8,
115u8, 46u8, 165u8, 1u8, 32u8, 87u8, 104u8, 101u8, 110u8, 32u8, 96u8, 116u8, 114u8, 117u8, 101u8,
96u8, 32u8, 105u8, 115u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 97u8, 115u8,
32u8, 116u8, 104u8, 101u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 96u8, 40u8, 100u8, 105u8, 100u8, 44u8,
32u8, 112u8, 105u8, 100u8, 41u8, 96u8, 44u8, 32u8, 105u8, 116u8, 32u8, 109u8, 101u8, 97u8, 110u8,
115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 96u8, 112u8, 105u8, 100u8, 96u8, 32u8, 105u8,
115u8, 32u8, 105u8, 110u8, 32u8, 99u8, 117u8, 115u8, 116u8, 111u8, 100u8, 121u8, 32u8, 111u8,
102u8, 32u8, 96u8, 100u8, 105u8, 100u8, 96u8, 46u8, 165u8, 1u8, 32u8, 96u8, 102u8, 97u8, 108u8,
115u8, 101u8, 96u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 115u8, 32u8, 97u8, 114u8, 101u8,
32u8, 110u8, 101u8, 118u8, 101u8, 114u8, 32u8, 101u8, 120u8, 112u8, 108u8, 105u8, 99u8, 105u8,
116u8, 108u8, 121u8, 32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 109u8, 97u8, 112u8, 44u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 114u8,
101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 101u8, 97u8, 100u8, 32u8, 105u8, 110u8, 102u8, 101u8,
114u8, 114u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 98u8,
115u8, 101u8, 110u8, 99u8, 101u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 107u8, 101u8, 121u8,
46u8, 56u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8,
111u8, 110u8, 1u8, 0u8, 253u8, 9u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8,
103u8, 101u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 169u8, 7u8, 1u8,
125u8, 3u8, 0u8, 1u8, 1u8, 10u8, 34u8, 44u8, 80u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8,
108u8, 70u8, 101u8, 101u8, 1u8, 44u8, 80u8, 114u8, 111u8, 116u8, 111u8, 99u8, 111u8, 108u8, 70u8,
101u8, 101u8, 8u8, 32u8, 66u8, 97u8, 115u8, 101u8, 70u8, 101u8, 101u8, 115u8, 1u8, 1u8, 4u8, 5u8,
185u8, 7u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 4u8, 21u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8,
110u8, 103u8, 32u8, 111u8, 102u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 32u8, 110u8, 97u8, 109u8, 101u8, 115u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8,
32u8, 98u8, 97u8, 115u8, 101u8, 32u8, 102u8, 101u8, 101u8, 115u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 111u8, 115u8, 101u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 46u8, 44u8, 67u8, 111u8, 101u8, 102u8, 102u8, 105u8, 99u8, 105u8, 101u8, 110u8,
116u8, 1u8, 0u8, 145u8, 3u8, 32u8, 1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8, 4u8, 21u8, 1u8, 32u8,
84u8, 104u8, 101u8, 32u8, 102u8, 101u8, 101u8, 32u8, 99u8, 111u8, 101u8, 102u8, 102u8, 105u8,
99u8, 105u8, 101u8, 110u8, 116u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 112u8, 111u8, 115u8,
105u8, 116u8, 105u8, 118u8, 101u8, 32u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 97u8, 108u8,
32u8, 40u8, 110u8, 117u8, 109u8, 101u8, 114u8, 97u8, 116u8, 111u8, 114u8, 44u8, 32u8, 100u8,
101u8, 110u8, 111u8, 109u8, 105u8, 110u8, 97u8, 116u8, 111u8, 114u8, 41u8, 46u8, 1u8, 181u8, 7u8,
1u8, 141u8, 3u8, 0u8, 1u8, 5u8, 10u8, 35u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8,
101u8, 114u8, 1u8, 36u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 114u8, 8u8, 24u8,
65u8, 103u8, 101u8, 110u8, 100u8, 97u8, 1u8, 1u8, 4u8, 5u8, 16u8, 9u8, 10u8, 4u8, 0u8, 4u8, 77u8,
1u8, 32u8, 73u8, 116u8, 101u8, 109u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 101u8,
120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 44u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8,
101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8,
107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
116u8, 104u8, 101u8, 121u8, 32u8, 115u8, 104u8, 111u8, 117u8, 108u8, 100u8, 32u8, 98u8, 101u8,
32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 46u8, 24u8,
76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 0u8, 1u8, 4u8, 5u8, 40u8, 153u8, 3u8, 4u8, 0u8, 4u8,
1u8, 1u8, 32u8, 76u8, 111u8, 111u8, 107u8, 117u8, 112u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8,
105u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 110u8, 100u8, 101u8, 120u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 116u8, 97u8, 115u8, 107u8, 46u8, 1u8, 189u8, 7u8, 1u8, 149u8, 3u8,
8u8, 52u8, 77u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 87u8, 101u8, 105u8, 103u8, 104u8,
116u8, 32u8, 32u8, 0u8, 128u8, 110u8, 135u8, 116u8, 1u8, 0u8, 0u8, 8u8, 69u8, 1u8, 32u8, 84u8,
104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 119u8, 101u8, 105u8,
103u8, 104u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 109u8, 97u8, 121u8, 32u8, 98u8,
101u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 112u8, 101u8,
114u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8,
121u8, 32u8, 100u8, 105u8, 115u8, 112u8, 97u8, 116u8, 99u8, 104u8, 97u8, 98u8, 108u8, 101u8,
115u8, 32u8, 111u8, 102u8, 32u8, 108u8, 101u8, 115u8, 115u8, 164u8, 32u8, 112u8, 114u8, 105u8,
111u8, 114u8, 105u8, 116u8, 121u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 96u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 58u8, 58u8, 72u8, 65u8, 82u8, 68u8, 95u8, 68u8, 69u8,
65u8, 68u8, 76u8, 73u8, 78u8, 69u8, 96u8, 46u8, 80u8, 77u8, 97u8, 120u8, 83u8, 99u8, 104u8,
101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 80u8, 101u8, 114u8, 66u8, 108u8, 111u8, 99u8, 107u8,
16u8, 16u8, 50u8, 0u8, 0u8, 0u8, 8u8, 29u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8,
120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8,
102u8, 32u8, 115u8, 99u8, 104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 100u8, 32u8, 99u8, 97u8,
108u8, 108u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 115u8, 105u8, 110u8, 103u8, 108u8,
101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 220u8, 32u8, 78u8, 111u8, 116u8, 32u8, 115u8,
116u8, 114u8, 105u8, 99u8, 116u8, 108u8, 121u8, 32u8, 101u8, 110u8, 102u8, 111u8, 114u8, 99u8,
101u8, 100u8, 44u8, 32u8, 98u8, 117u8, 116u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 102u8,
111u8, 114u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 101u8, 115u8, 116u8, 105u8,
109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 1u8, 45u8, 10u8, 36u8, 40u8, 83u8, 101u8, 116u8,
116u8, 108u8, 101u8, 109u8, 101u8, 110u8, 116u8, 1u8, 40u8, 83u8, 101u8, 116u8, 116u8, 108u8,
101u8, 109u8, 101u8, 110u8, 116u8, 68u8, 36u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8, 110u8,
102u8, 111u8, 0u8, 1u8, 4u8, 5u8, 165u8, 3u8, 49u8, 10u8, 4u8, 0u8, 4u8, 152u8, 32u8, 73u8,
110u8, 102u8, 111u8, 32u8, 97u8, 98u8, 111u8, 117u8, 116u8, 32u8, 97u8, 32u8, 118u8, 101u8,
110u8, 117u8, 101u8, 46u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 32u8,
45u8, 62u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 28u8, 68u8, 101u8, 116u8, 97u8, 105u8,
108u8, 115u8, 1u8, 1u8, 4u8, 5u8, 165u8, 3u8, 169u8, 3u8, 4u8, 0u8, 8u8, 228u8, 32u8, 70u8,
114u8, 101u8, 101u8, 45u8, 102u8, 111u8, 114u8, 109u8, 32u8, 116u8, 101u8, 120u8, 116u8, 32u8,
97u8, 98u8, 111u8, 117u8, 116u8, 32u8, 97u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 32u8,
118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 32u8, 45u8, 62u8, 32u8, 96u8, 86u8, 101u8,
110u8, 117u8, 101u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 96u8, 96u8, 32u8, 79u8,
110u8, 108u8, 121u8, 32u8, 110u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8,
32u8, 116u8, 104u8, 101u8, 32u8, 85u8, 73u8, 46u8, 68u8, 86u8, 101u8, 110u8, 117u8, 101u8, 73u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 1u8, 1u8, 8u8, 5u8,
5u8, 53u8, 10u8, 49u8, 1u8, 0u8, 16u8, 112u8, 32u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8,
99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8,
32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 96u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8,
110u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 85u8, 73u8, 46u8, 0u8, 132u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8,
32u8, 45u8, 62u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 95u8, 105u8, 100u8, 32u8, 45u8, 62u8, 32u8, 40u8, 41u8, 48u8, 86u8, 101u8, 110u8, 117u8,
101u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8, 57u8, 10u8, 21u8,
1u8, 4u8, 0u8, 4u8, 228u8, 32u8, 83u8, 105u8, 103u8, 110u8, 101u8, 114u8, 115u8, 32u8, 97u8,
108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8,
118u8, 101u8, 110u8, 117u8, 101u8, 46u8, 32u8, 40u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8,
105u8, 100u8, 44u8, 32u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 41u8, 32u8, 45u8, 62u8, 32u8,
98u8, 111u8, 111u8, 108u8, 40u8, 85u8, 115u8, 101u8, 114u8, 86u8, 101u8, 110u8, 117u8, 101u8,
115u8, 1u8, 1u8, 4u8, 5u8, 120u8, 201u8, 3u8, 4u8, 0u8, 4u8, 113u8, 1u8, 32u8, 65u8, 114u8,
114u8, 97u8, 121u8, 32u8, 111u8, 102u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8,
99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 97u8, 110u8, 32u8, 105u8,
100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 46u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8,
110u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8,
32u8, 85u8, 73u8, 46u8, 32u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8,
32u8, 45u8, 62u8, 32u8, 86u8, 101u8, 99u8, 60u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8,
100u8, 62u8, 72u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8,
68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 1u8, 1u8, 4u8, 5u8, 177u8, 3u8, 61u8, 10u8, 84u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 4u8, 17u8, 1u8, 32u8, 68u8, 101u8, 116u8, 97u8, 105u8, 108u8, 115u8, 32u8, 97u8, 98u8,
111u8, 117u8, 116u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8,
116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8,
105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 32u8, 45u8, 62u8, 32u8, 105u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 100u8, 101u8, 116u8, 97u8, 105u8, 108u8,
115u8, 60u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 76u8,
101u8, 103u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8, 69u8, 10u8, 189u8, 3u8, 121u8, 1u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 236u8, 32u8,
76u8, 101u8, 103u8, 115u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8, 110u8, 32u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 40u8,
105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8,
44u8, 32u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8, 76u8, 101u8,
103u8, 80u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 76u8,
101u8, 103u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8, 69u8, 10u8, 73u8,
10u8, 4u8, 0u8, 4u8, 49u8, 1u8, 32u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 32u8, 111u8, 102u8,
32u8, 97u8, 32u8, 108u8, 101u8, 103u8, 32u8, 117u8, 110u8, 100u8, 101u8, 114u8, 32u8, 97u8,
110u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8,
32u8, 40u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8,
105u8, 100u8, 44u8, 32u8, 108u8, 101u8, 103u8, 95u8, 105u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8,
76u8, 101u8, 103u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 100u8, 73u8, 110u8, 115u8, 116u8,
114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 115u8,
80u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 1u8, 1u8, 4u8, 5u8, 177u8, 3u8, 32u8, 32u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 129u8, 1u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 98u8, 101u8, 102u8,
111u8, 114u8, 101u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 32u8, 105u8, 115u8, 32u8, 101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 101u8, 100u8, 46u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8,
100u8, 32u8, 45u8, 62u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 95u8, 112u8, 101u8,
110u8, 100u8, 105u8, 110u8, 103u8, 60u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 115u8, 82u8,
101u8, 99u8, 101u8, 105u8, 118u8, 101u8, 100u8, 1u8, 1u8, 8u8, 5u8, 5u8, 77u8, 10u8, 81u8, 10u8,
4u8, 0u8, 4u8, 153u8, 1u8, 32u8, 84u8, 114u8, 97u8, 99u8, 107u8, 115u8, 32u8, 97u8, 102u8, 102u8,
105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 114u8, 101u8, 99u8, 101u8,
105u8, 118u8, 101u8, 100u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 46u8, 32u8, 40u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 44u8, 32u8,
99u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 95u8, 112u8, 97u8, 114u8, 116u8, 121u8, 41u8,
32u8, 45u8, 62u8, 32u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8,
110u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 64u8, 85u8, 115u8, 101u8, 114u8, 65u8, 102u8,
102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8, 1u8, 1u8, 8u8, 5u8, 5u8,
85u8, 10u8, 81u8, 10u8, 4u8, 0u8, 8u8, 85u8, 1u8, 32u8, 72u8, 101u8, 108u8, 112u8, 115u8, 32u8,
97u8, 32u8, 117u8, 115u8, 101u8, 114u8, 32u8, 116u8, 114u8, 97u8, 99u8, 107u8, 32u8, 116u8,
104u8, 101u8, 105u8, 114u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 105u8,
110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 110u8,
100u8, 32u8, 97u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 115u8,
32u8, 40u8, 111u8, 110u8, 108u8, 121u8, 32u8, 110u8, 101u8, 101u8, 100u8, 101u8, 100u8, 32u8,
102u8, 111u8, 114u8, 32u8, 85u8, 73u8, 41u8, 46u8, 212u8, 32u8, 40u8, 99u8, 111u8, 117u8, 110u8,
116u8, 101u8, 114u8, 95u8, 112u8, 97u8, 114u8, 116u8, 121u8, 44u8, 32u8, 105u8, 110u8, 115u8,
116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 95u8, 105u8, 100u8, 41u8, 32u8, 45u8,
62u8, 32u8, 65u8, 102u8, 102u8, 105u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 83u8,
116u8, 97u8, 116u8, 117u8, 115u8, 48u8, 82u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 115u8,
85u8, 115u8, 101u8, 100u8, 1u8, 1u8, 8u8, 5u8, 2u8, 101u8, 8u8, 21u8, 1u8, 4u8, 0u8, 4u8, 21u8,
1u8, 32u8, 84u8, 114u8, 97u8, 99u8, 107u8, 115u8, 32u8, 114u8, 101u8, 100u8, 101u8, 109u8, 112u8,
116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 114u8, 101u8, 99u8, 101u8, 105u8, 112u8,
116u8, 115u8, 46u8, 32u8, 40u8, 115u8, 105u8, 103u8, 110u8, 101u8, 114u8, 44u8, 32u8, 114u8,
101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 105u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8,
114u8, 101u8, 99u8, 101u8, 105u8, 112u8, 116u8, 95u8, 117u8, 115u8, 101u8, 100u8, 56u8, 86u8,
101u8, 110u8, 117u8, 101u8, 70u8, 105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 1u8,
1u8, 4u8, 2u8, 156u8, 21u8, 1u8, 4u8, 0u8, 4u8, 253u8, 1u8, 32u8, 84u8, 114u8, 97u8, 99u8, 107u8,
115u8, 32u8, 105u8, 102u8, 32u8, 97u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 32u8, 104u8,
97u8, 115u8, 32u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 32u8, 102u8, 105u8, 108u8,
116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8,
32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8,
105u8, 110u8, 118u8, 111u8, 108u8, 118u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 101u8, 105u8,
114u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 32u8, 84u8, 105u8, 99u8, 107u8, 101u8,
114u8, 32u8, 45u8, 62u8, 32u8, 102u8, 105u8, 108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8,
95u8, 101u8, 110u8, 97u8, 98u8, 108u8, 101u8, 100u8, 56u8, 86u8, 101u8, 110u8, 117u8, 101u8,
65u8, 108u8, 108u8, 111u8, 119u8, 76u8, 105u8, 115u8, 116u8, 1u8, 1u8, 8u8, 2u8, 5u8, 89u8, 10u8,
21u8, 1u8, 4u8, 0u8, 8u8, 197u8, 1u8, 32u8, 86u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 116u8,
104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 97u8, 108u8, 108u8, 111u8, 119u8, 101u8,
100u8, 32u8, 116u8, 111u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 105u8, 110u8,
115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 32u8, 105u8, 110u8, 118u8,
111u8, 108u8, 118u8, 105u8, 110u8, 103u8, 32u8, 97u8, 32u8, 112u8, 97u8, 114u8, 116u8, 105u8,
99u8, 117u8, 108u8, 97u8, 114u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 46u8, 32u8, 79u8,
110u8, 108u8, 121u8, 32u8, 117u8, 115u8, 101u8, 100u8, 32u8, 105u8, 102u8, 32u8, 102u8, 105u8,
108u8, 116u8, 101u8, 114u8, 105u8, 110u8, 103u8, 32u8, 105u8, 115u8, 32u8, 101u8, 110u8, 97u8,
98u8, 108u8, 101u8, 100u8, 46u8, 120u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8,
44u8, 32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 95u8, 105u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8,
97u8, 108u8, 108u8, 111u8, 119u8, 101u8, 100u8, 48u8, 86u8, 101u8, 110u8, 117u8, 101u8, 67u8,
111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 1u8, 0u8, 165u8, 3u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 4u8, 25u8, 1u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 118u8, 101u8, 110u8, 117u8, 101u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8,
32u8, 115u8, 121u8, 115u8, 116u8, 101u8, 109u8, 32u8, 40u8, 73u8, 116u8, 39u8, 115u8, 32u8,
111u8, 110u8, 101u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8,
116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8,
98u8, 101u8, 114u8, 41u8, 72u8, 73u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8,
111u8, 110u8, 67u8, 111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 1u8, 0u8, 177u8, 3u8, 32u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8, 49u8, 1u8, 32u8, 78u8, 117u8, 109u8, 98u8, 101u8, 114u8,
32u8, 111u8, 102u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8, 99u8, 116u8, 105u8, 111u8,
110u8, 115u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 121u8, 115u8, 116u8,
101u8, 109u8, 32u8, 40u8, 73u8, 116u8, 39u8, 115u8, 32u8, 111u8, 110u8, 101u8, 32u8, 109u8,
111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8,
99u8, 116u8, 117u8, 97u8, 108u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 41u8, 56u8, 83u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8,
0u8, 93u8, 10u8, 4u8, 0u8, 4u8, 68u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8,
118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 46u8, 1u8, 201u8, 7u8, 1u8, 161u8, 3u8, 0u8,
1u8, 97u8, 10u8, 37u8, 40u8, 83u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8,
1u8, 40u8, 83u8, 116u8, 97u8, 116u8, 105u8, 115u8, 116u8, 105u8, 99u8, 115u8, 20u8, 64u8, 65u8,
99u8, 116u8, 105u8, 118u8, 101u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 116u8, 97u8, 116u8,
115u8, 1u8, 1u8, 4u8, 2u8, 209u8, 3u8, 225u8, 7u8, 4u8, 0u8, 4u8, 209u8, 1u8, 32u8, 65u8, 99u8,
116u8, 105u8, 118u8, 101u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 47u8, 99u8, 111u8, 109u8, 112u8, 97u8,
110u8, 121u8, 46u8, 32u8, 32u8, 84u8, 104u8, 101u8, 114u8, 101u8, 32u8, 115u8, 104u8, 111u8,
117u8, 108u8, 100u8, 32u8, 98u8, 101u8, 32u8, 97u8, 32u8, 109u8, 97u8, 120u8, 32u8, 108u8, 105u8,
109u8, 105u8, 116u8, 32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8,
98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 97u8, 99u8, 116u8, 105u8, 118u8, 101u8, 32u8,
115u8, 116u8, 97u8, 116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8, 105u8,
99u8, 107u8, 101u8, 114u8, 47u8, 99u8, 111u8, 109u8, 112u8, 97u8, 110u8, 121u8, 46u8, 40u8, 65u8,
115u8, 115u8, 101u8, 116u8, 83u8, 116u8, 97u8, 116u8, 115u8, 1u8, 1u8, 8u8, 2u8, 2u8, 101u8,
10u8, 24u8, 64u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
4u8, 52u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 32u8, 115u8, 116u8, 97u8, 116u8, 115u8, 46u8,
96u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8,
67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 115u8, 1u8, 1u8, 4u8, 2u8,
209u8, 3u8, 109u8, 10u8, 8u8, 0u8, 0u8, 4u8, 61u8, 1u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8,
32u8, 116u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 99u8, 111u8, 109u8, 112u8,
108u8, 105u8, 97u8, 110u8, 99u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8,
105u8, 99u8, 107u8, 101u8, 114u8, 32u8, 40u8, 65u8, 115u8, 115u8, 101u8, 116u8, 83u8, 99u8,
111u8, 112u8, 101u8, 32u8, 45u8, 62u8, 32u8, 65u8, 115u8, 115u8, 101u8, 116u8, 84u8, 114u8, 97u8,
110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8, 110u8, 99u8,
101u8, 41u8, 124u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8, 110u8,
100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 69u8, 120u8, 101u8, 109u8, 112u8, 116u8, 69u8, 110u8,
116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 1u8, 1u8, 8u8, 2u8, 2u8, 113u8, 10u8, 21u8, 1u8, 4u8,
0u8, 4u8, 196u8, 32u8, 69u8, 110u8, 116u8, 105u8, 116u8, 105u8, 101u8, 115u8, 32u8, 101u8, 120u8,
101u8, 109u8, 112u8, 116u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 32u8, 84u8, 114u8,
97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 32u8, 67u8, 111u8, 109u8, 112u8, 108u8, 105u8, 97u8,
110u8, 99u8, 101u8, 32u8, 114u8, 117u8, 108u8, 101u8, 46u8, 56u8, 83u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 1u8, 0u8, 117u8, 10u8, 4u8,
0u8, 4u8, 108u8, 32u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 105u8, 103u8,
114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 118u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
46u8, 1u8, 221u8, 7u8, 1u8, 205u8, 3u8, 8u8, 64u8, 77u8, 97u8, 120u8, 83u8, 116u8, 97u8, 116u8,
115u8, 80u8, 101u8, 114u8, 65u8, 115u8, 115u8, 101u8, 116u8, 16u8, 16u8, 10u8, 0u8, 0u8, 0u8,
0u8, 116u8, 77u8, 97u8, 120u8, 84u8, 114u8, 97u8, 110u8, 115u8, 102u8, 101u8, 114u8, 67u8, 111u8,
110u8, 100u8, 105u8, 116u8, 105u8, 111u8, 110u8, 115u8, 80u8, 101u8, 114u8, 65u8, 115u8, 115u8,
101u8, 116u8, 16u8, 16u8, 4u8, 0u8, 0u8, 0u8, 0u8, 1u8, 121u8, 10u8, 38u8, 12u8, 83u8, 116u8,
111u8, 1u8, 12u8, 83u8, 116u8, 111u8, 12u8, 44u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8,
115u8, 101u8, 114u8, 115u8, 0u8, 1u8, 8u8, 2u8, 5u8, 125u8, 10u8, 29u8, 4u8, 4u8, 0u8, 8u8,
176u8, 32u8, 65u8, 108u8, 108u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8,
101u8, 114u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 97u8, 114u8, 101u8, 32u8, 99u8,
117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 108u8, 121u8, 32u8, 114u8, 117u8, 110u8, 110u8, 105u8,
110u8, 103u8, 46u8, 152u8, 32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8,
102u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 95u8, 105u8, 100u8, 41u8,
32u8, 45u8, 62u8, 32u8, 70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 60u8,
70u8, 117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 67u8, 111u8, 117u8, 110u8,
116u8, 1u8, 1u8, 4u8, 2u8, 156u8, 21u8, 4u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 4u8,
156u8, 32u8, 84u8, 111u8, 116u8, 97u8, 108u8, 32u8, 102u8, 117u8, 110u8, 100u8, 114u8, 97u8,
105u8, 115u8, 101u8, 114u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 32u8,
102u8, 111u8, 114u8, 32u8, 97u8, 32u8, 116u8, 111u8, 107u8, 101u8, 110u8, 46u8, 60u8, 70u8,
117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 78u8, 97u8, 109u8, 101u8, 115u8,
1u8, 1u8, 8u8, 2u8, 5u8, 125u8, 10u8, 25u8, 4u8, 4u8, 0u8, 8u8, 180u8, 32u8, 78u8, 97u8, 109u8,
101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 104u8, 101u8, 32u8, 70u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 46u8, 32u8, 79u8, 110u8, 108u8, 121u8, 32u8, 117u8,
115u8, 101u8, 100u8, 32u8, 111u8, 102u8, 102u8, 99u8, 104u8, 97u8, 105u8, 110u8, 46u8, 172u8,
32u8, 40u8, 116u8, 105u8, 99u8, 107u8, 101u8, 114u8, 44u8, 32u8, 102u8, 117u8, 110u8, 100u8,
114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 95u8, 105u8, 100u8, 41u8, 32u8, 45u8, 62u8, 32u8, 70u8,
117u8, 110u8, 100u8, 114u8, 97u8, 105u8, 115u8, 101u8, 114u8, 32u8, 110u8, 97u8, 109u8, 101u8,
1u8, 241u8, 7u8, 1u8, 17u8, 4u8, 0u8, 1u8, 129u8, 10u8, 39u8, 32u8, 84u8, 114u8, 101u8, 97u8,
115u8, 117u8, 114u8, 121u8, 0u8, 1u8, 1u8, 8u8, 1u8, 45u8, 4u8, 0u8, 1u8, 133u8, 10u8, 40u8,
28u8, 85u8, 116u8, 105u8, 108u8, 105u8, 116u8, 121u8, 1u8, 28u8, 85u8, 116u8, 105u8, 108u8,
105u8, 116u8, 121u8, 4u8, 24u8, 78u8, 111u8, 110u8, 99u8, 101u8, 115u8, 1u8, 1u8, 4u8, 5u8, 0u8,
32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 13u8, 8u8, 1u8, 49u8, 4u8, 0u8,
1u8, 137u8, 10u8, 41u8, 16u8, 66u8, 97u8, 115u8, 101u8, 0u8, 1u8, 25u8, 8u8, 1u8, 65u8, 4u8, 4u8,
24u8, 77u8, 97u8, 120u8, 76u8, 101u8, 110u8, 16u8, 16u8, 0u8, 8u8, 0u8, 0u8, 0u8, 1u8, 141u8,
10u8, 42u8, 56u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 65u8, 103u8, 101u8,
110u8, 116u8, 115u8, 1u8, 56u8, 69u8, 120u8, 116u8, 101u8, 114u8, 110u8, 97u8, 108u8, 65u8,
103u8, 101u8, 110u8, 116u8, 115u8, 20u8, 48u8, 65u8, 71u8, 73u8, 100u8, 83u8, 101u8, 113u8,
117u8, 101u8, 110u8, 99u8, 101u8, 1u8, 1u8, 4u8, 2u8, 156u8, 17u8, 1u8, 16u8, 0u8, 0u8, 0u8, 0u8,
16u8, 180u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 101u8, 120u8, 116u8, 32u8, 112u8, 101u8,
114u8, 45u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 65u8, 71u8, 32u8, 73u8,
68u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8,
110u8, 99u8, 101u8, 46u8, 0u8, 77u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 102u8, 117u8, 108u8,
108u8, 32u8, 73u8, 68u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8, 101u8,
100u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 99u8, 111u8, 109u8, 98u8, 105u8, 110u8, 97u8, 116u8,
105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8,
96u8, 32u8, 97u8, 110u8, 100u8, 32u8, 97u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8,
99u8, 101u8, 44u8, 144u8, 32u8, 119u8, 104u8, 105u8, 99u8, 104u8, 32u8, 115u8, 116u8, 97u8,
114u8, 116u8, 115u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 49u8, 44u8, 32u8, 114u8, 97u8,
116u8, 104u8, 101u8, 114u8, 32u8, 116u8, 104u8, 97u8, 110u8, 32u8, 48u8, 46u8, 28u8, 65u8, 103u8,
101u8, 110u8, 116u8, 79u8, 102u8, 1u8, 1u8, 8u8, 2u8, 2u8, 85u8, 9u8, 49u8, 1u8, 0u8, 4u8, 41u8,
1u8, 32u8, 77u8, 97u8, 112u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8,
32u8, 40u8, 96u8, 73u8, 100u8, 101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 96u8, 41u8,
32u8, 116u8, 111u8, 32u8, 97u8, 108u8, 108u8, 32u8, 97u8, 108u8, 108u8, 32u8, 96u8, 84u8, 105u8,
99u8, 107u8, 101u8, 114u8, 96u8, 115u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 98u8, 101u8,
108u8, 111u8, 110u8, 103u8, 32u8, 116u8, 111u8, 44u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8,
121u8, 46u8, 48u8, 71u8, 114u8, 111u8, 117u8, 112u8, 79u8, 102u8, 65u8, 103u8, 101u8, 110u8,
116u8, 0u8, 1u8, 8u8, 2u8, 5u8, 77u8, 9u8, 13u8, 1u8, 4u8, 0u8, 4u8, 53u8, 1u8, 32u8, 77u8, 97u8,
112u8, 115u8, 32u8, 97u8, 103u8, 101u8, 110u8, 116u8, 115u8, 32u8, 40u8, 96u8, 73u8, 100u8,
101u8, 110u8, 116u8, 105u8, 116u8, 121u8, 73u8, 100u8, 96u8, 41u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8, 116u8, 111u8, 32u8,
119u8, 104u8, 97u8, 116u8, 32u8, 65u8, 71u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 98u8, 101u8,
108u8, 111u8, 110u8, 103u8, 32u8, 116u8, 111u8, 44u8, 32u8, 105u8, 102u8, 32u8, 97u8, 110u8,
121u8, 46u8, 52u8, 78u8, 117u8, 109u8, 70u8, 117u8, 108u8, 108u8, 65u8, 103u8, 101u8, 110u8,
116u8, 115u8, 1u8, 1u8, 4u8, 2u8, 156u8, 16u8, 16u8, 0u8, 0u8, 0u8, 0u8, 4u8, 220u8, 32u8, 77u8,
97u8, 112u8, 115u8, 32u8, 97u8, 32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 32u8,
116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8,
111u8, 102u8, 32u8, 96u8, 70u8, 117u8, 108u8, 108u8, 96u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 115u8, 32u8, 102u8, 111u8, 114u8, 32u8, 105u8, 116u8, 46u8, 64u8, 71u8, 114u8, 111u8,
117u8, 112u8, 80u8, 101u8, 114u8, 109u8, 105u8, 115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 0u8,
1u8, 8u8, 2u8, 5u8, 145u8, 10u8, 172u8, 4u8, 0u8, 4u8, 93u8, 1u8, 32u8, 70u8, 111u8, 114u8, 32u8,
99u8, 117u8, 115u8, 116u8, 111u8, 109u8, 32u8, 65u8, 71u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8,
32u8, 96u8, 84u8, 105u8, 99u8, 107u8, 101u8, 114u8, 96u8, 44u8, 32u8, 109u8, 97u8, 112u8, 115u8,
32u8, 116u8, 111u8, 32u8, 119u8, 104u8, 97u8, 116u8, 32u8, 112u8, 101u8, 114u8, 109u8, 105u8,
115u8, 115u8, 105u8, 111u8, 110u8, 115u8, 32u8, 97u8, 110u8, 32u8, 97u8, 103u8, 101u8, 110u8,
116u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 65u8, 71u8, 32u8, 119u8, 111u8,
117u8, 108u8, 100u8, 32u8, 104u8, 97u8, 118u8, 101u8, 46u8, 1u8, 29u8, 8u8, 1u8, 73u8, 4u8, 0u8,
1u8, 149u8, 10u8, 43u8, 28u8, 82u8, 101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 1u8, 28u8, 82u8,
101u8, 108u8, 97u8, 121u8, 101u8, 114u8, 4u8, 36u8, 83u8, 117u8, 98u8, 115u8, 105u8, 100u8,
105u8, 101u8, 115u8, 0u8, 1u8, 4u8, 2u8, 0u8, 153u8, 10u8, 4u8, 0u8, 24u8, 236u8, 32u8, 84u8,
104u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 102u8, 111u8, 114u8,
32u8, 97u8, 32u8, 96u8, 117u8, 115u8, 101u8, 114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 105u8,
102u8, 32u8, 116u8, 104u8, 101u8, 121u8, 32u8, 97u8, 114u8, 101u8, 32u8, 98u8, 101u8, 105u8,
110u8, 103u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8, 101u8, 100u8, 44u8,
136u8, 32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 109u8, 97u8, 112u8, 32u8, 96u8, 117u8, 115u8, 101u8,
114u8, 95u8, 107u8, 101u8, 121u8, 96u8, 32u8, 61u8, 62u8, 32u8, 96u8, 83u8, 117u8, 98u8, 115u8,
105u8, 100u8, 121u8, 96u8, 46u8, 0u8, 9u8, 1u8, 32u8, 65u8, 32u8, 107u8, 101u8, 121u8, 32u8,
99u8, 97u8, 110u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 104u8, 97u8, 118u8, 101u8, 32u8,
111u8, 110u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 121u8, 32u8, 97u8, 116u8,
32u8, 97u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8, 32u8, 32u8, 84u8, 111u8, 32u8, 99u8, 104u8,
97u8, 110u8, 103u8, 101u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8, 101u8,
114u8, 115u8, 29u8, 1u8, 32u8, 97u8, 32u8, 107u8, 101u8, 121u8, 32u8, 110u8, 101u8, 101u8, 100u8,
115u8, 32u8, 116u8, 111u8, 32u8, 99u8, 97u8, 108u8, 108u8, 32u8, 96u8, 114u8, 101u8, 109u8,
111u8, 118u8, 101u8, 95u8, 112u8, 97u8, 121u8, 105u8, 110u8, 103u8, 95u8, 107u8, 101u8, 121u8,
96u8, 32u8, 116u8, 111u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 117u8, 114u8, 114u8, 101u8, 110u8, 116u8, 32u8, 115u8, 117u8, 98u8, 115u8,
105u8, 100u8, 121u8, 44u8, 164u8, 32u8, 98u8, 101u8, 102u8, 111u8, 114u8, 101u8, 32u8, 116u8,
104u8, 101u8, 121u8, 32u8, 99u8, 97u8, 110u8, 32u8, 97u8, 99u8, 99u8, 101u8, 112u8, 116u8, 32u8,
97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 115u8, 117u8, 98u8, 115u8, 105u8, 100u8, 105u8, 115u8,
101u8, 114u8, 46u8, 1u8, 33u8, 8u8, 1u8, 77u8, 4u8, 0u8, 1u8, 157u8, 10u8, 44u8, 28u8, 82u8,
101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 1u8, 28u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8,
115u8, 4u8, 40u8, 73u8, 116u8, 110u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 115u8, 0u8, 1u8,
4u8, 2u8, 0u8, 41u8, 8u8, 4u8, 0u8, 4u8, 1u8, 1u8, 32u8, 77u8, 97u8, 112u8, 32u8, 111u8, 102u8,
32u8, 40u8, 73u8, 116u8, 110u8, 32u8, 65u8, 100u8, 100u8, 114u8, 101u8, 115u8, 115u8, 32u8, 96u8,
65u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 41u8, 32u8, 45u8, 62u8, 32u8,
40u8, 82u8, 101u8, 119u8, 97u8, 114u8, 100u8, 32u8, 96u8, 73u8, 116u8, 110u8, 82u8, 101u8, 119u8,
97u8, 114u8, 100u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 96u8, 41u8, 46u8, 1u8, 37u8, 8u8,
1u8, 81u8, 4u8, 0u8, 1u8, 161u8, 10u8, 45u8, 36u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 115u8, 1u8, 36u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 24u8, 48u8,
80u8, 114u8, 105u8, 115u8, 116u8, 105u8, 110u8, 101u8, 67u8, 111u8, 100u8, 101u8, 0u8, 1u8, 4u8,
6u8, 36u8, 40u8, 4u8, 0u8, 4u8, 101u8, 1u8, 32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8,
110u8, 103u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 97u8, 108u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8, 97u8, 115u8,
104u8, 32u8, 116u8, 111u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 114u8, 105u8, 103u8, 105u8,
110u8, 97u8, 108u8, 32u8, 99u8, 111u8, 100u8, 101u8, 44u8, 32u8, 117u8, 110u8, 116u8, 111u8,
117u8, 99u8, 104u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8,
117u8, 109u8, 101u8, 110u8, 116u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 44u8, 67u8, 111u8,
100u8, 101u8, 83u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 0u8, 1u8, 4u8, 6u8, 36u8, 165u8,
10u8, 4u8, 0u8, 4u8, 101u8, 1u8, 32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8,
103u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8, 32u8, 97u8, 110u8, 32u8, 111u8,
114u8, 105u8, 103u8, 105u8, 110u8, 97u8, 108u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8,
97u8, 115u8, 104u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 110u8, 115u8, 116u8, 114u8, 117u8,
109u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 119u8, 97u8, 115u8, 109u8, 32u8, 99u8, 111u8,
100u8, 101u8, 44u8, 32u8, 114u8, 101u8, 97u8, 100u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8,
101u8, 120u8, 101u8, 99u8, 117u8, 116u8, 105u8, 111u8, 110u8, 46u8, 44u8, 79u8, 119u8, 110u8,
101u8, 114u8, 73u8, 110u8, 102u8, 111u8, 79u8, 102u8, 0u8, 1u8, 4u8, 6u8, 36u8, 169u8, 10u8, 4u8,
0u8, 4u8, 13u8, 1u8, 32u8, 65u8, 32u8, 109u8, 97u8, 112u8, 112u8, 105u8, 110u8, 103u8, 32u8,
98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8, 32u8, 97u8, 110u8, 32u8, 111u8, 114u8, 105u8,
103u8, 105u8, 110u8, 97u8, 108u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 104u8, 97u8, 115u8,
104u8, 32u8, 97u8, 110u8, 100u8, 32u8, 105u8, 116u8, 115u8, 32u8, 111u8, 119u8, 110u8, 101u8,
114u8, 32u8, 105u8, 110u8, 102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 46u8,
20u8, 78u8, 111u8, 110u8, 99u8, 101u8, 1u8, 0u8, 32u8, 32u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 88u8, 29u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8,
42u8, 42u8, 109u8, 111u8, 110u8, 111u8, 116u8, 111u8, 110u8, 105u8, 99u8, 42u8, 42u8, 32u8, 99u8,
111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 32u8, 105u8, 110u8, 99u8, 114u8, 101u8, 109u8, 101u8,
110u8, 116u8, 101u8, 100u8, 32u8, 111u8, 110u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 32u8, 105u8, 110u8, 115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 0u8, 5u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 105u8, 115u8, 32u8,
117u8, 115u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8, 32u8,
116u8, 111u8, 32u8, 103u8, 101u8, 110u8, 101u8, 114u8, 97u8, 116u8, 101u8, 32u8, 117u8, 110u8,
105u8, 113u8, 117u8, 101u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 105u8, 100u8, 115u8, 32u8,
102u8, 111u8, 114u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 46u8,
41u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 105u8, 100u8, 32u8,
111u8, 102u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 99u8, 97u8, 108u8, 99u8, 117u8, 108u8, 97u8, 116u8,
101u8, 100u8, 32u8, 102u8, 114u8, 111u8, 109u8, 32u8, 104u8, 97u8, 115u8, 104u8, 40u8, 97u8,
99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 95u8, 105u8, 100u8, 44u8, 32u8, 110u8, 111u8, 110u8,
99u8, 101u8, 41u8, 46u8, 53u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 110u8, 111u8, 110u8, 99u8,
101u8, 32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 113u8, 117u8, 105u8, 114u8, 101u8, 100u8, 32u8,
98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8, 32u8, 111u8, 116u8, 104u8, 101u8, 114u8, 119u8,
105u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 102u8, 111u8, 108u8, 108u8, 111u8, 119u8,
105u8, 110u8, 103u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8, 99u8, 101u8, 32u8, 119u8,
111u8, 117u8, 108u8, 100u8, 32u8, 108u8, 101u8, 97u8, 100u8, 32u8, 116u8, 111u8, 132u8, 32u8,
97u8, 32u8, 112u8, 111u8, 115u8, 115u8, 105u8, 98u8, 108u8, 101u8, 32u8, 99u8, 111u8, 108u8,
108u8, 105u8, 115u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 58u8, 0u8, 104u8, 32u8, 49u8, 46u8, 32u8, 67u8, 114u8, 101u8, 97u8, 116u8,
101u8, 32u8, 97u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8,
116u8, 46u8, 108u8, 32u8, 50u8, 46u8, 32u8, 84u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8,
101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
46u8, 252u8, 32u8, 51u8, 46u8, 32u8, 73u8, 109u8, 109u8, 101u8, 100u8, 105u8, 97u8, 116u8, 101u8,
108u8, 121u8, 32u8, 114u8, 101u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 32u8, 116u8, 104u8,
101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 119u8, 105u8, 116u8,
104u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8,
117u8, 110u8, 116u8, 95u8, 105u8, 100u8, 46u8, 0u8, 69u8, 1u8, 32u8, 84u8, 104u8, 105u8, 115u8,
32u8, 105u8, 115u8, 32u8, 98u8, 97u8, 100u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8, 115u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 101u8, 110u8, 116u8, 115u8, 32u8,
111u8, 102u8, 32u8, 97u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 97u8, 114u8, 101u8, 32u8,
100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 108u8, 97u8, 122u8, 105u8, 108u8, 121u8,
32u8, 97u8, 110u8, 100u8, 32u8, 116u8, 104u8, 101u8, 114u8, 101u8, 32u8, 109u8, 105u8, 103u8,
104u8, 116u8, 32u8, 98u8, 101u8, 89u8, 1u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8,
32u8, 111u8, 102u8, 32u8, 116u8, 104u8, 101u8, 32u8, 111u8, 108u8, 100u8, 32u8, 105u8, 110u8,
115u8, 116u8, 97u8, 110u8, 116u8, 105u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 115u8, 116u8,
105u8, 108u8, 108u8, 32u8, 105u8, 110u8, 32u8, 105u8, 116u8, 32u8, 119u8, 104u8, 101u8, 110u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 101u8, 119u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8,
97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 99u8, 114u8, 101u8, 97u8, 116u8, 101u8, 100u8, 46u8,
32u8, 80u8, 108u8, 101u8, 97u8, 115u8, 101u8, 89u8, 1u8, 32u8, 110u8, 111u8, 116u8, 101u8, 32u8,
116u8, 104u8, 97u8, 116u8, 32u8, 119u8, 101u8, 32u8, 99u8, 97u8, 110u8, 39u8, 116u8, 32u8, 114u8,
101u8, 112u8, 108u8, 97u8, 99u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 99u8, 111u8, 117u8,
110u8, 116u8, 101u8, 114u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 101u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 98u8, 101u8, 99u8, 97u8,
117u8, 115u8, 101u8, 32u8, 116u8, 104u8, 101u8, 32u8, 115u8, 101u8, 113u8, 117u8, 101u8, 110u8,
99u8, 101u8, 32u8, 97u8, 98u8, 111u8, 118u8, 101u8, 81u8, 1u8, 32u8, 99u8, 97u8, 110u8, 32u8,
104u8, 97u8, 112u8, 112u8, 101u8, 110u8, 32u8, 105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8,
115u8, 97u8, 109u8, 101u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 32u8, 87u8, 101u8, 32u8,
97u8, 108u8, 115u8, 111u8, 32u8, 99u8, 97u8, 110u8, 39u8, 116u8, 32u8, 107u8, 101u8, 101u8,
112u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8, 116u8, 32u8, 99u8,
111u8, 117u8, 110u8, 116u8, 101u8, 114u8, 32u8, 105u8, 110u8, 32u8, 109u8, 101u8, 109u8, 111u8,
114u8, 121u8, 32u8, 111u8, 110u8, 108u8, 121u8, 73u8, 1u8, 32u8, 98u8, 101u8, 99u8, 97u8, 117u8,
115u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 115u8, 32u8,
116u8, 104u8, 101u8, 32u8, 111u8, 110u8, 108u8, 121u8, 32u8, 119u8, 97u8, 121u8, 32u8, 116u8,
111u8, 32u8, 99u8, 111u8, 109u8, 109u8, 117u8, 110u8, 105u8, 99u8, 97u8, 116u8, 101u8, 32u8,
97u8, 99u8, 114u8, 111u8, 115u8, 115u8, 32u8, 100u8, 105u8, 102u8, 102u8, 101u8, 114u8, 101u8,
110u8, 116u8, 32u8, 101u8, 120u8, 116u8, 114u8, 105u8, 110u8, 115u8, 105u8, 99u8, 115u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 101u8, 48u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 98u8,
108u8, 111u8, 99u8, 107u8, 46u8, 0u8, 28u8, 32u8, 35u8, 32u8, 78u8, 111u8, 116u8, 101u8, 0u8,
61u8, 1u8, 32u8, 68u8, 111u8, 32u8, 110u8, 111u8, 116u8, 32u8, 117u8, 115u8, 101u8, 32u8, 105u8,
116u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8,
32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 46u8, 32u8, 73u8, 116u8, 32u8,
119u8, 111u8, 110u8, 39u8, 116u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 99u8, 114u8, 101u8,
109u8, 101u8, 110u8, 116u8, 101u8, 100u8, 32u8, 105u8, 102u8, 100u8, 32u8, 97u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 115u8,
116u8, 114u8, 111u8, 121u8, 101u8, 100u8, 46u8, 56u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8,
99u8, 116u8, 73u8, 110u8, 102u8, 111u8, 79u8, 102u8, 0u8, 1u8, 4u8, 5u8, 0u8, 173u8, 10u8, 4u8,
0u8, 12u8, 168u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 100u8, 101u8, 32u8, 97u8, 115u8,
115u8, 111u8, 99u8, 105u8, 97u8, 116u8, 101u8, 100u8, 32u8, 119u8, 105u8, 116u8, 104u8, 32u8,
97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8, 97u8, 99u8, 99u8, 111u8, 117u8, 110u8,
116u8, 46u8, 0u8, 208u8, 32u8, 84u8, 87u8, 79u8, 88u8, 45u8, 78u8, 79u8, 84u8, 69u8, 58u8, 32u8,
83u8, 65u8, 70u8, 69u8, 32u8, 115u8, 105u8, 110u8, 99u8, 101u8, 32u8, 96u8, 65u8, 99u8, 99u8,
111u8, 117u8, 110u8, 116u8, 73u8, 100u8, 96u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 115u8,
101u8, 99u8, 117u8, 114u8, 101u8, 32u8, 104u8, 97u8, 115u8, 104u8, 46u8, 52u8, 68u8, 101u8,
108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 81u8, 117u8, 101u8, 117u8, 101u8, 1u8, 0u8, 177u8,
10u8, 4u8, 0u8, 16u8, 200u8, 32u8, 69u8, 118u8, 105u8, 99u8, 116u8, 101u8, 100u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
97u8, 119u8, 97u8, 105u8, 116u8, 32u8, 99u8, 104u8, 105u8, 108u8, 100u8, 32u8, 116u8, 114u8,
105u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 73u8, 1u8,
32u8, 67u8, 104u8, 105u8, 108u8, 100u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 100u8, 101u8,
108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 97u8, 32u8, 104u8, 101u8,
97u8, 118u8, 121u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8,
100u8, 101u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 111u8, 110u8, 32u8, 116u8,
104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 89u8, 1u8,
32u8, 115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 115u8, 97u8, 105u8,
100u8, 32u8, 116u8, 114u8, 105u8, 101u8, 46u8, 32u8, 84u8, 104u8, 101u8, 114u8, 101u8, 102u8,
111u8, 114u8, 101u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8, 111u8, 112u8, 101u8, 114u8, 97u8,
116u8, 105u8, 111u8, 110u8, 32u8, 105u8, 115u8, 32u8, 112u8, 101u8, 114u8, 102u8, 111u8, 114u8,
109u8, 101u8, 100u8, 32u8, 108u8, 97u8, 122u8, 105u8, 108u8, 121u8, 32u8, 105u8, 110u8, 32u8,
96u8, 111u8, 110u8, 95u8, 105u8, 110u8, 105u8, 116u8, 105u8, 97u8, 108u8, 105u8, 122u8, 101u8,
96u8, 46u8, 1u8, 45u8, 8u8, 1u8, 85u8, 4u8, 20u8, 32u8, 83u8, 99u8, 104u8, 101u8, 100u8, 117u8,
108u8, 101u8, 185u8, 10u8, 165u8, 10u8, 4u8, 0u8, 0u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 128u8, 0u8,
0u8, 0u8, 16u8, 0u8, 0u8, 0u8, 0u8, 16u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 32u8, 0u8, 0u8, 0u8,
32u8, 0u8, 0u8, 0u8, 0u8, 64u8, 0u8, 0u8, 0u8, 0u8, 2u8, 0u8, 2u8, 0u8, 0u8, 0u8, 144u8, 11u8,
0u8, 0u8, 112u8, 28u8, 0u8, 0u8, 168u8, 32u8, 0u8, 0u8, 92u8, 23u8, 0u8, 0u8, 6u8, 39u8, 0u8,
0u8, 244u8, 11u8, 0u8, 0u8, 138u8, 22u8, 0u8, 0u8, 2u8, 28u8, 0u8, 0u8, 40u8, 0u8, 0u8, 0u8,
188u8, 11u8, 1u8, 0u8, 188u8, 76u8, 1u8, 0u8, 224u8, 6u8, 0u8, 0u8, 234u8, 11u8, 0u8, 0u8, 60u8,
15u8, 0u8, 0u8, 214u8, 11u8, 0u8, 0u8, 90u8, 35u8, 0u8, 0u8, 132u8, 43u8, 0u8, 0u8, 56u8, 14u8,
0u8, 0u8, 145u8, 24u8, 176u8, 0u8, 68u8, 12u8, 0u8, 0u8, 224u8, 11u8, 0u8, 0u8, 154u8, 11u8, 0u8,
0u8, 88u8, 12u8, 0u8, 0u8, 74u8, 11u8, 0u8, 0u8, 14u8, 11u8, 0u8, 0u8, 68u8, 12u8, 0u8, 0u8,
132u8, 18u8, 0u8, 0u8, 112u8, 18u8, 0u8, 0u8, 72u8, 18u8, 0u8, 0u8, 82u8, 18u8, 0u8, 0u8, 112u8,
18u8, 0u8, 0u8, 232u8, 18u8, 0u8, 0u8, 122u8, 18u8, 0u8, 0u8, 102u8, 18u8, 0u8, 0u8, 52u8, 18u8,
0u8, 0u8, 82u8, 18u8, 0u8, 0u8, 98u8, 17u8, 0u8, 0u8, 168u8, 17u8, 0u8, 0u8, 168u8, 17u8, 0u8,
0u8, 62u8, 43u8, 0u8, 0u8, 100u8, 45u8, 0u8, 0u8, 82u8, 43u8, 0u8, 0u8, 210u8, 45u8, 0u8, 0u8,
148u8, 17u8, 0u8, 0u8, 128u8, 17u8, 0u8, 0u8, 218u8, 17u8, 0u8, 0u8, 132u8, 18u8, 0u8, 0u8, 72u8,
18u8, 0u8, 0u8, 92u8, 18u8, 0u8, 0u8, 82u8, 18u8, 0u8, 0u8, 92u8, 18u8, 0u8, 0u8, 150u8, 78u8,
7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 140u8, 151u8, 51u8, 3u8, 0u8, 0u8, 0u8, 0u8, 62u8, 222u8, 63u8,
3u8, 0u8, 0u8, 0u8, 0u8, 46u8, 16u8, 8u8, 0u8, 0u8, 0u8, 0u8, 0u8, 54u8, 53u8, 3u8, 0u8, 0u8,
0u8, 0u8, 0u8, 48u8, 85u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 162u8, 56u8, 7u8, 0u8, 0u8, 0u8, 0u8,
0u8, 188u8, 191u8, 21u8, 0u8, 0u8, 0u8, 0u8, 0u8, 80u8, 98u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8,
154u8, 84u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 158u8, 85u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 214u8,
74u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 40u8, 157u8, 18u8, 0u8, 0u8, 0u8, 0u8, 0u8, 32u8, 170u8, 3u8,
0u8, 0u8, 0u8, 0u8, 0u8, 160u8, 38u8, 7u8, 0u8, 0u8, 0u8, 0u8, 0u8, 116u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 196u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
136u8, 109u8, 166u8, 74u8, 0u8, 0u8, 0u8, 0u8, 82u8, 9u8, 24u8, 0u8, 0u8, 0u8, 0u8, 0u8, 130u8,
80u8, 45u8, 0u8, 0u8, 0u8, 0u8, 0u8, 120u8, 156u8, 19u8, 15u8, 0u8, 0u8, 0u8, 0u8, 33u8, 3u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 22u8, 253u8, 5u8, 0u8, 0u8, 0u8, 0u8, 0u8, 42u8, 67u8, 36u8, 15u8,
0u8, 0u8, 0u8, 0u8, 20u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 110u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 190u8, 78u8, 77u8, 15u8, 0u8, 0u8, 0u8, 0u8, 134u8, 239u8, 32u8, 15u8, 0u8, 0u8, 0u8, 0u8,
100u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 134u8, 84u8, 39u8, 3u8, 0u8, 0u8, 0u8, 0u8, 99u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 240u8, 128u8, 44u8, 3u8, 0u8, 0u8, 0u8, 0u8, 111u8, 2u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 108u8, 84u8, 38u8, 15u8, 0u8, 0u8, 0u8, 0u8, 128u8, 2u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 170u8, 216u8, 249u8, 15u8, 0u8, 0u8, 0u8, 0u8, 250u8, 10u8, 199u8, 26u8, 0u8, 0u8, 0u8,
0u8, 194u8, 193u8, 219u8, 14u8, 0u8, 0u8, 0u8, 0u8, 148u8, 100u8, 6u8, 16u8, 0u8, 0u8, 0u8, 0u8,
2u8, 212u8, 1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 36u8, 131u8, 57u8, 76u8, 0u8, 0u8, 0u8, 0u8, 33u8,
43u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 245u8, 5u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 8u8, 241u8, 11u8,
0u8, 0u8, 0u8, 0u8, 0u8, 203u8, 17u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 206u8, 201u8, 13u8, 0u8, 0u8,
0u8, 0u8, 0u8, 182u8, 11u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 138u8, 128u8, 9u8, 0u8, 0u8, 0u8, 0u8,
0u8, 143u8, 4u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 66u8, 125u8, 9u8, 0u8, 0u8, 0u8, 0u8, 0u8, 144u8,
4u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 60u8, 162u8, 71u8, 2u8, 0u8, 0u8, 0u8, 0u8, 130u8, 209u8,
47u8, 9u8, 0u8, 0u8, 0u8, 0u8, 4u8, 104u8, 32u8, 67u8, 111u8, 115u8, 116u8, 32u8, 115u8, 99u8,
104u8, 101u8, 100u8, 117u8, 108u8, 101u8, 32u8, 97u8, 110u8, 100u8, 32u8, 108u8, 105u8, 109u8,
105u8, 116u8, 115u8, 46u8, 72u8, 68u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 81u8,
117u8, 101u8, 117u8, 101u8, 68u8, 101u8, 112u8, 116u8, 104u8, 16u8, 16u8, 0u8, 4u8, 0u8, 0u8,
60u8, 9u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8,
32u8, 110u8, 117u8, 109u8, 98u8, 101u8, 114u8, 32u8, 111u8, 102u8, 32u8, 99u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8,
32u8, 98u8, 101u8, 32u8, 112u8, 101u8, 110u8, 100u8, 105u8, 110u8, 103u8, 32u8, 102u8, 111u8,
114u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 46u8, 0u8, 61u8, 1u8, 32u8,
87u8, 104u8, 101u8, 110u8, 32u8, 97u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8,
32u8, 105u8, 115u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8, 98u8, 121u8,
32u8, 99u8, 97u8, 108u8, 108u8, 105u8, 110u8, 103u8, 32u8, 96u8, 115u8, 101u8, 97u8, 108u8, 95u8,
116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 96u8, 32u8, 105u8, 116u8, 32u8,
98u8, 101u8, 99u8, 111u8, 109u8, 101u8, 115u8, 32u8, 105u8, 110u8, 97u8, 99u8, 99u8, 101u8,
115u8, 115u8, 105u8, 98u8, 108u8, 101u8, 77u8, 1u8, 32u8, 105u8, 109u8, 109u8, 101u8, 100u8,
105u8, 97u8, 116u8, 101u8, 108u8, 121u8, 44u8, 32u8, 98u8, 117u8, 116u8, 32u8, 116u8, 104u8,
101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8, 111u8, 102u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8,
101u8, 109u8, 115u8, 32u8, 105u8, 116u8, 32u8, 104u8, 97u8, 115u8, 32u8, 97u8, 99u8, 99u8, 117u8,
109u8, 117u8, 108u8, 97u8, 116u8, 101u8, 100u8, 32u8, 105u8, 115u8, 32u8, 112u8, 101u8, 114u8,
102u8, 111u8, 114u8, 109u8, 101u8, 100u8, 41u8, 1u8, 32u8, 108u8, 97u8, 116u8, 101u8, 114u8,
46u8, 32u8, 84u8, 104u8, 101u8, 32u8, 99u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 32u8,
105u8, 115u8, 32u8, 112u8, 117u8, 116u8, 32u8, 105u8, 110u8, 116u8, 111u8, 32u8, 116u8, 104u8,
101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8, 32u8, 113u8, 117u8, 101u8,
117u8, 101u8, 46u8, 32u8, 84u8, 104u8, 105u8, 115u8, 32u8, 100u8, 101u8, 102u8, 105u8, 110u8,
101u8, 115u8, 32u8, 104u8, 111u8, 119u8, 32u8, 109u8, 97u8, 110u8, 121u8, 93u8, 1u8, 32u8, 99u8,
111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8,
32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 100u8, 32u8, 117u8, 112u8, 32u8, 97u8, 116u8, 32u8,
116u8, 104u8, 101u8, 32u8, 115u8, 97u8, 109u8, 101u8, 32u8, 116u8, 105u8, 109u8, 101u8, 46u8,
32u8, 73u8, 102u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8,
32u8, 105u8, 115u8, 32u8, 114u8, 101u8, 97u8, 99u8, 104u8, 101u8, 100u8, 32u8, 96u8, 115u8,
101u8, 97u8, 108u8, 95u8, 116u8, 101u8, 114u8, 109u8, 105u8, 110u8, 97u8, 116u8, 101u8, 96u8,
21u8, 1u8, 32u8, 119u8, 105u8, 108u8, 108u8, 32u8, 102u8, 97u8, 105u8, 108u8, 46u8, 32u8, 84u8,
104u8, 101u8, 32u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 32u8, 109u8, 117u8, 115u8, 116u8,
32u8, 98u8, 101u8, 32u8, 114u8, 101u8, 116u8, 114u8, 105u8, 101u8, 100u8, 32u8, 105u8, 110u8,
32u8, 97u8, 32u8, 108u8, 97u8, 116u8, 101u8, 114u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8,
105u8, 110u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 115u8, 101u8, 46u8, 0u8, 184u8,
32u8, 84u8, 104u8, 101u8, 32u8, 114u8, 101u8, 97u8, 115u8, 111u8, 110u8, 115u8, 32u8, 102u8,
111u8, 114u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
101u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 100u8, 101u8, 112u8, 116u8, 104u8, 32u8,
97u8, 114u8, 101u8, 58u8, 0u8, 89u8, 1u8, 32u8, 49u8, 46u8, 32u8, 84u8, 104u8, 101u8, 32u8,
113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8, 105u8, 110u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 110u8, 32u8, 111u8, 114u8, 100u8, 101u8, 114u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 112u8, 101u8, 114u8, 115u8, 105u8, 115u8, 116u8,
101u8, 110u8, 116u8, 32u8, 98u8, 101u8, 116u8, 119u8, 101u8, 101u8, 110u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 115u8, 46u8, 32u8, 87u8, 101u8, 32u8, 119u8, 97u8, 110u8, 116u8, 32u8, 116u8,
111u8, 32u8, 108u8, 105u8, 109u8, 105u8, 116u8, 180u8, 32u8, 9u8, 116u8, 104u8, 101u8, 32u8,
97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8, 111u8, 114u8,
97u8, 103u8, 101u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8,
32u8, 99u8, 111u8, 110u8, 115u8, 117u8, 109u8, 101u8, 100u8, 46u8, 77u8, 1u8, 32u8, 50u8, 46u8,
32u8, 84u8, 104u8, 101u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 32u8, 105u8, 115u8, 32u8,
115u8, 116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 97u8, 32u8, 118u8, 101u8,
99u8, 116u8, 111u8, 114u8, 32u8, 97u8, 110u8, 100u8, 32u8, 110u8, 101u8, 101u8, 100u8, 115u8,
32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8, 101u8, 100u8,
32u8, 97u8, 115u8, 32u8, 97u8, 32u8, 119u8, 104u8, 111u8, 108u8, 101u8, 32u8, 119u8, 104u8,
101u8, 110u8, 32u8, 114u8, 101u8, 97u8, 100u8, 105u8, 110u8, 103u8, 69u8, 1u8, 9u8, 9u8, 105u8,
116u8, 32u8, 97u8, 116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 101u8, 110u8, 100u8, 32u8, 111u8,
102u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 32u8, 76u8,
111u8, 110u8, 103u8, 101u8, 114u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 115u8, 32u8, 116u8,
97u8, 107u8, 101u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8,
116u8, 32u8, 116u8, 111u8, 32u8, 100u8, 101u8, 99u8, 111u8, 100u8, 101u8, 32u8, 97u8, 110u8,
100u8, 32u8, 104u8, 101u8, 110u8, 99u8, 101u8, 232u8, 9u8, 9u8, 108u8, 105u8, 109u8, 105u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8,
102u8, 32u8, 105u8, 116u8, 101u8, 109u8, 115u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8,
97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 101u8, 100u8, 32u8,
112u8, 101u8, 114u8, 32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 46u8, 76u8, 68u8, 101u8, 108u8,
101u8, 116u8, 105u8, 111u8, 110u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 76u8, 105u8, 109u8,
105u8, 116u8, 32u8, 32u8, 0u8, 136u8, 82u8, 106u8, 116u8, 0u8, 0u8, 0u8, 24u8, 77u8, 1u8, 32u8,
84u8, 104u8, 101u8, 32u8, 109u8, 97u8, 120u8, 105u8, 109u8, 117u8, 109u8, 32u8, 97u8, 109u8,
111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8,
32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 99u8, 97u8, 110u8, 32u8, 98u8, 101u8, 32u8, 99u8, 111u8,
110u8, 115u8, 117u8, 109u8, 101u8, 100u8, 32u8, 112u8, 101u8, 114u8, 32u8, 98u8, 108u8, 111u8,
99u8, 107u8, 32u8, 102u8, 111u8, 114u8, 32u8, 108u8, 97u8, 122u8, 121u8, 32u8, 116u8, 114u8,
105u8, 101u8, 32u8, 114u8, 101u8, 109u8, 111u8, 118u8, 97u8, 108u8, 46u8, 0u8, 93u8, 1u8, 32u8,
84u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8,
119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8, 105u8, 115u8,
32u8, 100u8, 101u8, 100u8, 105u8, 99u8, 97u8, 116u8, 101u8, 100u8, 32u8, 112u8, 101u8, 114u8,
32u8, 98u8, 108u8, 111u8, 99u8, 107u8, 32u8, 116u8, 111u8, 32u8, 119u8, 111u8, 114u8, 107u8,
32u8, 111u8, 110u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8,
111u8, 110u8, 32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 46u8, 32u8, 76u8, 97u8, 114u8, 103u8,
101u8, 114u8, 69u8, 1u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 115u8, 32u8, 97u8, 108u8, 108u8,
111u8, 119u8, 32u8, 109u8, 111u8, 114u8, 101u8, 32u8, 116u8, 114u8, 105u8, 101u8, 32u8, 107u8,
101u8, 121u8, 115u8, 32u8, 116u8, 111u8, 32u8, 98u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8,
116u8, 101u8, 100u8, 32u8, 105u8, 110u8, 32u8, 101u8, 97u8, 99u8, 104u8, 32u8, 98u8, 108u8,
111u8, 99u8, 107u8, 32u8, 98u8, 117u8, 116u8, 32u8, 114u8, 101u8, 100u8, 117u8, 99u8, 101u8,
32u8, 116u8, 104u8, 101u8, 32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8,
65u8, 1u8, 32u8, 119u8, 101u8, 105u8, 103u8, 104u8, 116u8, 32u8, 116u8, 104u8, 97u8, 116u8, 32u8,
105u8, 115u8, 32u8, 108u8, 101u8, 102u8, 116u8, 32u8, 102u8, 111u8, 114u8, 32u8, 116u8, 114u8,
97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8, 115u8, 46u8, 32u8, 83u8, 101u8,
101u8, 32u8, 91u8, 96u8, 83u8, 101u8, 108u8, 102u8, 58u8, 58u8, 68u8, 101u8, 108u8, 101u8, 116u8,
105u8, 111u8, 110u8, 81u8, 117u8, 101u8, 117u8, 101u8, 68u8, 101u8, 112u8, 116u8, 104u8, 96u8,
93u8, 32u8, 102u8, 111u8, 114u8, 32u8, 109u8, 111u8, 114u8, 101u8, 152u8, 32u8, 105u8, 110u8,
102u8, 111u8, 114u8, 109u8, 97u8, 116u8, 105u8, 111u8, 110u8, 32u8, 97u8, 98u8, 111u8, 117u8,
116u8, 32u8, 116u8, 104u8, 101u8, 32u8, 100u8, 101u8, 108u8, 101u8, 116u8, 105u8, 111u8, 110u8,
32u8, 113u8, 117u8, 101u8, 117u8, 101u8, 46u8, 56u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8,
116u8, 80u8, 101u8, 114u8, 66u8, 121u8, 116u8, 101u8, 24u8, 64u8, 96u8, 234u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 20u8, 17u8, 1u8, 32u8, 84u8, 104u8, 101u8,
32u8, 97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
97u8, 99u8, 104u8, 32u8, 98u8, 121u8, 116u8, 101u8, 32u8, 111u8, 102u8, 32u8, 115u8, 116u8,
111u8, 114u8, 97u8, 103u8, 101u8, 46u8, 0u8, 28u8, 32u8, 35u8, 32u8, 78u8, 111u8, 116u8, 101u8,
0u8, 41u8, 1u8, 32u8, 67u8, 104u8, 97u8, 110u8, 103u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8,
105u8, 115u8, 32u8, 118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8,
110u8, 32u8, 101u8, 120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 99u8, 104u8, 97u8,
105u8, 110u8, 32u8, 109u8, 105u8, 103u8, 104u8, 116u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8,
97u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 105u8, 103u8, 114u8,
97u8, 116u8, 105u8, 111u8, 110u8, 46u8, 56u8, 68u8, 101u8, 112u8, 111u8, 115u8, 105u8, 116u8,
80u8, 101u8, 114u8, 73u8, 116u8, 101u8, 109u8, 24u8, 64u8, 240u8, 73u8, 2u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 20u8, 5u8, 1u8, 32u8, 84u8, 104u8, 101u8, 32u8,
97u8, 109u8, 111u8, 117u8, 110u8, 116u8, 32u8, 111u8, 102u8, 32u8, 98u8, 97u8, 108u8, 97u8,
110u8, 99u8, 101u8, 32u8, 97u8, 32u8, 99u8, 97u8, 108u8, 108u8, 101u8, 114u8, 32u8, 104u8, 97u8,
115u8, 32u8, 116u8, 111u8, 32u8, 112u8, 97u8, 121u8, 32u8, 102u8, 111u8, 114u8, 32u8, 101u8,
97u8, 99u8, 104u8, 32u8, 115u8, 116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 105u8, 116u8,
101u8, 109u8, 46u8, 0u8, 28u8, 32u8, 35u8, 32u8, 78u8, 111u8, 116u8, 101u8, 0u8, 41u8, 1u8, 32u8,
67u8, 104u8, 97u8, 110u8, 103u8, 105u8, 110u8, 103u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
118u8, 97u8, 108u8, 117u8, 101u8, 32u8, 102u8, 111u8, 114u8, 32u8, 97u8, 110u8, 32u8, 101u8,
120u8, 105u8, 115u8, 116u8, 105u8, 110u8, 103u8, 32u8, 99u8, 104u8, 97u8, 105u8, 110u8, 32u8,
109u8, 105u8, 103u8, 104u8, 116u8, 32u8, 110u8, 101u8, 101u8, 100u8, 32u8, 97u8, 32u8, 115u8,
116u8, 111u8, 114u8, 97u8, 103u8, 101u8, 32u8, 109u8, 105u8, 103u8, 114u8, 97u8, 116u8, 105u8,
111u8, 110u8, 46u8, 1u8, 201u8, 10u8, 46u8, 68u8, 80u8, 111u8, 108u8, 121u8, 109u8, 101u8, 115u8,
104u8, 67u8, 111u8, 110u8, 116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 1u8, 36u8, 67u8, 111u8, 110u8,
116u8, 114u8, 97u8, 99u8, 116u8, 115u8, 0u8, 1u8, 53u8, 8u8, 1u8, 89u8, 4u8, 0u8, 1u8, 205u8,
10u8, 47u8, 32u8, 80u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 1u8, 32u8, 80u8, 114u8,
101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 8u8, 36u8, 83u8, 116u8, 97u8, 116u8, 117u8, 115u8, 70u8,
111u8, 114u8, 0u8, 1u8, 4u8, 6u8, 36u8, 209u8, 10u8, 4u8, 0u8, 4u8, 144u8, 32u8, 84u8, 104u8,
101u8, 32u8, 114u8, 101u8, 113u8, 117u8, 101u8, 115u8, 116u8, 32u8, 115u8, 116u8, 97u8, 116u8,
117u8, 115u8, 32u8, 111u8, 102u8, 32u8, 97u8, 32u8, 103u8, 105u8, 118u8, 101u8, 110u8, 32u8,
104u8, 97u8, 115u8, 104u8, 46u8, 44u8, 80u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8,
70u8, 111u8, 114u8, 0u8, 1u8, 4u8, 6u8, 36u8, 217u8, 10u8, 4u8, 0u8, 4u8, 148u8, 32u8, 84u8,
104u8, 101u8, 32u8, 112u8, 114u8, 101u8, 105u8, 109u8, 97u8, 103u8, 101u8, 115u8, 32u8, 115u8,
116u8, 111u8, 114u8, 101u8, 100u8, 32u8, 98u8, 121u8, 32u8, 116u8, 104u8, 105u8, 115u8, 32u8,
112u8, 97u8, 108u8, 108u8, 101u8, 116u8, 46u8, 1u8, 57u8, 8u8, 1u8, 93u8, 4u8, 0u8, 1u8, 221u8,
10u8, 48u8, 36u8, 84u8, 101u8, 115u8, 116u8, 85u8, 116u8, 105u8, 108u8, 115u8, 1u8, 36u8, 84u8,
101u8, 115u8, 116u8, 85u8, 116u8, 105u8, 108u8, 115u8, 0u8, 1u8, 61u8, 8u8, 1u8, 97u8, 4u8, 0u8,
1u8, 225u8, 10u8, 50u8, 229u8, 10u8, 4u8, 32u8, 64u8, 67u8, 104u8, 101u8, 99u8, 107u8, 83u8,
112u8, 101u8, 99u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8, 237u8, 10u8, 16u8, 56u8,
67u8, 104u8, 101u8, 99u8, 107u8, 84u8, 120u8, 86u8, 101u8, 114u8, 115u8, 105u8, 111u8, 110u8,
241u8, 10u8, 16u8, 48u8, 67u8, 104u8, 101u8, 99u8, 107u8, 71u8, 101u8, 110u8, 101u8, 115u8,
105u8, 115u8, 245u8, 10u8, 36u8, 56u8, 67u8, 104u8, 101u8, 99u8, 107u8, 77u8, 111u8, 114u8,
116u8, 97u8, 108u8, 105u8, 116u8, 121u8, 249u8, 10u8, 36u8, 40u8, 67u8, 104u8, 101u8, 99u8,
107u8, 78u8, 111u8, 110u8, 99u8, 101u8, 1u8, 11u8, 49u8, 1u8, 44u8, 67u8, 104u8, 101u8, 99u8,
107u8, 87u8, 101u8, 105u8, 103u8, 104u8, 116u8, 5u8, 11u8, 49u8, 1u8, 96u8, 67u8, 104u8, 97u8,
114u8, 103u8, 101u8, 84u8, 114u8, 97u8, 110u8, 115u8, 97u8, 99u8, 116u8, 105u8, 111u8, 110u8,
80u8, 97u8, 121u8, 109u8, 101u8, 110u8, 116u8, 13u8, 11u8, 49u8, 1u8, 68u8, 83u8, 116u8, 111u8,
114u8, 101u8, 67u8, 97u8, 108u8, 108u8, 77u8, 101u8, 116u8, 97u8, 100u8, 97u8, 116u8, 97u8, 17u8,
11u8, 49u8, 1u8, 21u8, 11u8,
];
::lazy_static::lazy_static! { pub static ref API_METADATA : :: polymesh_api_client :: frame_metadata :: v14 :: RuntimeMetadataV14 = :: polymesh_api_client :: frame_metadata :: v14 :: RuntimeMetadataV14 :: decode (& mut & API_METADATA_BYTES [..]) . expect ("Shouldn't be able to fail") ; }
#[allow(dead_code, unused_imports, non_camel_case_types)]
pub mod types {
use super::WrappedCall;
pub mod sp_npos_elections {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ElectionScore {
pub minimal_stake: u128,
pub sum_stake: u128,
pub sum_stake_squared: u128,
}
}
pub mod sp_finality_grandpa {
use super::*;
pub mod app {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub sp_core::ed25519::Public);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature(pub sp_core::ed25519::Signature);
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EquivocationProof<H, N> {
pub set_id: u64,
pub equivocation: sp_finality_grandpa::Equivocation<H, N>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Equivocation<H, N> {
#[codec(index = 0u8)]
Prevote(
finality_grandpa::Equivocation<
sp_finality_grandpa::app::Public,
finality_grandpa::Prevote<H, N>,
sp_finality_grandpa::app::Signature,
>,
),
#[codec(index = 1u8)]
Precommit(
finality_grandpa::Equivocation<
sp_finality_grandpa::app::Public,
finality_grandpa::Precommit<H, N>,
sp_finality_grandpa::app::Signature,
>,
),
}
}
pub mod pallet_base {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Exceeded a generic length limit."]
#[doc = "The limit could be for any sort of lists of things, including a string."]
#[codec(index = 0u8)]
TooLong,
#[doc = "The sequence counter for something overflowed."]
#[doc = ""]
#[doc = "When this happens depends on e.g., the capacity of the identifier type."]
#[doc = "For example, we might have `pub struct PipId(u32);`, with `u32::MAX` capacity."]
#[doc = "In practice, these errors will never happen but no code path should result in a panic,"]
#[doc = "so these corner cases need to be covered with an error variant."]
#[codec(index = 1u8)]
CounterOverflow,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::TooLong => "Base.TooLong",
Self::CounterOverflow => "Base.CounterOverflow",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: TooLong => { & ["Exceeded a generic length limit." , "The limit could be for any sort of lists of things, including a string." ,] } , Self :: CounterOverflow => { & ["The sequence counter for something overflowed." , "" , "When this happens depends on e.g., the capacity of the identifier type." , "For example, we might have `pub struct PipId(u32);`, with `u32::MAX` capacity." , "In practice, these errors will never happen but no code path should result in a panic," , "so these corner cases need to be covered with an error variant." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_external_agents {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Creates a custom agent group (AG) for the given `ticker`."]
#[doc = ""]
#[doc = "The AG will have the permissions as given by `perms`."]
#[doc = "This new AG is then assigned `id = AGIdSequence::get() + 1` as its `AGId`,"]
#[doc = "which you can use as `AgentGroup::Custom(id)` when adding agents for `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` to add the custom group for."]
#[doc = "- `perms` that the new AG will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `TooLong` if `perms` had some string or list length that was too long."]
#[doc = "- `CounterOverflow` if `AGIdSequence::get() + 1` would exceed `u32::MAX`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 0u8)]
create_group {
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
},
#[doc = "Updates the permissions of the custom AG identified by `id`, for the given `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` the custom AG belongs to."]
#[doc = "- `id` for the custom AG within `ticker`."]
#[doc = "- `perms` to update the custom AG to."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `TooLong` if `perms` had some string or list length that was too long."]
#[doc = "- `NoSuchAG` if `id` does not identify a custom AG."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 1u8)]
set_group_permissions {
ticker: polymesh_primitives::ticker::Ticker,
id: polymesh_primitives::agent::AGId,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
},
#[doc = "Remove the given `agent` from `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` that has the `agent` to remove."]
#[doc = "- `agent` of `ticker` to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `NotAnAgent` if `agent` is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if `agent` is the last full one."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 2u8)]
remove_agent {
ticker: polymesh_primitives::ticker::Ticker,
agent: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Abdicate agentship for `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` of which the caller is an agent."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NotAnAgent` if the caller is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if the caller is the last full agent."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 3u8)]
abdicate {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Change the agent group that `agent` belongs to in `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` that has the `agent`."]
#[doc = "- `agent` of `ticker` to change the group for."]
#[doc = "- `group` that `agent` will belong to in `ticker`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `NoSuchAG` if `id` does not identify a custom AG."]
#[doc = "- `NotAnAgent` if `agent` is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if `agent` was a `Full` one and is being demoted."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 4u8)]
change_group {
ticker: polymesh_primitives::ticker::Ticker,
agent: polymesh_primitives::identity_id::IdentityId,
group: polymesh_primitives::agent::AgentGroup,
},
#[doc = "Accept an authorization by an agent \"Alice\" who issued `auth_id`"]
#[doc = "to also become an agent of the ticker Alice specified."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `auth_id` identifying the authorization to accept."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller."]
#[doc = "- `AuthorizationError::Expired` if `auth_id` is for an auth that has expired."]
#[doc = "- `AuthorizationError::BadType` if `auth_id` was not for a `BecomeAgent` auth type."]
#[doc = "- `UnauthorizedAgent` if \"Alice\" is not permissioned to provide the auth."]
#[doc = "- `NoSuchAG` if the group referred to a custom that does not exist."]
#[doc = "- `AlreadyAnAgent` if the caller is already an agent of the ticker."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[codec(index = 5u8)]
accept_become_agent { auth_id: u64 },
#[doc = "Utility extrinsic to batch `create_group` and `add_auth`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 6u8)]
create_group_and_add_auth {
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
target: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
},
#[doc = "Utility extrinsic to batch `create_group` and `change_group` for custom groups only."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
#[codec(index = 7u8)]
create_and_change_custom_group {
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
agent: polymesh_primitives::identity_id::IdentityId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_group { .. } => "ExternalAgents.create_group",
Self::set_group_permissions { .. } => "ExternalAgents.set_group_permissions",
Self::remove_agent { .. } => "ExternalAgents.remove_agent",
Self::abdicate { .. } => "ExternalAgents.abdicate",
Self::change_group { .. } => "ExternalAgents.change_group",
Self::accept_become_agent { .. } => "ExternalAgents.accept_become_agent",
Self::create_group_and_add_auth { .. } => "ExternalAgents.create_group_and_add_auth",
Self::create_and_change_custom_group { .. } => {
"ExternalAgents.create_and_change_custom_group"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::create_group { .. } => &[
"Creates a custom agent group (AG) for the given `ticker`.",
"",
"The AG will have the permissions as given by `perms`.",
"This new AG is then assigned `id = AGIdSequence::get() + 1` as its `AGId`,",
"which you can use as `AgentGroup::Custom(id)` when adding agents for `ticker`.",
"",
"# Arguments",
"- `ticker` to add the custom group for.",
"- `perms` that the new AG will have.",
"",
"# Errors",
"- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this.",
"- `TooLong` if `perms` had some string or list length that was too long.",
"- `CounterOverflow` if `AGIdSequence::get() + 1` would exceed `u32::MAX`.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
Self::set_group_permissions { .. } => &[
"Updates the permissions of the custom AG identified by `id`, for the given `ticker`.",
"",
"# Arguments",
"- `ticker` the custom AG belongs to.",
"- `id` for the custom AG within `ticker`.",
"- `perms` to update the custom AG to.",
"",
"# Errors",
"- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this.",
"- `TooLong` if `perms` had some string or list length that was too long.",
"- `NoSuchAG` if `id` does not identify a custom AG.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
Self::remove_agent { .. } => &[
"Remove the given `agent` from `ticker`.",
"",
"# Arguments",
"- `ticker` that has the `agent` to remove.",
"- `agent` of `ticker` to remove.",
"",
"# Errors",
"- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this.",
"- `NotAnAgent` if `agent` is not an agent of `ticker`.",
"- `RemovingLastFullAgent` if `agent` is the last full one.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
Self::abdicate { .. } => &[
"Abdicate agentship for `ticker`.",
"",
"# Arguments",
"- `ticker` of which the caller is an agent.",
"",
"# Errors",
"- `NotAnAgent` if the caller is not an agent of `ticker`.",
"- `RemovingLastFullAgent` if the caller is the last full agent.",
"",
"# Permissions",
"* Asset",
],
Self::change_group { .. } => &[
"Change the agent group that `agent` belongs to in `ticker`.",
"",
"# Arguments",
"- `ticker` that has the `agent`.",
"- `agent` of `ticker` to change the group for.",
"- `group` that `agent` will belong to in `ticker`.",
"",
"# Errors",
"- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this.",
"- `NoSuchAG` if `id` does not identify a custom AG.",
"- `NotAnAgent` if `agent` is not an agent of `ticker`.",
"- `RemovingLastFullAgent` if `agent` was a `Full` one and is being demoted.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
Self::accept_become_agent { .. } => &[
"Accept an authorization by an agent \"Alice\" who issued `auth_id`",
"to also become an agent of the ticker Alice specified.",
"",
"# Arguments",
"- `auth_id` identifying the authorization to accept.",
"",
"# Errors",
"- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller.",
"- `AuthorizationError::Expired` if `auth_id` is for an auth that has expired.",
"- `AuthorizationError::BadType` if `auth_id` was not for a `BecomeAgent` auth type.",
"- `UnauthorizedAgent` if \"Alice\" is not permissioned to provide the auth.",
"- `NoSuchAG` if the group referred to a custom that does not exist.",
"- `AlreadyAnAgent` if the caller is already an agent of the ticker.",
"",
"# Permissions",
"* Agent",
],
Self::create_group_and_add_auth { .. } => &[
"Utility extrinsic to batch `create_group` and `add_auth`.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
Self::create_and_change_custom_group { .. } => &[
"Utility extrinsic to batch `create_group` and `change_group` for custom groups only.",
"",
"# Permissions",
"* Asset",
"* Agent",
],
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "An AG with the given `AGId` did not exist for the `Ticker`."]
#[codec(index = 0u8)]
NoSuchAG,
#[doc = "The agent is not authorized to call the current extrinsic."]
#[codec(index = 1u8)]
UnauthorizedAgent,
#[doc = "The provided `agent` is already an agent for the `Ticker`."]
#[codec(index = 2u8)]
AlreadyAnAgent,
#[doc = "The provided `agent` is not an agent for the `Ticker`."]
#[codec(index = 3u8)]
NotAnAgent,
#[doc = "This agent is the last full one, and it's being removed,"]
#[doc = "making the asset orphaned."]
#[codec(index = 4u8)]
RemovingLastFullAgent,
#[doc = "The caller's secondary key does not have the required asset permission."]
#[codec(index = 5u8)]
SecondaryKeyNotAuthorizedForAsset,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NoSuchAG => "ExternalAgents.NoSuchAG",
Self::UnauthorizedAgent => "ExternalAgents.UnauthorizedAgent",
Self::AlreadyAnAgent => "ExternalAgents.AlreadyAnAgent",
Self::NotAnAgent => "ExternalAgents.NotAnAgent",
Self::RemovingLastFullAgent => "ExternalAgents.RemovingLastFullAgent",
Self::SecondaryKeyNotAuthorizedForAsset => {
"ExternalAgents.SecondaryKeyNotAuthorizedForAsset"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::NoSuchAG => &["An AG with the given `AGId` did not exist for the `Ticker`."],
Self::UnauthorizedAgent => {
&["The agent is not authorized to call the current extrinsic."]
}
Self::AlreadyAnAgent => &["The provided `agent` is already an agent for the `Ticker`."],
Self::NotAnAgent => &["The provided `agent` is not an agent for the `Ticker`."],
Self::RemovingLastFullAgent => &[
"This agent is the last full one, and it's being removed,",
"making the asset orphaned.",
],
Self::SecondaryKeyNotAuthorizedForAsset => {
&["The caller's secondary key does not have the required asset permission."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_authorship {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Provide a set of uncles."]
#[codec(index = 0u8)]
set_uncles {
new_uncles:
Vec<sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_uncles { .. } => "Authorship.set_uncles",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::set_uncles { .. } => &["Provide a set of uncles."],
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The uncle parent not in the chain."]
#[codec(index = 0u8)]
InvalidUncleParent,
#[doc = "Uncles already set in the block."]
#[codec(index = 1u8)]
UnclesAlreadySet,
#[doc = "Too many uncles."]
#[codec(index = 2u8)]
TooManyUncles,
#[doc = "The uncle is genesis."]
#[codec(index = 3u8)]
GenesisUncle,
#[doc = "The uncle is too high in chain."]
#[codec(index = 4u8)]
TooHighUncle,
#[doc = "The uncle is already included."]
#[codec(index = 5u8)]
UncleAlreadyIncluded,
#[doc = "The uncle isn't recent enough to be included."]
#[codec(index = 6u8)]
OldUncle,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidUncleParent => "Authorship.InvalidUncleParent",
Self::UnclesAlreadySet => "Authorship.UnclesAlreadySet",
Self::TooManyUncles => "Authorship.TooManyUncles",
Self::GenesisUncle => "Authorship.GenesisUncle",
Self::TooHighUncle => "Authorship.TooHighUncle",
Self::UncleAlreadyIncluded => "Authorship.UncleAlreadyIncluded",
Self::OldUncle => "Authorship.OldUncle",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidUncleParent => &["The uncle parent not in the chain."],
Self::UnclesAlreadySet => &["Uncles already set in the block."],
Self::TooManyUncles => &["Too many uncles."],
Self::GenesisUncle => &["The uncle is genesis."],
Self::TooHighUncle => &["The uncle is too high in chain."],
Self::UncleAlreadyIncluded => &["The uncle is already included."],
Self::OldUncle => &["The uncle isn't recent enough to be included."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum UncleEntryItem<BlockNumber, Hash, Author> {
#[codec(index = 0u8)]
InclusionHeight(BlockNumber),
#[codec(index = 1u8)]
Uncle(Hash, Option<Author>),
}
}
pub mod pallet_settlement {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct VenueDetails(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct VenueId(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Venue {
pub creator: polymesh_primitives::identity_id::IdentityId,
pub venue_type: pallet_settlement::VenueType,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum LegStatus<AccountId> {
#[codec(index = 0u8)]
PendingTokenLock,
#[codec(index = 1u8)]
ExecutionPending,
#[codec(index = 2u8)]
ExecutionToBeSkipped(AccountId, u64),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum SettlementType<BlockNumber> {
#[codec(index = 0u8)]
SettleOnAffirmation,
#[codec(index = 1u8)]
SettleOnBlock(BlockNumber),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct LegId(pub u64);
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Registers a new venue."]
#[doc = ""]
#[doc = "* `details` - Extra details about a venue"]
#[doc = "* `signers` - Array of signers that are allowed to sign receipts for this venue"]
#[doc = "* `typ` - Type of venue being created"]
#[codec(index = 0u8)]
create_venue {
details: pallet_settlement::VenueDetails,
signers: Vec<::polymesh_api_client::AccountId>,
typ: pallet_settlement::VenueType,
},
#[doc = "Edit a venue's details."]
#[doc = ""]
#[doc = "* `id` specifies the ID of the venue to edit."]
#[doc = "* `details` specifies the updated venue details."]
#[codec(index = 1u8)]
update_venue_details {
id: pallet_settlement::VenueId,
details: pallet_settlement::VenueDetails,
},
#[doc = "Edit a venue's type."]
#[doc = ""]
#[doc = "* `id` specifies the ID of the venue to edit."]
#[doc = "* `type` specifies the new type of the venue."]
#[codec(index = 2u8)]
update_venue_type {
id: pallet_settlement::VenueId,
typ: pallet_settlement::VenueType,
},
#[doc = "Adds a new instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `venue_id` - ID of the venue this instruction belongs to."]
#[doc = "* `settlement_type` - Defines if the instruction should be settled"]
#[doc = " in the next block after receiving all affirmations or waiting till a specific block."]
#[doc = "* `trade_date` - Optional date from which people can interact with this instruction."]
#[doc = "* `value_date` - Optional date after which the instruction should be settled (not enforced)"]
#[doc = "* `legs` - Legs included in this instruction."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`950_000_000 + 1_000_000 * legs.len()`"]
#[codec(index = 3u8)]
add_instruction {
venue_id: pallet_settlement::VenueId,
settlement_type: pallet_settlement::SettlementType<u32>,
trade_date: Option<u64>,
value_date: Option<u64>,
legs: Vec<pallet_settlement::Leg>,
},
#[doc = "Adds and affirms a new instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `venue_id` - ID of the venue this instruction belongs to."]
#[doc = "* `settlement_type` - Defines if the instruction should be settled"]
#[doc = " in the next block after receiving all affirmations or waiting till a specific block."]
#[doc = "* `trade_date` - Optional date from which people can interact with this instruction."]
#[doc = "* `value_date` - Optional date after which the instruction should be settled (not enforced)"]
#[doc = "* `legs` - Legs included in this instruction."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to use in this affirmations."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 4u8)]
add_and_affirm_instruction {
venue_id: pallet_settlement::VenueId,
settlement_type: pallet_settlement::SettlementType<u32>,
trade_date: Option<u64>,
value_date: Option<u64>,
legs: Vec<pallet_settlement::Leg>,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
},
#[doc = "Provide affirmation to an existing instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id to affirm."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to affirm this instruction."]
#[doc = "* `max_legs_count` - Number of legs that need to be affirmed."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 5u8)]
affirm_instruction {
id: pallet_settlement::InstructionId,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
},
#[doc = "Withdraw an affirmation for a given instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id for that affirmation get withdrawn."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to withdraw affirmation."]
#[doc = "* `max_legs_count` - Number of legs that need to be un-affirmed."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 6u8)]
withdraw_affirmation {
id: pallet_settlement::InstructionId,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
},
#[doc = "Rejects an existing instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id to reject."]
#[doc = "* `portfolio` - Portfolio to reject the instruction."]
#[doc = "* `num_of_legs` - Number of legs in the instruction."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 7u8)]
reject_instruction {
id: pallet_settlement::InstructionId,
portfolio: polymesh_primitives::identity_id::PortfolioId,
num_of_legs: u32,
},
#[doc = "Accepts an instruction and claims a signed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = "* `receipt_uid` - Receipt ID generated by the signer."]
#[doc = "* `signer` - Signer of the receipt."]
#[doc = "* `signed_data` - Signed receipt."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to accept this instruction with"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 8u8)]
affirm_with_receipts {
id: pallet_settlement::InstructionId,
receipt_details: Vec<
pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
>,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
},
#[doc = "Claims a signed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id for the receipt."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = "* `receipt_uid` - Receipt ID generated by the signer."]
#[doc = "* `signer` - Signer of the receipt."]
#[doc = "* `signed_data` - Signed receipt."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 9u8)]
claim_receipt {
id: pallet_settlement::InstructionId,
receipt_details: pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
},
#[doc = "Unclaims a previously claimed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `instruction_id` - Target instruction id for the receipt."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 10u8)]
unclaim_receipt {
instruction_id: pallet_settlement::InstructionId,
leg_id: pallet_settlement::LegId,
},
#[doc = "Enables or disabled venue filtering for a token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `enabled` - Boolean that decides if the filtering should be enabled."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 11u8)]
set_venue_filtering {
ticker: polymesh_primitives::ticker::Ticker,
enabled: bool,
},
#[doc = "Allows additional venues to create instructions involving an asset."]
#[doc = ""]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `venues` - Array of venues that are allowed to create instructions for the token in question."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 12u8)]
allow_venues {
ticker: polymesh_primitives::ticker::Ticker,
venues: Vec<pallet_settlement::VenueId>,
},
#[doc = "Revokes permission given to venues for creating instructions involving a particular asset."]
#[doc = ""]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `venues` - Array of venues that are no longer allowed to create instructions for the token in question."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 13u8)]
disallow_venues {
ticker: polymesh_primitives::ticker::Ticker,
venues: Vec<pallet_settlement::VenueId>,
},
#[doc = "Marks a receipt issued by the caller as claimed or not claimed."]
#[doc = "This allows the receipt issuer to invalidate an already issued receipt or revalidate an already claimed receipt."]
#[doc = ""]
#[doc = "* `receipt_uid` - Unique ID of the receipt."]
#[doc = "* `validity` - New validity of the receipt."]
#[codec(index = 14u8)]
change_receipt_validity { receipt_uid: u64, validity: bool },
#[doc = "Root callable extrinsic, used as an internal call to execute a scheduled settlement instruction."]
#[codec(index = 15u8)]
execute_scheduled_instruction {
id: pallet_settlement::InstructionId,
_legs_count: u32,
},
#[doc = "Reschedules a failed instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id to reschedule."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `InstructionNotFailed` - Instruction not in a failed state or does not exist."]
#[codec(index = 16u8)]
reschedule_instruction {
id: pallet_settlement::InstructionId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_venue { .. } => "Settlement.create_venue",
Self::update_venue_details { .. } => "Settlement.update_venue_details",
Self::update_venue_type { .. } => "Settlement.update_venue_type",
Self::add_instruction { .. } => "Settlement.add_instruction",
Self::add_and_affirm_instruction { .. } => "Settlement.add_and_affirm_instruction",
Self::affirm_instruction { .. } => "Settlement.affirm_instruction",
Self::withdraw_affirmation { .. } => "Settlement.withdraw_affirmation",
Self::reject_instruction { .. } => "Settlement.reject_instruction",
Self::affirm_with_receipts { .. } => "Settlement.affirm_with_receipts",
Self::claim_receipt { .. } => "Settlement.claim_receipt",
Self::unclaim_receipt { .. } => "Settlement.unclaim_receipt",
Self::set_venue_filtering { .. } => "Settlement.set_venue_filtering",
Self::allow_venues { .. } => "Settlement.allow_venues",
Self::disallow_venues { .. } => "Settlement.disallow_venues",
Self::change_receipt_validity { .. } => "Settlement.change_receipt_validity",
Self::execute_scheduled_instruction { .. } => "Settlement.execute_scheduled_instruction",
Self::reschedule_instruction { .. } => "Settlement.reschedule_instruction",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: create_venue { .. } => { & ["Registers a new venue." , "" , "* `details` - Extra details about a venue" , "* `signers` - Array of signers that are allowed to sign receipts for this venue" , "* `typ` - Type of venue being created" ,] } , Self :: update_venue_details { .. } => { & ["Edit a venue's details." , "" , "* `id` specifies the ID of the venue to edit." , "* `details` specifies the updated venue details." ,] } , Self :: update_venue_type { .. } => { & ["Edit a venue's type." , "" , "* `id` specifies the ID of the venue to edit." , "* `type` specifies the new type of the venue." ,] } , Self :: add_instruction { .. } => { & ["Adds a new instruction." , "" , "# Arguments" , "* `venue_id` - ID of the venue this instruction belongs to." , "* `settlement_type` - Defines if the instruction should be settled" , " in the next block after receiving all affirmations or waiting till a specific block." , "* `trade_date` - Optional date from which people can interact with this instruction." , "* `value_date` - Optional date after which the instruction should be settled (not enforced)" , "* `legs` - Legs included in this instruction." , "" , "# Weight" , "`950_000_000 + 1_000_000 * legs.len()`" ,] } , Self :: add_and_affirm_instruction { .. } => { & ["Adds and affirms a new instruction." , "" , "# Arguments" , "* `venue_id` - ID of the venue this instruction belongs to." , "* `settlement_type` - Defines if the instruction should be settled" , " in the next block after receiving all affirmations or waiting till a specific block." , "* `trade_date` - Optional date from which people can interact with this instruction." , "* `value_date` - Optional date after which the instruction should be settled (not enforced)" , "* `legs` - Legs included in this instruction." , "* `portfolios` - Portfolios that the sender controls and wants to use in this affirmations." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: affirm_instruction { .. } => { & ["Provide affirmation to an existing instruction." , "" , "# Arguments" , "* `id` - Instruction id to affirm." , "* `portfolios` - Portfolios that the sender controls and wants to affirm this instruction." , "* `max_legs_count` - Number of legs that need to be affirmed." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: withdraw_affirmation { .. } => { & ["Withdraw an affirmation for a given instruction." , "" , "# Arguments" , "* `id` - Instruction id for that affirmation get withdrawn." , "* `portfolios` - Portfolios that the sender controls and wants to withdraw affirmation." , "* `max_legs_count` - Number of legs that need to be un-affirmed." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: reject_instruction { .. } => { & ["Rejects an existing instruction." , "" , "# Arguments" , "* `id` - Instruction id to reject." , "* `portfolio` - Portfolio to reject the instruction." , "* `num_of_legs` - Number of legs in the instruction." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: affirm_with_receipts { .. } => { & ["Accepts an instruction and claims a signed receipt." , "" , "# Arguments" , "* `id` - Target instruction id." , "* `leg_id` - Target leg id for the receipt" , "* `receipt_uid` - Receipt ID generated by the signer." , "* `signer` - Signer of the receipt." , "* `signed_data` - Signed receipt." , "* `portfolios` - Portfolios that the sender controls and wants to accept this instruction with" , "" , "# Permissions" , "* Portfolio" ,] } , Self :: claim_receipt { .. } => { & ["Claims a signed receipt." , "" , "# Arguments" , "* `id` - Target instruction id for the receipt." , "* `leg_id` - Target leg id for the receipt" , "* `receipt_uid` - Receipt ID generated by the signer." , "* `signer` - Signer of the receipt." , "* `signed_data` - Signed receipt." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: unclaim_receipt { .. } => { & ["Unclaims a previously claimed receipt." , "" , "# Arguments" , "* `instruction_id` - Target instruction id for the receipt." , "* `leg_id` - Target leg id for the receipt" , "" , "# Permissions" , "* Portfolio" ,] } , Self :: set_venue_filtering { .. } => { & ["Enables or disabled venue filtering for a token." , "" , "# Arguments" , "* `ticker` - Ticker of the token in question." , "* `enabled` - Boolean that decides if the filtering should be enabled." , "" , "# Permissions" , "* Asset" ,] } , Self :: allow_venues { .. } => { & ["Allows additional venues to create instructions involving an asset." , "" , "* `ticker` - Ticker of the token in question." , "* `venues` - Array of venues that are allowed to create instructions for the token in question." , "" , "# Permissions" , "* Asset" ,] } , Self :: disallow_venues { .. } => { & ["Revokes permission given to venues for creating instructions involving a particular asset." , "" , "* `ticker` - Ticker of the token in question." , "* `venues` - Array of venues that are no longer allowed to create instructions for the token in question." , "" , "# Permissions" , "* Asset" ,] } , Self :: change_receipt_validity { .. } => { & ["Marks a receipt issued by the caller as claimed or not claimed." , "This allows the receipt issuer to invalidate an already issued receipt or revalidate an already claimed receipt." , "" , "* `receipt_uid` - Unique ID of the receipt." , "* `validity` - New validity of the receipt." ,] } , Self :: execute_scheduled_instruction { .. } => { & ["Root callable extrinsic, used as an internal call to execute a scheduled settlement instruction." ,] } , Self :: reschedule_instruction { .. } => { & ["Reschedules a failed instruction." , "" , "# Arguments" , "* `id` - Target instruction id to reschedule." , "" , "# Permissions" , "* Portfolio" , "" , "# Errors" , "* `InstructionNotFailed` - Instruction not in a failed state or does not exist." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Moment, BlockNumber, AccountId> {
#[doc = "A new venue has been created (did, venue_id, details, type)"]
#[codec(index = 0u8)]
VenueCreated(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::VenueId,
pallet_settlement::VenueDetails,
pallet_settlement::VenueType,
),
#[doc = "An existing venue's details has been updated (did, venue_id, details)"]
#[codec(index = 1u8)]
VenueDetailsUpdated(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::VenueId,
pallet_settlement::VenueDetails,
),
#[doc = "An existing venue's type has been updated (did, venue_id, type)"]
#[codec(index = 2u8)]
VenueTypeUpdated(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::VenueId,
pallet_settlement::VenueType,
),
#[doc = "A new instruction has been created"]
#[doc = "(did, venue_id, instruction_id, settlement_type, trade_date, value_date, legs)"]
#[codec(index = 3u8)]
InstructionCreated(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::VenueId,
pallet_settlement::InstructionId,
pallet_settlement::SettlementType<BlockNumber>,
Option<Moment>,
Option<Moment>,
Vec<pallet_settlement::Leg>,
),
#[doc = "An instruction has been affirmed (did, portfolio, instruction_id)"]
#[codec(index = 4u8)]
InstructionAffirmed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioId,
pallet_settlement::InstructionId,
),
#[doc = "An affirmation has been withdrawn (did, portfolio, instruction_id)"]
#[codec(index = 5u8)]
AffirmationWithdrawn(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioId,
pallet_settlement::InstructionId,
),
#[doc = "An instruction has been rejected (did, instruction_id)"]
#[codec(index = 6u8)]
InstructionRejected(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
),
#[doc = "A receipt has been claimed (did, instruction_id, leg_id, receipt_uid, signer, receipt metadata)"]
#[codec(index = 7u8)]
ReceiptClaimed(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
pallet_settlement::LegId,
Moment,
AccountId,
pallet_settlement::ReceiptMetadata,
),
#[doc = "A receipt has been invalidated (did, signer, receipt_uid, validity)"]
#[codec(index = 8u8)]
ReceiptValidityChanged(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Moment,
bool,
),
#[doc = "A receipt has been unclaimed (did, instruction_id, leg_id, receipt_uid, signer)"]
#[codec(index = 9u8)]
ReceiptUnclaimed(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
pallet_settlement::LegId,
Moment,
AccountId,
),
#[doc = "Venue filtering has been enabled or disabled for a ticker (did, ticker, filtering_enabled)"]
#[codec(index = 10u8)]
VenueFiltering(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
bool,
),
#[doc = "Venues added to allow list (did, ticker, vec<venue_id>)"]
#[codec(index = 11u8)]
VenuesAllowed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
Vec<pallet_settlement::VenueId>,
),
#[doc = "Venues added to block list (did, ticker, vec<venue_id>)"]
#[codec(index = 12u8)]
VenuesBlocked(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
Vec<pallet_settlement::VenueId>,
),
#[doc = "Execution of a leg failed (did, instruction_id, leg_id)"]
#[codec(index = 13u8)]
LegFailedExecution(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
pallet_settlement::LegId,
),
#[doc = "Instruction failed execution (did, instruction_id)"]
#[codec(index = 14u8)]
InstructionFailed(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
),
#[doc = "Instruction executed successfully(did, instruction_id)"]
#[codec(index = 15u8)]
InstructionExecuted(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
),
#[doc = "Venue not part of the token's allow list (did, Ticker, venue_id)"]
#[codec(index = 16u8)]
VenueUnauthorized(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
pallet_settlement::VenueId,
),
#[doc = "Scheduling of instruction fails."]
#[codec(index = 17u8)]
SchedulingFailed(sp_runtime::DispatchError),
#[doc = "Instruction is rescheduled."]
#[doc = "(caller DID, instruction_id)"]
#[codec(index = 18u8)]
InstructionRescheduled(
polymesh_primitives::identity_id::IdentityId,
pallet_settlement::InstructionId,
),
}
impl<Moment, BlockNumber, AccountId> RawEvent<Moment, BlockNumber, AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::VenueCreated(_, _, _, _) => "Settlement.VenueCreated",
Self::VenueDetailsUpdated(_, _, _) => "Settlement.VenueDetailsUpdated",
Self::VenueTypeUpdated(_, _, _) => "Settlement.VenueTypeUpdated",
Self::InstructionCreated(_, _, _, _, _, _, _) => "Settlement.InstructionCreated",
Self::InstructionAffirmed(_, _, _) => "Settlement.InstructionAffirmed",
Self::AffirmationWithdrawn(_, _, _) => "Settlement.AffirmationWithdrawn",
Self::InstructionRejected(_, _) => "Settlement.InstructionRejected",
Self::ReceiptClaimed(_, _, _, _, _, _) => "Settlement.ReceiptClaimed",
Self::ReceiptValidityChanged(_, _, _, _) => "Settlement.ReceiptValidityChanged",
Self::ReceiptUnclaimed(_, _, _, _, _) => "Settlement.ReceiptUnclaimed",
Self::VenueFiltering(_, _, _) => "Settlement.VenueFiltering",
Self::VenuesAllowed(_, _, _) => "Settlement.VenuesAllowed",
Self::VenuesBlocked(_, _, _) => "Settlement.VenuesBlocked",
Self::LegFailedExecution(_, _, _) => "Settlement.LegFailedExecution",
Self::InstructionFailed(_, _) => "Settlement.InstructionFailed",
Self::InstructionExecuted(_, _) => "Settlement.InstructionExecuted",
Self::VenueUnauthorized(_, _, _) => "Settlement.VenueUnauthorized",
Self::SchedulingFailed(_) => "Settlement.SchedulingFailed",
Self::InstructionRescheduled(_, _) => "Settlement.InstructionRescheduled",
_ => "Unknown",
}
}
}
impl<Moment, BlockNumber, AccountId> ::polymesh_api_client::EnumInfo
for RawEvent<Moment, BlockNumber, AccountId>
{
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: VenueCreated (_ , _ , _ , _) => { & ["A new venue has been created (did, venue_id, details, type)" ,] } , Self :: VenueDetailsUpdated (_ , _ , _) => { & ["An existing venue's details has been updated (did, venue_id, details)" ,] } , Self :: VenueTypeUpdated (_ , _ , _) => { & ["An existing venue's type has been updated (did, venue_id, type)" ,] } , Self :: InstructionCreated (_ , _ , _ , _ , _ , _ , _) => { & ["A new instruction has been created" , "(did, venue_id, instruction_id, settlement_type, trade_date, value_date, legs)" ,] } , Self :: InstructionAffirmed (_ , _ , _) => { & ["An instruction has been affirmed (did, portfolio, instruction_id)" ,] } , Self :: AffirmationWithdrawn (_ , _ , _) => { & ["An affirmation has been withdrawn (did, portfolio, instruction_id)" ,] } , Self :: InstructionRejected (_ , _) => { & ["An instruction has been rejected (did, instruction_id)" ,] } , Self :: ReceiptClaimed (_ , _ , _ , _ , _ , _) => { & ["A receipt has been claimed (did, instruction_id, leg_id, receipt_uid, signer, receipt metadata)" ,] } , Self :: ReceiptValidityChanged (_ , _ , _ , _) => { & ["A receipt has been invalidated (did, signer, receipt_uid, validity)" ,] } , Self :: ReceiptUnclaimed (_ , _ , _ , _ , _) => { & ["A receipt has been unclaimed (did, instruction_id, leg_id, receipt_uid, signer)" ,] } , Self :: VenueFiltering (_ , _ , _) => { & ["Venue filtering has been enabled or disabled for a ticker (did, ticker, filtering_enabled)" ,] } , Self :: VenuesAllowed (_ , _ , _) => { & ["Venues added to allow list (did, ticker, vec<venue_id>)" ,] } , Self :: VenuesBlocked (_ , _ , _) => { & ["Venues added to block list (did, ticker, vec<venue_id>)" ,] } , Self :: LegFailedExecution (_ , _ , _) => { & ["Execution of a leg failed (did, instruction_id, leg_id)" ,] } , Self :: InstructionFailed (_ , _) => { & ["Instruction failed execution (did, instruction_id)" ,] } , Self :: InstructionExecuted (_ , _) => { & ["Instruction executed successfully(did, instruction_id)" ,] } , Self :: VenueUnauthorized (_ , _ , _) => { & ["Venue not part of the token's allow list (did, Ticker, venue_id)" ,] } , Self :: SchedulingFailed (_) => { & ["Scheduling of instruction fails." ,] } , Self :: InstructionRescheduled (_ , _) => { & ["Instruction is rescheduled." , "(caller DID, instruction_id)" ,] } , _ => & [""] , }
}
}
impl<Moment, BlockNumber, AccountId> From<RawEvent<Moment, BlockNumber, AccountId>>
for &'static str
{
fn from(v: RawEvent<Moment, BlockNumber, AccountId>) -> Self {
v.as_static_str()
}
}
impl<Moment, BlockNumber, AccountId> From<&RawEvent<Moment, BlockNumber, AccountId>>
for &'static str
{
fn from(v: &RawEvent<Moment, BlockNumber, AccountId>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct InstructionId(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Leg {
pub from: polymesh_primitives::identity_id::PortfolioId,
pub to: polymesh_primitives::identity_id::PortfolioId,
pub asset: polymesh_primitives::ticker::Ticker,
pub amount: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ReceiptDetails<AccountId, OffChainSignature> {
pub receipt_uid: u64,
pub leg_id: pallet_settlement::LegId,
pub signer: AccountId,
pub signature: OffChainSignature,
pub metadata: pallet_settlement::ReceiptMetadata,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum InstructionStatus {
#[codec(index = 0u8)]
Unknown,
#[codec(index = 1u8)]
Pending,
#[codec(index = 2u8)]
Failed,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instruction<Moment, BlockNumber> {
pub instruction_id: pallet_settlement::InstructionId,
pub venue_id: pallet_settlement::VenueId,
pub status: pallet_settlement::InstructionStatus,
pub settlement_type: pallet_settlement::SettlementType<BlockNumber>,
pub created_at: Option<Moment>,
pub trade_date: Option<Moment>,
pub value_date: Option<Moment>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[doc = "Errors for the Settlement module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Venue does not exist."]
#[codec(index = 0u8)]
InvalidVenue,
#[doc = "Sender does not have required permissions."]
#[codec(index = 1u8)]
Unauthorized,
#[doc = "No pending affirmation for the provided instruction."]
#[codec(index = 2u8)]
NoPendingAffirm,
#[doc = "Instruction has not been affirmed."]
#[codec(index = 3u8)]
InstructionNotAffirmed,
#[doc = "Provided instruction is not pending execution."]
#[codec(index = 4u8)]
InstructionNotPending,
#[doc = "Provided instruction is not failing execution."]
#[codec(index = 5u8)]
InstructionNotFailed,
#[doc = "Provided leg is not pending execution."]
#[codec(index = 6u8)]
LegNotPending,
#[doc = "Signer is not authorized by the venue."]
#[codec(index = 7u8)]
UnauthorizedSigner,
#[doc = "Receipt already used."]
#[codec(index = 8u8)]
ReceiptAlreadyClaimed,
#[doc = "Receipt not used yet."]
#[codec(index = 9u8)]
ReceiptNotClaimed,
#[doc = "Venue does not have required permissions."]
#[codec(index = 10u8)]
UnauthorizedVenue,
#[doc = "While affirming the transfer, system failed to lock the assets involved."]
#[codec(index = 11u8)]
FailedToLockTokens,
#[doc = "Instruction failed to execute."]
#[codec(index = 12u8)]
InstructionFailed,
#[doc = "Instruction has invalid dates"]
#[codec(index = 13u8)]
InstructionDatesInvalid,
#[doc = "Instruction's target settle block reached."]
#[codec(index = 14u8)]
InstructionSettleBlockPassed,
#[doc = "Offchain signature is invalid."]
#[codec(index = 15u8)]
InvalidSignature,
#[doc = "Sender and receiver are the same."]
#[codec(index = 16u8)]
SameSenderReceiver,
#[doc = "Portfolio in receipt does not match with portfolios provided by the user."]
#[codec(index = 17u8)]
PortfolioMismatch,
#[doc = "The provided settlement block number is in the past and cannot be used by the scheduler."]
#[codec(index = 18u8)]
SettleOnPastBlock,
#[doc = "Portfolio based actions require at least one portfolio to be provided as input."]
#[codec(index = 19u8)]
NoPortfolioProvided,
#[doc = "The current instruction affirmation status does not support the requested action."]
#[codec(index = 20u8)]
UnexpectedAffirmationStatus,
#[doc = "Scheduling of an instruction fails."]
#[codec(index = 21u8)]
FailedToSchedule,
#[doc = "Legs count should matches with the total number of legs in which given portfolio act as `from_portfolio`."]
#[codec(index = 22u8)]
LegCountTooSmall,
#[doc = "Instruction status is unknown"]
#[codec(index = 23u8)]
UnknownInstruction,
#[doc = "Maximum legs that can be in a single instruction."]
#[codec(index = 24u8)]
InstructionHasTooManyLegs,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidVenue => "Settlement.InvalidVenue",
Self::Unauthorized => "Settlement.Unauthorized",
Self::NoPendingAffirm => "Settlement.NoPendingAffirm",
Self::InstructionNotAffirmed => "Settlement.InstructionNotAffirmed",
Self::InstructionNotPending => "Settlement.InstructionNotPending",
Self::InstructionNotFailed => "Settlement.InstructionNotFailed",
Self::LegNotPending => "Settlement.LegNotPending",
Self::UnauthorizedSigner => "Settlement.UnauthorizedSigner",
Self::ReceiptAlreadyClaimed => "Settlement.ReceiptAlreadyClaimed",
Self::ReceiptNotClaimed => "Settlement.ReceiptNotClaimed",
Self::UnauthorizedVenue => "Settlement.UnauthorizedVenue",
Self::FailedToLockTokens => "Settlement.FailedToLockTokens",
Self::InstructionFailed => "Settlement.InstructionFailed",
Self::InstructionDatesInvalid => "Settlement.InstructionDatesInvalid",
Self::InstructionSettleBlockPassed => "Settlement.InstructionSettleBlockPassed",
Self::InvalidSignature => "Settlement.InvalidSignature",
Self::SameSenderReceiver => "Settlement.SameSenderReceiver",
Self::PortfolioMismatch => "Settlement.PortfolioMismatch",
Self::SettleOnPastBlock => "Settlement.SettleOnPastBlock",
Self::NoPortfolioProvided => "Settlement.NoPortfolioProvided",
Self::UnexpectedAffirmationStatus => "Settlement.UnexpectedAffirmationStatus",
Self::FailedToSchedule => "Settlement.FailedToSchedule",
Self::LegCountTooSmall => "Settlement.LegCountTooSmall",
Self::UnknownInstruction => "Settlement.UnknownInstruction",
Self::InstructionHasTooManyLegs => "Settlement.InstructionHasTooManyLegs",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: InvalidVenue => { & ["Venue does not exist." ,] } , Self :: Unauthorized => { & ["Sender does not have required permissions." ,] } , Self :: NoPendingAffirm => { & ["No pending affirmation for the provided instruction." ,] } , Self :: InstructionNotAffirmed => { & ["Instruction has not been affirmed." ,] } , Self :: InstructionNotPending => { & ["Provided instruction is not pending execution." ,] } , Self :: InstructionNotFailed => { & ["Provided instruction is not failing execution." ,] } , Self :: LegNotPending => { & ["Provided leg is not pending execution." ,] } , Self :: UnauthorizedSigner => { & ["Signer is not authorized by the venue." ,] } , Self :: ReceiptAlreadyClaimed => { & ["Receipt already used." ,] } , Self :: ReceiptNotClaimed => { & ["Receipt not used yet." ,] } , Self :: UnauthorizedVenue => { & ["Venue does not have required permissions." ,] } , Self :: FailedToLockTokens => { & ["While affirming the transfer, system failed to lock the assets involved." ,] } , Self :: InstructionFailed => { & ["Instruction failed to execute." ,] } , Self :: InstructionDatesInvalid => { & ["Instruction has invalid dates" ,] } , Self :: InstructionSettleBlockPassed => { & ["Instruction's target settle block reached." ,] } , Self :: InvalidSignature => { & ["Offchain signature is invalid." ,] } , Self :: SameSenderReceiver => { & ["Sender and receiver are the same." ,] } , Self :: PortfolioMismatch => { & ["Portfolio in receipt does not match with portfolios provided by the user." ,] } , Self :: SettleOnPastBlock => { & ["The provided settlement block number is in the past and cannot be used by the scheduler." ,] } , Self :: NoPortfolioProvided => { & ["Portfolio based actions require at least one portfolio to be provided as input." ,] } , Self :: UnexpectedAffirmationStatus => { & ["The current instruction affirmation status does not support the requested action." ,] } , Self :: FailedToSchedule => { & ["Scheduling of an instruction fails." ,] } , Self :: LegCountTooSmall => { & ["Legs count should matches with the total number of legs in which given portfolio act as `from_portfolio`." ,] } , Self :: UnknownInstruction => { & ["Instruction status is unknown" ,] } , Self :: InstructionHasTooManyLegs => { & ["Maximum legs that can be in a single instruction." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AffirmationStatus {
#[codec(index = 0u8)]
Unknown,
#[codec(index = 1u8)]
Pending,
#[codec(index = 2u8)]
Affirmed,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum VenueType {
#[codec(index = 0u8)]
Other,
#[codec(index = 1u8)]
Distribution,
#[codec(index = 2u8)]
Sto,
#[codec(index = 3u8)]
Exchange,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ReceiptMetadata(pub Vec<u8>);
}
pub mod finality_grandpa {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Equivocation<Id, V, S> {
pub round_number: u64,
pub identity: Id,
pub first: (V, S),
pub second: (V, S),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Precommit<H, N> {
pub target_hash: H,
pub target_number: N,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Prevote<H, N> {
pub target_hash: H,
pub target_number: N,
}
}
pub mod pallet_portfolio {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Creates a portfolio with the given `name`."]
#[codec(index = 0u8)]
create_portfolio {
name: polymesh_primitives::identity_id::PortfolioName,
},
#[doc = "Deletes a user portfolio. A portfolio can be deleted only if it has no funds."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio."]
#[doc = "* `PortfolioNotEmpty` if the portfolio still holds any asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 1u8)]
delete_portfolio {
num: polymesh_primitives::identity_id::PortfolioNumber,
},
#[doc = "Moves a token amount from one portfolio of an identity to another portfolio of the same"]
#[doc = "identity. Must be called by the custodian of the sender."]
#[doc = "Funds from deleted portfolios can also be recovered via this method."]
#[doc = ""]
#[doc = "A short memo can be added to to each token amount moved."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if one or both of the portfolios reference an invalid portfolio."]
#[doc = "* `destination_is_same_portfolio` if both sender and receiver portfolio are the same"]
#[doc = "* `DifferentIdentityPortfolios` if the sender and receiver portfolios belong to different identities"]
#[doc = "* `UnauthorizedCustodian` if the caller is not the custodian of the from portfolio"]
#[doc = "* `InsufficientPortfolioBalance` if the sender does not have enough free balance"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 2u8)]
move_portfolio_funds {
from: polymesh_primitives::identity_id::PortfolioId,
to: polymesh_primitives::identity_id::PortfolioId,
items: Vec<pallet_portfolio::MovePortfolioItem>,
},
#[doc = "Renames a non-default portfolio."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 3u8)]
rename_portfolio {
num: polymesh_primitives::identity_id::PortfolioNumber,
to_name: polymesh_primitives::identity_id::PortfolioName,
},
#[doc = "When called by the custodian of `portfolio_id`,"]
#[doc = "allows returning the custody of the portfolio to the portfolio owner unilaterally."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `UnauthorizedCustodian` if the caller is not the current custodian of `portfolio_id`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 4u8)]
quit_portfolio_custody {
pid: polymesh_primitives::identity_id::PortfolioId,
},
#[codec(index = 5u8)]
accept_portfolio_custody { auth_id: u64 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_portfolio { .. } => "Portfolio.create_portfolio",
Self::delete_portfolio { .. } => "Portfolio.delete_portfolio",
Self::move_portfolio_funds { .. } => "Portfolio.move_portfolio_funds",
Self::rename_portfolio { .. } => "Portfolio.rename_portfolio",
Self::quit_portfolio_custody { .. } => "Portfolio.quit_portfolio_custody",
Self::accept_portfolio_custody { .. } => "Portfolio.accept_portfolio_custody",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: create_portfolio { .. } => { & ["Creates a portfolio with the given `name`." ,] } , Self :: delete_portfolio { .. } => { & ["Deletes a user portfolio. A portfolio can be deleted only if it has no funds." , "" , "# Errors" , "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio." , "* `PortfolioNotEmpty` if the portfolio still holds any asset" , "" , "# Permissions" , "* Portfolio" ,] } , Self :: move_portfolio_funds { .. } => { & ["Moves a token amount from one portfolio of an identity to another portfolio of the same" , "identity. Must be called by the custodian of the sender." , "Funds from deleted portfolios can also be recovered via this method." , "" , "A short memo can be added to to each token amount moved." , "" , "# Errors" , "* `PortfolioDoesNotExist` if one or both of the portfolios reference an invalid portfolio." , "* `destination_is_same_portfolio` if both sender and receiver portfolio are the same" , "* `DifferentIdentityPortfolios` if the sender and receiver portfolios belong to different identities" , "* `UnauthorizedCustodian` if the caller is not the custodian of the from portfolio" , "* `InsufficientPortfolioBalance` if the sender does not have enough free balance" , "" , "# Permissions" , "* Portfolio" ,] } , Self :: rename_portfolio { .. } => { & ["Renames a non-default portfolio." , "" , "# Errors" , "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: quit_portfolio_custody { .. } => { & ["When called by the custodian of `portfolio_id`," , "allows returning the custody of the portfolio to the portfolio owner unilaterally." , "" , "# Errors" , "* `UnauthorizedCustodian` if the caller is not the current custodian of `portfolio_id`." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: accept_portfolio_custody { .. } => { & ["" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The portfolio doesn't exist."]
#[codec(index = 0u8)]
PortfolioDoesNotExist,
#[doc = "Insufficient balance for a transaction."]
#[codec(index = 1u8)]
InsufficientPortfolioBalance,
#[doc = "The source and destination portfolios should be different."]
#[codec(index = 2u8)]
DestinationIsSamePortfolio,
#[doc = "The portfolio couldn't be renamed because the chosen name is already in use."]
#[codec(index = 3u8)]
PortfolioNameAlreadyInUse,
#[doc = "The secondary key is not authorized to access the portfolio(s)."]
#[codec(index = 4u8)]
SecondaryKeyNotAuthorizedForPortfolio,
#[doc = "The porfolio's custody is with someone other than the caller."]
#[codec(index = 5u8)]
UnauthorizedCustodian,
#[doc = "Can not unlock more tokens than what are locked"]
#[codec(index = 6u8)]
InsufficientTokensLocked,
#[doc = "The portfolio still has some asset balance left"]
#[codec(index = 7u8)]
PortfolioNotEmpty,
#[doc = "The portfolios belong to different identities"]
#[codec(index = 8u8)]
DifferentIdentityPortfolios,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::PortfolioDoesNotExist => "Portfolio.PortfolioDoesNotExist",
Self::InsufficientPortfolioBalance => "Portfolio.InsufficientPortfolioBalance",
Self::DestinationIsSamePortfolio => "Portfolio.DestinationIsSamePortfolio",
Self::PortfolioNameAlreadyInUse => "Portfolio.PortfolioNameAlreadyInUse",
Self::SecondaryKeyNotAuthorizedForPortfolio => {
"Portfolio.SecondaryKeyNotAuthorizedForPortfolio"
}
Self::UnauthorizedCustodian => "Portfolio.UnauthorizedCustodian",
Self::InsufficientTokensLocked => "Portfolio.InsufficientTokensLocked",
Self::PortfolioNotEmpty => "Portfolio.PortfolioNotEmpty",
Self::DifferentIdentityPortfolios => "Portfolio.DifferentIdentityPortfolios",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::PortfolioDoesNotExist => &["The portfolio doesn't exist."],
Self::InsufficientPortfolioBalance => &["Insufficient balance for a transaction."],
Self::DestinationIsSamePortfolio => {
&["The source and destination portfolios should be different."]
}
Self::PortfolioNameAlreadyInUse => {
&["The portfolio couldn't be renamed because the chosen name is already in use."]
}
Self::SecondaryKeyNotAuthorizedForPortfolio => {
&["The secondary key is not authorized to access the portfolio(s)."]
}
Self::UnauthorizedCustodian => {
&["The porfolio's custody is with someone other than the caller."]
}
Self::InsufficientTokensLocked => &["Can not unlock more tokens than what are locked"],
Self::PortfolioNotEmpty => &["The portfolio still has some asset balance left"],
Self::DifferentIdentityPortfolios => &["The portfolios belong to different identities"],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct MovePortfolioItem {
pub ticker: polymesh_primitives::ticker::Ticker,
pub amount: u128,
pub memo: Option<polymesh_common_utilities::traits::balances::Memo>,
}
}
pub mod pallet_im_online {
use super::*;
pub mod sr25519 {
use super::*;
pub mod app_sr25519 {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature(pub sp_core::sr25519::Signature);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub sp_core::sr25519::Public);
}
}
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is"]
#[doc = " length of `heartbeat.network_state.external_address`"]
#[doc = " - `O(K)`: decoding of length `K`"]
#[doc = " - `O(E)`: decoding/encoding of length `E`"]
#[doc = "- DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,"]
#[doc = " `ReceivedHeartbeats`"]
#[doc = "- DbWrites: `ReceivedHeartbeats`"]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
heartbeat {
heartbeat: pallet_im_online::Heartbeat<u32>,
signature: pallet_im_online::sr25519::app_sr25519::Signature,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::heartbeat { .. } => "ImOnline.heartbeat",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: heartbeat { .. } => { & ["# <weight>" , "- Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is" , " length of `heartbeat.network_state.external_address`" , " - `O(K)`: decoding of length `K`" , " - `O(E)`: decoding/encoding of length `E`" , "- DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`," , " `ReceivedHeartbeats`" , "- DbWrites: `ReceivedHeartbeats`" , "# </weight>" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A new heartbeat was received from `AuthorityId`."]
#[codec(index = 0u8)]
HeartbeatReceived {
authority_id: pallet_im_online::sr25519::app_sr25519::Public,
},
#[doc = "At the end of the session, no offence was committed."]
#[codec(index = 1u8)]
AllGood,
#[doc = "At the end of the session, at least one validator was found to be offline."]
#[codec(index = 2u8)]
SomeOffline {
offline: Vec<(
::polymesh_api_client::AccountId,
pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>,
)>,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::HeartbeatReceived { .. } => "ImOnline.HeartbeatReceived",
Self::AllGood => "ImOnline.AllGood",
Self::SomeOffline { .. } => "ImOnline.SomeOffline",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::HeartbeatReceived { .. } => &["A new heartbeat was received from `AuthorityId`."],
Self::AllGood => &["At the end of the session, no offence was committed."],
Self::SomeOffline { .. } => {
&["At the end of the session, at least one validator was found to be offline."]
}
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Non existent public key."]
#[codec(index = 0u8)]
InvalidKey,
#[doc = "Duplicated heartbeat."]
#[codec(index = 1u8)]
DuplicatedHeartbeat,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidKey => "ImOnline.InvalidKey",
Self::DuplicatedHeartbeat => "ImOnline.DuplicatedHeartbeat",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidKey => &["Non existent public key."],
Self::DuplicatedHeartbeat => &["Duplicated heartbeat."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Heartbeat<BlockNumber> {
pub block_number: BlockNumber,
pub network_state: sp_core::offchain::OpaqueNetworkState,
pub session_index: BlockNumber,
pub authority_index: BlockNumber,
pub validators_len: BlockNumber,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BoundedOpaqueNetworkState {
pub peer_id: Vec<u8>,
pub external_addresses: Vec<Vec<u8>>,
}
}
pub mod frame_system {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Error for the System pallet"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The name of specification does not match between the current runtime"]
#[doc = "and the new runtime."]
#[codec(index = 0u8)]
InvalidSpecName,
#[doc = "The specification version is not allowed to decrease between the current runtime"]
#[doc = "and the new runtime."]
#[codec(index = 1u8)]
SpecVersionNeedsToIncrease,
#[doc = "Failed to extract the runtime version from the new runtime."]
#[doc = ""]
#[doc = "Either calling `Core_version` or decoding `RuntimeVersion` failed."]
#[codec(index = 2u8)]
FailedToExtractRuntimeVersion,
#[doc = "Suicide called when the account has non-default composite data."]
#[codec(index = 3u8)]
NonDefaultComposite,
#[doc = "There is a non-zero reference count preventing the account from being purged."]
#[codec(index = 4u8)]
NonZeroRefCount,
#[doc = "The origin filter prevent the call to be dispatched."]
#[codec(index = 5u8)]
CallFiltered,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidSpecName => "System.InvalidSpecName",
Self::SpecVersionNeedsToIncrease => "System.SpecVersionNeedsToIncrease",
Self::FailedToExtractRuntimeVersion => "System.FailedToExtractRuntimeVersion",
Self::NonDefaultComposite => "System.NonDefaultComposite",
Self::NonZeroRefCount => "System.NonZeroRefCount",
Self::CallFiltered => "System.CallFiltered",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidSpecName => &[
"The name of specification does not match between the current runtime",
"and the new runtime.",
],
Self::SpecVersionNeedsToIncrease => &[
"The specification version is not allowed to decrease between the current runtime",
"and the new runtime.",
],
Self::FailedToExtractRuntimeVersion => &[
"Failed to extract the runtime version from the new runtime.",
"",
"Either calling `Core_version` or decoding `RuntimeVersion` failed.",
],
Self::NonDefaultComposite => {
&["Suicide called when the account has non-default composite data."]
}
Self::NonZeroRefCount => {
&["There is a non-zero reference count preventing the account from being purged."]
}
Self::CallFiltered => &["The origin filter prevent the call to be dispatched."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "A dispatch that will fill the block weight up to the given ratio."]
#[codec(index = 0u8)]
fill_block {
ratio: ::polymesh_api_client::per_things::Perbill,
},
#[doc = "Make some on-chain remark."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`"]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
remark { remark: Vec<u8> },
#[doc = "Set the number of pages in the WebAssembly environment's heap."]
#[codec(index = 2u8)]
set_heap_pages { pages: u64 },
#[doc = "Set the new runtime code."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`"]
#[doc = "- 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is"]
#[doc = " expensive)."]
#[doc = "- 1 storage write (codec `O(C)`)."]
#[doc = "- 1 digest item."]
#[doc = "- 1 event."]
#[doc = "The weight of this function is dependent on the runtime, but generally this is very"]
#[doc = "expensive. We will treat this as a full block."]
#[doc = "# </weight>"]
#[codec(index = 3u8)]
set_code { code: Vec<u8> },
#[doc = "Set the new runtime code without doing any checks of the given `code`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(C)` where `C` length of `code`"]
#[doc = "- 1 storage write (codec `O(C)`)."]
#[doc = "- 1 digest item."]
#[doc = "- 1 event."]
#[doc = "The weight of this function is dependent on the runtime. We will treat this as a full"]
#[doc = "block. # </weight>"]
#[codec(index = 4u8)]
set_code_without_checks { code: Vec<u8> },
#[doc = "Set some items of storage."]
#[codec(index = 5u8)]
set_storage { items: Vec<(Vec<u8>, Vec<u8>)> },
#[doc = "Kill some items from storage."]
#[codec(index = 6u8)]
kill_storage { keys: Vec<Vec<u8>> },
#[doc = "Kill all storage items with a key that starts with the given prefix."]
#[doc = ""]
#[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"]
#[doc = "the prefix we are removing to accurately calculate the weight of this function."]
#[codec(index = 7u8)]
kill_prefix { prefix: Vec<u8>, subkeys: u32 },
#[doc = "Make some on-chain remark and emit event."]
#[codec(index = 8u8)]
remark_with_event { remark: Vec<u8> },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::fill_block { .. } => "System.fill_block",
Self::remark { .. } => "System.remark",
Self::set_heap_pages { .. } => "System.set_heap_pages",
Self::set_code { .. } => "System.set_code",
Self::set_code_without_checks { .. } => "System.set_code_without_checks",
Self::set_storage { .. } => "System.set_storage",
Self::kill_storage { .. } => "System.kill_storage",
Self::kill_prefix { .. } => "System.kill_prefix",
Self::remark_with_event { .. } => "System.remark_with_event",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: fill_block { .. } => { & ["A dispatch that will fill the block weight up to the given ratio." ,] } , Self :: remark { .. } => { & ["Make some on-chain remark." , "" , "# <weight>" , "- `O(1)`" , "# </weight>" ,] } , Self :: set_heap_pages { .. } => { & ["Set the number of pages in the WebAssembly environment's heap." ,] } , Self :: set_code { .. } => { & ["Set the new runtime code." , "" , "# <weight>" , "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`" , "- 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is" , " expensive)." , "- 1 storage write (codec `O(C)`)." , "- 1 digest item." , "- 1 event." , "The weight of this function is dependent on the runtime, but generally this is very" , "expensive. We will treat this as a full block." , "# </weight>" ,] } , Self :: set_code_without_checks { .. } => { & ["Set the new runtime code without doing any checks of the given `code`." , "" , "# <weight>" , "- `O(C)` where `C` length of `code`" , "- 1 storage write (codec `O(C)`)." , "- 1 digest item." , "- 1 event." , "The weight of this function is dependent on the runtime. We will treat this as a full" , "block. # </weight>" ,] } , Self :: set_storage { .. } => { & ["Set some items of storage." ,] } , Self :: kill_storage { .. } => { & ["Kill some items from storage." ,] } , Self :: kill_prefix { .. } => { & ["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." ,] } , Self :: remark_with_event { .. } => { & ["Make some on-chain remark and emit event." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "Event for the System pallet."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "An extrinsic completed successfully."]
#[codec(index = 0u8)]
ExtrinsicSuccess {
dispatch_info: frame_support::weights::DispatchInfo,
},
#[doc = "An extrinsic failed."]
#[codec(index = 1u8)]
ExtrinsicFailed {
dispatch_error: sp_runtime::DispatchError,
dispatch_info: frame_support::weights::DispatchInfo,
},
#[doc = "`:code` was updated."]
#[codec(index = 2u8)]
CodeUpdated,
#[doc = "A new account was created."]
#[codec(index = 3u8)]
NewAccount {
account: ::polymesh_api_client::AccountId,
},
#[doc = "An account was reaped."]
#[codec(index = 4u8)]
KilledAccount {
account: ::polymesh_api_client::AccountId,
},
#[doc = "On on-chain remark happened."]
#[codec(index = 5u8)]
Remarked {
sender: ::polymesh_api_client::AccountId,
hash: primitive_types::H256,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::ExtrinsicSuccess { .. } => "System.ExtrinsicSuccess",
Self::ExtrinsicFailed { .. } => "System.ExtrinsicFailed",
Self::CodeUpdated => "System.CodeUpdated",
Self::NewAccount { .. } => "System.NewAccount",
Self::KilledAccount { .. } => "System.KilledAccount",
Self::Remarked { .. } => "System.Remarked",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::ExtrinsicSuccess { .. } => &["An extrinsic completed successfully."],
Self::ExtrinsicFailed { .. } => &["An extrinsic failed."],
Self::CodeUpdated => &["`:code` was updated."],
Self::NewAccount { .. } => &["A new account was created."],
Self::KilledAccount { .. } => &["An account was reaped."],
Self::Remarked { .. } => &["On on-chain remark happened."],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod extensions {
use super::*;
pub mod check_spec_version {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckSpecVersion();
}
pub mod check_tx_version {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckTxVersion();
}
pub mod check_genesis {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckGenesis();
}
pub mod check_mortality {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckMortality(pub ::polymesh_api_client::Era);
}
pub mod check_weight {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckWeight();
}
pub mod check_nonce {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckNonce(#[codec(compact)] pub u32);
}
}
pub mod limits {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct WeightsPerClass {
pub base_extrinsic: u64,
pub max_extrinsic: Option<u64>,
pub max_total: Option<u64>,
pub reserved: Option<u64>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BlockWeights {
pub base_block: u64,
pub max_block: u64,
pub per_class:
frame_support::weights::PerDispatchClass<frame_system::limits::WeightsPerClass>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BlockLength {
pub max: frame_support::weights::PerDispatchClass<u32>,
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct LastRuntimeUpgradeInfo {
#[codec(compact)]
pub spec_version: u32,
pub spec_name: String,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EventRecord<E, T> {
pub phase: frame_system::Phase,
pub event: E,
pub topics: Vec<T>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AccountInfo<Index, AccountData> {
pub nonce: Index,
pub consumers: Index,
pub providers: Index,
pub sufficients: Index,
pub data: AccountData,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Phase {
#[codec(index = 0u8)]
ApplyExtrinsic(u32),
#[codec(index = 1u8)]
Finalization,
#[codec(index = 2u8)]
Initialization,
}
}
pub mod pallet_utility {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct UniqueCall<C> {
pub nonce: u64,
pub call: ::std::boxed::Box<C>,
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute until the first one fails and then stop."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin. To determine the success of the batch, an"]
#[doc = "event is deposited. If a call failed and the batch was interrupted, then the"]
#[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"]
#[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"]
#[doc = "event is deposited."]
#[codec(index = 0u8)]
batch {
calls: Vec<polymesh_runtime_develop::runtime::Call>,
},
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute all calls, in order, stopping at the first failure,"]
#[doc = "in which case the state changes are rolled back."]
#[doc = "On failure, an event `BatchInterrupted(failure_idx, error)` is deposited."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin."]
#[doc = "To determine the success of the batch, an event is deposited."]
#[doc = "If any call failed, then `BatchInterrupted` is deposited."]
#[doc = "If all were successful, then the `BatchCompleted` event is deposited."]
#[codec(index = 1u8)]
batch_atomic {
calls: Vec<polymesh_runtime_develop::runtime::Call>,
},
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute all calls, in order, irrespective of failures."]
#[doc = "Any failures will be available in a `BatchOptimisticFailed` event."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin."]
#[doc = "To determine the success of the batch, an event is deposited."]
#[doc = "If any call failed, then `BatchOptimisticFailed` is deposited,"]
#[doc = "with a vector of event counts for each call as well as a vector"]
#[doc = "of errors."]
#[doc = "If all were successful, then the `BatchCompleted` event is deposited."]
#[codec(index = 2u8)]
batch_optimistic {
calls: Vec<polymesh_runtime_develop::runtime::Call>,
},
#[doc = "Relay a call for a target from an origin"]
#[doc = ""]
#[doc = "Relaying in this context refers to the ability of origin to make a call on behalf of"]
#[doc = "target."]
#[doc = ""]
#[doc = "Fees are charged to origin"]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `target`: Account to be relayed"]
#[doc = "- `signature`: Signature from target authorizing the relay"]
#[doc = "- `call`: Call to be relayed on behalf of target"]
#[doc = ""]
#[codec(index = 3u8)]
relay_tx {
target: ::polymesh_api_client::AccountId,
signature: sp_runtime::MultiSignature,
call: pallet_utility::UniqueCall<polymesh_runtime_develop::runtime::Call>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::batch { .. } => "Utility.batch",
Self::batch_atomic { .. } => "Utility.batch_atomic",
Self::batch_optimistic { .. } => "Utility.batch_optimistic",
Self::relay_tx { .. } => "Utility.relay_tx",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: batch { .. } => { & ["Dispatch multiple calls from the sender's origin." , "" , "This will execute until the first one fails and then stop." , "" , "May be called from root or a signed origin." , "" , "# Parameters" , "- `calls`: The calls to be dispatched from the same origin." , "" , "# Weight" , "- The sum of the weights of the `calls`." , "- One event." , "" , "This will return `Ok` in all circumstances except an unsigned origin. To determine the success of the batch, an" , "event is deposited. If a call failed and the batch was interrupted, then the" , "`BatchInterrupted` event is deposited, along with the number of successful calls made" , "and the error of the failed call. If all were successful, then the `BatchCompleted`" , "event is deposited." ,] } , Self :: batch_atomic { .. } => { & ["Dispatch multiple calls from the sender's origin." , "" , "This will execute all calls, in order, stopping at the first failure," , "in which case the state changes are rolled back." , "On failure, an event `BatchInterrupted(failure_idx, error)` is deposited." , "" , "May be called from root or a signed origin." , "" , "# Parameters" , "- `calls`: The calls to be dispatched from the same origin." , "" , "# Weight" , "- The sum of the weights of the `calls`." , "- One event." , "" , "This will return `Ok` in all circumstances except an unsigned origin." , "To determine the success of the batch, an event is deposited." , "If any call failed, then `BatchInterrupted` is deposited." , "If all were successful, then the `BatchCompleted` event is deposited." ,] } , Self :: batch_optimistic { .. } => { & ["Dispatch multiple calls from the sender's origin." , "" , "This will execute all calls, in order, irrespective of failures." , "Any failures will be available in a `BatchOptimisticFailed` event." , "" , "May be called from root or a signed origin." , "" , "# Parameters" , "- `calls`: The calls to be dispatched from the same origin." , "" , "" , "# Weight" , "- The sum of the weights of the `calls`." , "- One event." , "" , "This will return `Ok` in all circumstances except an unsigned origin." , "To determine the success of the batch, an event is deposited." , "If any call failed, then `BatchOptimisticFailed` is deposited," , "with a vector of event counts for each call as well as a vector" , "of errors." , "If all were successful, then the `BatchCompleted` event is deposited." ,] } , Self :: relay_tx { .. } => { & ["Relay a call for a target from an origin" , "" , "Relaying in this context refers to the ability of origin to make a call on behalf of" , "target." , "" , "Fees are charged to origin" , "" , "# Parameters" , "- `target`: Account to be relayed" , "- `signature`: Signature from target authorizing the relay" , "- `call`: Call to be relayed on behalf of target" , "" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Offchain signature is invalid"]
#[codec(index = 0u8)]
InvalidSignature,
#[doc = "Target does not have a valid CDD"]
#[codec(index = 1u8)]
TargetCddMissing,
#[doc = "Provided nonce was invalid"]
#[doc = "If the provided nonce < current nonce, the call was already executed"]
#[doc = "If the provided nonce > current nonce, the call(s) before the current failed to execute"]
#[codec(index = 2u8)]
InvalidNonce,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidSignature => "Utility.InvalidSignature",
Self::TargetCddMissing => "Utility.TargetCddMissing",
Self::InvalidNonce => "Utility.InvalidNonce",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: InvalidSignature => { & ["Offchain signature is invalid" ,] } , Self :: TargetCddMissing => { & ["Target does not have a valid CDD" ,] } , Self :: InvalidNonce => { & ["Provided nonce was invalid" , "If the provided nonce < current nonce, the call was already executed" , "If the provided nonce > current nonce, the call(s) before the current failed to execute" ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[doc = "Events type."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "Batch of dispatches did not complete fully."]
#[doc = "Includes a vector of event counts for each dispatch and"]
#[doc = "the index of the first failing dispatch as well as the error."]
#[codec(index = 0u8)]
BatchInterrupted(Vec<u32>, (u32, sp_runtime::DispatchError)),
#[doc = "Batch of dispatches did not complete fully."]
#[doc = "Includes a vector of event counts for each call and"]
#[doc = "a vector of any failed dispatches with their indices and associated error."]
#[codec(index = 1u8)]
BatchOptimisticFailed(Vec<u32>, Vec<(u32, sp_runtime::DispatchError)>),
#[doc = "Batch of dispatches completed fully with no error."]
#[doc = "Includes a vector of event counts for each dispatch."]
#[codec(index = 2u8)]
BatchCompleted(Vec<u32>),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::BatchInterrupted(_, _) => "Utility.BatchInterrupted",
Self::BatchOptimisticFailed(_, _) => "Utility.BatchOptimisticFailed",
Self::BatchCompleted(_) => "Utility.BatchCompleted",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::BatchInterrupted(_, _) => &[
"Batch of dispatches did not complete fully.",
"Includes a vector of event counts for each dispatch and",
"the index of the first failing dispatch as well as the error.",
],
Self::BatchOptimisticFailed(_, _) => &[
"Batch of dispatches did not complete fully.",
"Includes a vector of event counts for each call and",
"a vector of any failed dispatches with their indices and associated error.",
],
Self::BatchCompleted(_) => &[
"Batch of dispatches completed fully with no error.",
"Includes a vector of event counts for each dispatch.",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_multisig {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "Event emitted after creation of a multisig."]
#[doc = "Arguments: caller DID, multisig address, signers (pending approval), signatures required."]
#[codec(index = 0u8)]
MultiSigCreated(
polymesh_primitives::identity_id::IdentityId,
AccountId,
AccountId,
Vec<polymesh_primitives::secondary_key::Signatory<AccountId>>,
u64,
),
#[doc = "Event emitted after adding a proposal."]
#[doc = "Arguments: caller DID, multisig, proposal ID."]
#[codec(index = 1u8)]
ProposalAdded(polymesh_primitives::identity_id::IdentityId, AccountId, u64),
#[doc = "Event emitted when a proposal is executed."]
#[doc = "Arguments: caller DID, multisig, proposal ID, result."]
#[codec(index = 2u8)]
ProposalExecuted(
polymesh_primitives::identity_id::IdentityId,
AccountId,
u64,
bool,
),
#[doc = "Event emitted when a signatory is added."]
#[doc = "Arguments: caller DID, multisig, added signer."]
#[codec(index = 3u8)]
MultiSigSignerAdded(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Signatory<AccountId>,
),
#[doc = "Event emitted when a multisig signatory is authorized to be added."]
#[doc = "Arguments: caller DID, multisig, authorized signer."]
#[codec(index = 4u8)]
MultiSigSignerAuthorized(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Signatory<AccountId>,
),
#[doc = "Event emitted when a multisig signatory is removed."]
#[doc = "Arguments: caller DID, multisig, removed signer."]
#[codec(index = 5u8)]
MultiSigSignerRemoved(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Signatory<AccountId>,
),
#[doc = "Event emitted when the number of required signatures is changed."]
#[doc = "Arguments: caller DID, multisig, new required signatures."]
#[codec(index = 6u8)]
MultiSigSignaturesRequiredChanged(
polymesh_primitives::identity_id::IdentityId,
AccountId,
u64,
),
#[doc = "Event emitted when the proposal get approved."]
#[doc = "Arguments: caller DID, multisig, authorized signer, proposal id."]
#[codec(index = 7u8)]
ProposalApproved(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Signatory<AccountId>,
u64,
),
#[doc = "Event emitted when a vote is cast in favor of rejecting a proposal."]
#[doc = "Arguments: caller DID, multisig, authorized signer, proposal id."]
#[codec(index = 8u8)]
ProposalRejectionVote(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Signatory<AccountId>,
u64,
),
#[doc = "Event emitted when a proposal is rejected."]
#[doc = "Arguments: caller DID, multisig, proposal ID."]
#[codec(index = 9u8)]
ProposalRejected(polymesh_primitives::identity_id::IdentityId, AccountId, u64),
#[doc = "Event emitted when there's an error in proposal execution"]
#[codec(index = 10u8)]
ProposalExecutionFailed(sp_runtime::DispatchError),
#[doc = "Scheduling of proposal fails."]
#[codec(index = 11u8)]
SchedulingFailed(sp_runtime::DispatchError),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::MultiSigCreated(_, _, _, _, _) => "MultiSig.MultiSigCreated",
Self::ProposalAdded(_, _, _) => "MultiSig.ProposalAdded",
Self::ProposalExecuted(_, _, _, _) => "MultiSig.ProposalExecuted",
Self::MultiSigSignerAdded(_, _, _) => "MultiSig.MultiSigSignerAdded",
Self::MultiSigSignerAuthorized(_, _, _) => "MultiSig.MultiSigSignerAuthorized",
Self::MultiSigSignerRemoved(_, _, _) => "MultiSig.MultiSigSignerRemoved",
Self::MultiSigSignaturesRequiredChanged(_, _, _) => {
"MultiSig.MultiSigSignaturesRequiredChanged"
}
Self::ProposalApproved(_, _, _, _) => "MultiSig.ProposalApproved",
Self::ProposalRejectionVote(_, _, _, _) => "MultiSig.ProposalRejectionVote",
Self::ProposalRejected(_, _, _) => "MultiSig.ProposalRejected",
Self::ProposalExecutionFailed(_) => "MultiSig.ProposalExecutionFailed",
Self::SchedulingFailed(_) => "MultiSig.SchedulingFailed",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: MultiSigCreated (_ , _ , _ , _ , _) => { & ["Event emitted after creation of a multisig." , "Arguments: caller DID, multisig address, signers (pending approval), signatures required." ,] } , Self :: ProposalAdded (_ , _ , _) => { & ["Event emitted after adding a proposal." , "Arguments: caller DID, multisig, proposal ID." ,] } , Self :: ProposalExecuted (_ , _ , _ , _) => { & ["Event emitted when a proposal is executed." , "Arguments: caller DID, multisig, proposal ID, result." ,] } , Self :: MultiSigSignerAdded (_ , _ , _) => { & ["Event emitted when a signatory is added." , "Arguments: caller DID, multisig, added signer." ,] } , Self :: MultiSigSignerAuthorized (_ , _ , _) => { & ["Event emitted when a multisig signatory is authorized to be added." , "Arguments: caller DID, multisig, authorized signer." ,] } , Self :: MultiSigSignerRemoved (_ , _ , _) => { & ["Event emitted when a multisig signatory is removed." , "Arguments: caller DID, multisig, removed signer." ,] } , Self :: MultiSigSignaturesRequiredChanged (_ , _ , _) => { & ["Event emitted when the number of required signatures is changed." , "Arguments: caller DID, multisig, new required signatures." ,] } , Self :: ProposalApproved (_ , _ , _ , _) => { & ["Event emitted when the proposal get approved." , "Arguments: caller DID, multisig, authorized signer, proposal id." ,] } , Self :: ProposalRejectionVote (_ , _ , _ , _) => { & ["Event emitted when a vote is cast in favor of rejecting a proposal." , "Arguments: caller DID, multisig, authorized signer, proposal id." ,] } , Self :: ProposalRejected (_ , _ , _) => { & ["Event emitted when a proposal is rejected." , "Arguments: caller DID, multisig, proposal ID." ,] } , Self :: ProposalExecutionFailed (_) => { & ["Event emitted when there's an error in proposal execution" ,] } , Self :: SchedulingFailed (_) => { & ["Scheduling of proposal fails." ,] } , _ => & [""] , }
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
#[doc = "Multisig module errors."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The multisig is not attached to a CDD'd identity."]
#[codec(index = 0u8)]
CddMissing,
#[doc = "The proposal does not exist."]
#[codec(index = 1u8)]
ProposalMissing,
#[doc = "Multisig address."]
#[codec(index = 2u8)]
DecodingError,
#[doc = "No signers."]
#[codec(index = 3u8)]
NoSigners,
#[doc = "Too few or too many required signatures."]
#[codec(index = 4u8)]
RequiredSignaturesOutOfBounds,
#[doc = "Not a signer."]
#[codec(index = 5u8)]
NotASigner,
#[doc = "No such multisig."]
#[codec(index = 6u8)]
NoSuchMultisig,
#[doc = "Not enough signers."]
#[codec(index = 7u8)]
NotEnoughSigners,
#[doc = "A nonce overflow."]
#[codec(index = 8u8)]
NonceOverflow,
#[doc = "Already voted."]
#[codec(index = 9u8)]
AlreadyVoted,
#[doc = "Already a signer."]
#[codec(index = 10u8)]
AlreadyASigner,
#[doc = "Couldn't charge fee for the transaction."]
#[codec(index = 11u8)]
FailedToChargeFee,
#[doc = "Identity provided is not the multisig's creator."]
#[codec(index = 12u8)]
IdentityNotCreator,
#[doc = "Changing multisig parameters not allowed since multisig is a primary key."]
#[codec(index = 13u8)]
ChangeNotAllowed,
#[doc = "Signer is an account key that is already associated with a multisig."]
#[codec(index = 14u8)]
SignerAlreadyLinkedToMultisig,
#[doc = "Signer is an account key that is already associated with an identity."]
#[codec(index = 15u8)]
SignerAlreadyLinkedToIdentity,
#[doc = "Multisig not allowed to add itself as a signer."]
#[codec(index = 16u8)]
MultisigNotAllowedToLinkToItself,
#[doc = "Current DID is missing"]
#[codec(index = 17u8)]
MissingCurrentIdentity,
#[doc = "The function can only be called by the primary key of the did"]
#[codec(index = 18u8)]
NotPrimaryKey,
#[doc = "Proposal was rejected earlier"]
#[codec(index = 19u8)]
ProposalAlreadyRejected,
#[doc = "Proposal has expired"]
#[codec(index = 20u8)]
ProposalExpired,
#[doc = "Proposal was executed earlier"]
#[codec(index = 21u8)]
ProposalAlreadyExecuted,
#[doc = "Multisig is not attached to an identity"]
#[codec(index = 22u8)]
MultisigMissingIdentity,
#[doc = "Scheduling of a proposal fails"]
#[codec(index = 23u8)]
FailedToSchedule,
#[doc = "More signers than required."]
#[codec(index = 24u8)]
TooManySigners,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::CddMissing => "MultiSig.CddMissing",
Self::ProposalMissing => "MultiSig.ProposalMissing",
Self::DecodingError => "MultiSig.DecodingError",
Self::NoSigners => "MultiSig.NoSigners",
Self::RequiredSignaturesOutOfBounds => "MultiSig.RequiredSignaturesOutOfBounds",
Self::NotASigner => "MultiSig.NotASigner",
Self::NoSuchMultisig => "MultiSig.NoSuchMultisig",
Self::NotEnoughSigners => "MultiSig.NotEnoughSigners",
Self::NonceOverflow => "MultiSig.NonceOverflow",
Self::AlreadyVoted => "MultiSig.AlreadyVoted",
Self::AlreadyASigner => "MultiSig.AlreadyASigner",
Self::FailedToChargeFee => "MultiSig.FailedToChargeFee",
Self::IdentityNotCreator => "MultiSig.IdentityNotCreator",
Self::ChangeNotAllowed => "MultiSig.ChangeNotAllowed",
Self::SignerAlreadyLinkedToMultisig => "MultiSig.SignerAlreadyLinkedToMultisig",
Self::SignerAlreadyLinkedToIdentity => "MultiSig.SignerAlreadyLinkedToIdentity",
Self::MultisigNotAllowedToLinkToItself => "MultiSig.MultisigNotAllowedToLinkToItself",
Self::MissingCurrentIdentity => "MultiSig.MissingCurrentIdentity",
Self::NotPrimaryKey => "MultiSig.NotPrimaryKey",
Self::ProposalAlreadyRejected => "MultiSig.ProposalAlreadyRejected",
Self::ProposalExpired => "MultiSig.ProposalExpired",
Self::ProposalAlreadyExecuted => "MultiSig.ProposalAlreadyExecuted",
Self::MultisigMissingIdentity => "MultiSig.MultisigMissingIdentity",
Self::FailedToSchedule => "MultiSig.FailedToSchedule",
Self::TooManySigners => "MultiSig.TooManySigners",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::CddMissing => &["The multisig is not attached to a CDD'd identity."],
Self::ProposalMissing => &["The proposal does not exist."],
Self::DecodingError => &["Multisig address."],
Self::NoSigners => &["No signers."],
Self::RequiredSignaturesOutOfBounds => &["Too few or too many required signatures."],
Self::NotASigner => &["Not a signer."],
Self::NoSuchMultisig => &["No such multisig."],
Self::NotEnoughSigners => &["Not enough signers."],
Self::NonceOverflow => &["A nonce overflow."],
Self::AlreadyVoted => &["Already voted."],
Self::AlreadyASigner => &["Already a signer."],
Self::FailedToChargeFee => &["Couldn't charge fee for the transaction."],
Self::IdentityNotCreator => &["Identity provided is not the multisig's creator."],
Self::ChangeNotAllowed => {
&["Changing multisig parameters not allowed since multisig is a primary key."]
}
Self::SignerAlreadyLinkedToMultisig => {
&["Signer is an account key that is already associated with a multisig."]
}
Self::SignerAlreadyLinkedToIdentity => {
&["Signer is an account key that is already associated with an identity."]
}
Self::MultisigNotAllowedToLinkToItself => {
&["Multisig not allowed to add itself as a signer."]
}
Self::MissingCurrentIdentity => &["Current DID is missing"],
Self::NotPrimaryKey => &["The function can only be called by the primary key of the did"],
Self::ProposalAlreadyRejected => &["Proposal was rejected earlier"],
Self::ProposalExpired => &["Proposal has expired"],
Self::ProposalAlreadyExecuted => &["Proposal was executed earlier"],
Self::MultisigMissingIdentity => &["Multisig is not attached to an identity"],
Self::FailedToSchedule => &["Scheduling of a proposal fails"],
Self::TooManySigners => &["More signers than required."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ProposalStatus {
#[codec(index = 0u8)]
Invalid,
#[codec(index = 1u8)]
ActiveOrExpired,
#[codec(index = 2u8)]
ExecutionSuccessful,
#[codec(index = 3u8)]
ExecutionFailed,
#[codec(index = 4u8)]
Rejected,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ProposalDetails<T> {
pub approvals: T,
pub rejections: T,
pub status: pallet_multisig::ProposalStatus,
pub expiry: Option<T>,
pub auto_close: bool,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Creates a multisig"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signers` - Signers of the multisig (They need to accept authorization before they are actually added)."]
#[doc = "* `sigs_required` - Number of sigs required to process a multi-sig tx."]
#[codec(index = 0u8)]
create_multisig {
signers:
Vec<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>,
sigs_required: u64,
},
#[doc = "Creates a multisig proposal if it hasn't been created or approves it if it has."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
#[codec(index = 1u8)]
create_or_approve_proposal_as_identity {
multisig: ::polymesh_api_client::AccountId,
proposal: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
expiry: Option<u64>,
auto_close: bool,
},
#[doc = "Creates a multisig proposal if it hasn't been created or approves it if it has."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
#[codec(index = 2u8)]
create_or_approve_proposal_as_key {
multisig: ::polymesh_api_client::AccountId,
proposal: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
expiry: Option<u64>,
auto_close: bool,
},
#[doc = "Creates a multisig proposal"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
#[codec(index = 3u8)]
create_proposal_as_identity {
multisig: ::polymesh_api_client::AccountId,
proposal: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
expiry: Option<u64>,
auto_close: bool,
},
#[doc = "Creates a multisig proposal"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
#[codec(index = 4u8)]
create_proposal_as_key {
multisig: ::polymesh_api_client::AccountId,
proposal: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
expiry: Option<u64>,
auto_close: bool,
},
#[doc = "Approves a multisig proposal using the caller's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to approve."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
#[codec(index = 5u8)]
approve_as_identity {
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
},
#[doc = "Approves a multisig proposal using the caller's secondary key (`AccountId`)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to approve."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
#[codec(index = 6u8)]
approve_as_key {
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
},
#[doc = "Rejects a multisig proposal using the caller's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to reject."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
#[codec(index = 7u8)]
reject_as_identity {
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
},
#[doc = "Rejects a multisig proposal using the caller's secondary key (`AccountId`)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to reject."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
#[codec(index = 8u8)]
reject_as_key {
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
},
#[doc = "Accepts a multisig signer authorization given to signer's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_id` - Auth id of the authorization."]
#[codec(index = 9u8)]
accept_multisig_signer_as_identity { auth_id: u64 },
#[doc = "Accepts a multisig signer authorization given to signer's key (AccountId)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_id` - Auth id of the authorization."]
#[codec(index = 10u8)]
accept_multisig_signer_as_key { auth_id: u64 },
#[doc = "Adds a signer to the multisig. This must be called by the multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signer` - Signatory to add."]
#[codec(index = 11u8)]
add_multisig_signer {
signer: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
},
#[doc = "Removes a signer from the multisig. This must be called by the multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signer` - Signatory to remove."]
#[codec(index = 12u8)]
remove_multisig_signer {
signer: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
},
#[doc = "Adds a signer to the multisig. This must be called by the creator identity of the"]
#[doc = "multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - Address of the multi sig"]
#[doc = "* `signers` - Signatories to add."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`900_000_000 + 3_000_000 * signers.len()`"]
#[codec(index = 13u8)]
add_multisig_signers_via_creator {
multisig: ::polymesh_api_client::AccountId,
signers:
Vec<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>,
},
#[doc = "Removes a signer from the multisig."]
#[doc = "This must be called by the creator identity of the multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - Address of the multisig."]
#[doc = "* `signers` - Signatories to remove."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`900_000_000 + 3_000_000 * signers.len()`"]
#[codec(index = 14u8)]
remove_multisig_signers_via_creator {
multisig: ::polymesh_api_client::AccountId,
signers:
Vec<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>,
},
#[doc = "Changes the number of signatures required by a multisig. This must be called by the"]
#[doc = "multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `sigs_required` - New number of required signatures."]
#[codec(index = 15u8)]
change_sigs_required { sigs_required: u64 },
#[doc = "Adds a multisig as a secondary key of current did if the current did is the creator of the"]
#[doc = "multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - multi sig address"]
#[codec(index = 16u8)]
make_multisig_secondary {
multisig: ::polymesh_api_client::AccountId,
},
#[doc = "Adds a multisig as the primary key of the current did if the current DID is the creator"]
#[doc = "of the multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multi_sig` - multi sig address"]
#[codec(index = 17u8)]
make_multisig_primary {
multisig: ::polymesh_api_client::AccountId,
optional_cdd_auth_id: Option<u64>,
},
#[doc = "Root callable extrinsic, used as an internal call for executing scheduled multisig proposal."]
#[codec(index = 18u8)]
execute_scheduled_proposal {
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
multisig_did: polymesh_primitives::identity_id::IdentityId,
_proposal_weight: u64,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_multisig { .. } => "MultiSig.create_multisig",
Self::create_or_approve_proposal_as_identity { .. } => {
"MultiSig.create_or_approve_proposal_as_identity"
}
Self::create_or_approve_proposal_as_key { .. } => {
"MultiSig.create_or_approve_proposal_as_key"
}
Self::create_proposal_as_identity { .. } => "MultiSig.create_proposal_as_identity",
Self::create_proposal_as_key { .. } => "MultiSig.create_proposal_as_key",
Self::approve_as_identity { .. } => "MultiSig.approve_as_identity",
Self::approve_as_key { .. } => "MultiSig.approve_as_key",
Self::reject_as_identity { .. } => "MultiSig.reject_as_identity",
Self::reject_as_key { .. } => "MultiSig.reject_as_key",
Self::accept_multisig_signer_as_identity { .. } => {
"MultiSig.accept_multisig_signer_as_identity"
}
Self::accept_multisig_signer_as_key { .. } => "MultiSig.accept_multisig_signer_as_key",
Self::add_multisig_signer { .. } => "MultiSig.add_multisig_signer",
Self::remove_multisig_signer { .. } => "MultiSig.remove_multisig_signer",
Self::add_multisig_signers_via_creator { .. } => {
"MultiSig.add_multisig_signers_via_creator"
}
Self::remove_multisig_signers_via_creator { .. } => {
"MultiSig.remove_multisig_signers_via_creator"
}
Self::change_sigs_required { .. } => "MultiSig.change_sigs_required",
Self::make_multisig_secondary { .. } => "MultiSig.make_multisig_secondary",
Self::make_multisig_primary { .. } => "MultiSig.make_multisig_primary",
Self::execute_scheduled_proposal { .. } => "MultiSig.execute_scheduled_proposal",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: create_multisig { .. } => { & ["Creates a multisig" , "" , "# Arguments" , "* `signers` - Signers of the multisig (They need to accept authorization before they are actually added)." , "* `sigs_required` - Number of sigs required to process a multi-sig tx." ,] } , Self :: create_or_approve_proposal_as_identity { .. } => { & ["Creates a multisig proposal if it hasn't been created or approves it if it has." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal` - Proposal to be voted on." , "* `expiry` - Optional proposal expiry time." , "* `auto_close` - Close proposal on receiving enough reject votes." , "If this is 1 out of `m` multisig, the proposal will be immediately executed." ,] } , Self :: create_or_approve_proposal_as_key { .. } => { & ["Creates a multisig proposal if it hasn't been created or approves it if it has." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal` - Proposal to be voted on." , "* `expiry` - Optional proposal expiry time." , "* `auto_close` - Close proposal on receiving enough reject votes." , "If this is 1 out of `m` multisig, the proposal will be immediately executed." ,] } , Self :: create_proposal_as_identity { .. } => { & ["Creates a multisig proposal" , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal` - Proposal to be voted on." , "* `expiry` - Optional proposal expiry time." , "* `auto_close` - Close proposal on receiving enough reject votes." , "If this is 1 out of `m` multisig, the proposal will be immediately executed." ,] } , Self :: create_proposal_as_key { .. } => { & ["Creates a multisig proposal" , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal` - Proposal to be voted on." , "* `expiry` - Optional proposal expiry time." , "* `auto_close` - Close proposal on receiving enough reject votes." , "If this is 1 out of `m` multisig, the proposal will be immediately executed." ,] } , Self :: approve_as_identity { .. } => { & ["Approves a multisig proposal using the caller's identity." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal_id` - Proposal id to approve." , "If quorum is reached, the proposal will be immediately executed." ,] } , Self :: approve_as_key { .. } => { & ["Approves a multisig proposal using the caller's secondary key (`AccountId`)." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal_id` - Proposal id to approve." , "If quorum is reached, the proposal will be immediately executed." ,] } , Self :: reject_as_identity { .. } => { & ["Rejects a multisig proposal using the caller's identity." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal_id` - Proposal id to reject." , "If quorum is reached, the proposal will be immediately executed." ,] } , Self :: reject_as_key { .. } => { & ["Rejects a multisig proposal using the caller's secondary key (`AccountId`)." , "" , "# Arguments" , "* `multisig` - MultiSig address." , "* `proposal_id` - Proposal id to reject." , "If quorum is reached, the proposal will be immediately executed." ,] } , Self :: accept_multisig_signer_as_identity { .. } => { & ["Accepts a multisig signer authorization given to signer's identity." , "" , "# Arguments" , "* `auth_id` - Auth id of the authorization." ,] } , Self :: accept_multisig_signer_as_key { .. } => { & ["Accepts a multisig signer authorization given to signer's key (AccountId)." , "" , "# Arguments" , "* `auth_id` - Auth id of the authorization." ,] } , Self :: add_multisig_signer { .. } => { & ["Adds a signer to the multisig. This must be called by the multisig itself." , "" , "# Arguments" , "* `signer` - Signatory to add." ,] } , Self :: remove_multisig_signer { .. } => { & ["Removes a signer from the multisig. This must be called by the multisig itself." , "" , "# Arguments" , "* `signer` - Signatory to remove." ,] } , Self :: add_multisig_signers_via_creator { .. } => { & ["Adds a signer to the multisig. This must be called by the creator identity of the" , "multisig." , "" , "# Arguments" , "* `multisig` - Address of the multi sig" , "* `signers` - Signatories to add." , "" , "# Weight" , "`900_000_000 + 3_000_000 * signers.len()`" ,] } , Self :: remove_multisig_signers_via_creator { .. } => { & ["Removes a signer from the multisig." , "This must be called by the creator identity of the multisig." , "" , "# Arguments" , "* `multisig` - Address of the multisig." , "* `signers` - Signatories to remove." , "" , "# Weight" , "`900_000_000 + 3_000_000 * signers.len()`" ,] } , Self :: change_sigs_required { .. } => { & ["Changes the number of signatures required by a multisig. This must be called by the" , "multisig itself." , "" , "# Arguments" , "* `sigs_required` - New number of required signatures." ,] } , Self :: make_multisig_secondary { .. } => { & ["Adds a multisig as a secondary key of current did if the current did is the creator of the" , "multisig." , "" , "# Arguments" , "* `multisig` - multi sig address" ,] } , Self :: make_multisig_primary { .. } => { & ["Adds a multisig as the primary key of the current did if the current DID is the creator" , "of the multisig." , "" , "# Arguments" , "* `multi_sig` - multi sig address" ,] } , Self :: execute_scheduled_proposal { .. } => { & ["Root callable extrinsic, used as an internal call for executing scheduled multisig proposal." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_pips {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum SnapshotResult {
#[codec(index = 0u8)]
Approve,
#[codec(index = 1u8)]
Reject,
#[codec(index = 2u8)]
Skip,
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId, BlockNumber> {
#[doc = "Pruning Historical PIPs is enabled or disabled (caller DID, old value, new value)"]
#[codec(index = 0u8)]
HistoricalPipsPruned(polymesh_primitives::identity_id::IdentityId, bool, bool),
#[doc = "A PIP was made with a `Balance` stake."]
#[doc = ""]
#[doc = "# Parameters:"]
#[doc = ""]
#[doc = "Caller DID, Proposer, PIP ID, deposit, URL, description, expiry time, proposal data."]
#[codec(index = 1u8)]
ProposalCreated(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::Proposer<AccountId>,
pallet_pips::PipId,
u128,
Option<polymesh_primitives::Url>,
Option<pallet_pips::PipDescription>,
polymesh_common_utilities::MaybeBlock<BlockNumber>,
pallet_pips::ProposalData,
),
#[doc = "Triggered each time the state of a proposal is amended"]
#[codec(index = 2u8)]
ProposalStateUpdated(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
pallet_pips::ProposalState,
),
#[doc = "`AccountId` voted `bool` on the proposal referenced by `PipId`"]
#[codec(index = 3u8)]
Voted(
polymesh_primitives::identity_id::IdentityId,
AccountId,
pallet_pips::PipId,
bool,
u128,
),
#[doc = "Pip has been closed, bool indicates whether data is pruned"]
#[codec(index = 4u8)]
PipClosed(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
bool,
),
#[doc = "Execution of a PIP has been scheduled at specific block."]
#[codec(index = 5u8)]
ExecutionScheduled(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
BlockNumber,
),
#[doc = "Default enactment period (in blocks) has been changed."]
#[doc = "(caller DID, old period, new period)"]
#[codec(index = 6u8)]
DefaultEnactmentPeriodChanged(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
BlockNumber,
),
#[doc = "Minimum deposit amount modified"]
#[doc = "(caller DID, old amount, new amount)"]
#[codec(index = 7u8)]
MinimumProposalDepositChanged(polymesh_primitives::identity_id::IdentityId, u128, u128),
#[doc = "Amount of blocks after which a pending PIP expires."]
#[doc = "(caller DID, old expiry, new expiry)"]
#[codec(index = 8u8)]
PendingPipExpiryChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_common_utilities::MaybeBlock<BlockNumber>,
polymesh_common_utilities::MaybeBlock<BlockNumber>,
),
#[doc = "The maximum times a PIP can be skipped was changed."]
#[doc = "(caller DID, old value, new value)"]
#[codec(index = 9u8)]
MaxPipSkipCountChanged(polymesh_primitives::identity_id::IdentityId, u8, u8),
#[doc = "The maximum number of active PIPs was changed."]
#[doc = "(caller DID, old value, new value)"]
#[codec(index = 10u8)]
ActivePipLimitChanged(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
BlockNumber,
),
#[doc = "Refund proposal"]
#[doc = "(id, total amount)"]
#[codec(index = 11u8)]
ProposalRefund(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
u128,
),
#[doc = "The snapshot was cleared."]
#[codec(index = 12u8)]
SnapshotCleared(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::SnapshotId,
),
#[doc = "A new snapshot was taken."]
#[codec(index = 13u8)]
SnapshotTaken(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::SnapshotId,
Vec<pallet_pips::SnapshottedPip>,
),
#[doc = "A PIP in the snapshot queue was skipped."]
#[doc = "(gc_did, pip_id, new_skip_count)"]
#[codec(index = 14u8)]
PipSkipped(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
u8,
),
#[doc = "Results (e.g., approved, rejected, and skipped), were enacted for some PIPs."]
#[doc = "(gc_did, snapshot_id_opt, skipped_pips_with_new_count, rejected_pips, approved_pips)"]
#[codec(index = 15u8)]
SnapshotResultsEnacted(
polymesh_primitives::identity_id::IdentityId,
Option<pallet_pips::SnapshotId>,
Vec<(pallet_pips::PipId, u8)>,
Vec<pallet_pips::PipId>,
Vec<pallet_pips::PipId>,
),
#[doc = "Scheduling of the PIP for execution failed in the scheduler pallet."]
#[codec(index = 16u8)]
ExecutionSchedulingFailed(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
BlockNumber,
),
#[doc = "The PIP has been scheduled for expiry."]
#[codec(index = 17u8)]
ExpiryScheduled(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
BlockNumber,
),
#[doc = "Scheduling of the PIP for expiry failed in the scheduler pallet."]
#[codec(index = 18u8)]
ExpirySchedulingFailed(
polymesh_primitives::identity_id::IdentityId,
pallet_pips::PipId,
BlockNumber,
),
#[doc = "Cancelling the PIP execution failed in the scheduler pallet."]
#[codec(index = 19u8)]
ExecutionCancellingFailed(pallet_pips::PipId),
}
impl<AccountId, BlockNumber> RawEvent<AccountId, BlockNumber> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::HistoricalPipsPruned(_, _, _) => "Pips.HistoricalPipsPruned",
Self::ProposalCreated(_, _, _, _, _, _, _, _) => "Pips.ProposalCreated",
Self::ProposalStateUpdated(_, _, _) => "Pips.ProposalStateUpdated",
Self::Voted(_, _, _, _, _) => "Pips.Voted",
Self::PipClosed(_, _, _) => "Pips.PipClosed",
Self::ExecutionScheduled(_, _, _) => "Pips.ExecutionScheduled",
Self::DefaultEnactmentPeriodChanged(_, _, _) => "Pips.DefaultEnactmentPeriodChanged",
Self::MinimumProposalDepositChanged(_, _, _) => "Pips.MinimumProposalDepositChanged",
Self::PendingPipExpiryChanged(_, _, _) => "Pips.PendingPipExpiryChanged",
Self::MaxPipSkipCountChanged(_, _, _) => "Pips.MaxPipSkipCountChanged",
Self::ActivePipLimitChanged(_, _, _) => "Pips.ActivePipLimitChanged",
Self::ProposalRefund(_, _, _) => "Pips.ProposalRefund",
Self::SnapshotCleared(_, _) => "Pips.SnapshotCleared",
Self::SnapshotTaken(_, _, _) => "Pips.SnapshotTaken",
Self::PipSkipped(_, _, _) => "Pips.PipSkipped",
Self::SnapshotResultsEnacted(_, _, _, _, _) => "Pips.SnapshotResultsEnacted",
Self::ExecutionSchedulingFailed(_, _, _) => "Pips.ExecutionSchedulingFailed",
Self::ExpiryScheduled(_, _, _) => "Pips.ExpiryScheduled",
Self::ExpirySchedulingFailed(_, _, _) => "Pips.ExpirySchedulingFailed",
Self::ExecutionCancellingFailed(_) => "Pips.ExecutionCancellingFailed",
_ => "Unknown",
}
}
}
impl<AccountId, BlockNumber> ::polymesh_api_client::EnumInfo for RawEvent<AccountId, BlockNumber> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::HistoricalPipsPruned(_, _, _) => {
&["Pruning Historical PIPs is enabled or disabled (caller DID, old value, new value)"]
}
Self::ProposalCreated(_, _, _, _, _, _, _, _) => &[
"A PIP was made with a `Balance` stake.",
"",
"# Parameters:",
"",
"Caller DID, Proposer, PIP ID, deposit, URL, description, expiry time, proposal data.",
],
Self::ProposalStateUpdated(_, _, _) => {
&["Triggered each time the state of a proposal is amended"]
}
Self::Voted(_, _, _, _, _) => {
&["`AccountId` voted `bool` on the proposal referenced by `PipId`"]
}
Self::PipClosed(_, _, _) => {
&["Pip has been closed, bool indicates whether data is pruned"]
}
Self::ExecutionScheduled(_, _, _) => {
&["Execution of a PIP has been scheduled at specific block."]
}
Self::DefaultEnactmentPeriodChanged(_, _, _) => &[
"Default enactment period (in blocks) has been changed.",
"(caller DID, old period, new period)",
],
Self::MinimumProposalDepositChanged(_, _, _) => &[
"Minimum deposit amount modified",
"(caller DID, old amount, new amount)",
],
Self::PendingPipExpiryChanged(_, _, _) => &[
"Amount of blocks after which a pending PIP expires.",
"(caller DID, old expiry, new expiry)",
],
Self::MaxPipSkipCountChanged(_, _, _) => &[
"The maximum times a PIP can be skipped was changed.",
"(caller DID, old value, new value)",
],
Self::ActivePipLimitChanged(_, _, _) => &[
"The maximum number of active PIPs was changed.",
"(caller DID, old value, new value)",
],
Self::ProposalRefund(_, _, _) => &["Refund proposal", "(id, total amount)"],
Self::SnapshotCleared(_, _) => &["The snapshot was cleared."],
Self::SnapshotTaken(_, _, _) => &["A new snapshot was taken."],
Self::PipSkipped(_, _, _) => &[
"A PIP in the snapshot queue was skipped.",
"(gc_did, pip_id, new_skip_count)",
],
Self::SnapshotResultsEnacted(_, _, _, _, _) => &[
"Results (e.g., approved, rejected, and skipped), were enacted for some PIPs.",
"(gc_did, snapshot_id_opt, skipped_pips_with_new_count, rejected_pips, approved_pips)",
],
Self::ExecutionSchedulingFailed(_, _, _) => {
&["Scheduling of the PIP for execution failed in the scheduler pallet."]
}
Self::ExpiryScheduled(_, _, _) => &["The PIP has been scheduled for expiry."],
Self::ExpirySchedulingFailed(_, _, _) => {
&["Scheduling of the PIP for expiry failed in the scheduler pallet."]
}
Self::ExecutionCancellingFailed(_) => {
&["Cancelling the PIP execution failed in the scheduler pallet."]
}
_ => &[""],
}
}
}
impl<AccountId, BlockNumber> From<RawEvent<AccountId, BlockNumber>> for &'static str {
fn from(v: RawEvent<AccountId, BlockNumber>) -> Self {
v.as_static_str()
}
}
impl<AccountId, BlockNumber> From<&RawEvent<AccountId, BlockNumber>> for &'static str {
fn from(v: &RawEvent<AccountId, BlockNumber>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ProposalState {
#[codec(index = 0u8)]
Pending,
#[codec(index = 1u8)]
Rejected,
#[codec(index = 2u8)]
Scheduled,
#[codec(index = 3u8)]
Failed,
#[codec(index = 4u8)]
Executed,
#[codec(index = 5u8)]
Expired,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Vote(pub bool, pub u128);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct VotingResult {
pub ayes_count: u32,
pub ayes_stake: u128,
pub nays_count: u32,
pub nays_stake: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Committee {
#[codec(index = 0u8)]
Technical,
#[codec(index = 1u8)]
Upgrade,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SnapshotId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PipDescription(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PipsMetadata<BlockNumber> {
pub id: pallet_pips::PipId,
pub url: Option<polymesh_primitives::Url>,
pub description: Option<pallet_pips::PipDescription>,
pub created_at: BlockNumber,
pub transaction_version: BlockNumber,
pub expiry: polymesh_common_utilities::MaybeBlock<BlockNumber>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SnapshottedPip {
pub id: pallet_pips::PipId,
pub weight: (bool, u128),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ProposalData {
#[codec(index = 0u8)]
Hash(primitive_types::H256),
#[codec(index = 1u8)]
Proposal(Vec<u8>),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Proposer<AccountId> {
#[codec(index = 0u8)]
Community(AccountId),
#[codec(index = 1u8)]
Committee(pallet_pips::Committee),
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Change whether completed PIPs are pruned."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `prune` specifies whether completed PIPs should be pruned."]
#[codec(index = 0u8)]
set_prune_historical_pips { prune: bool },
#[doc = "Change the minimum proposal deposit amount required to start a proposal."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `deposit` the new min deposit required to start a proposal"]
#[codec(index = 1u8)]
set_min_proposal_deposit { deposit: u128 },
#[doc = "Change the default enactment period."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `duration` the new default enactment period it takes for a scheduled PIP to be executed."]
#[codec(index = 2u8)]
set_default_enactment_period { duration: u32 },
#[doc = "Change the amount of blocks after which a pending PIP is expired."]
#[doc = "If `expiry` is `None` then PIPs never expire."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` the block-time it takes for a still-`Pending` PIP to expire."]
#[codec(index = 3u8)]
set_pending_pip_expiry {
expiry: polymesh_common_utilities::MaybeBlock<u32>,
},
#[doc = "Change the maximum skip count (`max_pip_skip_count`)."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `max` skips before a PIP cannot be skipped by GC anymore."]
#[codec(index = 4u8)]
set_max_pip_skip_count { max: u8 },
#[doc = "Change the maximum number of active PIPs before community members cannot propose anything."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` of concurrent active PIPs."]
#[codec(index = 5u8)]
set_active_pip_limit { limit: u32 },
#[doc = "A network member creates a PIP by submitting a dispatchable which"]
#[doc = "changes the network in someway. A minimum deposit is required to open a new proposal."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposer` is either a signing key or committee."]
#[doc = " Used to understand whether this is a committee proposal and verified against `origin`."]
#[doc = "* `proposal` a dispatchable call"]
#[doc = "* `deposit` minimum deposit value, which is ignored if `proposer` is a committee."]
#[doc = "* `url` a link to a website for proposal discussion"]
#[codec(index = 6u8)]
propose {
proposal: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
deposit: u128,
url: Option<polymesh_primitives::Url>,
description: Option<pallet_pips::PipDescription>,
},
#[doc = "Vote either in favor (`aye_or_nay` == true) or against a PIP with `id`."]
#[doc = "The \"convinction\" or strength of the vote is given by `deposit`, which is reserved."]
#[doc = ""]
#[doc = "Note that `vote` is *not* additive."]
#[doc = "That is, `vote(id, true, 50)` followed by `vote(id, true, 40)`"]
#[doc = "will first reserve `50` and then refund `50 - 10`, ending up with `40` in deposit."]
#[doc = "To add atop of existing votes, you'll need `existing_deposit + addition`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id`, proposal id"]
#[doc = "* `aye_or_nay`, a bool representing for or against vote"]
#[doc = "* `deposit`, the \"conviction\" with which the vote is made."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NoSuchProposal` if `id` doesn't reference a valid PIP."]
#[doc = "* `NotFromCommunity` if proposal was made by a committee."]
#[doc = "* `IncorrectProposalState` if PIP isn't pending."]
#[doc = "* `InsufficientDeposit` if `origin` cannot reserve `deposit - old_deposit`."]
#[codec(index = 7u8)]
vote {
id: pallet_pips::PipId,
aye_or_nay: bool,
deposit: u128,
},
#[doc = "Approves the pending committee PIP given by the `id`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal isn't pending."]
#[doc = "* `NotByCommittee` if the proposal isn't by a committee."]
#[codec(index = 8u8)]
approve_committee_proposal { id: pallet_pips::PipId },
#[doc = "Rejects the PIP given by the `id`, refunding any bonded funds,"]
#[doc = "assuming it hasn't been cancelled or executed."]
#[doc = "Note that proposals scheduled-for-execution can also be rejected."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal was cancelled or executed."]
#[codec(index = 9u8)]
reject_proposal { id: pallet_pips::PipId },
#[doc = "Prune the PIP given by the `id`, refunding any funds not already refunded."]
#[doc = "The PIP may not be active"]
#[doc = ""]
#[doc = "This function is intended for storage garbage collection purposes."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal is active."]
#[codec(index = 10u8)]
prune_proposal { id: pallet_pips::PipId },
#[doc = "Updates the execution schedule of the PIP given by `id`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `until` defines the future block where the enactment period will finished."]
#[doc = " `None` value means that enactment period is going to finish in the next block."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `RescheduleNotByReleaseCoordinator` unless triggered by release coordinator."]
#[doc = "* `IncorrectProposalState` unless the proposal was in a scheduled state."]
#[codec(index = 11u8)]
reschedule_execution {
id: pallet_pips::PipId,
until: Option<u32>,
},
#[doc = "Clears the snapshot and emits the event `SnapshotCleared`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotACommitteeMember` - triggered when a non-GC-member executes the function."]
#[codec(index = 12u8)]
clear_snapshot,
#[doc = "Takes a new snapshot of the current list of active && pending PIPs."]
#[doc = "The PIPs are then sorted into a priority queue based on each PIP's weight."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotACommitteeMember` - triggered when a non-GC-member executes the function."]
#[codec(index = 13u8)]
snapshot,
#[doc = "Enacts `results` for the PIPs in the snapshot queue."]
#[doc = "The snapshot will be available for further enactments until it is cleared."]
#[doc = ""]
#[doc = "The `results` are encoded a list of `(id, result)` where `result` is applied to `id`."]
#[doc = "Note that the snapshot priority queue is encoded with the *lowest priority first*."]
#[doc = "so `results = [(id, Approve)]` will approve `SnapshotQueue[SnapshotQueue.len() - 1]`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - unless a GC voting majority executes this function."]
#[doc = "* `CannotSkipPip` - a given PIP has already been skipped too many times."]
#[doc = "* `SnapshotResultTooLarge` - on len(results) > len(snapshot_queue)."]
#[doc = "* `SnapshotIdMismatch` - if:"]
#[doc = " ```text"]
#[doc = " ∃ (i ∈ 0..SnapshotQueue.len())."]
#[doc = " results[i].0 ≠SnapshotQueue[SnapshotQueue.len() - i].id"]
#[doc = " ```"]
#[doc = " This is protects against clearing queue while GC is voting."]
#[codec(index = 14u8)]
enact_snapshot_results {
results: Vec<(pallet_pips::PipId, pallet_pips::SnapshotResult)>,
},
#[doc = "Internal dispatchable that handles execution of a PIP."]
#[codec(index = 15u8)]
execute_scheduled_pip { id: pallet_pips::PipId },
#[doc = "Internal dispatchable that handles expiration of a PIP."]
#[codec(index = 16u8)]
expire_scheduled_pip {
did: polymesh_primitives::identity_id::IdentityId,
id: pallet_pips::PipId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_prune_historical_pips { .. } => "Pips.set_prune_historical_pips",
Self::set_min_proposal_deposit { .. } => "Pips.set_min_proposal_deposit",
Self::set_default_enactment_period { .. } => "Pips.set_default_enactment_period",
Self::set_pending_pip_expiry { .. } => "Pips.set_pending_pip_expiry",
Self::set_max_pip_skip_count { .. } => "Pips.set_max_pip_skip_count",
Self::set_active_pip_limit { .. } => "Pips.set_active_pip_limit",
Self::propose { .. } => "Pips.propose",
Self::vote { .. } => "Pips.vote",
Self::approve_committee_proposal { .. } => "Pips.approve_committee_proposal",
Self::reject_proposal { .. } => "Pips.reject_proposal",
Self::prune_proposal { .. } => "Pips.prune_proposal",
Self::reschedule_execution { .. } => "Pips.reschedule_execution",
Self::clear_snapshot => "Pips.clear_snapshot",
Self::snapshot => "Pips.snapshot",
Self::enact_snapshot_results { .. } => "Pips.enact_snapshot_results",
Self::execute_scheduled_pip { .. } => "Pips.execute_scheduled_pip",
Self::expire_scheduled_pip { .. } => "Pips.expire_scheduled_pip",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_prune_historical_pips { .. } => { & ["Change whether completed PIPs are pruned." , "Can only be called by root." , "" , "# Arguments" , "* `prune` specifies whether completed PIPs should be pruned." ,] } , Self :: set_min_proposal_deposit { .. } => { & ["Change the minimum proposal deposit amount required to start a proposal." , "Can only be called by root." , "" , "# Arguments" , "* `deposit` the new min deposit required to start a proposal" ,] } , Self :: set_default_enactment_period { .. } => { & ["Change the default enactment period." , "Can only be called by root." , "" , "# Arguments" , "* `duration` the new default enactment period it takes for a scheduled PIP to be executed." ,] } , Self :: set_pending_pip_expiry { .. } => { & ["Change the amount of blocks after which a pending PIP is expired." , "If `expiry` is `None` then PIPs never expire." , "Can only be called by root." , "" , "# Arguments" , "* `expiry` the block-time it takes for a still-`Pending` PIP to expire." ,] } , Self :: set_max_pip_skip_count { .. } => { & ["Change the maximum skip count (`max_pip_skip_count`)." , "Can only be called by root." , "" , "# Arguments" , "* `max` skips before a PIP cannot be skipped by GC anymore." ,] } , Self :: set_active_pip_limit { .. } => { & ["Change the maximum number of active PIPs before community members cannot propose anything." , "Can only be called by root." , "" , "# Arguments" , "* `limit` of concurrent active PIPs." ,] } , Self :: propose { .. } => { & ["A network member creates a PIP by submitting a dispatchable which" , "changes the network in someway. A minimum deposit is required to open a new proposal." , "" , "# Arguments" , "* `proposer` is either a signing key or committee." , " Used to understand whether this is a committee proposal and verified against `origin`." , "* `proposal` a dispatchable call" , "* `deposit` minimum deposit value, which is ignored if `proposer` is a committee." , "* `url` a link to a website for proposal discussion" ,] } , Self :: vote { .. } => { & ["Vote either in favor (`aye_or_nay` == true) or against a PIP with `id`." , "The \"convinction\" or strength of the vote is given by `deposit`, which is reserved." , "" , "Note that `vote` is *not* additive." , "That is, `vote(id, true, 50)` followed by `vote(id, true, 40)`" , "will first reserve `50` and then refund `50 - 10`, ending up with `40` in deposit." , "To add atop of existing votes, you'll need `existing_deposit + addition`." , "" , "# Arguments" , "* `id`, proposal id" , "* `aye_or_nay`, a bool representing for or against vote" , "* `deposit`, the \"conviction\" with which the vote is made." , "" , "# Errors" , "* `NoSuchProposal` if `id` doesn't reference a valid PIP." , "* `NotFromCommunity` if proposal was made by a committee." , "* `IncorrectProposalState` if PIP isn't pending." , "* `InsufficientDeposit` if `origin` cannot reserve `deposit - old_deposit`." ,] } , Self :: approve_committee_proposal { .. } => { & ["Approves the pending committee PIP given by the `id`." , "" , "# Errors" , "* `BadOrigin` unless a GC voting majority executes this function." , "* `NoSuchProposal` if the PIP with `id` doesn't exist." , "* `IncorrectProposalState` if the proposal isn't pending." , "* `NotByCommittee` if the proposal isn't by a committee." ,] } , Self :: reject_proposal { .. } => { & ["Rejects the PIP given by the `id`, refunding any bonded funds," , "assuming it hasn't been cancelled or executed." , "Note that proposals scheduled-for-execution can also be rejected." , "" , "# Errors" , "* `BadOrigin` unless a GC voting majority executes this function." , "* `NoSuchProposal` if the PIP with `id` doesn't exist." , "* `IncorrectProposalState` if the proposal was cancelled or executed." ,] } , Self :: prune_proposal { .. } => { & ["Prune the PIP given by the `id`, refunding any funds not already refunded." , "The PIP may not be active" , "" , "This function is intended for storage garbage collection purposes." , "" , "# Errors" , "* `BadOrigin` unless a GC voting majority executes this function." , "* `NoSuchProposal` if the PIP with `id` doesn't exist." , "* `IncorrectProposalState` if the proposal is active." ,] } , Self :: reschedule_execution { .. } => { & ["Updates the execution schedule of the PIP given by `id`." , "" , "# Arguments" , "* `until` defines the future block where the enactment period will finished." , " `None` value means that enactment period is going to finish in the next block." , "" , "# Errors" , "* `RescheduleNotByReleaseCoordinator` unless triggered by release coordinator." , "* `IncorrectProposalState` unless the proposal was in a scheduled state." ,] } , Self :: clear_snapshot => { & ["Clears the snapshot and emits the event `SnapshotCleared`." , "" , "# Errors" , "* `NotACommitteeMember` - triggered when a non-GC-member executes the function." ,] } , Self :: snapshot => { & ["Takes a new snapshot of the current list of active && pending PIPs." , "The PIPs are then sorted into a priority queue based on each PIP's weight." , "" , "# Errors" , "* `NotACommitteeMember` - triggered when a non-GC-member executes the function." ,] } , Self :: enact_snapshot_results { .. } => { & ["Enacts `results` for the PIPs in the snapshot queue." , "The snapshot will be available for further enactments until it is cleared." , "" , "The `results` are encoded a list of `(id, result)` where `result` is applied to `id`." , "Note that the snapshot priority queue is encoded with the *lowest priority first*." , "so `results = [(id, Approve)]` will approve `SnapshotQueue[SnapshotQueue.len() - 1]`." , "" , "# Errors" , "* `BadOrigin` - unless a GC voting majority executes this function." , "* `CannotSkipPip` - a given PIP has already been skipped too many times." , "* `SnapshotResultTooLarge` - on len(results) > len(snapshot_queue)." , "* `SnapshotIdMismatch` - if:" , " ```text" , " ∃ (i ∈ 0..SnapshotQueue.len())." , " results[i].0 ≠SnapshotQueue[SnapshotQueue.len() - i].id" , " ```" , " This is protects against clearing queue while GC is voting." ,] } , Self :: execute_scheduled_pip { .. } => { & ["Internal dispatchable that handles execution of a PIP." ,] } , Self :: expire_scheduled_pip { .. } => { & ["Internal dispatchable that handles expiration of a PIP." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PipId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SnapshotMetadata<BlockNumber, AccountId> {
pub created_at: BlockNumber,
pub made_by: AccountId,
pub id: pallet_pips::SnapshotId,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Only the GC release coordinator is allowed to reschedule proposal execution."]
#[codec(index = 0u8)]
RescheduleNotByReleaseCoordinator,
#[doc = "The given dispatchable call is not valid for this proposal."]
#[doc = "The proposal must be from the community, but isn't."]
#[codec(index = 1u8)]
NotFromCommunity,
#[doc = "The given dispatchable call is not valid for this proposal."]
#[doc = "The proposal must be by community, but isn't."]
#[codec(index = 2u8)]
NotByCommittee,
#[doc = "The current number of active (pending | scheduled) PIPs exceed the maximum"]
#[doc = "and the proposal is not by a committee."]
#[codec(index = 3u8)]
TooManyActivePips,
#[doc = "Proposer specifies an incorrect deposit"]
#[codec(index = 4u8)]
IncorrectDeposit,
#[doc = "Proposer can't afford to lock minimum deposit"]
#[codec(index = 5u8)]
InsufficientDeposit,
#[doc = "The proposal does not exist."]
#[codec(index = 6u8)]
NoSuchProposal,
#[doc = "Not part of governance committee."]
#[codec(index = 7u8)]
NotACommitteeMember,
#[doc = "When a block number is less than current block number."]
#[codec(index = 8u8)]
InvalidFutureBlockNumber,
#[doc = "When number of votes overflows."]
#[codec(index = 9u8)]
NumberOfVotesExceeded,
#[doc = "When stake amount of a vote overflows."]
#[codec(index = 10u8)]
StakeAmountOfVotesExceeded,
#[doc = "Missing current DID"]
#[codec(index = 11u8)]
MissingCurrentIdentity,
#[doc = "Proposal is not in the correct state"]
#[codec(index = 12u8)]
IncorrectProposalState,
#[doc = "When enacting snapshot results, an unskippable PIP was skipped."]
#[codec(index = 13u8)]
CannotSkipPip,
#[doc = "Tried to enact results for the snapshot queue overflowing its length."]
#[codec(index = 14u8)]
SnapshotResultTooLarge,
#[doc = "Tried to enact result for PIP with id different from that at the position in the queue."]
#[codec(index = 15u8)]
SnapshotIdMismatch,
#[doc = "Execution of a scheduled proposal failed because it is missing."]
#[codec(index = 16u8)]
ScheduledProposalDoesntExist,
#[doc = "A proposal that is not in a scheduled state cannot be executed."]
#[codec(index = 17u8)]
ProposalNotInScheduledState,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::RescheduleNotByReleaseCoordinator => "Pips.RescheduleNotByReleaseCoordinator",
Self::NotFromCommunity => "Pips.NotFromCommunity",
Self::NotByCommittee => "Pips.NotByCommittee",
Self::TooManyActivePips => "Pips.TooManyActivePips",
Self::IncorrectDeposit => "Pips.IncorrectDeposit",
Self::InsufficientDeposit => "Pips.InsufficientDeposit",
Self::NoSuchProposal => "Pips.NoSuchProposal",
Self::NotACommitteeMember => "Pips.NotACommitteeMember",
Self::InvalidFutureBlockNumber => "Pips.InvalidFutureBlockNumber",
Self::NumberOfVotesExceeded => "Pips.NumberOfVotesExceeded",
Self::StakeAmountOfVotesExceeded => "Pips.StakeAmountOfVotesExceeded",
Self::MissingCurrentIdentity => "Pips.MissingCurrentIdentity",
Self::IncorrectProposalState => "Pips.IncorrectProposalState",
Self::CannotSkipPip => "Pips.CannotSkipPip",
Self::SnapshotResultTooLarge => "Pips.SnapshotResultTooLarge",
Self::SnapshotIdMismatch => "Pips.SnapshotIdMismatch",
Self::ScheduledProposalDoesntExist => "Pips.ScheduledProposalDoesntExist",
Self::ProposalNotInScheduledState => "Pips.ProposalNotInScheduledState",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: RescheduleNotByReleaseCoordinator => { & ["Only the GC release coordinator is allowed to reschedule proposal execution." ,] } , Self :: NotFromCommunity => { & ["The given dispatchable call is not valid for this proposal." , "The proposal must be from the community, but isn't." ,] } , Self :: NotByCommittee => { & ["The given dispatchable call is not valid for this proposal." , "The proposal must be by community, but isn't." ,] } , Self :: TooManyActivePips => { & ["The current number of active (pending | scheduled) PIPs exceed the maximum" , "and the proposal is not by a committee." ,] } , Self :: IncorrectDeposit => { & ["Proposer specifies an incorrect deposit" ,] } , Self :: InsufficientDeposit => { & ["Proposer can't afford to lock minimum deposit" ,] } , Self :: NoSuchProposal => { & ["The proposal does not exist." ,] } , Self :: NotACommitteeMember => { & ["Not part of governance committee." ,] } , Self :: InvalidFutureBlockNumber => { & ["When a block number is less than current block number." ,] } , Self :: NumberOfVotesExceeded => { & ["When number of votes overflows." ,] } , Self :: StakeAmountOfVotesExceeded => { & ["When stake amount of a vote overflows." ,] } , Self :: MissingCurrentIdentity => { & ["Missing current DID" ,] } , Self :: IncorrectProposalState => { & ["Proposal is not in the correct state" ,] } , Self :: CannotSkipPip => { & ["When enacting snapshot results, an unskippable PIP was skipped." ,] } , Self :: SnapshotResultTooLarge => { & ["Tried to enact results for the snapshot queue overflowing its length." ,] } , Self :: SnapshotIdMismatch => { & ["Tried to enact result for PIP with id different from that at the position in the queue." ,] } , Self :: ScheduledProposalDoesntExist => { & ["Execution of a scheduled proposal failed because it is missing." ,] } , Self :: ProposalNotInScheduledState => { & ["A proposal that is not in a scheduled state cannot be executed." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DepositInfo<AccountId> {
pub owner: AccountId,
pub amount: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Pip<Proposal, AccountId> {
pub id: pallet_pips::PipId,
pub proposal: Proposal,
pub state: pallet_pips::ProposalState,
pub proposer: pallet_pips::Proposer<AccountId>,
}
}
pub mod pallet_test_utils {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "A new mocked `InvestorUid` has been created for the given Identity."]
#[doc = "(Target DID, New InvestorUid)"]
#[codec(index = 0u8)]
MockInvestorUIDCreated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::cdd_id::InvestorUid,
),
#[doc = "Emits the `IdentityId` and the `AccountId` of the caller."]
#[doc = "(Caller DID, Caller account)"]
#[codec(index = 1u8)]
DidStatus(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "Shows the `DID` associated to the `AccountId`, and a flag indicates if that DID has a"]
#[doc = "valid CDD claim."]
#[doc = "(Target DID, Target Account, a valid CDD claim exists)"]
#[codec(index = 2u8)]
CddStatus(
Option<polymesh_primitives::identity_id::IdentityId>,
AccountId,
bool,
),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::MockInvestorUIDCreated(_, _) => "TestUtils.MockInvestorUIDCreated",
Self::DidStatus(_, _) => "TestUtils.DidStatus",
Self::CddStatus(_, _, _) => "TestUtils.CddStatus",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::MockInvestorUIDCreated(_, _) => &[
"A new mocked `InvestorUid` has been created for the given Identity.",
"(Target DID, New InvestorUid)",
],
Self::DidStatus(_, _) => &[
"Emits the `IdentityId` and the `AccountId` of the caller.",
"(Caller DID, Caller account)",
],
Self::CddStatus(_, _, _) => &[
"Shows the `DID` associated to the `AccountId`, and a flag indicates if that DID has a",
"valid CDD claim.",
"(Target DID, Target Account, a valid CDD claim exists)",
],
_ => &[""],
}
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Generates a new `IdentityID` for the caller, and issues a self-generated CDD claim."]
#[doc = ""]
#[doc = "The caller account will be the primary key of that identity."]
#[doc = "For each account of `secondary_keys`, a new `JoinIdentity` authorization is created, so"]
#[doc = "each of them will need to accept it before become part of this new `IdentityID`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AlreadyLinked` if the caller account or if any of the given `secondary_keys` has already linked to an `IdentityID`"]
#[doc = "- `SecondaryKeysContainPrimaryKey` if `secondary_keys` contains the caller account."]
#[doc = "- `DidAlreadyExists` if auto-generated DID already exists."]
#[codec(index = 0u8)]
register_did {
uid: polymesh_primitives::cdd_id::InvestorUid,
secondary_keys:
Vec<polymesh_primitives::secondary_key::SecondaryKey<::polymesh_api_client::AccountId>>,
},
#[doc = "Registers a new Identity for the `target_account` and issues a CDD claim to it."]
#[doc = "The Investor UID is generated deterministically by the hash of the generated DID and"]
#[doc = "then we fix it to be compliant with UUID v4."]
#[doc = ""]
#[doc = "# See"]
#[doc = "- [RFC 4122: UUID](https://tools.ietf.org/html/rfc4122)"]
#[doc = ""]
#[doc = "# Failure"]
#[doc = "- `origin` has to be an active CDD provider. Inactive CDD providers cannot add new"]
#[doc = "claims."]
#[doc = "- `target_account` (primary key of the new Identity) can be linked to just one and only"]
#[doc = "one identity."]
#[codec(index = 1u8)]
mock_cdd_register_did {
target_account: ::polymesh_api_client::AccountId,
},
#[doc = "Emits an event with caller's identity."]
#[codec(index = 2u8)]
get_my_did,
#[doc = "Emits an event with caller's identity and CDD status."]
#[codec(index = 3u8)]
get_cdd_of {
of: ::polymesh_api_client::AccountId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::register_did { .. } => "TestUtils.register_did",
Self::mock_cdd_register_did { .. } => "TestUtils.mock_cdd_register_did",
Self::get_my_did => "TestUtils.get_my_did",
Self::get_cdd_of { .. } => "TestUtils.get_cdd_of",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: register_did { .. } => { & ["Generates a new `IdentityID` for the caller, and issues a self-generated CDD claim." , "" , "The caller account will be the primary key of that identity." , "For each account of `secondary_keys`, a new `JoinIdentity` authorization is created, so" , "each of them will need to accept it before become part of this new `IdentityID`." , "" , "# Errors" , "- `AlreadyLinked` if the caller account or if any of the given `secondary_keys` has already linked to an `IdentityID`" , "- `SecondaryKeysContainPrimaryKey` if `secondary_keys` contains the caller account." , "- `DidAlreadyExists` if auto-generated DID already exists." ,] } , Self :: mock_cdd_register_did { .. } => { & ["Registers a new Identity for the `target_account` and issues a CDD claim to it." , "The Investor UID is generated deterministically by the hash of the generated DID and" , "then we fix it to be compliant with UUID v4." , "" , "# See" , "- [RFC 4122: UUID](https://tools.ietf.org/html/rfc4122)" , "" , "# Failure" , "- `origin` has to be an active CDD provider. Inactive CDD providers cannot add new" , "claims." , "- `target_account` (primary key of the new Identity) can be linked to just one and only" , "one identity." ,] } , Self :: get_my_did => { & ["Emits an event with caller's identity." ,] } , Self :: get_cdd_of { .. } => { & ["Emits an event with caller's identity and CDD status." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod sp_consensus_babe {
use super::*;
pub mod digests {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum NextConfigDescriptor {
#[codec(index = 1u8)]
V1 {
c: (u64, u64),
allowed_slots: sp_consensus_babe::AllowedSlots,
},
}
}
pub mod app {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub sp_core::sr25519::Public);
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AllowedSlots {
#[codec(index = 0u8)]
PrimarySlots,
#[codec(index = 1u8)]
PrimaryAndSecondaryPlainSlots,
#[codec(index = 2u8)]
PrimaryAndSecondaryVRFSlots,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BabeEpochConfiguration {
pub c: (u64, u64),
pub allowed_slots: sp_consensus_babe::AllowedSlots,
}
}
pub mod pallet_committee {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PolymeshVotes<BlockNumber> {
pub index: BlockNumber,
pub ayes: Vec<polymesh_primitives::identity_id::IdentityId>,
pub nays: Vec<polymesh_primitives::identity_id::IdentityId>,
pub expiry: polymesh_common_utilities::MaybeBlock<BlockNumber>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance3();
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Hash, BlockNumber, I> {
#[doc = "A motion (given hash) has been proposed (by given account) with a threshold (given `MemberCount`)."]
#[doc = "Parameters: caller DID, proposal index, proposal hash."]
#[codec(index = 0u8)]
Proposed(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
Hash,
),
#[doc = "A motion (given hash) has been voted on by given account, leaving"]
#[doc = "a tally (yes votes, no votes and total seats given respectively as `MemberCount`)."]
#[doc = "caller DID, Proposal index, Proposal hash, current vote, yay vote count, nay vote count, total seats."]
#[codec(index = 1u8)]
Voted(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
Hash,
bool,
BlockNumber,
BlockNumber,
BlockNumber,
),
#[doc = "A vote on a motion (given hash) has been retracted."]
#[doc = "caller DID, ProposalIndex, Proposal hash, vote that was retracted"]
#[codec(index = 2u8)]
VoteRetracted(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
Hash,
bool,
),
#[doc = "Final votes on a motion (given hash)"]
#[doc = "caller DID, ProposalIndex, Proposal hash, yes voters, no voter"]
#[codec(index = 3u8)]
FinalVotes(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
Hash,
Vec<polymesh_primitives::identity_id::IdentityId>,
Vec<polymesh_primitives::identity_id::IdentityId>,
),
#[doc = "A motion was approved by the required threshold with the following"]
#[doc = "tally (yes votes, no votes and total seats given respectively as `MemberCount`)."]
#[doc = "Parameters: caller DID, proposal hash, yay vote count, nay vote count, total seats."]
#[codec(index = 4u8)]
Approved(
polymesh_primitives::identity_id::IdentityId,
Hash,
BlockNumber,
BlockNumber,
BlockNumber,
),
#[doc = "A motion was rejected by the required threshold with the following"]
#[doc = "tally (yes votes, no votes and total seats given respectively as `MemberCount`)."]
#[doc = "Parameters: caller DID, proposal hash, yay vote count, nay vote count, total seats."]
#[codec(index = 5u8)]
Rejected(
polymesh_primitives::identity_id::IdentityId,
Hash,
BlockNumber,
BlockNumber,
BlockNumber,
),
#[doc = "A motion was executed; `DispatchResult` is `Ok(())` if returned without error."]
#[doc = "Parameters: caller DID, proposal hash, result of proposal dispatch."]
#[codec(index = 6u8)]
Executed(
polymesh_primitives::identity_id::IdentityId,
Hash,
Result<(), sp_runtime::DispatchError>,
),
#[doc = "Release coordinator has been updated."]
#[doc = "Parameters: caller DID, DID of the release coordinator."]
#[codec(index = 7u8)]
ReleaseCoordinatorUpdated(
polymesh_primitives::identity_id::IdentityId,
Option<polymesh_primitives::identity_id::IdentityId>,
),
#[doc = "Proposal expiry time has been updated."]
#[doc = "Parameters: caller DID, new expiry time (if any)."]
#[codec(index = 8u8)]
ExpiresAfterUpdated(
polymesh_primitives::identity_id::IdentityId,
polymesh_common_utilities::MaybeBlock<BlockNumber>,
),
#[doc = "Voting threshold has been updated"]
#[doc = "Parameters: caller DID, numerator, denominator"]
#[codec(index = 9u8)]
VoteThresholdUpdated(
polymesh_primitives::identity_id::IdentityId,
BlockNumber,
BlockNumber,
),
PhantomDataVariant(core::marker::PhantomData<I>),
}
impl<Hash, BlockNumber, I> RawEvent<Hash, BlockNumber, I> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Proposed(_, _, _) => "UpgradeCommittee.Proposed",
Self::Voted(_, _, _, _, _, _, _) => "UpgradeCommittee.Voted",
Self::VoteRetracted(_, _, _, _) => "UpgradeCommittee.VoteRetracted",
Self::FinalVotes(_, _, _, _, _) => "UpgradeCommittee.FinalVotes",
Self::Approved(_, _, _, _, _) => "UpgradeCommittee.Approved",
Self::Rejected(_, _, _, _, _) => "UpgradeCommittee.Rejected",
Self::Executed(_, _, _) => "UpgradeCommittee.Executed",
Self::ReleaseCoordinatorUpdated(_, _) => "UpgradeCommittee.ReleaseCoordinatorUpdated",
Self::ExpiresAfterUpdated(_, _) => "UpgradeCommittee.ExpiresAfterUpdated",
Self::VoteThresholdUpdated(_, _, _) => "UpgradeCommittee.VoteThresholdUpdated",
_ => "Unknown",
}
}
}
impl<Hash, BlockNumber, I> ::polymesh_api_client::EnumInfo for RawEvent<Hash, BlockNumber, I> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Proposed (_ , _ , _) => { & ["A motion (given hash) has been proposed (by given account) with a threshold (given `MemberCount`)." , "Parameters: caller DID, proposal index, proposal hash." ,] } , Self :: Voted (_ , _ , _ , _ , _ , _ , _) => { & ["A motion (given hash) has been voted on by given account, leaving" , "a tally (yes votes, no votes and total seats given respectively as `MemberCount`)." , "caller DID, Proposal index, Proposal hash, current vote, yay vote count, nay vote count, total seats." ,] } , Self :: VoteRetracted (_ , _ , _ , _) => { & ["A vote on a motion (given hash) has been retracted." , "caller DID, ProposalIndex, Proposal hash, vote that was retracted" ,] } , Self :: FinalVotes (_ , _ , _ , _ , _) => { & ["Final votes on a motion (given hash)" , "caller DID, ProposalIndex, Proposal hash, yes voters, no voter" ,] } , Self :: Approved (_ , _ , _ , _ , _) => { & ["A motion was approved by the required threshold with the following" , "tally (yes votes, no votes and total seats given respectively as `MemberCount`)." , "Parameters: caller DID, proposal hash, yay vote count, nay vote count, total seats." ,] } , Self :: Rejected (_ , _ , _ , _ , _) => { & ["A motion was rejected by the required threshold with the following" , "tally (yes votes, no votes and total seats given respectively as `MemberCount`)." , "Parameters: caller DID, proposal hash, yay vote count, nay vote count, total seats." ,] } , Self :: Executed (_ , _ , _) => { & ["A motion was executed; `DispatchResult` is `Ok(())` if returned without error." , "Parameters: caller DID, proposal hash, result of proposal dispatch." ,] } , Self :: ReleaseCoordinatorUpdated (_ , _) => { & ["Release coordinator has been updated." , "Parameters: caller DID, DID of the release coordinator." ,] } , Self :: ExpiresAfterUpdated (_ , _) => { & ["Proposal expiry time has been updated." , "Parameters: caller DID, new expiry time (if any)." ,] } , Self :: VoteThresholdUpdated (_ , _ , _) => { & ["Voting threshold has been updated" , "Parameters: caller DID, numerator, denominator" ,] } , _ => & [""] , }
}
}
impl<Hash, BlockNumber, I> From<RawEvent<Hash, BlockNumber, I>> for &'static str {
fn from(v: RawEvent<Hash, BlockNumber, I>) -> Self {
v.as_static_str()
}
}
impl<Hash, BlockNumber, I> From<&RawEvent<Hash, BlockNumber, I>> for &'static str {
fn from(v: &RawEvent<Hash, BlockNumber, I>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Duplicate votes are not allowed."]
#[codec(index = 0u8)]
DuplicateVote,
#[doc = "A DID isn't part of the committee."]
#[doc = "The DID may either be a caller or some other context."]
#[codec(index = 1u8)]
NotAMember,
#[doc = "No such proposal."]
#[codec(index = 2u8)]
NoSuchProposal,
#[doc = "Proposal exists, but it has expired."]
#[codec(index = 3u8)]
ProposalExpired,
#[doc = "Duplicate proposal."]
#[codec(index = 4u8)]
DuplicateProposal,
#[doc = "Mismatched voting index."]
#[codec(index = 5u8)]
MismatchedVotingIndex,
#[doc = "Proportion must be a rational number."]
#[codec(index = 6u8)]
InvalidProportion,
#[doc = "First vote on a proposal creates it, so it must be an approval."]
#[doc = "All proposals are motions to execute something as \"GC majority\"."]
#[doc = "To reject e.g., a PIP, a motion to reject should be *approved*."]
#[codec(index = 7u8)]
FirstVoteReject,
#[doc = "Maximum number of proposals has been reached."]
#[codec(index = 8u8)]
ProposalsLimitReached,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::DuplicateVote => "UpgradeCommittee.DuplicateVote",
Self::NotAMember => "UpgradeCommittee.NotAMember",
Self::NoSuchProposal => "UpgradeCommittee.NoSuchProposal",
Self::ProposalExpired => "UpgradeCommittee.ProposalExpired",
Self::DuplicateProposal => "UpgradeCommittee.DuplicateProposal",
Self::MismatchedVotingIndex => "UpgradeCommittee.MismatchedVotingIndex",
Self::InvalidProportion => "UpgradeCommittee.InvalidProportion",
Self::FirstVoteReject => "UpgradeCommittee.FirstVoteReject",
Self::ProposalsLimitReached => "UpgradeCommittee.ProposalsLimitReached",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::DuplicateVote => &["Duplicate votes are not allowed."],
Self::NotAMember => &[
"A DID isn't part of the committee.",
"The DID may either be a caller or some other context.",
],
Self::NoSuchProposal => &["No such proposal."],
Self::ProposalExpired => &["Proposal exists, but it has expired."],
Self::DuplicateProposal => &["Duplicate proposal."],
Self::MismatchedVotingIndex => &["Mismatched voting index."],
Self::InvalidProportion => &["Proportion must be a rational number."],
Self::FirstVoteReject => &[
"First vote on a proposal creates it, so it must be an approval.",
"All proposals are motions to execute something as \"GC majority\".",
"To reject e.g., a PIP, a motion to reject should be *approved*.",
],
Self::ProposalsLimitReached => &["Maximum number of proposals has been reached."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance1();
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawOrigin<AccountId, I> {
#[codec(index = 0u8)]
Endorsed,
PhantomDataVariant(core::marker::PhantomData<(AccountId, I)>),
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Change the vote threshold the determines the winning proposal."]
#[doc = "For e.g., for a simple majority use (1, 2) which represents the in-equation \">= 1/2\"."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `n` - Numerator of the fraction representing vote threshold."]
#[doc = "* `d` - Denominator of the fraction representing vote threshold."]
#[codec(index = 0u8)]
set_vote_threshold { n: u32, d: u32 },
#[doc = "Changes the release coordinator."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - The DID of the new release coordinator."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, If the new coordinator `id` is not part of the committee."]
#[codec(index = 1u8)]
set_release_coordinator {
id: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Changes the time after which a proposal expires."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` - The new expiry time."]
#[codec(index = 2u8)]
set_expires_after {
expiry: polymesh_common_utilities::MaybeBlock<u32>,
},
#[doc = "Proposes to the committee that `call` should be executed in its name."]
#[doc = "Alternatively, if the hash of `call` has already been recorded, i.e., already proposed,"]
#[doc = "then this call counts as a vote, i.e., as if `vote_by_hash` was called."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = ""]
#[doc = "The weight of this dispatchable is that of `call` as well as the complexity"]
#[doc = "for recording the vote itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `approve` - is this an approving vote?"]
#[doc = " If the proposal doesn't exist, passing `false` will result in error `FirstVoteReject`."]
#[doc = "* `call` - the call to propose for execution."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `FirstVoteReject`, if `call` hasn't been proposed and `approve == false`."]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
#[codec(index = 3u8)]
vote_or_propose {
approve: bool,
call: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
},
#[doc = "Votes `approve`ingly (or not, if `false`)"]
#[doc = "on an existing `proposal` given by its hash, `index`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposal` - A hash of the proposal to be voted on."]
#[doc = "* `index` - The proposal index."]
#[doc = "* `approve` - If `true` than this is a `for` vote, and `against` otherwise."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
#[codec(index = 4u8)]
vote {
proposal: primitive_types::H256,
index: u32,
approve: bool,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_vote_threshold { .. } => "UpgradeCommittee.set_vote_threshold",
Self::set_release_coordinator { .. } => "UpgradeCommittee.set_release_coordinator",
Self::set_expires_after { .. } => "UpgradeCommittee.set_expires_after",
Self::vote_or_propose { .. } => "UpgradeCommittee.vote_or_propose",
Self::vote { .. } => "UpgradeCommittee.vote",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_vote_threshold { .. } => { & ["Change the vote threshold the determines the winning proposal." , "For e.g., for a simple majority use (1, 2) which represents the in-equation \">= 1/2\"." , "" , "# Arguments" , "* `n` - Numerator of the fraction representing vote threshold." , "* `d` - Denominator of the fraction representing vote threshold." ,] } , Self :: set_release_coordinator { .. } => { & ["Changes the release coordinator." , "" , "# Arguments" , "* `id` - The DID of the new release coordinator." , "" , "# Errors" , "* `NotAMember`, If the new coordinator `id` is not part of the committee." ,] } , Self :: set_expires_after { .. } => { & ["Changes the time after which a proposal expires." , "" , "# Arguments" , "* `expiry` - The new expiry time." ,] } , Self :: vote_or_propose { .. } => { & ["Proposes to the committee that `call` should be executed in its name." , "Alternatively, if the hash of `call` has already been recorded, i.e., already proposed," , "then this call counts as a vote, i.e., as if `vote_by_hash` was called." , "" , "# Weight" , "" , "The weight of this dispatchable is that of `call` as well as the complexity" , "for recording the vote itself." , "" , "# Arguments" , "* `approve` - is this an approving vote?" , " If the proposal doesn't exist, passing `false` will result in error `FirstVoteReject`." , "* `call` - the call to propose for execution." , "" , "# Errors" , "* `FirstVoteReject`, if `call` hasn't been proposed and `approve == false`." , "* `NotAMember`, if the `origin` is not a member of this committee." ,] } , Self :: vote { .. } => { & ["Votes `approve`ingly (or not, if `false`)" , "on an existing `proposal` given by its hash, `index`." , "" , "# Arguments" , "* `proposal` - A hash of the proposal to be voted on." , "* `index` - The proposal index." , "* `approve` - If `true` than this is a `for` vote, and `against` otherwise." , "" , "# Errors" , "* `NotAMember`, if the `origin` is not a member of this committee." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance4();
}
pub mod sp_arithmetic {
use super::*;
pub mod per_things {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Perbill(pub u32);
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Permill(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Percent(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PerU16(pub u16);
}
pub mod fixed_point {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct FixedU128(pub u128);
}
}
pub mod pallet_balances {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BalanceLock<Balance> {
pub id: [u8; 8usize],
pub amount: Balance,
pub reasons: polymesh_common_utilities::traits::balances::Reasons,
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Transfer some liquid free balance to another account."]
#[doc = ""]
#[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."]
#[doc = "It will decrease the total issuance of the system by the `TransferFee`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Dependent on arguments but not critical, given proper implementations for"]
#[doc = " input config types. See related functions below."]
#[doc = "- It contains a limited number of reads and writes internally and no complex computation."]
#[doc = ""]
#[doc = "Related functions:"]
#[doc = ""]
#[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."]
#[doc = " - Transferring balances to accounts that did not exist before will cause"]
#[doc = " `T::OnNewAccount::on_new_account` to be called."]
#[doc = "---------------------------------"]
#[doc = "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)"]
#[doc = "- DB Weight: 1 Read and 1 Write to destination account."]
#[doc = "- Origin account is already in memory, so no DB operations for them."]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
transfer {
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
value: u128,
},
#[doc = "Transfer the native currency with the help of identifier string"]
#[doc = "this functionality can help to differentiate the transfers."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)"]
#[doc = "- DB Weight: 1 Read and 1 Write to destination account."]
#[doc = "- Origin account is already in memory, so no DB operations for them."]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
transfer_with_memo {
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
value: u128,
memo: Option<polymesh_common_utilities::traits::balances::Memo>,
},
#[doc = "Move some POLYX from balance of self to balance of BRR."]
#[codec(index = 2u8)]
deposit_block_reward_reserve_balance {
#[codec(compact)]
value: u128,
},
#[doc = "Set the balances of a given account."]
#[doc = ""]
#[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"]
#[doc = "also decrease the total issuance of the system (`TotalIssuance`)."]
#[doc = ""]
#[doc = "The dispatch origin for this call is `root`."]
#[codec(index = 3u8)]
set_balance {
who: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
new_free: u128,
#[codec(compact)]
new_reserved: u128,
},
#[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"]
#[doc = "specified."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Same as transfer, but additional read and write because the source account is"]
#[doc = " not assumed to be in the overlay."]
#[doc = "# </weight>"]
#[codec(index = 4u8)]
force_transfer {
source: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
value: u128,
},
#[doc = "Burns the given amount of tokens from the caller's free, unlocked balance."]
#[codec(index = 5u8)]
burn_account_balance { amount: u128 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::transfer { .. } => "Balances.transfer",
Self::transfer_with_memo { .. } => "Balances.transfer_with_memo",
Self::deposit_block_reward_reserve_balance { .. } => {
"Balances.deposit_block_reward_reserve_balance"
}
Self::set_balance { .. } => "Balances.set_balance",
Self::force_transfer { .. } => "Balances.force_transfer",
Self::burn_account_balance { .. } => "Balances.burn_account_balance",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: transfer { .. } => { & ["Transfer some liquid free balance to another account." , "" , "`transfer` will set the `FreeBalance` of the sender and receiver." , "It will decrease the total issuance of the system by the `TransferFee`." , "" , "The dispatch origin for this call must be `Signed` by the transactor." , "" , "# <weight>" , "- Dependent on arguments but not critical, given proper implementations for" , " input config types. See related functions below." , "- It contains a limited number of reads and writes internally and no complex computation." , "" , "Related functions:" , "" , " - `ensure_can_withdraw` is always called internally but has a bounded complexity." , " - Transferring balances to accounts that did not exist before will cause" , " `T::OnNewAccount::on_new_account` to be called." , "---------------------------------" , "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)" , "- DB Weight: 1 Read and 1 Write to destination account." , "- Origin account is already in memory, so no DB operations for them." , "# </weight>" ,] } , Self :: transfer_with_memo { .. } => { & ["Transfer the native currency with the help of identifier string" , "this functionality can help to differentiate the transfers." , "" , "# <weight>" , "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)" , "- DB Weight: 1 Read and 1 Write to destination account." , "- Origin account is already in memory, so no DB operations for them." , "# </weight>" ,] } , Self :: deposit_block_reward_reserve_balance { .. } => { & ["Move some POLYX from balance of self to balance of BRR." ,] } , Self :: set_balance { .. } => { & ["Set the balances of a given account." , "" , "This will alter `FreeBalance` and `ReservedBalance` in storage. it will" , "also decrease the total issuance of the system (`TotalIssuance`)." , "" , "The dispatch origin for this call is `root`." ,] } , Self :: force_transfer { .. } => { & ["Exactly as `transfer`, except the origin must be root and the source account may be" , "specified." , "" , "# <weight>" , "- Same as transfer, but additional read and write because the source account is" , " not assumed to be in the overlay." , "# </weight>" ,] } , Self :: burn_account_balance { .. } => { & ["Burns the given amount of tokens from the caller's free, unlocked balance." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Account liquidity restrictions prevent withdrawal"]
#[codec(index = 0u8)]
LiquidityRestrictions,
#[doc = "Got an overflow after adding"]
#[codec(index = 1u8)]
Overflow,
#[doc = "Balance too low to send value"]
#[codec(index = 2u8)]
InsufficientBalance,
#[doc = "Value too low to create account due to existential deposit"]
#[codec(index = 3u8)]
ExistentialDeposit,
#[doc = "Receiver does not have a valid CDD"]
#[codec(index = 4u8)]
ReceiverCddMissing,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::LiquidityRestrictions => "Balances.LiquidityRestrictions",
Self::Overflow => "Balances.Overflow",
Self::InsufficientBalance => "Balances.InsufficientBalance",
Self::ExistentialDeposit => "Balances.ExistentialDeposit",
Self::ReceiverCddMissing => "Balances.ReceiverCddMissing",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::LiquidityRestrictions => &["Account liquidity restrictions prevent withdrawal"],
Self::Overflow => &["Got an overflow after adding"],
Self::InsufficientBalance => &["Balance too low to send value"],
Self::ExistentialDeposit => {
&["Value too low to create account due to existential deposit"]
}
Self::ReceiverCddMissing => &["Receiver does not have a valid CDD"],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_session {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Sets the session key(s) of the function caller to `keys`."]
#[doc = "Allows an account to set its session key prior to becoming a validator."]
#[doc = "This doesn't take effect until the next session."]
#[doc = ""]
#[doc = "The dispatch origin of this function must be signed."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(1)`. Actual cost depends on the number of length of"]
#[doc = " `T::Keys::key_ids()` which is fixed."]
#[doc = "- DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`"]
#[doc = "- DbWrites: `origin account`, `NextKeys`"]
#[doc = "- DbReads per key id: `KeyOwner`"]
#[doc = "- DbWrites per key id: `KeyOwner`"]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
set_keys {
keys: polymesh_runtime_develop::runtime::SessionKeys,
proof: Vec<u8>,
},
#[doc = "Removes any session key(s) of the function caller."]
#[doc = ""]
#[doc = "This doesn't take effect until the next session."]
#[doc = ""]
#[doc = "The dispatch origin of this function must be Signed and the account must be either be"]
#[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"]
#[doc = "means being a controller account) or directly convertible into a validator ID (which"]
#[doc = "usually means being a stash account)."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(1)` in number of key types. Actual cost depends on the number of length"]
#[doc = " of `T::Keys::key_ids()` which is fixed."]
#[doc = "- DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`"]
#[doc = "- DbWrites: `NextKeys`, `origin account`"]
#[doc = "- DbWrites per key id: `KeyOwner`"]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
purge_keys,
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_keys { .. } => "Session.set_keys",
Self::purge_keys => "Session.purge_keys",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_keys { .. } => { & ["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." , "" , "# <weight>" , "- Complexity: `O(1)`. Actual cost depends on the number of length of" , " `T::Keys::key_ids()` which is fixed." , "- DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`" , "- DbWrites: `origin account`, `NextKeys`" , "- DbReads per key id: `KeyOwner`" , "- DbWrites per key id: `KeyOwner`" , "# </weight>" ,] } , Self :: purge_keys => { & ["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)." , "" , "# <weight>" , "- Complexity: `O(1)` in number of key types. Actual cost depends on the number of length" , " of `T::Keys::key_ids()` which is fixed." , "- DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`" , "- DbWrites: `NextKeys`, `origin account`" , "- DbWrites per key id: `KeyOwner`" , "# </weight>" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "New session has happened. Note that the argument is the session index, not the"]
#[doc = "block number as the type might suggest."]
#[codec(index = 0u8)]
NewSession { session_index: u32 },
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NewSession { .. } => "Session.NewSession",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::NewSession { .. } => &[
"New session has happened. Note that the argument is the session index, not the",
"block number as the type might suggest.",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[doc = "Error for the session pallet."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Invalid ownership proof."]
#[codec(index = 0u8)]
InvalidProof,
#[doc = "No associated validator ID for account."]
#[codec(index = 1u8)]
NoAssociatedValidatorId,
#[doc = "Registered duplicate key."]
#[codec(index = 2u8)]
DuplicatedKey,
#[doc = "No keys are associated with this account."]
#[codec(index = 3u8)]
NoKeys,
#[doc = "Key setting account is not live, so it's impossible to associate keys."]
#[codec(index = 4u8)]
NoAccount,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidProof => "Session.InvalidProof",
Self::NoAssociatedValidatorId => "Session.NoAssociatedValidatorId",
Self::DuplicatedKey => "Session.DuplicatedKey",
Self::NoKeys => "Session.NoKeys",
Self::NoAccount => "Session.NoAccount",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidProof => &["Invalid ownership proof."],
Self::NoAssociatedValidatorId => &["No associated validator ID for account."],
Self::DuplicatedKey => &["Registered duplicate key."],
Self::NoKeys => &["No keys are associated with this account."],
Self::NoAccount => {
&["Key setting account is not live, so it's impossible to associate keys."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
}
pub mod polymesh_primitives {
use super::*;
pub mod asset_metadata {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataDescription(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataGlobalKey(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataValue(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataLocalKey(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetMetadataKey {
#[codec(index = 0u8)]
Global(polymesh_primitives::asset_metadata::AssetMetadataGlobalKey),
#[codec(index = 1u8)]
Local(polymesh_primitives::asset_metadata::AssetMetadataLocalKey),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataValueDetail<Moment> {
pub expire: Option<Moment>,
pub lock_status: polymesh_primitives::asset_metadata::AssetMetadataLockStatus<Moment>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetMetadataLockStatus<Moment> {
#[codec(index = 0u8)]
Unlocked,
#[codec(index = 1u8)]
Locked,
#[codec(index = 2u8)]
LockedUntil(Moment),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataSpec {
pub url: Option<polymesh_primitives::Url>,
pub description: Option<polymesh_primitives::asset_metadata::AssetMetadataDescription>,
pub type_def: Option<Vec<u8>>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetMetadataName(pub Vec<u8>);
}
pub mod ticker {
use super::*;
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Ticker(pub [u8; 12usize]);
}
pub mod authorization {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AuthorizationData<AccountId> {
#[codec(index = 0u8)]
AttestPrimaryKeyRotation(polymesh_primitives::identity_id::IdentityId),
#[codec(index = 1u8)]
RotatePrimaryKey,
#[codec(index = 2u8)]
TransferTicker(polymesh_primitives::ticker::Ticker),
#[codec(index = 3u8)]
AddMultiSigSigner(AccountId),
#[codec(index = 4u8)]
TransferAssetOwnership(polymesh_primitives::ticker::Ticker),
#[codec(index = 5u8)]
JoinIdentity(polymesh_primitives::secondary_key::Permissions),
#[codec(index = 6u8)]
PortfolioCustody(polymesh_primitives::identity_id::PortfolioId),
#[codec(index = 7u8)]
BecomeAgent(
polymesh_primitives::ticker::Ticker,
polymesh_primitives::agent::AgentGroup,
),
#[codec(index = 8u8)]
AddRelayerPayingKey(AccountId, AccountId, u128),
#[codec(index = 9u8)]
RotatePrimaryKeyToSecondary(polymesh_primitives::secondary_key::Permissions),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Authorization<AccountId, Moment> {
pub authorization_data: polymesh_primitives::authorization::AuthorizationData<AccountId>,
pub authorized_by: polymesh_primitives::identity_id::IdentityId,
pub expiry: Option<Moment>,
pub auth_id: Moment,
pub count: u32,
}
}
pub mod asset {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct FundingRoundName(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CustomAssetTypeId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetName(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetType {
#[codec(index = 0u8)]
EquityCommon,
#[codec(index = 1u8)]
EquityPreferred,
#[codec(index = 2u8)]
Commodity,
#[codec(index = 3u8)]
FixedIncome,
#[codec(index = 4u8)]
REIT,
#[codec(index = 5u8)]
Fund,
#[codec(index = 6u8)]
RevenueShareAgreement,
#[codec(index = 7u8)]
StructuredProduct,
#[codec(index = 8u8)]
Derivative,
#[codec(index = 9u8)]
Custom(polymesh_primitives::asset::CustomAssetTypeId),
#[codec(index = 10u8)]
StableCoin,
}
}
pub mod secondary_key {
use super::*;
pub mod v1 {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SecondaryKey<AccountId> {
pub signer: polymesh_primitives::secondary_key::Signatory<AccountId>,
pub permissions: polymesh_primitives::secondary_key::Permissions,
}
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PalletPermissions {
pub pallet_name: polymesh_primitives::PalletName,
pub dispatchable_names:
polymesh_primitives::subset::SubsetRestriction<polymesh_primitives::DispatchableName>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum KeyRecord<AccountId> {
#[codec(index = 0u8)]
PrimaryKey(polymesh_primitives::identity_id::IdentityId),
#[codec(index = 1u8)]
SecondaryKey(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::secondary_key::Permissions,
),
#[codec(index = 2u8)]
MultiSigSignerKey(AccountId),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Permissions {
pub asset:
polymesh_primitives::subset::SubsetRestriction<polymesh_primitives::ticker::Ticker>,
pub extrinsic: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
pub portfolio: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::identity_id::PortfolioId,
>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SecondaryKey<AccountId> {
pub key: AccountId,
pub permissions: polymesh_primitives::secondary_key::Permissions,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Signatory<AccountId> {
#[codec(index = 0u8)]
Identity(polymesh_primitives::identity_id::IdentityId),
#[codec(index = 1u8)]
Account(AccountId),
}
}
pub mod asset_identifier {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetIdentifier {
#[codec(index = 0u8)]
CUSIP([u8; 9usize]),
#[codec(index = 1u8)]
CINS([u8; 9usize]),
#[codec(index = 2u8)]
ISIN([u8; 12usize]),
#[codec(index = 3u8)]
LEI([u8; 20usize]),
#[codec(index = 4u8)]
FIGI([u8; 12usize]),
}
}
pub mod jurisdiction {
use super::*;
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum CountryCode {
#[codec(index = 0u8)]
AF,
#[codec(index = 1u8)]
AX,
#[codec(index = 2u8)]
AL,
#[codec(index = 3u8)]
DZ,
#[codec(index = 4u8)]
AS,
#[codec(index = 5u8)]
AD,
#[codec(index = 6u8)]
AO,
#[codec(index = 7u8)]
AI,
#[codec(index = 8u8)]
AQ,
#[codec(index = 9u8)]
AG,
#[codec(index = 10u8)]
AR,
#[codec(index = 11u8)]
AM,
#[codec(index = 12u8)]
AW,
#[codec(index = 13u8)]
AU,
#[codec(index = 14u8)]
AT,
#[codec(index = 15u8)]
AZ,
#[codec(index = 16u8)]
BS,
#[codec(index = 17u8)]
BH,
#[codec(index = 18u8)]
BD,
#[codec(index = 19u8)]
BB,
#[codec(index = 20u8)]
BY,
#[codec(index = 21u8)]
BE,
#[codec(index = 22u8)]
BZ,
#[codec(index = 23u8)]
BJ,
#[codec(index = 24u8)]
BM,
#[codec(index = 25u8)]
BT,
#[codec(index = 26u8)]
BO,
#[codec(index = 27u8)]
BA,
#[codec(index = 28u8)]
BW,
#[codec(index = 29u8)]
BV,
#[codec(index = 30u8)]
BR,
#[codec(index = 31u8)]
VG,
#[codec(index = 32u8)]
IO,
#[codec(index = 33u8)]
BN,
#[codec(index = 34u8)]
BG,
#[codec(index = 35u8)]
BF,
#[codec(index = 36u8)]
BI,
#[codec(index = 37u8)]
KH,
#[codec(index = 38u8)]
CM,
#[codec(index = 39u8)]
CA,
#[codec(index = 40u8)]
CV,
#[codec(index = 41u8)]
KY,
#[codec(index = 42u8)]
CF,
#[codec(index = 43u8)]
TD,
#[codec(index = 44u8)]
CL,
#[codec(index = 45u8)]
CN,
#[codec(index = 46u8)]
HK,
#[codec(index = 47u8)]
MO,
#[codec(index = 48u8)]
CX,
#[codec(index = 49u8)]
CC,
#[codec(index = 50u8)]
CO,
#[codec(index = 51u8)]
KM,
#[codec(index = 52u8)]
CG,
#[codec(index = 53u8)]
CD,
#[codec(index = 54u8)]
CK,
#[codec(index = 55u8)]
CR,
#[codec(index = 56u8)]
CI,
#[codec(index = 57u8)]
HR,
#[codec(index = 58u8)]
CU,
#[codec(index = 59u8)]
CY,
#[codec(index = 60u8)]
CZ,
#[codec(index = 61u8)]
DK,
#[codec(index = 62u8)]
DJ,
#[codec(index = 63u8)]
DM,
#[codec(index = 64u8)]
DO,
#[codec(index = 65u8)]
EC,
#[codec(index = 66u8)]
EG,
#[codec(index = 67u8)]
SV,
#[codec(index = 68u8)]
GQ,
#[codec(index = 69u8)]
ER,
#[codec(index = 70u8)]
EE,
#[codec(index = 71u8)]
ET,
#[codec(index = 72u8)]
FK,
#[codec(index = 73u8)]
FO,
#[codec(index = 74u8)]
FJ,
#[codec(index = 75u8)]
FI,
#[codec(index = 76u8)]
FR,
#[codec(index = 77u8)]
GF,
#[codec(index = 78u8)]
PF,
#[codec(index = 79u8)]
TF,
#[codec(index = 80u8)]
GA,
#[codec(index = 81u8)]
GM,
#[codec(index = 82u8)]
GE,
#[codec(index = 83u8)]
DE,
#[codec(index = 84u8)]
GH,
#[codec(index = 85u8)]
GI,
#[codec(index = 86u8)]
GR,
#[codec(index = 87u8)]
GL,
#[codec(index = 88u8)]
GD,
#[codec(index = 89u8)]
GP,
#[codec(index = 90u8)]
GU,
#[codec(index = 91u8)]
GT,
#[codec(index = 92u8)]
GG,
#[codec(index = 93u8)]
GN,
#[codec(index = 94u8)]
GW,
#[codec(index = 95u8)]
GY,
#[codec(index = 96u8)]
HT,
#[codec(index = 97u8)]
HM,
#[codec(index = 98u8)]
VA,
#[codec(index = 99u8)]
HN,
#[codec(index = 100u8)]
HU,
#[codec(index = 101u8)]
IS,
#[codec(index = 102u8)]
IN,
#[codec(index = 103u8)]
ID,
#[codec(index = 104u8)]
IR,
#[codec(index = 105u8)]
IQ,
#[codec(index = 106u8)]
IE,
#[codec(index = 107u8)]
IM,
#[codec(index = 108u8)]
IL,
#[codec(index = 109u8)]
IT,
#[codec(index = 110u8)]
JM,
#[codec(index = 111u8)]
JP,
#[codec(index = 112u8)]
JE,
#[codec(index = 113u8)]
JO,
#[codec(index = 114u8)]
KZ,
#[codec(index = 115u8)]
KE,
#[codec(index = 116u8)]
KI,
#[codec(index = 117u8)]
KP,
#[codec(index = 118u8)]
KR,
#[codec(index = 119u8)]
KW,
#[codec(index = 120u8)]
KG,
#[codec(index = 121u8)]
LA,
#[codec(index = 122u8)]
LV,
#[codec(index = 123u8)]
LB,
#[codec(index = 124u8)]
LS,
#[codec(index = 125u8)]
LR,
#[codec(index = 126u8)]
LY,
#[codec(index = 127u8)]
LI,
#[codec(index = 128u8)]
LT,
#[codec(index = 129u8)]
LU,
#[codec(index = 130u8)]
MK,
#[codec(index = 131u8)]
MG,
#[codec(index = 132u8)]
MW,
#[codec(index = 133u8)]
MY,
#[codec(index = 134u8)]
MV,
#[codec(index = 135u8)]
ML,
#[codec(index = 136u8)]
MT,
#[codec(index = 137u8)]
MH,
#[codec(index = 138u8)]
MQ,
#[codec(index = 139u8)]
MR,
#[codec(index = 140u8)]
MU,
#[codec(index = 141u8)]
YT,
#[codec(index = 142u8)]
MX,
#[codec(index = 143u8)]
FM,
#[codec(index = 144u8)]
MD,
#[codec(index = 145u8)]
MC,
#[codec(index = 146u8)]
MN,
#[codec(index = 147u8)]
ME,
#[codec(index = 148u8)]
MS,
#[codec(index = 149u8)]
MA,
#[codec(index = 150u8)]
MZ,
#[codec(index = 151u8)]
MM,
#[codec(index = 152u8)]
NA,
#[codec(index = 153u8)]
NR,
#[codec(index = 154u8)]
NP,
#[codec(index = 155u8)]
NL,
#[codec(index = 156u8)]
AN,
#[codec(index = 157u8)]
NC,
#[codec(index = 158u8)]
NZ,
#[codec(index = 159u8)]
NI,
#[codec(index = 160u8)]
NE,
#[codec(index = 161u8)]
NG,
#[codec(index = 162u8)]
NU,
#[codec(index = 163u8)]
NF,
#[codec(index = 164u8)]
MP,
#[codec(index = 165u8)]
NO,
#[codec(index = 166u8)]
OM,
#[codec(index = 167u8)]
PK,
#[codec(index = 168u8)]
PW,
#[codec(index = 169u8)]
PS,
#[codec(index = 170u8)]
PA,
#[codec(index = 171u8)]
PG,
#[codec(index = 172u8)]
PY,
#[codec(index = 173u8)]
PE,
#[codec(index = 174u8)]
PH,
#[codec(index = 175u8)]
PN,
#[codec(index = 176u8)]
PL,
#[codec(index = 177u8)]
PT,
#[codec(index = 178u8)]
PR,
#[codec(index = 179u8)]
QA,
#[codec(index = 180u8)]
RE,
#[codec(index = 181u8)]
RO,
#[codec(index = 182u8)]
RU,
#[codec(index = 183u8)]
RW,
#[codec(index = 184u8)]
BL,
#[codec(index = 185u8)]
SH,
#[codec(index = 186u8)]
KN,
#[codec(index = 187u8)]
LC,
#[codec(index = 188u8)]
MF,
#[codec(index = 189u8)]
PM,
#[codec(index = 190u8)]
VC,
#[codec(index = 191u8)]
WS,
#[codec(index = 192u8)]
SM,
#[codec(index = 193u8)]
ST,
#[codec(index = 194u8)]
SA,
#[codec(index = 195u8)]
SN,
#[codec(index = 196u8)]
RS,
#[codec(index = 197u8)]
SC,
#[codec(index = 198u8)]
SL,
#[codec(index = 199u8)]
SG,
#[codec(index = 200u8)]
SK,
#[codec(index = 201u8)]
SI,
#[codec(index = 202u8)]
SB,
#[codec(index = 203u8)]
SO,
#[codec(index = 204u8)]
ZA,
#[codec(index = 205u8)]
GS,
#[codec(index = 206u8)]
SS,
#[codec(index = 207u8)]
ES,
#[codec(index = 208u8)]
LK,
#[codec(index = 209u8)]
SD,
#[codec(index = 210u8)]
SR,
#[codec(index = 211u8)]
SJ,
#[codec(index = 212u8)]
SZ,
#[codec(index = 213u8)]
SE,
#[codec(index = 214u8)]
CH,
#[codec(index = 215u8)]
SY,
#[codec(index = 216u8)]
TW,
#[codec(index = 217u8)]
TJ,
#[codec(index = 218u8)]
TZ,
#[codec(index = 219u8)]
TH,
#[codec(index = 220u8)]
TL,
#[codec(index = 221u8)]
TG,
#[codec(index = 222u8)]
TK,
#[codec(index = 223u8)]
TO,
#[codec(index = 224u8)]
TT,
#[codec(index = 225u8)]
TN,
#[codec(index = 226u8)]
TR,
#[codec(index = 227u8)]
TM,
#[codec(index = 228u8)]
TC,
#[codec(index = 229u8)]
TV,
#[codec(index = 230u8)]
UG,
#[codec(index = 231u8)]
UA,
#[codec(index = 232u8)]
AE,
#[codec(index = 233u8)]
GB,
#[codec(index = 234u8)]
US,
#[codec(index = 235u8)]
UM,
#[codec(index = 236u8)]
UY,
#[codec(index = 237u8)]
UZ,
#[codec(index = 238u8)]
VU,
#[codec(index = 239u8)]
VE,
#[codec(index = 240u8)]
VN,
#[codec(index = 241u8)]
VI,
#[codec(index = 242u8)]
WF,
#[codec(index = 243u8)]
EH,
#[codec(index = 244u8)]
YE,
#[codec(index = 245u8)]
ZM,
#[codec(index = 246u8)]
ZW,
#[codec(index = 247u8)]
BQ,
#[codec(index = 248u8)]
CW,
#[codec(index = 249u8)]
SX,
}
}
pub mod document {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DocumentUri(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DocumentId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Document {
pub uri: polymesh_primitives::document::DocumentUri,
pub content_hash: polymesh_primitives::document_hash::DocumentHash,
pub name: polymesh_primitives::document::DocumentName,
pub doc_type: Option<polymesh_primitives::document::DocumentType>,
pub filing_date: Option<u64>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DocumentName(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DocumentType(pub Vec<u8>);
}
pub mod document_hash {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum DocumentHash {
#[codec(index = 0u8)]
None,
#[codec(index = 1u8)]
H512(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))] [u8; 64usize],
),
#[codec(index = 2u8)]
H384(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))] [u8; 48usize],
),
#[codec(index = 3u8)]
H320(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))] [u8; 40usize],
),
#[codec(index = 4u8)]
H256([u8; 32usize]),
#[codec(index = 5u8)]
H224([u8; 28usize]),
#[codec(index = 6u8)]
H192([u8; 24usize]),
#[codec(index = 7u8)]
H160([u8; 20usize]),
#[codec(index = 8u8)]
H128([u8; 16usize]),
}
}
pub mod ethereum {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EthereumAddress(pub [u8; 20usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EcdsaSignature(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))]
pub [u8; 65usize],
);
}
pub mod identity_claim {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Scope {
#[codec(index = 0u8)]
Identity(polymesh_primitives::identity_id::IdentityId),
#[codec(index = 1u8)]
Ticker(polymesh_primitives::ticker::Ticker),
#[codec(index = 2u8)]
Custom(Vec<u8>),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Claim {
#[codec(index = 0u8)]
Accredited(polymesh_primitives::identity_claim::Scope),
#[codec(index = 1u8)]
Affiliate(polymesh_primitives::identity_claim::Scope),
#[codec(index = 2u8)]
BuyLockup(polymesh_primitives::identity_claim::Scope),
#[codec(index = 3u8)]
SellLockup(polymesh_primitives::identity_claim::Scope),
#[codec(index = 4u8)]
CustomerDueDiligence(polymesh_primitives::cdd_id::CddId),
#[codec(index = 5u8)]
KnowYourCustomer(polymesh_primitives::identity_claim::Scope),
#[codec(index = 6u8)]
Jurisdiction(
polymesh_primitives::jurisdiction::CountryCode,
polymesh_primitives::identity_claim::Scope,
),
#[codec(index = 7u8)]
Exempted(polymesh_primitives::identity_claim::Scope),
#[codec(index = 8u8)]
Blocked(polymesh_primitives::identity_claim::Scope),
#[codec(index = 9u8)]
InvestorUniqueness(
polymesh_primitives::identity_claim::Scope,
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::cdd_id::CddId,
),
#[codec(index = 10u8)]
NoData,
#[codec(index = 11u8)]
InvestorUniquenessV2(polymesh_primitives::cdd_id::CddId),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct IdentityClaim {
pub claim_issuer: polymesh_primitives::identity_id::IdentityId,
pub issuance_date: u64,
pub last_update_date: u64,
pub expiry: Option<u64>,
pub claim: polymesh_primitives::identity_claim::Claim,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ClaimType {
#[codec(index = 0u8)]
Accredited,
#[codec(index = 1u8)]
Affiliate,
#[codec(index = 2u8)]
BuyLockup,
#[codec(index = 3u8)]
SellLockup,
#[codec(index = 4u8)]
CustomerDueDiligence,
#[codec(index = 5u8)]
KnowYourCustomer,
#[codec(index = 6u8)]
Jurisdiction,
#[codec(index = 7u8)]
Exempted,
#[codec(index = 8u8)]
Blocked,
#[codec(index = 9u8)]
InvestorUniqueness,
#[codec(index = 10u8)]
NoType,
#[codec(index = 11u8)]
InvestorUniquenessV2,
}
}
pub mod agent {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AGId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AgentGroup {
#[codec(index = 0u8)]
Full,
#[codec(index = 1u8)]
Custom(polymesh_primitives::agent::AGId),
#[codec(index = 2u8)]
ExceptMeta,
#[codec(index = 3u8)]
PolymeshV1CAA,
#[codec(index = 4u8)]
PolymeshV1PIA,
}
}
pub mod statistics {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetScope {
#[codec(index = 0u8)]
Ticker(polymesh_primitives::ticker::Ticker),
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StatType {
pub op: polymesh_primitives::statistics::StatOpType,
pub claim_issuer: Option<(
polymesh_primitives::identity_claim::ClaimType,
polymesh_primitives::identity_id::IdentityId,
)>,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Stat2ndKey {
#[codec(index = 0u8)]
NoClaimStat,
#[codec(index = 1u8)]
Claim(polymesh_primitives::statistics::StatClaim),
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum StatClaim {
#[codec(index = 0u8)]
Accredited(bool),
#[codec(index = 1u8)]
Affiliate(bool),
#[codec(index = 2u8)]
Jurisdiction(Option<polymesh_primitives::jurisdiction::CountryCode>),
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum StatOpType {
#[codec(index = 0u8)]
Count,
#[codec(index = 1u8)]
Balance,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Stat1stKey {
pub asset: polymesh_primitives::statistics::AssetScope,
pub stat_type: polymesh_primitives::statistics::StatType,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StatUpdate {
pub key2: polymesh_primitives::statistics::Stat2ndKey,
pub value: Option<u128>,
}
}
pub mod cdd_id {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct InvestorUid(pub [u8; 16usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CddId(pub [u8; 32usize]);
}
pub mod transfer_compliance {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetTransferCompliance {
pub paused: bool,
pub requirements:
std::collections::BTreeSet<polymesh_primitives::transfer_compliance::TransferCondition>,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TransferCondition {
#[codec(index = 0u8)]
MaxInvestorCount(u64),
#[codec(index = 1u8)]
MaxInvestorOwnership(::polymesh_api_client::per_things::Permill),
#[codec(index = 2u8)]
ClaimCount(
polymesh_primitives::statistics::StatClaim,
polymesh_primitives::identity_id::IdentityId,
u64,
Option<u64>,
),
#[codec(index = 3u8)]
ClaimOwnership(
polymesh_primitives::statistics::StatClaim,
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
::polymesh_api_client::per_things::Permill,
),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct TransferConditionExemptKey {
pub asset: polymesh_primitives::statistics::AssetScope,
pub op: polymesh_primitives::statistics::StatOpType,
pub claim_type: Option<polymesh_primitives::identity_claim::ClaimType>,
}
}
pub mod identity_id {
use super::*;
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PortfolioNumber(pub u64);
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum PortfolioKind {
#[codec(index = 0u8)]
Default,
#[codec(index = 1u8)]
User(polymesh_primitives::identity_id::PortfolioNumber),
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PortfolioId {
pub did: polymesh_primitives::identity_id::IdentityId,
pub kind: polymesh_primitives::identity_id::PortfolioKind,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct IdentityId(pub [u8; 32usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PortfolioName(pub Vec<u8>);
}
pub mod subset {
use super::*;
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum SubsetRestriction<A: Ord> {
#[codec(index = 0u8)]
Whole,
#[codec(index = 1u8)]
These(std::collections::BTreeSet<A>),
#[codec(index = 2u8)]
Except(std::collections::BTreeSet<A>),
}
}
pub mod event_only {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EventOnly<T>(pub T);
}
pub mod calendar {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CalendarPeriod {
pub unit: polymesh_primitives::calendar::CalendarUnit,
pub amount: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum CalendarUnit {
#[codec(index = 0u8)]
Second,
#[codec(index = 1u8)]
Minute,
#[codec(index = 2u8)]
Hour,
#[codec(index = 3u8)]
Day,
#[codec(index = 4u8)]
Week,
#[codec(index = 5u8)]
Month,
#[codec(index = 6u8)]
Year,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckpointId(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckpointSchedule {
pub start: u64,
pub period: polymesh_primitives::calendar::CalendarPeriod,
}
}
pub mod condition {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Condition {
pub condition_type: polymesh_primitives::condition::ConditionType,
pub issuers: Vec<polymesh_primitives::condition::TrustedIssuer>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TargetIdentity {
#[codec(index = 0u8)]
ExternalAgent,
#[codec(index = 1u8)]
Specific(polymesh_primitives::identity_id::IdentityId),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct TrustedIssuer {
pub issuer: polymesh_primitives::identity_id::IdentityId,
pub trusted_for: polymesh_primitives::condition::TrustedFor,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ConditionType {
#[codec(index = 0u8)]
IsPresent(polymesh_primitives::identity_claim::Claim),
#[codec(index = 1u8)]
IsAbsent(polymesh_primitives::identity_claim::Claim),
#[codec(index = 2u8)]
IsAnyOf(Vec<polymesh_primitives::identity_claim::Claim>),
#[codec(index = 3u8)]
IsNoneOf(Vec<polymesh_primitives::identity_claim::Claim>),
#[codec(index = 4u8)]
IsIdentity(polymesh_primitives::condition::TargetIdentity),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TrustedFor {
#[codec(index = 0u8)]
Any,
#[codec(index = 1u8)]
Specific(Vec<polymesh_primitives::identity_claim::ClaimType>),
}
}
pub mod identity {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DidRecord<AccountId> {
pub primary_key: Option<AccountId>,
}
}
pub mod compliance_manager {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AssetCompliance {
pub paused: bool,
pub requirements: Vec<polymesh_primitives::compliance_manager::ComplianceRequirement>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ComplianceRequirement {
pub sender_conditions: Vec<polymesh_primitives::condition::Condition>,
pub receiver_conditions: Vec<polymesh_primitives::condition::Condition>,
pub id: u32,
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Url(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Beneficiary<Balance> {
pub id: polymesh_primitives::identity_id::IdentityId,
pub amount: Balance,
}
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DispatchableName(pub Vec<u8>);
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PalletName(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PosRatio(pub u32, pub u32);
}
pub mod sp_core {
use super::*;
pub mod offchain {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct OpaqueNetworkState {
pub peer_id: sp_core::OpaquePeerId,
pub external_addresses: Vec<sp_core::offchain::OpaqueMultiaddr>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct OpaqueMultiaddr(pub Vec<u8>);
}
pub mod ed25519 {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub [u8; 32usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))]
pub [u8; 64usize],
);
}
pub mod ecdsa {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))]
pub [u8; 65usize],
);
}
pub mod sr25519 {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))]
pub [u8; 64usize],
);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub [u8; 32usize]);
}
pub mod crypto {
use super::*;
#[derive(
Clone, Debug, PartialEq, Eq, PartialOrd, Ord, :: codec :: Encode, :: codec :: Decode,
)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AccountId32(pub [u8; 32usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct KeyTypeId(pub [u8; 4usize]);
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct OpaquePeerId(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Void {}
}
pub mod sp_runtime {
use super::*;
pub mod traits {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BlakeTwo256();
}
pub mod generic {
use super::*;
pub mod unchecked_extrinsic {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct UncheckedExtrinsic<Address, Call, Signature, Extra>(
pub Vec<u8>,
core::marker::PhantomData<(Address, Call, Signature, Extra)>,
);
}
pub mod digest {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum DigestItem {
#[codec(index = 6u8)]
PreRuntime([u8; 4usize], Vec<u8>),
#[codec(index = 4u8)]
Consensus([u8; 4usize], Vec<u8>),
#[codec(index = 5u8)]
Seal([u8; 4usize], Vec<u8>),
#[codec(index = 0u8)]
Other(Vec<u8>),
#[codec(index = 8u8)]
RuntimeEnvironmentUpdated,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Digest {
pub logs: Vec<sp_runtime::generic::digest::DigestItem>,
}
}
pub mod era {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Era {
#[codec(index = 0u8)]
Immortal,
#[codec(index = 1u8)]
Mortal1(u8),
#[codec(index = 2u8)]
Mortal2(u8),
#[codec(index = 3u8)]
Mortal3(u8),
#[codec(index = 4u8)]
Mortal4(u8),
#[codec(index = 5u8)]
Mortal5(u8),
#[codec(index = 6u8)]
Mortal6(u8),
#[codec(index = 7u8)]
Mortal7(u8),
#[codec(index = 8u8)]
Mortal8(u8),
#[codec(index = 9u8)]
Mortal9(u8),
#[codec(index = 10u8)]
Mortal10(u8),
#[codec(index = 11u8)]
Mortal11(u8),
#[codec(index = 12u8)]
Mortal12(u8),
#[codec(index = 13u8)]
Mortal13(u8),
#[codec(index = 14u8)]
Mortal14(u8),
#[codec(index = 15u8)]
Mortal15(u8),
#[codec(index = 16u8)]
Mortal16(u8),
#[codec(index = 17u8)]
Mortal17(u8),
#[codec(index = 18u8)]
Mortal18(u8),
#[codec(index = 19u8)]
Mortal19(u8),
#[codec(index = 20u8)]
Mortal20(u8),
#[codec(index = 21u8)]
Mortal21(u8),
#[codec(index = 22u8)]
Mortal22(u8),
#[codec(index = 23u8)]
Mortal23(u8),
#[codec(index = 24u8)]
Mortal24(u8),
#[codec(index = 25u8)]
Mortal25(u8),
#[codec(index = 26u8)]
Mortal26(u8),
#[codec(index = 27u8)]
Mortal27(u8),
#[codec(index = 28u8)]
Mortal28(u8),
#[codec(index = 29u8)]
Mortal29(u8),
#[codec(index = 30u8)]
Mortal30(u8),
#[codec(index = 31u8)]
Mortal31(u8),
#[codec(index = 32u8)]
Mortal32(u8),
#[codec(index = 33u8)]
Mortal33(u8),
#[codec(index = 34u8)]
Mortal34(u8),
#[codec(index = 35u8)]
Mortal35(u8),
#[codec(index = 36u8)]
Mortal36(u8),
#[codec(index = 37u8)]
Mortal37(u8),
#[codec(index = 38u8)]
Mortal38(u8),
#[codec(index = 39u8)]
Mortal39(u8),
#[codec(index = 40u8)]
Mortal40(u8),
#[codec(index = 41u8)]
Mortal41(u8),
#[codec(index = 42u8)]
Mortal42(u8),
#[codec(index = 43u8)]
Mortal43(u8),
#[codec(index = 44u8)]
Mortal44(u8),
#[codec(index = 45u8)]
Mortal45(u8),
#[codec(index = 46u8)]
Mortal46(u8),
#[codec(index = 47u8)]
Mortal47(u8),
#[codec(index = 48u8)]
Mortal48(u8),
#[codec(index = 49u8)]
Mortal49(u8),
#[codec(index = 50u8)]
Mortal50(u8),
#[codec(index = 51u8)]
Mortal51(u8),
#[codec(index = 52u8)]
Mortal52(u8),
#[codec(index = 53u8)]
Mortal53(u8),
#[codec(index = 54u8)]
Mortal54(u8),
#[codec(index = 55u8)]
Mortal55(u8),
#[codec(index = 56u8)]
Mortal56(u8),
#[codec(index = 57u8)]
Mortal57(u8),
#[codec(index = 58u8)]
Mortal58(u8),
#[codec(index = 59u8)]
Mortal59(u8),
#[codec(index = 60u8)]
Mortal60(u8),
#[codec(index = 61u8)]
Mortal61(u8),
#[codec(index = 62u8)]
Mortal62(u8),
#[codec(index = 63u8)]
Mortal63(u8),
#[codec(index = 64u8)]
Mortal64(u8),
#[codec(index = 65u8)]
Mortal65(u8),
#[codec(index = 66u8)]
Mortal66(u8),
#[codec(index = 67u8)]
Mortal67(u8),
#[codec(index = 68u8)]
Mortal68(u8),
#[codec(index = 69u8)]
Mortal69(u8),
#[codec(index = 70u8)]
Mortal70(u8),
#[codec(index = 71u8)]
Mortal71(u8),
#[codec(index = 72u8)]
Mortal72(u8),
#[codec(index = 73u8)]
Mortal73(u8),
#[codec(index = 74u8)]
Mortal74(u8),
#[codec(index = 75u8)]
Mortal75(u8),
#[codec(index = 76u8)]
Mortal76(u8),
#[codec(index = 77u8)]
Mortal77(u8),
#[codec(index = 78u8)]
Mortal78(u8),
#[codec(index = 79u8)]
Mortal79(u8),
#[codec(index = 80u8)]
Mortal80(u8),
#[codec(index = 81u8)]
Mortal81(u8),
#[codec(index = 82u8)]
Mortal82(u8),
#[codec(index = 83u8)]
Mortal83(u8),
#[codec(index = 84u8)]
Mortal84(u8),
#[codec(index = 85u8)]
Mortal85(u8),
#[codec(index = 86u8)]
Mortal86(u8),
#[codec(index = 87u8)]
Mortal87(u8),
#[codec(index = 88u8)]
Mortal88(u8),
#[codec(index = 89u8)]
Mortal89(u8),
#[codec(index = 90u8)]
Mortal90(u8),
#[codec(index = 91u8)]
Mortal91(u8),
#[codec(index = 92u8)]
Mortal92(u8),
#[codec(index = 93u8)]
Mortal93(u8),
#[codec(index = 94u8)]
Mortal94(u8),
#[codec(index = 95u8)]
Mortal95(u8),
#[codec(index = 96u8)]
Mortal96(u8),
#[codec(index = 97u8)]
Mortal97(u8),
#[codec(index = 98u8)]
Mortal98(u8),
#[codec(index = 99u8)]
Mortal99(u8),
#[codec(index = 100u8)]
Mortal100(u8),
#[codec(index = 101u8)]
Mortal101(u8),
#[codec(index = 102u8)]
Mortal102(u8),
#[codec(index = 103u8)]
Mortal103(u8),
#[codec(index = 104u8)]
Mortal104(u8),
#[codec(index = 105u8)]
Mortal105(u8),
#[codec(index = 106u8)]
Mortal106(u8),
#[codec(index = 107u8)]
Mortal107(u8),
#[codec(index = 108u8)]
Mortal108(u8),
#[codec(index = 109u8)]
Mortal109(u8),
#[codec(index = 110u8)]
Mortal110(u8),
#[codec(index = 111u8)]
Mortal111(u8),
#[codec(index = 112u8)]
Mortal112(u8),
#[codec(index = 113u8)]
Mortal113(u8),
#[codec(index = 114u8)]
Mortal114(u8),
#[codec(index = 115u8)]
Mortal115(u8),
#[codec(index = 116u8)]
Mortal116(u8),
#[codec(index = 117u8)]
Mortal117(u8),
#[codec(index = 118u8)]
Mortal118(u8),
#[codec(index = 119u8)]
Mortal119(u8),
#[codec(index = 120u8)]
Mortal120(u8),
#[codec(index = 121u8)]
Mortal121(u8),
#[codec(index = 122u8)]
Mortal122(u8),
#[codec(index = 123u8)]
Mortal123(u8),
#[codec(index = 124u8)]
Mortal124(u8),
#[codec(index = 125u8)]
Mortal125(u8),
#[codec(index = 126u8)]
Mortal126(u8),
#[codec(index = 127u8)]
Mortal127(u8),
#[codec(index = 128u8)]
Mortal128(u8),
#[codec(index = 129u8)]
Mortal129(u8),
#[codec(index = 130u8)]
Mortal130(u8),
#[codec(index = 131u8)]
Mortal131(u8),
#[codec(index = 132u8)]
Mortal132(u8),
#[codec(index = 133u8)]
Mortal133(u8),
#[codec(index = 134u8)]
Mortal134(u8),
#[codec(index = 135u8)]
Mortal135(u8),
#[codec(index = 136u8)]
Mortal136(u8),
#[codec(index = 137u8)]
Mortal137(u8),
#[codec(index = 138u8)]
Mortal138(u8),
#[codec(index = 139u8)]
Mortal139(u8),
#[codec(index = 140u8)]
Mortal140(u8),
#[codec(index = 141u8)]
Mortal141(u8),
#[codec(index = 142u8)]
Mortal142(u8),
#[codec(index = 143u8)]
Mortal143(u8),
#[codec(index = 144u8)]
Mortal144(u8),
#[codec(index = 145u8)]
Mortal145(u8),
#[codec(index = 146u8)]
Mortal146(u8),
#[codec(index = 147u8)]
Mortal147(u8),
#[codec(index = 148u8)]
Mortal148(u8),
#[codec(index = 149u8)]
Mortal149(u8),
#[codec(index = 150u8)]
Mortal150(u8),
#[codec(index = 151u8)]
Mortal151(u8),
#[codec(index = 152u8)]
Mortal152(u8),
#[codec(index = 153u8)]
Mortal153(u8),
#[codec(index = 154u8)]
Mortal154(u8),
#[codec(index = 155u8)]
Mortal155(u8),
#[codec(index = 156u8)]
Mortal156(u8),
#[codec(index = 157u8)]
Mortal157(u8),
#[codec(index = 158u8)]
Mortal158(u8),
#[codec(index = 159u8)]
Mortal159(u8),
#[codec(index = 160u8)]
Mortal160(u8),
#[codec(index = 161u8)]
Mortal161(u8),
#[codec(index = 162u8)]
Mortal162(u8),
#[codec(index = 163u8)]
Mortal163(u8),
#[codec(index = 164u8)]
Mortal164(u8),
#[codec(index = 165u8)]
Mortal165(u8),
#[codec(index = 166u8)]
Mortal166(u8),
#[codec(index = 167u8)]
Mortal167(u8),
#[codec(index = 168u8)]
Mortal168(u8),
#[codec(index = 169u8)]
Mortal169(u8),
#[codec(index = 170u8)]
Mortal170(u8),
#[codec(index = 171u8)]
Mortal171(u8),
#[codec(index = 172u8)]
Mortal172(u8),
#[codec(index = 173u8)]
Mortal173(u8),
#[codec(index = 174u8)]
Mortal174(u8),
#[codec(index = 175u8)]
Mortal175(u8),
#[codec(index = 176u8)]
Mortal176(u8),
#[codec(index = 177u8)]
Mortal177(u8),
#[codec(index = 178u8)]
Mortal178(u8),
#[codec(index = 179u8)]
Mortal179(u8),
#[codec(index = 180u8)]
Mortal180(u8),
#[codec(index = 181u8)]
Mortal181(u8),
#[codec(index = 182u8)]
Mortal182(u8),
#[codec(index = 183u8)]
Mortal183(u8),
#[codec(index = 184u8)]
Mortal184(u8),
#[codec(index = 185u8)]
Mortal185(u8),
#[codec(index = 186u8)]
Mortal186(u8),
#[codec(index = 187u8)]
Mortal187(u8),
#[codec(index = 188u8)]
Mortal188(u8),
#[codec(index = 189u8)]
Mortal189(u8),
#[codec(index = 190u8)]
Mortal190(u8),
#[codec(index = 191u8)]
Mortal191(u8),
#[codec(index = 192u8)]
Mortal192(u8),
#[codec(index = 193u8)]
Mortal193(u8),
#[codec(index = 194u8)]
Mortal194(u8),
#[codec(index = 195u8)]
Mortal195(u8),
#[codec(index = 196u8)]
Mortal196(u8),
#[codec(index = 197u8)]
Mortal197(u8),
#[codec(index = 198u8)]
Mortal198(u8),
#[codec(index = 199u8)]
Mortal199(u8),
#[codec(index = 200u8)]
Mortal200(u8),
#[codec(index = 201u8)]
Mortal201(u8),
#[codec(index = 202u8)]
Mortal202(u8),
#[codec(index = 203u8)]
Mortal203(u8),
#[codec(index = 204u8)]
Mortal204(u8),
#[codec(index = 205u8)]
Mortal205(u8),
#[codec(index = 206u8)]
Mortal206(u8),
#[codec(index = 207u8)]
Mortal207(u8),
#[codec(index = 208u8)]
Mortal208(u8),
#[codec(index = 209u8)]
Mortal209(u8),
#[codec(index = 210u8)]
Mortal210(u8),
#[codec(index = 211u8)]
Mortal211(u8),
#[codec(index = 212u8)]
Mortal212(u8),
#[codec(index = 213u8)]
Mortal213(u8),
#[codec(index = 214u8)]
Mortal214(u8),
#[codec(index = 215u8)]
Mortal215(u8),
#[codec(index = 216u8)]
Mortal216(u8),
#[codec(index = 217u8)]
Mortal217(u8),
#[codec(index = 218u8)]
Mortal218(u8),
#[codec(index = 219u8)]
Mortal219(u8),
#[codec(index = 220u8)]
Mortal220(u8),
#[codec(index = 221u8)]
Mortal221(u8),
#[codec(index = 222u8)]
Mortal222(u8),
#[codec(index = 223u8)]
Mortal223(u8),
#[codec(index = 224u8)]
Mortal224(u8),
#[codec(index = 225u8)]
Mortal225(u8),
#[codec(index = 226u8)]
Mortal226(u8),
#[codec(index = 227u8)]
Mortal227(u8),
#[codec(index = 228u8)]
Mortal228(u8),
#[codec(index = 229u8)]
Mortal229(u8),
#[codec(index = 230u8)]
Mortal230(u8),
#[codec(index = 231u8)]
Mortal231(u8),
#[codec(index = 232u8)]
Mortal232(u8),
#[codec(index = 233u8)]
Mortal233(u8),
#[codec(index = 234u8)]
Mortal234(u8),
#[codec(index = 235u8)]
Mortal235(u8),
#[codec(index = 236u8)]
Mortal236(u8),
#[codec(index = 237u8)]
Mortal237(u8),
#[codec(index = 238u8)]
Mortal238(u8),
#[codec(index = 239u8)]
Mortal239(u8),
#[codec(index = 240u8)]
Mortal240(u8),
#[codec(index = 241u8)]
Mortal241(u8),
#[codec(index = 242u8)]
Mortal242(u8),
#[codec(index = 243u8)]
Mortal243(u8),
#[codec(index = 244u8)]
Mortal244(u8),
#[codec(index = 245u8)]
Mortal245(u8),
#[codec(index = 246u8)]
Mortal246(u8),
#[codec(index = 247u8)]
Mortal247(u8),
#[codec(index = 248u8)]
Mortal248(u8),
#[codec(index = 249u8)]
Mortal249(u8),
#[codec(index = 250u8)]
Mortal250(u8),
#[codec(index = 251u8)]
Mortal251(u8),
#[codec(index = 252u8)]
Mortal252(u8),
#[codec(index = 253u8)]
Mortal253(u8),
#[codec(index = 254u8)]
Mortal254(u8),
#[codec(index = 255u8)]
Mortal255(u8),
}
}
pub mod header {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Header<Number, Hash> {
pub parent_hash: primitive_types::H256,
#[codec(compact)]
pub number: Number,
pub state_root: primitive_types::H256,
pub extrinsics_root: primitive_types::H256,
pub digest: sp_runtime::generic::digest::Digest,
_phantom_data: core::marker::PhantomData<Hash>,
}
}
}
pub mod multiaddress {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum MultiAddress<AccountId, AccountIndex> {
#[codec(index = 0u8)]
Id(AccountId),
#[codec(index = 1u8)]
Index(#[codec(compact)] AccountIndex),
#[codec(index = 2u8)]
Raw(Vec<u8>),
#[codec(index = 3u8)]
Address32([u8; 32usize]),
#[codec(index = 4u8)]
Address20([u8; 20usize]),
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum MultiSignature {
#[codec(index = 0u8)]
Ed25519(sp_core::ed25519::Signature),
#[codec(index = 1u8)]
Sr25519(sp_core::sr25519::Signature),
#[codec(index = 2u8)]
Ecdsa(sp_core::ecdsa::Signature),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RuntimeError {
#[codec(index = 0u8)]
System(frame_system::pallet::Error),
#[codec(index = 1u8)]
Babe(pallet_babe::pallet::Error),
#[codec(index = 3u8)]
Indices(pallet_indices::pallet::Error),
#[codec(index = 4u8)]
Authorship(pallet_authorship::pallet::Error),
#[codec(index = 5u8)]
Balances(pallet_balances::Error),
#[codec(index = 7u8)]
Identity(pallet_identity::Error),
#[codec(index = 8u8)]
CddServiceProviders(pallet_group::Error),
#[codec(index = 9u8)]
PolymeshCommittee(pallet_committee::Error),
#[codec(index = 10u8)]
CommitteeMembership(pallet_group::Error),
#[codec(index = 11u8)]
TechnicalCommittee(pallet_committee::Error),
#[codec(index = 12u8)]
TechnicalCommitteeMembership(pallet_group::Error),
#[codec(index = 13u8)]
UpgradeCommittee(pallet_committee::Error),
#[codec(index = 14u8)]
UpgradeCommitteeMembership(pallet_group::Error),
#[codec(index = 15u8)]
MultiSig(pallet_multisig::Error),
#[codec(index = 16u8)]
Bridge(pallet_bridge::Error),
#[codec(index = 17u8)]
Staking(pallet_staking::Error),
#[codec(index = 19u8)]
Session(pallet_session::pallet::Error),
#[codec(index = 21u8)]
Grandpa(pallet_grandpa::pallet::Error),
#[codec(index = 23u8)]
ImOnline(pallet_im_online::pallet::Error),
#[codec(index = 25u8)]
Sudo(pallet_sudo::Error),
#[codec(index = 26u8)]
Asset(pallet_asset::Error),
#[codec(index = 27u8)]
CapitalDistribution(pallet_corporate_actions::distribution::Error),
#[codec(index = 28u8)]
Checkpoint(pallet_asset::checkpoint::Error),
#[codec(index = 29u8)]
ComplianceManager(pallet_compliance_manager::Error),
#[codec(index = 30u8)]
CorporateAction(pallet_corporate_actions::Error),
#[codec(index = 31u8)]
CorporateBallot(pallet_corporate_actions::ballot::Error),
#[codec(index = 32u8)]
Permissions(pallet_permissions::Error),
#[codec(index = 33u8)]
Pips(pallet_pips::Error),
#[codec(index = 34u8)]
Portfolio(pallet_portfolio::Error),
#[codec(index = 35u8)]
ProtocolFee(pallet_protocol_fee::Error),
#[codec(index = 36u8)]
Scheduler(pallet_scheduler::pallet::Error),
#[codec(index = 37u8)]
Settlement(pallet_settlement::Error),
#[codec(index = 38u8)]
Statistics(pallet_statistics::Error),
#[codec(index = 39u8)]
Sto(pallet_sto::Error),
#[codec(index = 40u8)]
Treasury(pallet_treasury::Error),
#[codec(index = 41u8)]
Utility(pallet_utility::Error),
#[codec(index = 42u8)]
Base(pallet_base::Error),
#[codec(index = 43u8)]
ExternalAgents(pallet_external_agents::Error),
#[codec(index = 44u8)]
Relayer(pallet_relayer::Error),
#[codec(index = 45u8)]
Rewards(pallet_rewards::Error),
#[codec(index = 46u8)]
Contracts(pallet_contracts::pallet::Error),
#[codec(index = 47u8)]
PolymeshContracts(polymesh_contracts::Error),
#[codec(index = 48u8)]
Preimage(pallet_preimage::pallet::Error),
#[codec(index = 50u8)]
TestUtils(pallet_test_utils::Error),
}
impl RuntimeError {
pub fn as_static_str(&self) -> &'static str {
match self {
RuntimeError::System(err) => err.as_static_str(),
RuntimeError::Babe(err) => err.as_static_str(),
RuntimeError::Indices(err) => err.as_static_str(),
RuntimeError::Authorship(err) => err.as_static_str(),
RuntimeError::Balances(err) => err.as_static_str(),
RuntimeError::Identity(err) => err.as_static_str(),
RuntimeError::CddServiceProviders(err) => err.as_static_str(),
RuntimeError::PolymeshCommittee(err) => err.as_static_str(),
RuntimeError::CommitteeMembership(err) => err.as_static_str(),
RuntimeError::TechnicalCommittee(err) => err.as_static_str(),
RuntimeError::TechnicalCommitteeMembership(err) => err.as_static_str(),
RuntimeError::UpgradeCommittee(err) => err.as_static_str(),
RuntimeError::UpgradeCommitteeMembership(err) => err.as_static_str(),
RuntimeError::MultiSig(err) => err.as_static_str(),
RuntimeError::Bridge(err) => err.as_static_str(),
RuntimeError::Staking(err) => err.as_static_str(),
RuntimeError::Session(err) => err.as_static_str(),
RuntimeError::Grandpa(err) => err.as_static_str(),
RuntimeError::ImOnline(err) => err.as_static_str(),
RuntimeError::Sudo(err) => err.as_static_str(),
RuntimeError::Asset(err) => err.as_static_str(),
RuntimeError::CapitalDistribution(err) => err.as_static_str(),
RuntimeError::Checkpoint(err) => err.as_static_str(),
RuntimeError::ComplianceManager(err) => err.as_static_str(),
RuntimeError::CorporateAction(err) => err.as_static_str(),
RuntimeError::CorporateBallot(err) => err.as_static_str(),
RuntimeError::Permissions(err) => err.as_static_str(),
RuntimeError::Pips(err) => err.as_static_str(),
RuntimeError::Portfolio(err) => err.as_static_str(),
RuntimeError::ProtocolFee(err) => err.as_static_str(),
RuntimeError::Scheduler(err) => err.as_static_str(),
RuntimeError::Settlement(err) => err.as_static_str(),
RuntimeError::Statistics(err) => err.as_static_str(),
RuntimeError::Sto(err) => err.as_static_str(),
RuntimeError::Treasury(err) => err.as_static_str(),
RuntimeError::Utility(err) => err.as_static_str(),
RuntimeError::Base(err) => err.as_static_str(),
RuntimeError::ExternalAgents(err) => err.as_static_str(),
RuntimeError::Relayer(err) => err.as_static_str(),
RuntimeError::Rewards(err) => err.as_static_str(),
RuntimeError::Contracts(err) => err.as_static_str(),
RuntimeError::PolymeshContracts(err) => err.as_static_str(),
RuntimeError::Preimage(err) => err.as_static_str(),
RuntimeError::TestUtils(err) => err.as_static_str(),
}
}
}
impl From<RuntimeError> for &'static str {
fn from(v: RuntimeError) -> Self {
v.as_static_str()
}
}
impl From<&RuntimeError> for &'static str {
fn from(v: &RuntimeError) -> Self {
v.as_static_str()
}
}
impl ::polymesh_api_client::EnumInfo for RuntimeError {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
match self {
RuntimeError::System(err) => err.as_docs(),
RuntimeError::Babe(err) => err.as_docs(),
RuntimeError::Indices(err) => err.as_docs(),
RuntimeError::Authorship(err) => err.as_docs(),
RuntimeError::Balances(err) => err.as_docs(),
RuntimeError::Identity(err) => err.as_docs(),
RuntimeError::CddServiceProviders(err) => err.as_docs(),
RuntimeError::PolymeshCommittee(err) => err.as_docs(),
RuntimeError::CommitteeMembership(err) => err.as_docs(),
RuntimeError::TechnicalCommittee(err) => err.as_docs(),
RuntimeError::TechnicalCommitteeMembership(err) => err.as_docs(),
RuntimeError::UpgradeCommittee(err) => err.as_docs(),
RuntimeError::UpgradeCommitteeMembership(err) => err.as_docs(),
RuntimeError::MultiSig(err) => err.as_docs(),
RuntimeError::Bridge(err) => err.as_docs(),
RuntimeError::Staking(err) => err.as_docs(),
RuntimeError::Session(err) => err.as_docs(),
RuntimeError::Grandpa(err) => err.as_docs(),
RuntimeError::ImOnline(err) => err.as_docs(),
RuntimeError::Sudo(err) => err.as_docs(),
RuntimeError::Asset(err) => err.as_docs(),
RuntimeError::CapitalDistribution(err) => err.as_docs(),
RuntimeError::Checkpoint(err) => err.as_docs(),
RuntimeError::ComplianceManager(err) => err.as_docs(),
RuntimeError::CorporateAction(err) => err.as_docs(),
RuntimeError::CorporateBallot(err) => err.as_docs(),
RuntimeError::Permissions(err) => err.as_docs(),
RuntimeError::Pips(err) => err.as_docs(),
RuntimeError::Portfolio(err) => err.as_docs(),
RuntimeError::ProtocolFee(err) => err.as_docs(),
RuntimeError::Scheduler(err) => err.as_docs(),
RuntimeError::Settlement(err) => err.as_docs(),
RuntimeError::Statistics(err) => err.as_docs(),
RuntimeError::Sto(err) => err.as_docs(),
RuntimeError::Treasury(err) => err.as_docs(),
RuntimeError::Utility(err) => err.as_docs(),
RuntimeError::Base(err) => err.as_docs(),
RuntimeError::ExternalAgents(err) => err.as_docs(),
RuntimeError::Relayer(err) => err.as_docs(),
RuntimeError::Rewards(err) => err.as_docs(),
RuntimeError::Contracts(err) => err.as_docs(),
RuntimeError::PolymeshContracts(err) => err.as_docs(),
RuntimeError::Preimage(err) => err.as_docs(),
RuntimeError::TestUtils(err) => err.as_docs(),
}
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ModuleError(RuntimeError);
impl ::codec::Encode for ModuleError {
fn encode_to<T: ::codec::Output + ?Sized>(&self, output: &mut T) {
let mut raw = self.0.encode();
raw.resize(5usize, 0);
output.write(raw.as_slice());
}
}
impl ::codec::Decode for ModuleError {
fn decode<I: ::codec::Input>(input: &mut I) -> Result<Self, ::codec::Error> {
let raw: [u8; 5usize] = ::codec::Decode::decode(input)?;
Ok(Self(RuntimeError::decode(&mut &raw[..])?))
}
}
impl ModuleError {
pub fn as_static_str(&self) -> &'static str {
self.0.as_static_str()
}
}
impl From<ModuleError> for &'static str {
fn from(v: ModuleError) -> Self {
v.as_static_str()
}
}
impl From<&ModuleError> for &'static str {
fn from(v: &ModuleError) -> Self {
v.as_static_str()
}
}
impl ::polymesh_api_client::EnumInfo for ModuleError {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
self.0.as_docs()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ArithmeticError {
#[codec(index = 0u8)]
Underflow,
#[codec(index = 1u8)]
Overflow,
#[codec(index = 2u8)]
DivisionByZero,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum DispatchError {
Other,
CannotLookup,
BadOrigin,
Module(ModuleError),
ConsumerRemaining,
NoProviders,
TooManyConsumers,
Token(TokenError),
Arithmetic(ArithmeticError),
}
impl DispatchError {
pub fn as_static_str(&self) -> &'static str {
match self {
Self::Other => "Other",
Self::CannotLookup => "CannotLookup",
Self::BadOrigin => "BadOrigin",
Self::Module(err) => err.as_static_str(),
Self::ConsumerRemaining => "ConsumerRemaining",
Self::NoProviders => "NoProviders",
Self::TooManyConsumers => "TooManyConsumers",
Self::Token(err) => match err {
TokenError::NoFunds => "Token::NoFunds",
TokenError::WouldDie => "Token::WouldDie",
TokenError::BelowMinimum => "Token::BelowMinimum",
TokenError::CannotCreate => "Token::CannotCreate",
TokenError::UnknownAsset => "Token::UnknownAsset",
TokenError::Frozen => "Token::Frozen",
TokenError::Unsupported => "Token::Unsupported",
},
Self::Arithmetic(err) => match err {
ArithmeticError::Underflow => "Arithmetic::Underflow",
ArithmeticError::Overflow => "Arithmetic::Overflow",
ArithmeticError::DivisionByZero => "Arithmetic::DivisionByZero",
},
}
}
}
impl From<DispatchError> for &'static str {
fn from(v: DispatchError) -> Self {
v.as_static_str()
}
}
impl From<&DispatchError> for &'static str {
fn from(v: &DispatchError) -> Self {
v.as_static_str()
}
}
impl ::polymesh_api_client::EnumInfo for DispatchError {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
match self {
Self::Other => &["Some error occurred."],
Self::CannotLookup => &["Failed to lookup some data."],
Self::BadOrigin => &["A bad origin."],
Self::Module(err) => err.as_docs(),
Self::ConsumerRemaining => {
&["At least one consumer is remaining so the account cannot be destroyed."]
}
Self::NoProviders => &["There are no providers so the account cannot be created."],
Self::TooManyConsumers => {
&["There are too many consumers so the account cannot be created."]
}
Self::Token(err) => match err {
TokenError::NoFunds => &["Funds are unavailable."],
TokenError::WouldDie => &["Account that must exist would die."],
TokenError::BelowMinimum => {
&["Account cannot exist with the funds that would be given."]
}
TokenError::CannotCreate => &["Account cannot be created."],
TokenError::UnknownAsset => &["The asset in question is unknown."],
TokenError::Frozen => &["Funds exist but are frozen."],
TokenError::Unsupported => &["Operation is not supported by the asset."],
},
Self::Arithmetic(err) => match err {
ArithmeticError::Underflow => &["Arithmetic underflow"],
ArithmeticError::Overflow => &["Arithmetic overflow"],
ArithmeticError::DivisionByZero => &["Arithmetic divide by zero"],
},
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TokenError {
#[codec(index = 0u8)]
NoFunds,
#[codec(index = 1u8)]
WouldDie,
#[codec(index = 2u8)]
BelowMinimum,
#[codec(index = 3u8)]
CannotCreate,
#[codec(index = 4u8)]
UnknownAsset,
#[codec(index = 5u8)]
Frozen,
#[codec(index = 6u8)]
Unsupported,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TransactionalError {
#[codec(index = 0u8)]
LimitReached,
#[codec(index = 1u8)]
NoLayer,
}
}
pub mod pallet_sudo {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB write (event)."]
#[doc = "- Weight of derivative `call` execution + 10,000."]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
sudo {
call: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
},
#[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
#[doc = "This function does not check the weight of the call, and instead allows the"]
#[doc = "Sudo user to specify the weight of the call."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- The weight of this call is defined by the caller."]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
sudo_unchecked_weight {
call: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
_weight: u64,
},
#[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB change."]
#[doc = "# </weight>"]
#[codec(index = 2u8)]
set_key {
new: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
},
#[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"]
#[doc = "a given account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB write (event)."]
#[doc = "- Weight of derivative `call` execution + 10,000."]
#[doc = "# </weight>"]
#[codec(index = 3u8)]
sudo_as {
who: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
call: ::std::boxed::Box<polymesh_runtime_develop::runtime::Call>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::sudo { .. } => "Sudo.sudo",
Self::sudo_unchecked_weight { .. } => "Sudo.sudo_unchecked_weight",
Self::set_key { .. } => "Sudo.set_key",
Self::sudo_as { .. } => "Sudo.sudo_as",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: sudo { .. } => { & ["Authenticates the sudo key and dispatches a function call with `Root` origin." , "" , "The dispatch origin for this call must be _Signed_." , "" , "# <weight>" , "- O(1)." , "- Limited storage reads." , "- One DB write (event)." , "- Weight of derivative `call` execution + 10,000." , "# </weight>" ,] } , Self :: sudo_unchecked_weight { .. } => { & ["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_." , "" , "# <weight>" , "- O(1)." , "- The weight of this call is defined by the caller." , "# </weight>" ,] } , Self :: set_key { .. } => { & ["Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key." , "" , "The dispatch origin for this call must be _Signed_." , "" , "# <weight>" , "- O(1)." , "- Limited storage reads." , "- One DB change." , "# </weight>" ,] } , Self :: sudo_as { .. } => { & ["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_." , "" , "# <weight>" , "- O(1)." , "- Limited storage reads." , "- One DB write (event)." , "- Weight of derivative `call` execution + 10,000." , "# </weight>" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "Error for the Sudo module"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Sender must be the Sudo account"]
#[codec(index = 0u8)]
RequireSudo,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::RequireSudo => "Sudo.RequireSudo",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::RequireSudo => &["Sender must be the Sudo account"],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "A sudo just took place. \\[result\\]"]
#[codec(index = 0u8)]
Sudid(Result<(), sp_runtime::DispatchError>),
#[doc = "The \\[sudoer\\] just switched identity; the old key is supplied."]
#[codec(index = 1u8)]
KeyChanged(AccountId),
#[doc = "A sudo just took place. \\[result\\]"]
#[codec(index = 2u8)]
SudoAsDone(Result<(), sp_runtime::DispatchError>),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Sudid(_) => "Sudo.Sudid",
Self::KeyChanged(_) => "Sudo.KeyChanged",
Self::SudoAsDone(_) => "Sudo.SudoAsDone",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Sudid(_) => &["A sudo just took place. \\[result\\]"],
Self::KeyChanged(_) => {
&["The \\[sudoer\\] just switched identity; the old key is supplied."]
}
Self::SudoAsDone(_) => &["A sudo just took place. \\[result\\]"],
_ => &[""],
}
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_identity {
use super::*;
pub mod types {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Claim1stKey {
pub target: polymesh_primitives::identity_id::IdentityId,
pub claim_type: polymesh_primitives::identity_claim::ClaimType,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Claim2ndKey {
pub issuer: polymesh_primitives::identity_id::IdentityId,
pub scope: Option<polymesh_primitives::identity_claim::Scope>,
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "One secondary or primary key can only belong to one DID"]
#[codec(index = 0u8)]
AlreadyLinked,
#[doc = "Missing current identity on the transaction"]
#[codec(index = 1u8)]
MissingCurrentIdentity,
#[doc = "Signatory is not pre authorized by the identity"]
#[codec(index = 2u8)]
Unauthorized,
#[doc = "Account Id cannot be extracted from signer"]
#[codec(index = 3u8)]
InvalidAccountKey,
#[doc = "Only CDD service providers are allowed."]
#[codec(index = 4u8)]
UnAuthorizedCddProvider,
#[doc = "An invalid authorization from the owner."]
#[codec(index = 5u8)]
InvalidAuthorizationFromOwner,
#[doc = "An invalid authorization from the CDD provider."]
#[codec(index = 6u8)]
InvalidAuthorizationFromCddProvider,
#[doc = "Attestation was not by a CDD service provider."]
#[codec(index = 7u8)]
NotCddProviderAttestation,
#[doc = "Authorizations are not for the same DID."]
#[codec(index = 8u8)]
AuthorizationsNotForSameDids,
#[doc = "The DID must already exist."]
#[codec(index = 9u8)]
DidMustAlreadyExist,
#[doc = "Current identity cannot be forwarded, it is not a secondary key of target identity."]
#[codec(index = 10u8)]
CurrentIdentityCannotBeForwarded,
#[doc = "The offchain authorization has expired."]
#[codec(index = 11u8)]
AuthorizationExpired,
#[doc = "The target DID has no valid CDD."]
#[codec(index = 12u8)]
TargetHasNoCdd,
#[doc = "Authorization has been explicitly revoked."]
#[codec(index = 13u8)]
AuthorizationHasBeenRevoked,
#[doc = "An invalid authorization signature."]
#[codec(index = 14u8)]
InvalidAuthorizationSignature,
#[doc = "This key is not allowed to execute a given operation."]
#[codec(index = 15u8)]
KeyNotAllowed,
#[doc = "Only the primary key is allowed to revoke an Identity Signatory off-chain authorization."]
#[codec(index = 16u8)]
NotPrimaryKey,
#[doc = "The DID does not exist."]
#[codec(index = 17u8)]
DidDoesNotExist,
#[doc = "The DID already exists."]
#[codec(index = 18u8)]
DidAlreadyExists,
#[doc = "The secondary keys contain the primary key."]
#[codec(index = 19u8)]
SecondaryKeysContainPrimaryKey,
#[doc = "Couldn't charge fee for the transaction."]
#[codec(index = 20u8)]
FailedToChargeFee,
#[doc = "Signer is not a secondary key of the provided identity"]
#[codec(index = 21u8)]
NotASigner,
#[doc = "Cannot convert a `T::AccountId` to `AnySignature::Signer::AccountId`."]
#[codec(index = 22u8)]
CannotDecodeSignerAccountId,
#[doc = "Multisig can not be unlinked from an identity while it still holds POLYX"]
#[codec(index = 23u8)]
MultiSigHasBalance,
#[doc = "Confidential Scope claims can be added by an Identity to it-self."]
#[codec(index = 24u8)]
ConfidentialScopeClaimNotAllowed,
#[doc = "Addition of a new scope claim gets invalidated."]
#[codec(index = 25u8)]
InvalidScopeClaim,
#[doc = "Try to add a claim variant using un-designated extrinsic."]
#[codec(index = 26u8)]
ClaimVariantNotAllowed,
#[doc = "Try to delete the IU claim even when the user has non zero balance at given scopeId."]
#[codec(index = 27u8)]
TargetHasNonZeroBalanceAtScopeId,
#[doc = "CDDId should be unique & same within all cdd claims possessed by a DID."]
#[codec(index = 28u8)]
CDDIdNotUniqueForIdentity,
#[doc = "Non systematic CDD providers can not create default cdd_id claims."]
#[codec(index = 29u8)]
InvalidCDDId,
#[doc = "Claim and Proof versions are different."]
#[codec(index = 30u8)]
ClaimAndProofVersionsDoNotMatch,
#[doc = "The account key is being used, it can't be unlinked."]
#[codec(index = 31u8)]
AccountKeyIsBeingUsed,
#[doc = "A custom scope is too long."]
#[doc = "It can at most be `32` characters long."]
#[codec(index = 32u8)]
CustomScopeTooLong,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::AlreadyLinked => "Identity.AlreadyLinked",
Self::MissingCurrentIdentity => "Identity.MissingCurrentIdentity",
Self::Unauthorized => "Identity.Unauthorized",
Self::InvalidAccountKey => "Identity.InvalidAccountKey",
Self::UnAuthorizedCddProvider => "Identity.UnAuthorizedCddProvider",
Self::InvalidAuthorizationFromOwner => "Identity.InvalidAuthorizationFromOwner",
Self::InvalidAuthorizationFromCddProvider => {
"Identity.InvalidAuthorizationFromCddProvider"
}
Self::NotCddProviderAttestation => "Identity.NotCddProviderAttestation",
Self::AuthorizationsNotForSameDids => "Identity.AuthorizationsNotForSameDids",
Self::DidMustAlreadyExist => "Identity.DidMustAlreadyExist",
Self::CurrentIdentityCannotBeForwarded => "Identity.CurrentIdentityCannotBeForwarded",
Self::AuthorizationExpired => "Identity.AuthorizationExpired",
Self::TargetHasNoCdd => "Identity.TargetHasNoCdd",
Self::AuthorizationHasBeenRevoked => "Identity.AuthorizationHasBeenRevoked",
Self::InvalidAuthorizationSignature => "Identity.InvalidAuthorizationSignature",
Self::KeyNotAllowed => "Identity.KeyNotAllowed",
Self::NotPrimaryKey => "Identity.NotPrimaryKey",
Self::DidDoesNotExist => "Identity.DidDoesNotExist",
Self::DidAlreadyExists => "Identity.DidAlreadyExists",
Self::SecondaryKeysContainPrimaryKey => "Identity.SecondaryKeysContainPrimaryKey",
Self::FailedToChargeFee => "Identity.FailedToChargeFee",
Self::NotASigner => "Identity.NotASigner",
Self::CannotDecodeSignerAccountId => "Identity.CannotDecodeSignerAccountId",
Self::MultiSigHasBalance => "Identity.MultiSigHasBalance",
Self::ConfidentialScopeClaimNotAllowed => "Identity.ConfidentialScopeClaimNotAllowed",
Self::InvalidScopeClaim => "Identity.InvalidScopeClaim",
Self::ClaimVariantNotAllowed => "Identity.ClaimVariantNotAllowed",
Self::TargetHasNonZeroBalanceAtScopeId => "Identity.TargetHasNonZeroBalanceAtScopeId",
Self::CDDIdNotUniqueForIdentity => "Identity.CDDIdNotUniqueForIdentity",
Self::InvalidCDDId => "Identity.InvalidCDDId",
Self::ClaimAndProofVersionsDoNotMatch => "Identity.ClaimAndProofVersionsDoNotMatch",
Self::AccountKeyIsBeingUsed => "Identity.AccountKeyIsBeingUsed",
Self::CustomScopeTooLong => "Identity.CustomScopeTooLong",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: AlreadyLinked => { & ["One secondary or primary key can only belong to one DID" ,] } , Self :: MissingCurrentIdentity => { & ["Missing current identity on the transaction" ,] } , Self :: Unauthorized => { & ["Signatory is not pre authorized by the identity" ,] } , Self :: InvalidAccountKey => { & ["Account Id cannot be extracted from signer" ,] } , Self :: UnAuthorizedCddProvider => { & ["Only CDD service providers are allowed." ,] } , Self :: InvalidAuthorizationFromOwner => { & ["An invalid authorization from the owner." ,] } , Self :: InvalidAuthorizationFromCddProvider => { & ["An invalid authorization from the CDD provider." ,] } , Self :: NotCddProviderAttestation => { & ["Attestation was not by a CDD service provider." ,] } , Self :: AuthorizationsNotForSameDids => { & ["Authorizations are not for the same DID." ,] } , Self :: DidMustAlreadyExist => { & ["The DID must already exist." ,] } , Self :: CurrentIdentityCannotBeForwarded => { & ["Current identity cannot be forwarded, it is not a secondary key of target identity." ,] } , Self :: AuthorizationExpired => { & ["The offchain authorization has expired." ,] } , Self :: TargetHasNoCdd => { & ["The target DID has no valid CDD." ,] } , Self :: AuthorizationHasBeenRevoked => { & ["Authorization has been explicitly revoked." ,] } , Self :: InvalidAuthorizationSignature => { & ["An invalid authorization signature." ,] } , Self :: KeyNotAllowed => { & ["This key is not allowed to execute a given operation." ,] } , Self :: NotPrimaryKey => { & ["Only the primary key is allowed to revoke an Identity Signatory off-chain authorization." ,] } , Self :: DidDoesNotExist => { & ["The DID does not exist." ,] } , Self :: DidAlreadyExists => { & ["The DID already exists." ,] } , Self :: SecondaryKeysContainPrimaryKey => { & ["The secondary keys contain the primary key." ,] } , Self :: FailedToChargeFee => { & ["Couldn't charge fee for the transaction." ,] } , Self :: NotASigner => { & ["Signer is not a secondary key of the provided identity" ,] } , Self :: CannotDecodeSignerAccountId => { & ["Cannot convert a `T::AccountId` to `AnySignature::Signer::AccountId`." ,] } , Self :: MultiSigHasBalance => { & ["Multisig can not be unlinked from an identity while it still holds POLYX" ,] } , Self :: ConfidentialScopeClaimNotAllowed => { & ["Confidential Scope claims can be added by an Identity to it-self." ,] } , Self :: InvalidScopeClaim => { & ["Addition of a new scope claim gets invalidated." ,] } , Self :: ClaimVariantNotAllowed => { & ["Try to add a claim variant using un-designated extrinsic." ,] } , Self :: TargetHasNonZeroBalanceAtScopeId => { & ["Try to delete the IU claim even when the user has non zero balance at given scopeId." ,] } , Self :: CDDIdNotUniqueForIdentity => { & ["CDDId should be unique & same within all cdd claims possessed by a DID." ,] } , Self :: InvalidCDDId => { & ["Non systematic CDD providers can not create default cdd_id claims." ,] } , Self :: ClaimAndProofVersionsDoNotMatch => { & ["Claim and Proof versions are different." ,] } , Self :: AccountKeyIsBeingUsed => { & ["The account key is being used, it can't be unlinked." ,] } , Self :: CustomScopeTooLong => { & ["A custom scope is too long." , "It can at most be `32` characters long." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Register `target_account` with a new Identity."]
#[doc = ""]
#[doc = "# Failure"]
#[doc = "- `origin` has to be a active CDD provider. Inactive CDD providers cannot add new"]
#[doc = "claims."]
#[doc = "- `target_account` (primary key of the new Identity) can be linked to just one and only"]
#[doc = "one identity."]
#[doc = "- External secondary keys can be linked to just one identity."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`7_000_000_000 + 600_000 * secondary_keys.len()`"]
#[codec(index = 0u8)]
cdd_register_did {
target_account: ::polymesh_api_client::AccountId,
secondary_keys:
Vec<polymesh_primitives::secondary_key::SecondaryKey<::polymesh_api_client::AccountId>>,
},
#[doc = "Invalidates any claim generated by `cdd` from `disable_from` timestamps."]
#[doc = ""]
#[doc = "You can also define an expiration time,"]
#[doc = "which will invalidate all claims generated by that `cdd` and remove it as CDD member group."]
#[codec(index = 1u8)]
invalidate_cdd_claims {
cdd: polymesh_primitives::identity_id::IdentityId,
disable_from: u64,
expiry: Option<u64>,
},
#[doc = "Deprecated. Use `remove_secondary_keys` instead."]
#[codec(index = 2u8)]
remove_secondary_keys_old {
keys_to_remove:
Vec<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>,
},
#[doc = "Call this with the new primary key. By invoking this method, caller accepts authorization"]
#[doc = "to become the new primary key of the issuing identity. If a CDD service provider approved"]
#[doc = "this change (or this is not required), primary key of the DID is updated."]
#[doc = ""]
#[doc = "The caller (new primary key) must be either a secondary key of the issuing identity, or"]
#[doc = "unlinked to any identity."]
#[doc = ""]
#[doc = "Differs from rotate_primary_key_to_secondary in that it will unlink the old primary key"]
#[doc = "instead of leaving it as a secondary key."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `owner_auth_id` Authorization from the owner who initiated the change"]
#[doc = "* `cdd_auth_id` Authorization from a CDD service provider"]
#[codec(index = 3u8)]
accept_primary_key {
rotation_auth_id: u64,
optional_cdd_auth_id: Option<u64>,
},
#[doc = "Set if CDD authorization is required for updating primary key of an identity."]
#[doc = "Callable via root (governance)"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_required` CDD Authorization required or not"]
#[codec(index = 4u8)]
change_cdd_requirement_for_mk_rotation { auth_required: bool },
#[doc = "Join an identity as a secondary key."]
#[codec(index = 5u8)]
join_identity_as_key { auth_id: u64 },
#[doc = "Leave the secondary key's identity."]
#[codec(index = 6u8)]
leave_identity_as_key,
#[doc = "Adds a new claim record or edits an existing one."]
#[doc = ""]
#[doc = "Only called by did_issuer's secondary key."]
#[codec(index = 7u8)]
add_claim {
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
expiry: Option<u64>,
},
#[doc = "Marks the specified claim as revoked."]
#[codec(index = 8u8)]
revoke_claim {
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
},
#[doc = "Deprecated. Use `set_secondary_key_permissions` instead."]
#[codec(index = 9u8)]
set_permission_to_signer {
key: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
perms: polymesh_primitives::secondary_key::Permissions,
},
#[doc = "Placeholder for removed `legacy_set_permission_to_signer`."]
#[codec(index = 10u8)]
placeholder_legacy_set_permission_to_signer,
#[doc = "It disables all secondary keys at `did` identity."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = ""]
#[codec(index = 11u8)]
freeze_secondary_keys,
#[doc = "Re-enables all secondary keys of the caller's identity."]
#[codec(index = 12u8)]
unfreeze_secondary_keys,
#[doc = "Adds an authorization."]
#[codec(index = 13u8)]
add_authorization {
target: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
data:
polymesh_primitives::authorization::AuthorizationData<::polymesh_api_client::AccountId>,
expiry: Option<u64>,
},
#[doc = "Removes an authorization."]
#[doc = "_auth_issuer_pays determines whether the issuer of the authorisation pays the transaction fee"]
#[codec(index = 14u8)]
remove_authorization {
target: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
auth_id: u64,
_auth_issuer_pays: bool,
},
#[doc = "Deprecated. Use `add_secondary_keys_with_authorization` instead."]
#[codec(index = 15u8)]
add_secondary_keys_with_authorization_old {
additional_keys: Vec<
polymesh_common_utilities::traits::identity::SecondaryKeyWithAuthV1<
::polymesh_api_client::AccountId,
>,
>,
expires_at: u64,
},
#[doc = "Add `Claim::InvestorUniqueness` claim for a given target identity."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = " Weight of the this extrinsic is depend on the computation that used to validate"]
#[doc = " the proof of claim, which will be a constant independent of user inputs."]
#[doc = "# </weight>"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Who provides the claim to the user? In this case, it's the user's account id as the user provides."]
#[doc = "* target - `IdentityId` to which the claim gets assigned."]
#[doc = "* claim - `InvestorUniqueness` claim details."]
#[doc = "* proof - To validate the self attestation."]
#[doc = "* expiry - Expiry of claim."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `DidMustAlreadyExist` Target should already been a part of the ecosystem."]
#[doc = "* `ClaimVariantNotAllowed` When origin trying to pass claim variant other than `InvestorUniqueness`."]
#[doc = "* `ConfidentialScopeClaimNotAllowed` When issuer is different from target or CDD_ID is invalid for given user."]
#[doc = "* `InvalidScopeClaim When proof is invalid."]
#[doc = "* `InvalidCDDId` when you are not the owner of that CDD_ID."]
#[codec(index = 16u8)]
add_investor_uniqueness_claim {
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))]
proof: [u8; 64usize],
expiry: Option<u64>,
},
#[doc = "Assuming this is executed by the GC voting majority, adds a new cdd claim record."]
#[codec(index = 17u8)]
gc_add_cdd_claim {
target: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Assuming this is executed by the GC voting majority, removes an existing cdd claim record."]
#[codec(index = 18u8)]
gc_revoke_cdd_claim {
target: polymesh_primitives::identity_id::IdentityId,
},
#[codec(index = 19u8)]
add_investor_uniqueness_claim_v2 {
target: polymesh_primitives::identity_id::IdentityId,
scope: polymesh_primitives::identity_claim::Scope,
claim: polymesh_primitives::identity_claim::Claim,
proof: confidential_identity_v2::claim_proofs::ScopeClaimProof,
expiry: Option<u64>,
},
#[doc = "Revokes a specific claim using its [Claim Unique Index](/pallet_identity/index.html#claim-unique-index) composed by `target`,"]
#[doc = "`claim_type`, and `scope`."]
#[doc = ""]
#[doc = "Please note that `origin` must be the issuer of the target claim."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `TargetHasNonZeroBalanceAtScopeId` when you try to revoke a `InvestorUniqueness*`"]
#[doc = "claim, and `target` identity still have any balance on the given `scope`."]
#[codec(index = 20u8)]
revoke_claim_by_index {
target: polymesh_primitives::identity_id::IdentityId,
claim_type: polymesh_primitives::identity_claim::ClaimType,
scope: Option<polymesh_primitives::identity_claim::Scope>,
},
#[doc = "Call this with the new primary key. By invoking this method, caller accepts authorization"]
#[doc = "to become the new primary key of the issuing identity. If a CDD service provider approved"]
#[doc = "this change, (or this is not required), primary key of the DID is updated."]
#[doc = ""]
#[doc = "The caller (new primary key) must be either a secondary key of the issuing identity, or"]
#[doc = "unlinked to any identity."]
#[doc = ""]
#[doc = "Differs from accept_primary_key in that it will leave the old primary key as a secondary"]
#[doc = "key with the permissions specified in the corresponding RotatePrimaryKeyToSecondary authorization"]
#[doc = "instead of unlinking the old primary key."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `owner_auth_id` Authorization from the owner who initiated the change"]
#[doc = "* `cdd_auth_id` Authorization from a CDD service provider"]
#[codec(index = 21u8)]
rotate_primary_key_to_secondary {
auth_id: u64,
optional_cdd_auth_id: Option<u64>,
},
#[doc = "Adds secondary keys to target identity `id`."]
#[doc = ""]
#[doc = "Keys are directly added to identity because each of them has an authorization."]
#[doc = ""]
#[doc = "# Arguments:"]
#[doc = " - `origin` which must be the primary key of the identity `id`."]
#[doc = " - `id` to which new secondary keys will be added."]
#[doc = " - `additional_keys` which includes secondary keys,"]
#[doc = " coupled with authorization data, to add to target identity."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = " - Can only called by primary key owner."]
#[doc = " - Keys should be able to linked to any identity."]
#[codec(index = 22u8)]
add_secondary_keys_with_authorization {
additional_keys: Vec<
polymesh_common_utilities::traits::identity::SecondaryKeyWithAuth<
::polymesh_api_client::AccountId,
>,
>,
expires_at: u64,
},
#[doc = "Sets permissions for an specific `target_key` key."]
#[doc = ""]
#[doc = "Only the primary key of an identity is able to set secondary key permissions."]
#[codec(index = 23u8)]
set_secondary_key_permissions {
key: ::polymesh_api_client::AccountId,
perms: polymesh_primitives::secondary_key::Permissions,
},
#[doc = "Removes specified secondary keys of a DID if present."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = ""]
#[doc = "The extrinsic can only called by primary key owner."]
#[codec(index = 24u8)]
remove_secondary_keys {
keys_to_remove: Vec<::polymesh_api_client::AccountId>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::cdd_register_did { .. } => "Identity.cdd_register_did",
Self::invalidate_cdd_claims { .. } => "Identity.invalidate_cdd_claims",
Self::remove_secondary_keys_old { .. } => "Identity.remove_secondary_keys_old",
Self::accept_primary_key { .. } => "Identity.accept_primary_key",
Self::change_cdd_requirement_for_mk_rotation { .. } => {
"Identity.change_cdd_requirement_for_mk_rotation"
}
Self::join_identity_as_key { .. } => "Identity.join_identity_as_key",
Self::leave_identity_as_key => "Identity.leave_identity_as_key",
Self::add_claim { .. } => "Identity.add_claim",
Self::revoke_claim { .. } => "Identity.revoke_claim",
Self::set_permission_to_signer { .. } => "Identity.set_permission_to_signer",
Self::placeholder_legacy_set_permission_to_signer => {
"Identity.placeholder_legacy_set_permission_to_signer"
}
Self::freeze_secondary_keys => "Identity.freeze_secondary_keys",
Self::unfreeze_secondary_keys => "Identity.unfreeze_secondary_keys",
Self::add_authorization { .. } => "Identity.add_authorization",
Self::remove_authorization { .. } => "Identity.remove_authorization",
Self::add_secondary_keys_with_authorization_old { .. } => {
"Identity.add_secondary_keys_with_authorization_old"
}
Self::add_investor_uniqueness_claim { .. } => "Identity.add_investor_uniqueness_claim",
Self::gc_add_cdd_claim { .. } => "Identity.gc_add_cdd_claim",
Self::gc_revoke_cdd_claim { .. } => "Identity.gc_revoke_cdd_claim",
Self::add_investor_uniqueness_claim_v2 { .. } => {
"Identity.add_investor_uniqueness_claim_v2"
}
Self::revoke_claim_by_index { .. } => "Identity.revoke_claim_by_index",
Self::rotate_primary_key_to_secondary { .. } => {
"Identity.rotate_primary_key_to_secondary"
}
Self::add_secondary_keys_with_authorization { .. } => {
"Identity.add_secondary_keys_with_authorization"
}
Self::set_secondary_key_permissions { .. } => "Identity.set_secondary_key_permissions",
Self::remove_secondary_keys { .. } => "Identity.remove_secondary_keys",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: cdd_register_did { .. } => { & ["Register `target_account` with a new Identity." , "" , "# Failure" , "- `origin` has to be a active CDD provider. Inactive CDD providers cannot add new" , "claims." , "- `target_account` (primary key of the new Identity) can be linked to just one and only" , "one identity." , "- External secondary keys can be linked to just one identity." , "" , "# Weight" , "`7_000_000_000 + 600_000 * secondary_keys.len()`" ,] } , Self :: invalidate_cdd_claims { .. } => { & ["Invalidates any claim generated by `cdd` from `disable_from` timestamps." , "" , "You can also define an expiration time," , "which will invalidate all claims generated by that `cdd` and remove it as CDD member group." ,] } , Self :: remove_secondary_keys_old { .. } => { & ["Deprecated. Use `remove_secondary_keys` instead." ,] } , Self :: accept_primary_key { .. } => { & ["Call this with the new primary key. By invoking this method, caller accepts authorization" , "to become the new primary key of the issuing identity. If a CDD service provider approved" , "this change (or this is not required), primary key of the DID is updated." , "" , "The caller (new primary key) must be either a secondary key of the issuing identity, or" , "unlinked to any identity." , "" , "Differs from rotate_primary_key_to_secondary in that it will unlink the old primary key" , "instead of leaving it as a secondary key." , "" , "# Arguments" , "* `owner_auth_id` Authorization from the owner who initiated the change" , "* `cdd_auth_id` Authorization from a CDD service provider" ,] } , Self :: change_cdd_requirement_for_mk_rotation { .. } => { & ["Set if CDD authorization is required for updating primary key of an identity." , "Callable via root (governance)" , "" , "# Arguments" , "* `auth_required` CDD Authorization required or not" ,] } , Self :: join_identity_as_key { .. } => { & ["Join an identity as a secondary key." ,] } , Self :: leave_identity_as_key => { & ["Leave the secondary key's identity." ,] } , Self :: add_claim { .. } => { & ["Adds a new claim record or edits an existing one." , "" , "Only called by did_issuer's secondary key." ,] } , Self :: revoke_claim { .. } => { & ["Marks the specified claim as revoked." ,] } , Self :: set_permission_to_signer { .. } => { & ["Deprecated. Use `set_secondary_key_permissions` instead." ,] } , Self :: placeholder_legacy_set_permission_to_signer => { & ["Placeholder for removed `legacy_set_permission_to_signer`." ,] } , Self :: freeze_secondary_keys => { & ["It disables all secondary keys at `did` identity." , "" , "# Errors" , "" ,] } , Self :: unfreeze_secondary_keys => { & ["Re-enables all secondary keys of the caller's identity." ,] } , Self :: add_authorization { .. } => { & ["Adds an authorization." ,] } , Self :: remove_authorization { .. } => { & ["Removes an authorization." , "_auth_issuer_pays determines whether the issuer of the authorisation pays the transaction fee" ,] } , Self :: add_secondary_keys_with_authorization_old { .. } => { & ["Deprecated. Use `add_secondary_keys_with_authorization` instead." ,] } , Self :: add_investor_uniqueness_claim { .. } => { & ["Add `Claim::InvestorUniqueness` claim for a given target identity." , "" , "# <weight>" , " Weight of the this extrinsic is depend on the computation that used to validate" , " the proof of claim, which will be a constant independent of user inputs." , "# </weight>" , "" , "# Arguments" , "* origin - Who provides the claim to the user? In this case, it's the user's account id as the user provides." , "* target - `IdentityId` to which the claim gets assigned." , "* claim - `InvestorUniqueness` claim details." , "* proof - To validate the self attestation." , "* expiry - Expiry of claim." , "" , "# Errors" , "* `DidMustAlreadyExist` Target should already been a part of the ecosystem." , "* `ClaimVariantNotAllowed` When origin trying to pass claim variant other than `InvestorUniqueness`." , "* `ConfidentialScopeClaimNotAllowed` When issuer is different from target or CDD_ID is invalid for given user." , "* `InvalidScopeClaim When proof is invalid." , "* `InvalidCDDId` when you are not the owner of that CDD_ID." ,] } , Self :: gc_add_cdd_claim { .. } => { & ["Assuming this is executed by the GC voting majority, adds a new cdd claim record." ,] } , Self :: gc_revoke_cdd_claim { .. } => { & ["Assuming this is executed by the GC voting majority, removes an existing cdd claim record." ,] } , Self :: add_investor_uniqueness_claim_v2 { .. } => { & ["" ,] } , Self :: revoke_claim_by_index { .. } => { & ["Revokes a specific claim using its [Claim Unique Index](/pallet_identity/index.html#claim-unique-index) composed by `target`," , "`claim_type`, and `scope`." , "" , "Please note that `origin` must be the issuer of the target claim." , "" , "# Errors" , "- `TargetHasNonZeroBalanceAtScopeId` when you try to revoke a `InvestorUniqueness*`" , "claim, and `target` identity still have any balance on the given `scope`." ,] } , Self :: rotate_primary_key_to_secondary { .. } => { & ["Call this with the new primary key. By invoking this method, caller accepts authorization" , "to become the new primary key of the issuing identity. If a CDD service provider approved" , "this change, (or this is not required), primary key of the DID is updated." , "" , "The caller (new primary key) must be either a secondary key of the issuing identity, or" , "unlinked to any identity." , "" , "Differs from accept_primary_key in that it will leave the old primary key as a secondary" , "key with the permissions specified in the corresponding RotatePrimaryKeyToSecondary authorization" , "instead of unlinking the old primary key." , "" , "# Arguments" , "* `owner_auth_id` Authorization from the owner who initiated the change" , "* `cdd_auth_id` Authorization from a CDD service provider" ,] } , Self :: add_secondary_keys_with_authorization { .. } => { & ["Adds secondary keys to target identity `id`." , "" , "Keys are directly added to identity because each of them has an authorization." , "" , "# Arguments:" , " - `origin` which must be the primary key of the identity `id`." , " - `id` to which new secondary keys will be added." , " - `additional_keys` which includes secondary keys," , " coupled with authorization data, to add to target identity." , "" , "# Errors" , " - Can only called by primary key owner." , " - Keys should be able to linked to any identity." ,] } , Self :: set_secondary_key_permissions { .. } => { & ["Sets permissions for an specific `target_key` key." , "" , "Only the primary key of an identity is able to set secondary key permissions." ,] } , Self :: remove_secondary_keys { .. } => { & ["Removes specified secondary keys of a DID if present." , "" , "# Errors" , "" , "The extrinsic can only called by primary key owner." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_statistics {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[doc = "Statistics module errors."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Transfer not allowed."]
#[codec(index = 0u8)]
InvalidTransfer,
#[doc = "StatType is not enabled."]
#[codec(index = 1u8)]
StatTypeMissing,
#[doc = "StatType is needed by TransferCondition."]
#[codec(index = 2u8)]
StatTypeNeededByTransferCondition,
#[doc = "A Stattype is in use and can't be removed."]
#[codec(index = 3u8)]
CannotRemoveStatTypeInUse,
#[doc = "The limit of StatTypes allowed for an asset has been reached."]
#[codec(index = 4u8)]
StatTypeLimitReached,
#[doc = "The limit of TransferConditions allowed for an asset has been reached."]
#[codec(index = 5u8)]
TransferConditionLimitReached,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidTransfer => "Statistics.InvalidTransfer",
Self::StatTypeMissing => "Statistics.StatTypeMissing",
Self::StatTypeNeededByTransferCondition => "Statistics.StatTypeNeededByTransferCondition",
Self::CannotRemoveStatTypeInUse => "Statistics.CannotRemoveStatTypeInUse",
Self::StatTypeLimitReached => "Statistics.StatTypeLimitReached",
Self::TransferConditionLimitReached => "Statistics.TransferConditionLimitReached",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidTransfer => &["Transfer not allowed."],
Self::StatTypeMissing => &["StatType is not enabled."],
Self::StatTypeNeededByTransferCondition => &["StatType is needed by TransferCondition."],
Self::CannotRemoveStatTypeInUse => &["A Stattype is in use and can't be removed."],
Self::StatTypeLimitReached => {
&["The limit of StatTypes allowed for an asset has been reached."]
}
Self::TransferConditionLimitReached => {
&["The limit of TransferConditions allowed for an asset has been reached."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Set the active asset stat_types."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `stat_types` - the new stat types to replace any existing types."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `StatTypeLimitReached` - too many stat types enabled for the `asset`."]
#[doc = "- `CannotRemoveStatTypeInUse` - can not remove a stat type that is in use by transfer conditions."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
#[codec(index = 0u8)]
set_active_asset_stats {
asset: polymesh_primitives::statistics::AssetScope,
stat_types: std::collections::BTreeSet<polymesh_primitives::statistics::StatType>,
},
#[doc = "Allow a trusted issuer to init/resync ticker/company stats."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `stat_type` - stat type to update."]
#[doc = "- `values` - Updated values for `stat_type`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `StatTypeMissing` - `stat_type` is not enabled for the `asset`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
#[codec(index = 1u8)]
batch_update_asset_stats {
asset: polymesh_primitives::statistics::AssetScope,
stat_type: polymesh_primitives::statistics::StatType,
values: std::collections::BTreeSet<polymesh_primitives::statistics::StatUpdate>,
},
#[doc = "Set asset transfer compliance rules."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `transfer_conditions` - the new transfer condition to replace any existing conditions."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `TransferConditionLimitReached` - too many transfer condititon enabled for `asset`."]
#[doc = "- `StatTypeMissing` - a transfer condition requires a stat type that is not enabled for the `asset`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
#[codec(index = 2u8)]
set_asset_transfer_compliance {
asset: polymesh_primitives::statistics::AssetScope,
transfer_conditions:
std::collections::BTreeSet<polymesh_primitives::transfer_compliance::TransferCondition>,
},
#[doc = "Set/unset entities exempt from an asset's transfer compliance rules."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `exempt_key.asset`."]
#[doc = "- `is_exempt` - enable/disable exemption for `entities`."]
#[doc = "- `exempt_key` - the asset and stat type to exempt the `entities` from."]
#[doc = "- `entities` - the entities to set/unset the exemption for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
#[codec(index = 3u8)]
set_entities_exempt {
is_exempt: bool,
exempt_key: polymesh_primitives::transfer_compliance::TransferConditionExemptKey,
entities: std::collections::BTreeSet<polymesh_primitives::identity_id::IdentityId>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_active_asset_stats { .. } => "Statistics.set_active_asset_stats",
Self::batch_update_asset_stats { .. } => "Statistics.batch_update_asset_stats",
Self::set_asset_transfer_compliance { .. } => "Statistics.set_asset_transfer_compliance",
Self::set_entities_exempt { .. } => "Statistics.set_entities_exempt",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_active_asset_stats { .. } => { & ["Set the active asset stat_types." , "" , "# Arguments" , "- `origin` - a signer that has permissions to act as an agent of `asset`." , "- `asset` - the asset to change the active stats on." , "- `stat_types` - the new stat types to replace any existing types." , "" , "# Errors" , "- `StatTypeLimitReached` - too many stat types enabled for the `asset`." , "- `CannotRemoveStatTypeInUse` - can not remove a stat type that is in use by transfer conditions." , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`." , "" , "# Permissions" , "- Agent" , "- Asset" ,] } , Self :: batch_update_asset_stats { .. } => { & ["Allow a trusted issuer to init/resync ticker/company stats." , "" , "# Arguments" , "- `origin` - a signer that has permissions to act as an agent of `asset`." , "- `asset` - the asset to change the active stats on." , "- `stat_type` - stat type to update." , "- `values` - Updated values for `stat_type`." , "" , "# Errors" , "- `StatTypeMissing` - `stat_type` is not enabled for the `asset`." , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`." , "" , "# Permissions" , "- Agent" , "- Asset" ,] } , Self :: set_asset_transfer_compliance { .. } => { & ["Set asset transfer compliance rules." , "" , "# Arguments" , "- `origin` - a signer that has permissions to act as an agent of `asset`." , "- `asset` - the asset to change the active stats on." , "- `transfer_conditions` - the new transfer condition to replace any existing conditions." , "" , "# Errors" , "- `TransferConditionLimitReached` - too many transfer condititon enabled for `asset`." , "- `StatTypeMissing` - a transfer condition requires a stat type that is not enabled for the `asset`." , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`." , "" , "# Permissions" , "- Agent" , "- Asset" ,] } , Self :: set_entities_exempt { .. } => { & ["Set/unset entities exempt from an asset's transfer compliance rules." , "" , "# Arguments" , "- `origin` - a signer that has permissions to act as an agent of `exempt_key.asset`." , "- `is_exempt` - enable/disable exemption for `entities`." , "- `exempt_key` - the asset and stat type to exempt the `entities` from." , "- `entities` - the entities to set/unset the exemption for." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`." , "" , "# Permissions" , "- Agent" , "- Asset" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod sp_staking {
use super::*;
pub mod offence {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct OffenceDetails<Reporter, Offender> {
pub offender: Offender,
pub reporters: Vec<Reporter>,
}
}
}
pub mod polymesh_common_utilities {
use super::*;
pub mod traits {
use super::*;
pub mod relayer {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "Authorization given for `paying_key` to `user_key`."]
#[doc = ""]
#[doc = "(Caller DID, User Key, Paying Key, Initial POLYX limit, Auth ID)"]
#[codec(index = 0u8)]
AuthorizedPayingKey(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
AccountId,
AccountId,
u128,
u64,
),
#[doc = "Accepted paying key."]
#[doc = ""]
#[doc = "(Caller DID, User Key, Paying Key)"]
#[codec(index = 1u8)]
AcceptedPayingKey(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
AccountId,
AccountId,
),
#[doc = "Removed paying key."]
#[doc = ""]
#[doc = "(Caller DID, User Key, Paying Key)"]
#[codec(index = 2u8)]
RemovedPayingKey(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
AccountId,
AccountId,
),
#[doc = "Updated polyx limit."]
#[doc = ""]
#[doc = "(Caller DID, User Key, Paying Key, POLYX limit, old remaining POLYX)"]
#[codec(index = 3u8)]
UpdatedPolyxLimit(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
AccountId,
AccountId,
u128,
u128,
),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::AuthorizedPayingKey(_, _, _, _, _) => "Relayer.AuthorizedPayingKey",
Self::AcceptedPayingKey(_, _, _) => "Relayer.AcceptedPayingKey",
Self::RemovedPayingKey(_, _, _) => "Relayer.RemovedPayingKey",
Self::UpdatedPolyxLimit(_, _, _, _, _) => "Relayer.UpdatedPolyxLimit",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::AuthorizedPayingKey(_, _, _, _, _) => &[
"Authorization given for `paying_key` to `user_key`.",
"",
"(Caller DID, User Key, Paying Key, Initial POLYX limit, Auth ID)",
],
Self::AcceptedPayingKey(_, _, _) => &[
"Accepted paying key.",
"",
"(Caller DID, User Key, Paying Key)",
],
Self::RemovedPayingKey(_, _, _) => &[
"Removed paying key.",
"",
"(Caller DID, User Key, Paying Key)",
],
Self::UpdatedPolyxLimit(_, _, _, _, _) => &[
"Updated polyx limit.",
"",
"(Caller DID, User Key, Paying Key, POLYX limit, old remaining POLYX)",
],
_ => &[""],
}
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
}
pub mod identity {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId, Moment> {
#[doc = "Identity created."]
#[doc = ""]
#[doc = "(DID, primary key, secondary keys)"]
#[codec(index = 0u8)]
DidCreated(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Vec<polymesh_primitives::secondary_key::SecondaryKey<AccountId>>,
),
#[doc = "Secondary keys added to identity."]
#[doc = ""]
#[doc = "(DID, new keys)"]
#[codec(index = 1u8)]
SecondaryKeysAdded(
polymesh_primitives::identity_id::IdentityId,
Vec<polymesh_primitives::secondary_key::SecondaryKey<AccountId>>,
),
#[doc = "Secondary keys removed from identity."]
#[doc = ""]
#[doc = "(DID, the keys that got removed)"]
#[codec(index = 2u8)]
SecondaryKeysRemoved(polymesh_primitives::identity_id::IdentityId, Vec<AccountId>),
#[doc = "A secondary key left their identity."]
#[doc = ""]
#[doc = "(DID, secondary key)"]
#[codec(index = 3u8)]
SecondaryKeyLeftIdentity(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "Secondary key permissions updated."]
#[doc = ""]
#[doc = "(DID, updated secondary key, previous permissions, new permissions)"]
#[codec(index = 4u8)]
SecondaryKeyPermissionsUpdated(
polymesh_primitives::identity_id::IdentityId,
AccountId,
polymesh_primitives::secondary_key::Permissions,
polymesh_primitives::secondary_key::Permissions,
),
#[doc = "Primary key of identity changed."]
#[doc = ""]
#[doc = "(DID, old primary key account ID, new ID)"]
#[codec(index = 5u8)]
PrimaryKeyUpdated(
polymesh_primitives::identity_id::IdentityId,
AccountId,
AccountId,
),
#[doc = "Claim added to identity."]
#[doc = ""]
#[doc = "(DID, claim)"]
#[codec(index = 6u8)]
ClaimAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_claim::IdentityClaim,
),
#[doc = "Claim revoked from identity."]
#[doc = ""]
#[doc = "(DID, claim)"]
#[codec(index = 7u8)]
ClaimRevoked(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_claim::IdentityClaim,
),
#[doc = "Asset's identity registered."]
#[doc = ""]
#[doc = "(Asset DID, ticker)"]
#[codec(index = 8u8)]
AssetDidRegistered(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "New authorization added."]
#[doc = ""]
#[doc = "(authorised_by, target_did, target_key, auth_id, authorization_data, expiry)"]
#[codec(index = 9u8)]
AuthorizationAdded(
polymesh_primitives::identity_id::IdentityId,
Option<polymesh_primitives::identity_id::IdentityId>,
Option<AccountId>,
Moment,
polymesh_primitives::authorization::AuthorizationData<AccountId>,
Option<Moment>,
),
#[doc = "Authorization revoked by the authorizer."]
#[doc = ""]
#[doc = "(authorized_identity, authorized_key, auth_id)"]
#[codec(index = 10u8)]
AuthorizationRevoked(
Option<polymesh_primitives::identity_id::IdentityId>,
Option<AccountId>,
Moment,
),
#[doc = "Authorization rejected by the user who was authorized."]
#[doc = ""]
#[doc = "(authorized_identity, authorized_key, auth_id)"]
#[codec(index = 11u8)]
AuthorizationRejected(
Option<polymesh_primitives::identity_id::IdentityId>,
Option<AccountId>,
Moment,
),
#[doc = "Authorization consumed."]
#[doc = ""]
#[doc = "(authorized_identity, authorized_key, auth_id)"]
#[codec(index = 12u8)]
AuthorizationConsumed(
Option<polymesh_primitives::identity_id::IdentityId>,
Option<AccountId>,
Moment,
),
#[doc = "Accepting Authorization retry limit reached."]
#[doc = ""]
#[doc = "(authorized_identity, authorized_key, auth_id)"]
#[codec(index = 13u8)]
AuthorizationRetryLimitReached(
Option<polymesh_primitives::identity_id::IdentityId>,
Option<AccountId>,
Moment,
),
#[doc = "CDD requirement for updating primary key changed."]
#[doc = ""]
#[doc = "(new_requirement)"]
#[codec(index = 14u8)]
CddRequirementForPrimaryKeyUpdated(bool),
#[doc = "CDD claims generated by `IdentityId` (a CDD Provider) have been invalidated from"]
#[doc = "`Moment`."]
#[doc = ""]
#[doc = "(CDD provider DID, disable from date)"]
#[codec(index = 15u8)]
CddClaimsInvalidated(polymesh_primitives::identity_id::IdentityId, Moment),
#[doc = "All Secondary keys of the identity ID are frozen."]
#[doc = ""]
#[doc = "(DID)"]
#[codec(index = 16u8)]
SecondaryKeysFrozen(polymesh_primitives::identity_id::IdentityId),
#[doc = "All Secondary keys of the identity ID are unfrozen."]
#[doc = ""]
#[doc = "(DID)"]
#[codec(index = 17u8)]
SecondaryKeysUnfrozen(polymesh_primitives::identity_id::IdentityId),
}
impl<AccountId, Moment> RawEvent<AccountId, Moment> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::DidCreated(_, _, _) => "Identity.DidCreated",
Self::SecondaryKeysAdded(_, _) => "Identity.SecondaryKeysAdded",
Self::SecondaryKeysRemoved(_, _) => "Identity.SecondaryKeysRemoved",
Self::SecondaryKeyLeftIdentity(_, _) => "Identity.SecondaryKeyLeftIdentity",
Self::SecondaryKeyPermissionsUpdated(_, _, _, _) => {
"Identity.SecondaryKeyPermissionsUpdated"
}
Self::PrimaryKeyUpdated(_, _, _) => "Identity.PrimaryKeyUpdated",
Self::ClaimAdded(_, _) => "Identity.ClaimAdded",
Self::ClaimRevoked(_, _) => "Identity.ClaimRevoked",
Self::AssetDidRegistered(_, _) => "Identity.AssetDidRegistered",
Self::AuthorizationAdded(_, _, _, _, _, _) => "Identity.AuthorizationAdded",
Self::AuthorizationRevoked(_, _, _) => "Identity.AuthorizationRevoked",
Self::AuthorizationRejected(_, _, _) => "Identity.AuthorizationRejected",
Self::AuthorizationConsumed(_, _, _) => "Identity.AuthorizationConsumed",
Self::AuthorizationRetryLimitReached(_, _, _) => {
"Identity.AuthorizationRetryLimitReached"
}
Self::CddRequirementForPrimaryKeyUpdated(_) => {
"Identity.CddRequirementForPrimaryKeyUpdated"
}
Self::CddClaimsInvalidated(_, _) => "Identity.CddClaimsInvalidated",
Self::SecondaryKeysFrozen(_) => "Identity.SecondaryKeysFrozen",
Self::SecondaryKeysUnfrozen(_) => "Identity.SecondaryKeysUnfrozen",
_ => "Unknown",
}
}
}
impl<AccountId, Moment> ::polymesh_api_client::EnumInfo for RawEvent<AccountId, Moment> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::DidCreated(_, _, _) => &[
"Identity created.",
"",
"(DID, primary key, secondary keys)",
],
Self::SecondaryKeysAdded(_, _) => {
&["Secondary keys added to identity.", "", "(DID, new keys)"]
}
Self::SecondaryKeysRemoved(_, _) => &[
"Secondary keys removed from identity.",
"",
"(DID, the keys that got removed)",
],
Self::SecondaryKeyLeftIdentity(_, _) => &[
"A secondary key left their identity.",
"",
"(DID, secondary key)",
],
Self::SecondaryKeyPermissionsUpdated(_, _, _, _) => &[
"Secondary key permissions updated.",
"",
"(DID, updated secondary key, previous permissions, new permissions)",
],
Self::PrimaryKeyUpdated(_, _, _) => &[
"Primary key of identity changed.",
"",
"(DID, old primary key account ID, new ID)",
],
Self::ClaimAdded(_, _) => &["Claim added to identity.", "", "(DID, claim)"],
Self::ClaimRevoked(_, _) => &["Claim revoked from identity.", "", "(DID, claim)"],
Self::AssetDidRegistered(_, _) => {
&["Asset's identity registered.", "", "(Asset DID, ticker)"]
}
Self::AuthorizationAdded(_, _, _, _, _, _) => &[
"New authorization added.",
"",
"(authorised_by, target_did, target_key, auth_id, authorization_data, expiry)",
],
Self::AuthorizationRevoked(_, _, _) => &[
"Authorization revoked by the authorizer.",
"",
"(authorized_identity, authorized_key, auth_id)",
],
Self::AuthorizationRejected(_, _, _) => &[
"Authorization rejected by the user who was authorized.",
"",
"(authorized_identity, authorized_key, auth_id)",
],
Self::AuthorizationConsumed(_, _, _) => &[
"Authorization consumed.",
"",
"(authorized_identity, authorized_key, auth_id)",
],
Self::AuthorizationRetryLimitReached(_, _, _) => &[
"Accepting Authorization retry limit reached.",
"",
"(authorized_identity, authorized_key, auth_id)",
],
Self::CddRequirementForPrimaryKeyUpdated(_) => &[
"CDD requirement for updating primary key changed.",
"",
"(new_requirement)",
],
Self::CddClaimsInvalidated(_, _) => &[
"CDD claims generated by `IdentityId` (a CDD Provider) have been invalidated from",
"`Moment`.",
"",
"(CDD provider DID, disable from date)",
],
Self::SecondaryKeysFrozen(_) => &[
"All Secondary keys of the identity ID are frozen.",
"",
"(DID)",
],
Self::SecondaryKeysUnfrozen(_) => &[
"All Secondary keys of the identity ID are unfrozen.",
"",
"(DID)",
],
_ => &[""],
}
}
}
impl<AccountId, Moment> From<RawEvent<AccountId, Moment>> for &'static str {
fn from(v: RawEvent<AccountId, Moment>) -> Self {
v.as_static_str()
}
}
impl<AccountId, Moment> From<&RawEvent<AccountId, Moment>> for &'static str {
fn from(v: &RawEvent<AccountId, Moment>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SecondaryKeyWithAuth<AccountId> {
pub secondary_key: polymesh_primitives::secondary_key::SecondaryKey<AccountId>,
pub auth_signature: primitive_types::H512,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SecondaryKeyWithAuthV1<AccountId> {
pub secondary_key: polymesh_primitives::secondary_key::v1::SecondaryKey<AccountId>,
pub auth_signature: primitive_types::H512,
}
}
pub mod checkpoint {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A checkpoint was created."]
#[doc = ""]
#[doc = "(caller DID, ticker, checkpoint ID, total supply, checkpoint timestamp)"]
#[codec(index = 0u8)]
CheckpointCreated(
Option<
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::calendar::CheckpointId,
u128,
u64,
),
#[doc = "The maximum complexity for an arbitrary ticker's schedule set was changed."]
#[doc = ""]
#[doc = "(GC DID, the new maximum)"]
#[codec(index = 1u8)]
MaximumSchedulesComplexityChanged(polymesh_primitives::identity_id::IdentityId, u64),
#[doc = "A checkpoint schedule was created."]
#[doc = ""]
#[doc = "(caller DID, ticker, schedule)"]
#[codec(index = 2u8)]
ScheduleCreated(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_common_utilities::traits::checkpoint::StoredSchedule,
),
#[doc = "A checkpoint schedule was removed."]
#[doc = ""]
#[doc = "(caller DID, ticker, schedule)"]
#[codec(index = 3u8)]
ScheduleRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_common_utilities::traits::checkpoint::StoredSchedule,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::CheckpointCreated(_, _, _, _, _) => "Checkpoint.CheckpointCreated",
Self::MaximumSchedulesComplexityChanged(_, _) => {
"Checkpoint.MaximumSchedulesComplexityChanged"
}
Self::ScheduleCreated(_, _, _) => "Checkpoint.ScheduleCreated",
Self::ScheduleRemoved(_, _, _) => "Checkpoint.ScheduleRemoved",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::CheckpointCreated(_, _, _, _, _) => &[
"A checkpoint was created.",
"",
"(caller DID, ticker, checkpoint ID, total supply, checkpoint timestamp)",
],
Self::MaximumSchedulesComplexityChanged(_, _) => &[
"The maximum complexity for an arbitrary ticker's schedule set was changed.",
"",
"(GC DID, the new maximum)",
],
Self::ScheduleCreated(_, _, _) => &[
"A checkpoint schedule was created.",
"",
"(caller DID, ticker, schedule)",
],
Self::ScheduleRemoved(_, _, _) => &[
"A checkpoint schedule was removed.",
"",
"(caller DID, ticker, schedule)",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StoredSchedule {
pub schedule: polymesh_primitives::calendar::CheckpointSchedule,
pub id: polymesh_common_utilities::traits::checkpoint::ScheduleId,
pub at: u64,
pub remaining: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ScheduleId(pub u64);
}
pub mod portfolio {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "The portfolio has been successfully created."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* portfolio number"]
#[doc = "* portfolio name"]
#[codec(index = 0u8)]
PortfolioCreated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioNumber,
polymesh_primitives::identity_id::PortfolioName,
),
#[doc = "The portfolio has been successfully removed."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* portfolio number"]
#[codec(index = 1u8)]
PortfolioDeleted(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioNumber,
),
#[doc = "A token amount has been moved from one portfolio to another."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* source portfolio"]
#[doc = "* destination portfolio"]
#[doc = "* asset ticker"]
#[doc = "* asset balance that was moved"]
#[codec(index = 2u8)]
MovedBetweenPortfolios(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioId,
polymesh_primitives::identity_id::PortfolioId,
polymesh_primitives::ticker::Ticker,
u128,
Option<polymesh_common_utilities::traits::balances::Memo>,
),
#[doc = "The portfolio identified with `num` has been renamed to `name`."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* portfolio number"]
#[doc = "* portfolio name"]
#[codec(index = 3u8)]
PortfolioRenamed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioNumber,
polymesh_primitives::identity_id::PortfolioName,
),
#[doc = "All non-default portfolio numbers and names of a DID."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* vector of number-name pairs"]
#[codec(index = 4u8)]
UserPortfolios(
polymesh_primitives::identity_id::IdentityId,
Vec<(
polymesh_primitives::identity_id::PortfolioNumber,
polymesh_primitives::identity_id::PortfolioName,
)>,
),
#[doc = "Custody of a portfolio has been given to a different identity"]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "* origin DID"]
#[doc = "* portfolio id"]
#[doc = "* portfolio custodian did"]
#[codec(index = 5u8)]
PortfolioCustodianChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::PortfolioId,
polymesh_primitives::identity_id::IdentityId,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::PortfolioCreated(_, _, _) => "Portfolio.PortfolioCreated",
Self::PortfolioDeleted(_, _) => "Portfolio.PortfolioDeleted",
Self::MovedBetweenPortfolios(_, _, _, _, _, _) => "Portfolio.MovedBetweenPortfolios",
Self::PortfolioRenamed(_, _, _) => "Portfolio.PortfolioRenamed",
Self::UserPortfolios(_, _) => "Portfolio.UserPortfolios",
Self::PortfolioCustodianChanged(_, _, _) => "Portfolio.PortfolioCustodianChanged",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::PortfolioCreated(_, _, _) => &[
"The portfolio has been successfully created.",
"",
"# Parameters",
"* origin DID",
"* portfolio number",
"* portfolio name",
],
Self::PortfolioDeleted(_, _) => &[
"The portfolio has been successfully removed.",
"",
"# Parameters",
"* origin DID",
"* portfolio number",
],
Self::MovedBetweenPortfolios(_, _, _, _, _, _) => &[
"A token amount has been moved from one portfolio to another.",
"",
"# Parameters",
"* origin DID",
"* source portfolio",
"* destination portfolio",
"* asset ticker",
"* asset balance that was moved",
],
Self::PortfolioRenamed(_, _, _) => &[
"The portfolio identified with `num` has been renamed to `name`.",
"",
"# Parameters",
"* origin DID",
"* portfolio number",
"* portfolio name",
],
Self::UserPortfolios(_, _) => &[
"All non-default portfolio numbers and names of a DID.",
"",
"# Parameters",
"* origin DID",
"* vector of number-name pairs",
],
Self::PortfolioCustodianChanged(_, _, _) => &[
"Custody of a portfolio has been given to a different identity",
"",
"# Parameters",
"* origin DID",
"* portfolio id",
"* portfolio custodian did",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod external_agents {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "An Agent Group was created."]
#[doc = ""]
#[doc = "(Caller DID, AG's ticker, AG's ID, AG's permissions)"]
#[codec(index = 0u8)]
GroupCreated(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::agent::AGId,
polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
),
#[doc = "An Agent Group's permissions was updated."]
#[doc = ""]
#[doc = "(Caller DID, AG's ticker, AG's ID, AG's new permissions)"]
#[codec(index = 1u8)]
GroupPermissionsUpdated(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::agent::AGId,
polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
),
#[doc = "An agent was added."]
#[doc = ""]
#[doc = "(Caller/Agent DID, Agent's ticker, Agent's group)"]
#[codec(index = 2u8)]
AgentAdded(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::agent::AgentGroup,
),
#[doc = "An agent was removed."]
#[doc = ""]
#[doc = "(Caller DID, Agent's ticker, Agent's DID)"]
#[codec(index = 3u8)]
AgentRemoved(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "An agent's group was changed."]
#[doc = ""]
#[doc = "(Caller DID, Agent's ticker, Agent's DID, The new group of the agent)"]
#[codec(index = 4u8)]
GroupChanged(
polymesh_primitives::event_only::EventOnly<
polymesh_primitives::identity_id::IdentityId,
>,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::agent::AgentGroup,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::GroupCreated(_, _, _, _) => "ExternalAgents.GroupCreated",
Self::GroupPermissionsUpdated(_, _, _, _) => "ExternalAgents.GroupPermissionsUpdated",
Self::AgentAdded(_, _, _) => "ExternalAgents.AgentAdded",
Self::AgentRemoved(_, _, _) => "ExternalAgents.AgentRemoved",
Self::GroupChanged(_, _, _, _) => "ExternalAgents.GroupChanged",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::GroupCreated(_, _, _, _) => &[
"An Agent Group was created.",
"",
"(Caller DID, AG's ticker, AG's ID, AG's permissions)",
],
Self::GroupPermissionsUpdated(_, _, _, _) => &[
"An Agent Group's permissions was updated.",
"",
"(Caller DID, AG's ticker, AG's ID, AG's new permissions)",
],
Self::AgentAdded(_, _, _) => &[
"An agent was added.",
"",
"(Caller/Agent DID, Agent's ticker, Agent's group)",
],
Self::AgentRemoved(_, _, _) => &[
"An agent was removed.",
"",
"(Caller DID, Agent's ticker, Agent's DID)",
],
Self::GroupChanged(_, _, _, _) => &[
"An agent's group was changed.",
"",
"(Caller DID, Agent's ticker, Agent's DID, The new group of the agent)",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod group {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId, Event, I> {
#[doc = "The given member was added; see the transaction for who."]
#[doc = "caller DID, New member DID."]
#[codec(index = 0u8)]
MemberAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "The given member was removed; see the transaction for who."]
#[doc = "caller DID, member DID that get removed."]
#[codec(index = 1u8)]
MemberRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "The given member has been revoked at specific time-stamp."]
#[doc = "caller DID, member DID that get revoked."]
#[codec(index = 2u8)]
MemberRevoked(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "Two members were swapped; see the transaction for who."]
#[doc = "caller DID, Removed DID, New add DID."]
#[codec(index = 3u8)]
MembersSwapped(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "The membership was reset; see the transaction for who the new set is."]
#[doc = "caller DID, List of new members."]
#[codec(index = 4u8)]
MembersReset(
polymesh_primitives::identity_id::IdentityId,
Vec<polymesh_primitives::identity_id::IdentityId>,
),
#[doc = "The limit of how many active members there can be concurrently was changed."]
#[codec(index = 5u8)]
ActiveLimitChanged(polymesh_primitives::identity_id::IdentityId, u32, u32),
#[doc = "Phantom member, never used."]
#[codec(index = 6u8)]
Dummy,
PhantomDataVariant(core::marker::PhantomData<(AccountId, Event, I)>),
}
impl<AccountId, Event, I> RawEvent<AccountId, Event, I> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::MemberAdded(_, _) => "UpgradeCommitteeMembership.MemberAdded",
Self::MemberRemoved(_, _) => "UpgradeCommitteeMembership.MemberRemoved",
Self::MemberRevoked(_, _) => "UpgradeCommitteeMembership.MemberRevoked",
Self::MembersSwapped(_, _, _) => "UpgradeCommitteeMembership.MembersSwapped",
Self::MembersReset(_, _) => "UpgradeCommitteeMembership.MembersReset",
Self::ActiveLimitChanged(_, _, _) => "UpgradeCommitteeMembership.ActiveLimitChanged",
Self::Dummy => "UpgradeCommitteeMembership.Dummy",
_ => "Unknown",
}
}
}
impl<AccountId, Event, I> ::polymesh_api_client::EnumInfo for RawEvent<AccountId, Event, I> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::MemberAdded(_, _) => &[
"The given member was added; see the transaction for who.",
"caller DID, New member DID.",
],
Self::MemberRemoved(_, _) => &[
"The given member was removed; see the transaction for who.",
"caller DID, member DID that get removed.",
],
Self::MemberRevoked(_, _) => &[
"The given member has been revoked at specific time-stamp.",
"caller DID, member DID that get revoked.",
],
Self::MembersSwapped(_, _, _) => &[
"Two members were swapped; see the transaction for who.",
"caller DID, Removed DID, New add DID.",
],
Self::MembersReset(_, _) => &[
"The membership was reset; see the transaction for who the new set is.",
"caller DID, List of new members.",
],
Self::ActiveLimitChanged(_, _, _) => {
&["The limit of how many active members there can be concurrently was changed."]
}
Self::Dummy => &["Phantom member, never used."],
_ => &[""],
}
}
}
impl<AccountId, Event, I> From<RawEvent<AccountId, Event, I>> for &'static str {
fn from(v: RawEvent<AccountId, Event, I>) -> Self {
v.as_static_str()
}
}
impl<AccountId, Event, I> From<&RawEvent<AccountId, Event, I>> for &'static str {
fn from(v: &RawEvent<AccountId, Event, I>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct InactiveMember<Moment> {
pub id: polymesh_primitives::identity_id::IdentityId,
pub deactivated_at: Moment,
pub expiry: Option<Moment>,
}
}
pub mod base {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "An unexpected error happened that should be investigated."]
#[codec(index = 0u8)]
UnexpectedError(Option<sp_runtime::DispatchError>),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::UnexpectedError(_) => "Base.UnexpectedError",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::UnexpectedError(_) => {
&["An unexpected error happened that should be investigated."]
}
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod asset {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Moment, AccountId> {
#[doc = "Event for transfer of tokens."]
#[doc = "caller DID, ticker, from portfolio, to portfolio, value"]
#[codec(index = 0u8)]
Transfer(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::PortfolioId,
polymesh_primitives::identity_id::PortfolioId,
u128,
),
#[doc = "Emit when tokens get issued."]
#[doc = "caller DID, ticker, beneficiary DID, value, funding round, total issued in this funding round"]
#[codec(index = 1u8)]
Issued(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
u128,
polymesh_primitives::asset::FundingRoundName,
u128,
),
#[doc = "Emit when tokens get redeemed."]
#[doc = "caller DID, ticker, from DID, value"]
#[codec(index = 2u8)]
Redeemed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
u128,
),
#[doc = "Event for creation of the asset."]
#[doc = "caller DID/ owner DID, ticker, divisibility, asset type, beneficiary DID, disable investor uniqueness"]
#[codec(index = 3u8)]
AssetCreated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
bool,
polymesh_primitives::asset::AssetType,
polymesh_primitives::identity_id::IdentityId,
bool,
),
#[doc = "Event emitted when any token identifiers are updated."]
#[doc = "caller DID, ticker, a vector of (identifier type, identifier value)"]
#[codec(index = 4u8)]
IdentifiersUpdated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
),
#[doc = "Event for change in divisibility."]
#[doc = "caller DID, ticker, divisibility"]
#[codec(index = 5u8)]
DivisibilityChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
bool,
),
#[doc = "An additional event to Transfer; emitted when `transfer_with_data` is called."]
#[doc = "caller DID , ticker, from DID, to DID, value, data"]
#[codec(index = 6u8)]
TransferWithData(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
u128,
Vec<u8>,
),
#[doc = "is_issuable() output"]
#[doc = "ticker, return value (true if issuable)"]
#[codec(index = 7u8)]
IsIssuable(polymesh_primitives::ticker::Ticker, bool),
#[doc = "Emit when ticker is registered."]
#[doc = "caller DID / ticker owner did, ticker, ticker owner, expiry"]
#[codec(index = 8u8)]
TickerRegistered(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
Option<Moment>,
),
#[doc = "Emit when ticker is transferred."]
#[doc = "caller DID / ticker transferred to DID, ticker, from"]
#[codec(index = 9u8)]
TickerTransferred(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "Emit when token ownership is transferred."]
#[doc = "caller DID / token ownership transferred to DID, ticker, from"]
#[codec(index = 10u8)]
AssetOwnershipTransferred(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "An event emitted when an asset is frozen."]
#[doc = "Parameter: caller DID, ticker."]
#[codec(index = 11u8)]
AssetFrozen(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "An event emitted when an asset is unfrozen."]
#[doc = "Parameter: caller DID, ticker."]
#[codec(index = 12u8)]
AssetUnfrozen(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "An event emitted when a token is renamed."]
#[doc = "Parameters: caller DID, ticker, new token name."]
#[codec(index = 13u8)]
AssetRenamed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset::AssetName,
),
#[doc = "An event carrying the name of the current funding round of a ticker."]
#[doc = "Parameters: caller DID, ticker, funding round name."]
#[codec(index = 14u8)]
FundingRoundSet(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset::FundingRoundName,
),
#[doc = "A new document attached to an asset"]
#[codec(index = 15u8)]
DocumentAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::document::DocumentId,
polymesh_primitives::document::Document,
),
#[doc = "A document removed from an asset"]
#[codec(index = 16u8)]
DocumentRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::document::DocumentId,
),
#[doc = "A extension got removed."]
#[doc = "caller DID, ticker, AccountId"]
#[codec(index = 17u8)]
ExtensionRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
AccountId,
),
#[doc = "A Polymath Classic token was claimed and transferred to a non-systematic DID."]
#[codec(index = 18u8)]
ClassicTickerClaimed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::ethereum::EthereumAddress,
),
#[doc = "Event for when a forced transfer takes place."]
#[doc = "caller DID/ controller DID, ticker, Portfolio of token holder, value."]
#[codec(index = 19u8)]
ControllerTransfer(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::PortfolioId,
u128,
),
#[doc = "A custom asset type already exists on-chain."]
#[doc = "caller DID, the ID of the custom asset type, the string contents registered."]
#[codec(index = 20u8)]
CustomAssetTypeExists(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::asset::CustomAssetTypeId,
Vec<u8>,
),
#[doc = "A custom asset type was registered on-chain."]
#[doc = "caller DID, the ID of the custom asset type, the string contents registered."]
#[codec(index = 21u8)]
CustomAssetTypeRegistered(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::asset::CustomAssetTypeId,
Vec<u8>,
),
#[doc = "Set asset metadata value."]
#[doc = "(Caller DID, ticker, metadata value, optional value details)"]
#[codec(index = 22u8)]
SetAssetMetadataValue(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset_metadata::AssetMetadataValue,
Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<Moment>>,
),
#[doc = "Set asset metadata value details (expire, lock status)."]
#[doc = "(Caller DID, ticker, value details)"]
#[codec(index = 23u8)]
SetAssetMetadataValueDetails(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset_metadata::AssetMetadataValueDetail<Moment>,
),
#[doc = "Register asset metadata local type."]
#[doc = "(Caller DID, ticker, Local type name, Local type key, type specs)"]
#[codec(index = 24u8)]
RegisterAssetMetadataLocalType(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset_metadata::AssetMetadataName,
polymesh_primitives::asset_metadata::AssetMetadataLocalKey,
polymesh_primitives::asset_metadata::AssetMetadataSpec,
),
#[doc = "Register asset metadata global type."]
#[doc = "(Global type name, Global type key, type specs)"]
#[codec(index = 25u8)]
RegisterAssetMetadataGlobalType(
polymesh_primitives::asset_metadata::AssetMetadataName,
polymesh_primitives::asset_metadata::AssetMetadataGlobalKey,
polymesh_primitives::asset_metadata::AssetMetadataSpec,
),
}
impl<Moment, AccountId> RawEvent<Moment, AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Transfer(_, _, _, _, _) => "Asset.Transfer",
Self::Issued(_, _, _, _, _, _) => "Asset.Issued",
Self::Redeemed(_, _, _, _) => "Asset.Redeemed",
Self::AssetCreated(_, _, _, _, _, _) => "Asset.AssetCreated",
Self::IdentifiersUpdated(_, _, _) => "Asset.IdentifiersUpdated",
Self::DivisibilityChanged(_, _, _) => "Asset.DivisibilityChanged",
Self::TransferWithData(_, _, _, _, _, _) => "Asset.TransferWithData",
Self::IsIssuable(_, _) => "Asset.IsIssuable",
Self::TickerRegistered(_, _, _) => "Asset.TickerRegistered",
Self::TickerTransferred(_, _, _) => "Asset.TickerTransferred",
Self::AssetOwnershipTransferred(_, _, _) => "Asset.AssetOwnershipTransferred",
Self::AssetFrozen(_, _) => "Asset.AssetFrozen",
Self::AssetUnfrozen(_, _) => "Asset.AssetUnfrozen",
Self::AssetRenamed(_, _, _) => "Asset.AssetRenamed",
Self::FundingRoundSet(_, _, _) => "Asset.FundingRoundSet",
Self::DocumentAdded(_, _, _, _) => "Asset.DocumentAdded",
Self::DocumentRemoved(_, _, _) => "Asset.DocumentRemoved",
Self::ExtensionRemoved(_, _, _) => "Asset.ExtensionRemoved",
Self::ClassicTickerClaimed(_, _, _) => "Asset.ClassicTickerClaimed",
Self::ControllerTransfer(_, _, _, _) => "Asset.ControllerTransfer",
Self::CustomAssetTypeExists(_, _, _) => "Asset.CustomAssetTypeExists",
Self::CustomAssetTypeRegistered(_, _, _) => "Asset.CustomAssetTypeRegistered",
Self::SetAssetMetadataValue(_, _, _, _) => "Asset.SetAssetMetadataValue",
Self::SetAssetMetadataValueDetails(_, _, _) => "Asset.SetAssetMetadataValueDetails",
Self::RegisterAssetMetadataLocalType(_, _, _, _, _) => {
"Asset.RegisterAssetMetadataLocalType"
}
Self::RegisterAssetMetadataGlobalType(_, _, _) => {
"Asset.RegisterAssetMetadataGlobalType"
}
_ => "Unknown",
}
}
}
impl<Moment, AccountId> ::polymesh_api_client::EnumInfo for RawEvent<Moment, AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Transfer (_ , _ , _ , _ , _) => { & ["Event for transfer of tokens." , "caller DID, ticker, from portfolio, to portfolio, value" ,] } , Self :: Issued (_ , _ , _ , _ , _ , _) => { & ["Emit when tokens get issued." , "caller DID, ticker, beneficiary DID, value, funding round, total issued in this funding round" ,] } , Self :: Redeemed (_ , _ , _ , _) => { & ["Emit when tokens get redeemed." , "caller DID, ticker, from DID, value" ,] } , Self :: AssetCreated (_ , _ , _ , _ , _ , _) => { & ["Event for creation of the asset." , "caller DID/ owner DID, ticker, divisibility, asset type, beneficiary DID, disable investor uniqueness" ,] } , Self :: IdentifiersUpdated (_ , _ , _) => { & ["Event emitted when any token identifiers are updated." , "caller DID, ticker, a vector of (identifier type, identifier value)" ,] } , Self :: DivisibilityChanged (_ , _ , _) => { & ["Event for change in divisibility." , "caller DID, ticker, divisibility" ,] } , Self :: TransferWithData (_ , _ , _ , _ , _ , _) => { & ["An additional event to Transfer; emitted when `transfer_with_data` is called." , "caller DID , ticker, from DID, to DID, value, data" ,] } , Self :: IsIssuable (_ , _) => { & ["is_issuable() output" , "ticker, return value (true if issuable)" ,] } , Self :: TickerRegistered (_ , _ , _) => { & ["Emit when ticker is registered." , "caller DID / ticker owner did, ticker, ticker owner, expiry" ,] } , Self :: TickerTransferred (_ , _ , _) => { & ["Emit when ticker is transferred." , "caller DID / ticker transferred to DID, ticker, from" ,] } , Self :: AssetOwnershipTransferred (_ , _ , _) => { & ["Emit when token ownership is transferred." , "caller DID / token ownership transferred to DID, ticker, from" ,] } , Self :: AssetFrozen (_ , _) => { & ["An event emitted when an asset is frozen." , "Parameter: caller DID, ticker." ,] } , Self :: AssetUnfrozen (_ , _) => { & ["An event emitted when an asset is unfrozen." , "Parameter: caller DID, ticker." ,] } , Self :: AssetRenamed (_ , _ , _) => { & ["An event emitted when a token is renamed." , "Parameters: caller DID, ticker, new token name." ,] } , Self :: FundingRoundSet (_ , _ , _) => { & ["An event carrying the name of the current funding round of a ticker." , "Parameters: caller DID, ticker, funding round name." ,] } , Self :: DocumentAdded (_ , _ , _ , _) => { & ["A new document attached to an asset" ,] } , Self :: DocumentRemoved (_ , _ , _) => { & ["A document removed from an asset" ,] } , Self :: ExtensionRemoved (_ , _ , _) => { & ["A extension got removed." , "caller DID, ticker, AccountId" ,] } , Self :: ClassicTickerClaimed (_ , _ , _) => { & ["A Polymath Classic token was claimed and transferred to a non-systematic DID." ,] } , Self :: ControllerTransfer (_ , _ , _ , _) => { & ["Event for when a forced transfer takes place." , "caller DID/ controller DID, ticker, Portfolio of token holder, value." ,] } , Self :: CustomAssetTypeExists (_ , _ , _) => { & ["A custom asset type already exists on-chain." , "caller DID, the ID of the custom asset type, the string contents registered." ,] } , Self :: CustomAssetTypeRegistered (_ , _ , _) => { & ["A custom asset type was registered on-chain." , "caller DID, the ID of the custom asset type, the string contents registered." ,] } , Self :: SetAssetMetadataValue (_ , _ , _ , _) => { & ["Set asset metadata value." , "(Caller DID, ticker, metadata value, optional value details)" ,] } , Self :: SetAssetMetadataValueDetails (_ , _ , _) => { & ["Set asset metadata value details (expire, lock status)." , "(Caller DID, ticker, value details)" ,] } , Self :: RegisterAssetMetadataLocalType (_ , _ , _ , _ , _) => { & ["Register asset metadata local type." , "(Caller DID, ticker, Local type name, Local type key, type specs)" ,] } , Self :: RegisterAssetMetadataGlobalType (_ , _ , _) => { & ["Register asset metadata global type." , "(Global type name, Global type key, type specs)" ,] } , _ => & [""] , }
}
}
impl<Moment, AccountId> From<RawEvent<Moment, AccountId>> for &'static str {
fn from(v: RawEvent<Moment, AccountId>) -> Self {
v.as_static_str()
}
}
impl<Moment, AccountId> From<&RawEvent<Moment, AccountId>> for &'static str {
fn from(v: &RawEvent<Moment, AccountId>) -> Self {
v.as_static_str()
}
}
}
pub mod balances {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Memo(pub [u8; 32usize]);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct AccountData {
pub free: u128,
pub reserved: u128,
pub misc_frozen: u128,
pub fee_frozen: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Reasons {
#[codec(index = 0u8)]
Fee,
#[codec(index = 1u8)]
Misc,
#[codec(index = 2u8)]
All,
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "An account was created with some free balance. \\[did, account, free_balance]"]
#[codec(index = 0u8)]
Endowed(
Option<polymesh_primitives::identity_id::IdentityId>,
AccountId,
u128,
),
#[doc = "Transfer succeeded (from_did, from, to_did, to, value, memo)."]
#[codec(index = 1u8)]
Transfer(
Option<polymesh_primitives::identity_id::IdentityId>,
AccountId,
Option<polymesh_primitives::identity_id::IdentityId>,
AccountId,
u128,
Option<polymesh_common_utilities::traits::balances::Memo>,
),
#[doc = "A balance was set by root (did, who, free, reserved)."]
#[codec(index = 2u8)]
BalanceSet(
polymesh_primitives::identity_id::IdentityId,
AccountId,
u128,
u128,
),
#[doc = "The account and the amount of unlocked balance of that account that was burned."]
#[doc = "(caller Id, caller account, amount)"]
#[codec(index = 3u8)]
AccountBalanceBurned(
polymesh_primitives::identity_id::IdentityId,
AccountId,
u128,
),
#[doc = "Some balance was reserved (moved from free to reserved). \\[who, value]"]
#[codec(index = 4u8)]
Reserved(AccountId, u128),
#[doc = "Some balance was unreserved (moved from reserved to free). \\[who, value]"]
#[codec(index = 5u8)]
Unreserved(AccountId, u128),
#[doc = "Some balance was moved from the reserve of the first account to the second account."]
#[doc = "Final argument indicates the destination balance type."]
#[doc = "\\[from, to, balance, destination_status]"]
#[codec(index = 6u8)]
ReserveRepatriated(
AccountId,
AccountId,
u128,
frame_support::traits::tokens::misc::BalanceStatus,
),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Endowed(_, _, _) => "Balances.Endowed",
Self::Transfer(_, _, _, _, _, _) => "Balances.Transfer",
Self::BalanceSet(_, _, _, _) => "Balances.BalanceSet",
Self::AccountBalanceBurned(_, _, _) => "Balances.AccountBalanceBurned",
Self::Reserved(_, _) => "Balances.Reserved",
Self::Unreserved(_, _) => "Balances.Unreserved",
Self::ReserveRepatriated(_, _, _, _) => "Balances.ReserveRepatriated",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Endowed (_ , _ , _) => { & ["An account was created with some free balance. \\[did, account, free_balance]" ,] } , Self :: Transfer (_ , _ , _ , _ , _ , _) => { & ["Transfer succeeded (from_did, from, to_did, to, value, memo)." ,] } , Self :: BalanceSet (_ , _ , _ , _) => { & ["A balance was set by root (did, who, free, reserved)." ,] } , Self :: AccountBalanceBurned (_ , _ , _) => { & ["The account and the amount of unlocked balance of that account that was burned." , "(caller Id, caller account, amount)" ,] } , Self :: Reserved (_ , _) => { & ["Some balance was reserved (moved from free to reserved). \\[who, value]" ,] } , Self :: Unreserved (_ , _) => { & ["Some balance was unreserved (moved from reserved to free). \\[who, value]" ,] } , Self :: ReserveRepatriated (_ , _ , _ , _) => { & ["Some balance was moved from the reserve of the first account to the second account." , "Final argument indicates the destination balance type." , "\\[from, to, balance, destination_status]" ,] } , _ => & [""] , }
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
}
pub mod statistics {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "Stat types added to asset."]
#[doc = ""]
#[doc = "(Caller DID, Asset, Stat types)"]
#[codec(index = 0u8)]
StatTypesAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::statistics::AssetScope,
Vec<polymesh_primitives::statistics::StatType>,
),
#[doc = "Stat types removed from asset."]
#[doc = ""]
#[doc = "(Caller DID, Asset, Stat types)"]
#[codec(index = 1u8)]
StatTypesRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::statistics::AssetScope,
Vec<polymesh_primitives::statistics::StatType>,
),
#[doc = "Asset stats updated."]
#[doc = ""]
#[doc = "(Caller DID, Asset, Stat type, Updates)"]
#[codec(index = 2u8)]
AssetStatsUpdated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::statistics::AssetScope,
polymesh_primitives::statistics::StatType,
Vec<polymesh_primitives::statistics::StatUpdate>,
),
#[doc = "Set Transfer compliance rules for asset."]
#[doc = ""]
#[doc = "(Caller DID, Asset, Transfer conditions)"]
#[codec(index = 3u8)]
SetAssetTransferCompliance(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::statistics::AssetScope,
Vec<polymesh_primitives::transfer_compliance::TransferCondition>,
),
#[doc = "Add `ScopeId`s exempt for transfer conditions matching exempt key."]
#[doc = ""]
#[doc = "(Caller DID, Exempt key, Entities)"]
#[codec(index = 4u8)]
TransferConditionExemptionsAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::transfer_compliance::TransferConditionExemptKey,
Vec<polymesh_primitives::identity_id::IdentityId>,
),
#[doc = "Remove `ScopeId`s exempt for transfer conditions matching exempt key."]
#[doc = ""]
#[doc = "(Caller DID, Exempt key, Entities)"]
#[codec(index = 5u8)]
TransferConditionExemptionsRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::transfer_compliance::TransferConditionExemptKey,
Vec<polymesh_primitives::identity_id::IdentityId>,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::StatTypesAdded(_, _, _) => "Statistics.StatTypesAdded",
Self::StatTypesRemoved(_, _, _) => "Statistics.StatTypesRemoved",
Self::AssetStatsUpdated(_, _, _, _) => "Statistics.AssetStatsUpdated",
Self::SetAssetTransferCompliance(_, _, _) => "Statistics.SetAssetTransferCompliance",
Self::TransferConditionExemptionsAdded(_, _, _) => {
"Statistics.TransferConditionExemptionsAdded"
}
Self::TransferConditionExemptionsRemoved(_, _, _) => {
"Statistics.TransferConditionExemptionsRemoved"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::StatTypesAdded(_, _, _) => &[
"Stat types added to asset.",
"",
"(Caller DID, Asset, Stat types)",
],
Self::StatTypesRemoved(_, _, _) => &[
"Stat types removed from asset.",
"",
"(Caller DID, Asset, Stat types)",
],
Self::AssetStatsUpdated(_, _, _, _) => &[
"Asset stats updated.",
"",
"(Caller DID, Asset, Stat type, Updates)",
],
Self::SetAssetTransferCompliance(_, _, _) => &[
"Set Transfer compliance rules for asset.",
"",
"(Caller DID, Asset, Transfer conditions)",
],
Self::TransferConditionExemptionsAdded(_, _, _) => &[
"Add `ScopeId`s exempt for transfer conditions matching exempt key.",
"",
"(Caller DID, Exempt key, Entities)",
],
Self::TransferConditionExemptionsRemoved(_, _, _) => &[
"Remove `ScopeId`s exempt for transfer conditions matching exempt key.",
"",
"(Caller DID, Exempt key, Entities)",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
}
pub mod protocol_fee {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ProtocolOp {
#[codec(index = 0u8)]
AssetRegisterTicker,
#[codec(index = 1u8)]
AssetIssue,
#[codec(index = 2u8)]
AssetAddDocuments,
#[codec(index = 3u8)]
AssetCreateAsset,
#[codec(index = 4u8)]
CheckpointCreateSchedule,
#[codec(index = 5u8)]
ComplianceManagerAddComplianceRequirement,
#[codec(index = 6u8)]
IdentityCddRegisterDid,
#[codec(index = 7u8)]
IdentityAddClaim,
#[codec(index = 8u8)]
IdentityAddSecondaryKeysWithAuthorization,
#[codec(index = 9u8)]
PipsPropose,
#[codec(index = 10u8)]
ContractsPutCode,
#[codec(index = 11u8)]
CorporateBallotAttachBallot,
#[codec(index = 12u8)]
CapitalDistributionDistribute,
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum MaybeBlock<BlockNumber> {
#[codec(index = 0u8)]
Some(BlockNumber),
#[codec(index = 1u8)]
None,
}
}
pub mod sp_authority_discovery {
use super::*;
pub mod app {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Public(pub sp_core::sr25519::Public);
}
}
pub mod polymesh_contracts {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The given `func_id: u32` did not translate into a known runtime call."]
#[codec(index = 0u8)]
RuntimeCallNotFound,
#[doc = "Data left in input when decoding arguments of a call."]
#[codec(index = 1u8)]
DataLeftAfterDecoding,
#[doc = "Input data that a contract passed when making a runtime call was too large."]
#[codec(index = 2u8)]
InLenTooLarge,
#[doc = "A contract was attempted to be instantiated,"]
#[doc = "but no identity was given to associate the new contract's key with."]
#[codec(index = 3u8)]
InstantiatorWithNoIdentity,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::RuntimeCallNotFound => "PolymeshContracts.RuntimeCallNotFound",
Self::DataLeftAfterDecoding => "PolymeshContracts.DataLeftAfterDecoding",
Self::InLenTooLarge => "PolymeshContracts.InLenTooLarge",
Self::InstantiatorWithNoIdentity => "PolymeshContracts.InstantiatorWithNoIdentity",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::RuntimeCallNotFound => {
&["The given `func_id: u32` did not translate into a known runtime call."]
}
Self::DataLeftAfterDecoding => &["Data left in input when decoding arguments of a call."],
Self::InLenTooLarge => {
&["Input data that a contract passed when making a runtime call was too large."]
}
Self::InstantiatorWithNoIdentity => &[
"A contract was attempted to be instantiated,",
"but no identity was given to associate the new contract's key with.",
],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Instantiates a smart contract defining it with the given `code` and `salt`."]
#[doc = ""]
#[doc = "The contract will be attached as a secondary key,"]
#[doc = "with `perms` as its permissions, to `origin`'s identity."]
#[doc = ""]
#[doc = "The contract is transferred `endowment` amount of POLYX."]
#[doc = "This is distinct from the `gas_limit`,"]
#[doc = "which controls how much gas the deployment code may at most consume."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `endowment` amount of POLYX to transfer to the contract."]
#[doc = "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume."]
#[doc = "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "- `code` with the WASM binary defining the smart contract."]
#[doc = "- `data` The input data to pass to the contract constructor."]
#[doc = "- `salt` used for contract address derivation."]
#[doc = " By varying this, the same `code` can be used under the same identity."]
#[doc = "- `perms` that the new secondary key will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- All the errors in `pallet_contracts::Call::instantiate_with_code` can also happen here."]
#[doc = "- CDD/Permissions are checked, unlike in `pallet_contracts`."]
#[doc = "- Errors that arise when adding a new secondary key can also occur here."]
#[codec(index = 0u8)]
instantiate_with_code_perms {
endowment: u128,
gas_limit: u64,
storage_deposit_limit: Option<u128>,
code: Vec<u8>,
data: Vec<u8>,
salt: Vec<u8>,
perms: polymesh_primitives::secondary_key::Permissions,
},
#[doc = "Instantiates a smart contract defining using the given `code_hash` and `salt`."]
#[doc = ""]
#[doc = "Unlike `instantiate_with_code`,"]
#[doc = "this assumes that at least one contract with the same WASM code has already been uploaded."]
#[doc = ""]
#[doc = "The contract will be attached as a secondary key,"]
#[doc = "with `perms` as its permissions, to `origin`'s identity."]
#[doc = ""]
#[doc = "The contract is transferred `endowment` amount of POLYX."]
#[doc = "This is distinct from the `gas_limit`,"]
#[doc = "which controls how much gas the deployment code may at most consume."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `endowment` amount of POLYX to transfer to the contract."]
#[doc = "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume."]
#[doc = "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "- `code_hash` of an already uploaded WASM binary."]
#[doc = "- `data` The input data to pass to the contract constructor."]
#[doc = "- `salt` used for contract address derivation."]
#[doc = " By varying this, the same `code` can be used under the same identity."]
#[doc = "- `perms` that the new secondary key will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- All the errors in `pallet_contracts::Call::instantiate` can also happen here."]
#[doc = "- CDD/Permissions are checked, unlike in `pallet_contracts`."]
#[doc = "- Errors that arise when adding a new secondary key can also occur here."]
#[codec(index = 1u8)]
instantiate_with_hash_perms {
endowment: u128,
gas_limit: u64,
storage_deposit_limit: Option<u128>,
code_hash: primitive_types::H256,
data: Vec<u8>,
salt: Vec<u8>,
perms: polymesh_primitives::secondary_key::Permissions,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::instantiate_with_code_perms { .. } => {
"PolymeshContracts.instantiate_with_code_perms"
}
Self::instantiate_with_hash_perms { .. } => {
"PolymeshContracts.instantiate_with_hash_perms"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: instantiate_with_code_perms { .. } => { & ["Instantiates a smart contract defining it with the given `code` and `salt`." , "" , "The contract will be attached as a secondary key," , "with `perms` as its permissions, to `origin`'s identity." , "" , "The contract is transferred `endowment` amount of POLYX." , "This is distinct from the `gas_limit`," , "which controls how much gas the deployment code may at most consume." , "" , "# Arguments" , "- `endowment` amount of POLYX to transfer to the contract." , "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume." , "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved" , " from the caller to pay for the storage consumed." , "- `code` with the WASM binary defining the smart contract." , "- `data` The input data to pass to the contract constructor." , "- `salt` used for contract address derivation." , " By varying this, the same `code` can be used under the same identity." , "- `perms` that the new secondary key will have." , "" , "# Errors" , "- All the errors in `pallet_contracts::Call::instantiate_with_code` can also happen here." , "- CDD/Permissions are checked, unlike in `pallet_contracts`." , "- Errors that arise when adding a new secondary key can also occur here." ,] } , Self :: instantiate_with_hash_perms { .. } => { & ["Instantiates a smart contract defining using the given `code_hash` and `salt`." , "" , "Unlike `instantiate_with_code`," , "this assumes that at least one contract with the same WASM code has already been uploaded." , "" , "The contract will be attached as a secondary key," , "with `perms` as its permissions, to `origin`'s identity." , "" , "The contract is transferred `endowment` amount of POLYX." , "This is distinct from the `gas_limit`," , "which controls how much gas the deployment code may at most consume." , "" , "# Arguments" , "- `endowment` amount of POLYX to transfer to the contract." , "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume." , "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved" , " from the caller to pay for the storage consumed." , "- `code_hash` of an already uploaded WASM binary." , "- `data` The input data to pass to the contract constructor." , "- `salt` used for contract address derivation." , " By varying this, the same `code` can be used under the same identity." , "- `perms` that the new secondary key will have." , "" , "# Errors" , "- All the errors in `pallet_contracts::Call::instantiate` can also happen here." , "- CDD/Permissions are checked, unlike in `pallet_contracts`." , "- Errors that arise when adding a new secondary key can also occur here." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_sto {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum FundraiserStatus {
#[codec(index = 0u8)]
Live,
#[codec(index = 1u8)]
Frozen,
#[codec(index = 2u8)]
Closed,
#[codec(index = 3u8)]
ClosedEarly,
}
#[doc = "Errors for the Settlement module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Sender does not have required permissions."]
#[codec(index = 0u8)]
Unauthorized,
#[doc = "An arithmetic operation overflowed."]
#[codec(index = 1u8)]
Overflow,
#[doc = "Not enough tokens left for sale."]
#[codec(index = 2u8)]
InsufficientTokensRemaining,
#[doc = "Fundraiser not found."]
#[codec(index = 3u8)]
FundraiserNotFound,
#[doc = "Fundraiser is either frozen or stopped."]
#[codec(index = 4u8)]
FundraiserNotLive,
#[doc = "Fundraiser has been closed/stopped already."]
#[codec(index = 5u8)]
FundraiserClosed,
#[doc = "Interacting with a fundraiser past the end `Moment`."]
#[codec(index = 6u8)]
FundraiserExpired,
#[doc = "An invalid venue provided."]
#[codec(index = 7u8)]
InvalidVenue,
#[doc = "An individual price tier was invalid or a set of price tiers was invalid."]
#[codec(index = 8u8)]
InvalidPriceTiers,
#[doc = "Window (start time, end time) has invalid parameters, e.g start time is after end time."]
#[codec(index = 9u8)]
InvalidOfferingWindow,
#[doc = "Price of the investment exceeded the max price."]
#[codec(index = 10u8)]
MaxPriceExceeded,
#[doc = "Investment amount is lower than minimum investment amount."]
#[codec(index = 11u8)]
InvestmentAmountTooLow,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Unauthorized => "Sto.Unauthorized",
Self::Overflow => "Sto.Overflow",
Self::InsufficientTokensRemaining => "Sto.InsufficientTokensRemaining",
Self::FundraiserNotFound => "Sto.FundraiserNotFound",
Self::FundraiserNotLive => "Sto.FundraiserNotLive",
Self::FundraiserClosed => "Sto.FundraiserClosed",
Self::FundraiserExpired => "Sto.FundraiserExpired",
Self::InvalidVenue => "Sto.InvalidVenue",
Self::InvalidPriceTiers => "Sto.InvalidPriceTiers",
Self::InvalidOfferingWindow => "Sto.InvalidOfferingWindow",
Self::MaxPriceExceeded => "Sto.MaxPriceExceeded",
Self::InvestmentAmountTooLow => "Sto.InvestmentAmountTooLow",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Unauthorized => { & ["Sender does not have required permissions." ,] } , Self :: Overflow => { & ["An arithmetic operation overflowed." ,] } , Self :: InsufficientTokensRemaining => { & ["Not enough tokens left for sale." ,] } , Self :: FundraiserNotFound => { & ["Fundraiser not found." ,] } , Self :: FundraiserNotLive => { & ["Fundraiser is either frozen or stopped." ,] } , Self :: FundraiserClosed => { & ["Fundraiser has been closed/stopped already." ,] } , Self :: FundraiserExpired => { & ["Interacting with a fundraiser past the end `Moment`." ,] } , Self :: InvalidVenue => { & ["An invalid venue provided." ,] } , Self :: InvalidPriceTiers => { & ["An individual price tier was invalid or a set of price tiers was invalid." ,] } , Self :: InvalidOfferingWindow => { & ["Window (start time, end time) has invalid parameters, e.g start time is after end time." ,] } , Self :: MaxPriceExceeded => { & ["Price of the investment exceeded the max price." ,] } , Self :: InvestmentAmountTooLow => { & ["Investment amount is lower than minimum investment amount." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct FundraiserName(pub Vec<u8>);
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Moment> {
#[doc = "A new fundraiser has been created."]
#[doc = "(Agent DID, fundraiser id, fundraiser name, fundraiser details)"]
#[codec(index = 0u8)]
FundraiserCreated(
polymesh_primitives::identity_id::IdentityId,
pallet_sto::FundraiserId,
pallet_sto::FundraiserName,
pallet_sto::Fundraiser<Moment>,
),
#[doc = "An investor invested in the fundraiser."]
#[doc = "(Investor, fundraiser_id, offering token, raise token, offering_token_amount, raise_token_amount)"]
#[codec(index = 1u8)]
Invested(
polymesh_primitives::identity_id::IdentityId,
pallet_sto::FundraiserId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::ticker::Ticker,
u128,
u128,
),
#[doc = "A fundraiser has been frozen."]
#[doc = "(Agent DID, fundraiser id)"]
#[codec(index = 2u8)]
FundraiserFrozen(
polymesh_primitives::identity_id::IdentityId,
pallet_sto::FundraiserId,
),
#[doc = "A fundraiser has been unfrozen."]
#[doc = "(Agent DID, fundraiser id)"]
#[codec(index = 3u8)]
FundraiserUnfrozen(
polymesh_primitives::identity_id::IdentityId,
pallet_sto::FundraiserId,
),
#[doc = "A fundraiser window has been modified."]
#[doc = "(Agent DID, fundraiser id, old_start, old_end, new_start, new_end)"]
#[codec(index = 4u8)]
FundraiserWindowModified(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_sto::FundraiserId,
Moment,
Option<Moment>,
Moment,
Option<Moment>,
),
#[doc = "A fundraiser has been stopped."]
#[doc = "(Agent DID, fundraiser id)"]
#[codec(index = 5u8)]
FundraiserClosed(
polymesh_primitives::identity_id::IdentityId,
pallet_sto::FundraiserId,
),
}
impl<Moment> RawEvent<Moment> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::FundraiserCreated(_, _, _, _) => "Sto.FundraiserCreated",
Self::Invested(_, _, _, _, _, _) => "Sto.Invested",
Self::FundraiserFrozen(_, _) => "Sto.FundraiserFrozen",
Self::FundraiserUnfrozen(_, _) => "Sto.FundraiserUnfrozen",
Self::FundraiserWindowModified(_, _, _, _, _, _) => "Sto.FundraiserWindowModified",
Self::FundraiserClosed(_, _) => "Sto.FundraiserClosed",
_ => "Unknown",
}
}
}
impl<Moment> ::polymesh_api_client::EnumInfo for RawEvent<Moment> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: FundraiserCreated (_ , _ , _ , _) => { & ["A new fundraiser has been created." , "(Agent DID, fundraiser id, fundraiser name, fundraiser details)" ,] } , Self :: Invested (_ , _ , _ , _ , _ , _) => { & ["An investor invested in the fundraiser." , "(Investor, fundraiser_id, offering token, raise token, offering_token_amount, raise_token_amount)" ,] } , Self :: FundraiserFrozen (_ , _) => { & ["A fundraiser has been frozen." , "(Agent DID, fundraiser id)" ,] } , Self :: FundraiserUnfrozen (_ , _) => { & ["A fundraiser has been unfrozen." , "(Agent DID, fundraiser id)" ,] } , Self :: FundraiserWindowModified (_ , _ , _ , _ , _ , _) => { & ["A fundraiser window has been modified." , "(Agent DID, fundraiser id, old_start, old_end, new_start, new_end)" ,] } , Self :: FundraiserClosed (_ , _) => { & ["A fundraiser has been stopped." , "(Agent DID, fundraiser id)" ,] } , _ => & [""] , }
}
}
impl<Moment> From<RawEvent<Moment>> for &'static str {
fn from(v: RawEvent<Moment>) -> Self {
v.as_static_str()
}
}
impl<Moment> From<&RawEvent<Moment>> for &'static str {
fn from(v: &RawEvent<Moment>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Fundraiser<Moment> {
pub creator: polymesh_primitives::identity_id::IdentityId,
pub offering_portfolio: polymesh_primitives::identity_id::PortfolioId,
pub offering_asset: polymesh_primitives::ticker::Ticker,
pub raising_portfolio: polymesh_primitives::identity_id::PortfolioId,
pub raising_asset: polymesh_primitives::ticker::Ticker,
pub tiers: Vec<pallet_sto::FundraiserTier>,
pub venue_id: pallet_settlement::VenueId,
pub start: Moment,
pub end: Option<Moment>,
pub status: pallet_sto::FundraiserStatus,
pub minimum_investment: u128,
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Create a new fundraiser."]
#[doc = ""]
#[doc = "* `offering_portfolio` - Portfolio containing the `offering_asset`."]
#[doc = "* `offering_asset` - Asset being offered."]
#[doc = "* `raising_portfolio` - Portfolio containing the `raising_asset`."]
#[doc = "* `raising_asset` - Asset being exchanged for `offering_asset` on investment."]
#[doc = "* `tiers` - Price tiers to charge investors on investment."]
#[doc = "* `venue_id` - Venue to handle settlement."]
#[doc = "* `start` - Fundraiser start time, if `None` the fundraiser will start immediately."]
#[doc = "* `end` - Fundraiser end time, if `None` the fundraiser will never expire."]
#[doc = "* `minimum_investment` - Minimum amount of `raising_asset` that an investor needs to spend to invest in this raise."]
#[doc = "* `fundraiser_name` - Fundraiser name, only used in the UIs."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
#[codec(index = 0u8)]
create_fundraiser {
offering_portfolio: polymesh_primitives::identity_id::PortfolioId,
offering_asset: polymesh_primitives::ticker::Ticker,
raising_portfolio: polymesh_primitives::identity_id::PortfolioId,
raising_asset: polymesh_primitives::ticker::Ticker,
tiers: Vec<pallet_sto::PriceTier>,
venue_id: pallet_settlement::VenueId,
start: Option<u64>,
end: Option<u64>,
minimum_investment: u128,
fundraiser_name: pallet_sto::FundraiserName,
},
#[doc = "Invest in a fundraiser."]
#[doc = ""]
#[doc = "* `investment_portfolio` - Portfolio that `offering_asset` will be deposited in."]
#[doc = "* `funding_portfolio` - Portfolio that will fund the investment."]
#[doc = "* `offering_asset` - Asset to invest in."]
#[doc = "* `id` - ID of the fundraiser to invest in."]
#[doc = "* `purchase_amount` - Amount of `offering_asset` to purchase."]
#[doc = "* `max_price` - Maximum price to pay per unit of `offering_asset`, If `None`there are no constraints on price."]
#[doc = "* `receipt` - Off-chain receipt to use instead of on-chain balance in `funding_portfolio`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 1u8)]
invest {
investment_portfolio: polymesh_primitives::identity_id::PortfolioId,
funding_portfolio: polymesh_primitives::identity_id::PortfolioId,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
purchase_amount: u128,
max_price: Option<u128>,
receipt: Option<
pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
>,
},
#[doc = "Freeze a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to freeze."]
#[doc = "* `id` - ID of the fundraiser to freeze."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 2u8)]
freeze_fundraiser {
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
},
#[doc = "Unfreeze a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to unfreeze."]
#[doc = "* `id` - ID of the fundraiser to unfreeze."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 3u8)]
unfreeze_fundraiser {
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
},
#[doc = "Modify the time window a fundraiser is active"]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to modify."]
#[doc = "* `id` - ID of the fundraiser to modify."]
#[doc = "* `start` - New start of the fundraiser."]
#[doc = "* `end` - New end of the fundraiser to modify."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 4u8)]
modify_fundraiser_window {
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
start: u64,
end: Option<u64>,
},
#[doc = "Stop a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to stop."]
#[doc = "* `id` - ID of the fundraiser to stop."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 5u8)]
stop {
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_fundraiser { .. } => "Sto.create_fundraiser",
Self::invest { .. } => "Sto.invest",
Self::freeze_fundraiser { .. } => "Sto.freeze_fundraiser",
Self::unfreeze_fundraiser { .. } => "Sto.unfreeze_fundraiser",
Self::modify_fundraiser_window { .. } => "Sto.modify_fundraiser_window",
Self::stop { .. } => "Sto.stop",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: create_fundraiser { .. } => { & ["Create a new fundraiser." , "" , "* `offering_portfolio` - Portfolio containing the `offering_asset`." , "* `offering_asset` - Asset being offered." , "* `raising_portfolio` - Portfolio containing the `raising_asset`." , "* `raising_asset` - Asset being exchanged for `offering_asset` on investment." , "* `tiers` - Price tiers to charge investors on investment." , "* `venue_id` - Venue to handle settlement." , "* `start` - Fundraiser start time, if `None` the fundraiser will start immediately." , "* `end` - Fundraiser end time, if `None` the fundraiser will never expire." , "* `minimum_investment` - Minimum amount of `raising_asset` that an investor needs to spend to invest in this raise." , "* `fundraiser_name` - Fundraiser name, only used in the UIs." , "" , "# Permissions" , "* Asset" , "* Portfolio" ,] } , Self :: invest { .. } => { & ["Invest in a fundraiser." , "" , "* `investment_portfolio` - Portfolio that `offering_asset` will be deposited in." , "* `funding_portfolio` - Portfolio that will fund the investment." , "* `offering_asset` - Asset to invest in." , "* `id` - ID of the fundraiser to invest in." , "* `purchase_amount` - Amount of `offering_asset` to purchase." , "* `max_price` - Maximum price to pay per unit of `offering_asset`, If `None`there are no constraints on price." , "* `receipt` - Off-chain receipt to use instead of on-chain balance in `funding_portfolio`." , "" , "# Permissions" , "* Portfolio" ,] } , Self :: freeze_fundraiser { .. } => { & ["Freeze a fundraiser." , "" , "* `offering_asset` - Asset to freeze." , "* `id` - ID of the fundraiser to freeze." , "" , "# Permissions" , "* Asset" ,] } , Self :: unfreeze_fundraiser { .. } => { & ["Unfreeze a fundraiser." , "" , "* `offering_asset` - Asset to unfreeze." , "* `id` - ID of the fundraiser to unfreeze." , "" , "# Permissions" , "* Asset" ,] } , Self :: modify_fundraiser_window { .. } => { & ["Modify the time window a fundraiser is active" , "" , "* `offering_asset` - Asset to modify." , "* `id` - ID of the fundraiser to modify." , "* `start` - New start of the fundraiser." , "* `end` - New end of the fundraiser to modify." , "" , "# Permissions" , "* Asset" ,] } , Self :: stop { .. } => { & ["Stop a fundraiser." , "" , "* `offering_asset` - Asset to stop." , "* `id` - ID of the fundraiser to stop." , "" , "# Permissions" , "* Asset" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PriceTier {
pub total: u128,
pub price: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct FundraiserId(pub u64);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct FundraiserTier {
pub total: u128,
pub price: u128,
pub remaining: u128,
}
}
pub mod pallet_permissions {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The caller is not authorized to call the current extrinsic."]
#[codec(index = 0u8)]
UnauthorizedCaller,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::UnauthorizedCaller => "Permissions.UnauthorizedCaller",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::UnauthorizedCaller => {
&["The caller is not authorized to call the current extrinsic."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StoreCallMetadata();
}
pub mod pallet_corporate_actions {
use super::*;
pub mod ballot {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BallotVote {
pub power: u128,
pub fallback: Option<u16>,
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Attach a corporate ballot to the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "The ballot will admit votes within `range`."]
#[doc = "The ballot's metadata is provided by `meta`,"]
#[doc = "which includes the ballot title, the motions, their choices, etc."]
#[doc = "See the `BallotMeta` for more."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA to attach the ballot to."]
#[doc = "- `range` specifies when voting starts and ends."]
#[doc = "- `meta` specifies the ballot's metadata as aforementioned."]
#[doc = "- `rcv` specifies whether RCV is enabled for this ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `CANotNotice` if the CA is not of the `IssuerNotice` kind."]
#[doc = "- `StartAfterEnd` if `range.start > range.end`."]
#[doc = "- `NowAfterEnd` if `now > range.end` where `now` is the current timestamp."]
#[doc = "- `NoRecordDate` if CA has no record date."]
#[doc = "- `RecordDateAfterStart` if `date > range.start` where `date` is the CA's record date."]
#[doc = "- `AlreadyExists` if there's a ballot already."]
#[doc = "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`."]
#[doc = "- `TooLong` if any of the embedded strings in `meta` are too long."]
#[doc = "- `InsufficientBalance` if the protocol fee couldn't be charged."]
#[codec(index = 0u8)]
attach_ballot {
ca_id: pallet_corporate_actions::CAId,
range: pallet_corporate_actions::ballot::BallotTimeRange,
meta: pallet_corporate_actions::ballot::BallotMeta,
rcv: bool,
},
#[doc = "Cast `votes` in the ballot attached to the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be a permissioned signer targeted by the CA."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `votes` specifies the balances to assign to each choice in the ballot."]
#[doc = " The full voting power of `origin`'s DID may be used for each motion in the ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingNotStarted` if the voting period hasn't commenced yet."]
#[doc = "- `VotingAlreadyEnded` if the voting period has ended."]
#[doc = "- `WrongVoteCount` if the number of choices in the ballot does not match `votes.len()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `origin`'s DID."]
#[doc = "- `InsufficientVotes` if the voting power used for any motion in `votes`"]
#[doc = " exceeds `origin`'s DID's voting power."]
#[codec(index = 1u8)]
vote {
ca_id: pallet_corporate_actions::CAId,
votes: Vec<pallet_corporate_actions::ballot::BallotVote>,
},
#[doc = "Amend the end date of the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `end` specifies the new end date of the ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[doc = "- `StartAfterEnd` if `start > end`."]
#[codec(index = 2u8)]
change_end {
ca_id: pallet_corporate_actions::CAId,
end: u64,
},
#[doc = "Amend the metadata (title, motions, etc.) of the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `meta` specifies the new metadata."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[doc = "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`."]
#[doc = "- `TooLong` if any of the embedded strings in `meta` are too long."]
#[codec(index = 3u8)]
change_meta {
ca_id: pallet_corporate_actions::CAId,
meta: pallet_corporate_actions::ballot::BallotMeta,
},
#[doc = "Amend RCV support for the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `rcv` specifies if RCV is to be supported or not."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[codec(index = 4u8)]
change_rcv {
ca_id: pallet_corporate_actions::CAId,
rcv: bool,
},
#[doc = "Remove the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[codec(index = 5u8)]
remove_ballot {
ca_id: pallet_corporate_actions::CAId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::attach_ballot { .. } => "CorporateBallot.attach_ballot",
Self::vote { .. } => "CorporateBallot.vote",
Self::change_end { .. } => "CorporateBallot.change_end",
Self::change_meta { .. } => "CorporateBallot.change_meta",
Self::change_rcv { .. } => "CorporateBallot.change_rcv",
Self::remove_ballot { .. } => "CorporateBallot.remove_ballot",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: attach_ballot { .. } => { & ["Attach a corporate ballot to the CA identified by `ca_id`." , "" , "The ballot will admit votes within `range`." , "The ballot's metadata is provided by `meta`," , "which includes the ballot title, the motions, their choices, etc." , "See the `BallotMeta` for more." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the CA to attach the ballot to." , "- `range` specifies when voting starts and ends." , "- `meta` specifies the ballot's metadata as aforementioned." , "- `rcv` specifies whether RCV is enabled for this ballot." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchCA` if `ca_id` does not identify an existing CA." , "- `CANotNotice` if the CA is not of the `IssuerNotice` kind." , "- `StartAfterEnd` if `range.start > range.end`." , "- `NowAfterEnd` if `now > range.end` where `now` is the current timestamp." , "- `NoRecordDate` if CA has no record date." , "- `RecordDateAfterStart` if `date > range.start` where `date` is the CA's record date." , "- `AlreadyExists` if there's a ballot already." , "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`." , "- `TooLong` if any of the embedded strings in `meta` are too long." , "- `InsufficientBalance` if the protocol fee couldn't be charged." ,] } , Self :: vote { .. } => { & ["Cast `votes` in the ballot attached to the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` which must be a permissioned signer targeted by the CA." , "- `ca_id` identifies the attached ballot's CA." , "- `votes` specifies the balances to assign to each choice in the ballot." , " The full voting power of `origin`'s DID may be used for each motion in the ballot." , "" , "# Errors" , "- `NoSuchBallot` if `ca_id` does not identify a ballot." , "- `VotingNotStarted` if the voting period hasn't commenced yet." , "- `VotingAlreadyEnded` if the voting period has ended." , "- `WrongVoteCount` if the number of choices in the ballot does not match `votes.len()`." , "- `NoSuchCA` if `ca_id` does not identify an existing CA." , "- `NotTargetedByCA` if the CA does not target `origin`'s DID." , "- `InsufficientVotes` if the voting power used for any motion in `votes`" , " exceeds `origin`'s DID's voting power." ,] } , Self :: change_end { .. } => { & ["Amend the end date of the ballot of the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the attached ballot's CA." , "- `end` specifies the new end date of the ballot." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchBallot` if `ca_id` does not identify a ballot." , "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time." , "- `StartAfterEnd` if `start > end`." ,] } , Self :: change_meta { .. } => { & ["Amend the metadata (title, motions, etc.) of the ballot of the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the attached ballot's CA." , "- `meta` specifies the new metadata." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchBallot` if `ca_id` does not identify a ballot." , "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time." , "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`." , "- `TooLong` if any of the embedded strings in `meta` are too long." ,] } , Self :: change_rcv { .. } => { & ["Amend RCV support for the ballot of the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the attached ballot's CA." , "- `rcv` specifies if RCV is to be supported or not." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchBallot` if `ca_id` does not identify a ballot." , "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time." ,] } , Self :: remove_ballot { .. } => { & ["Remove the ballot of the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the attached ballot's CA." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchBallot` if `ca_id` does not identify a ballot." , "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Motion {
pub title: pallet_corporate_actions::ballot::MotionTitle,
pub info_link: pallet_corporate_actions::ballot::MotionInfoLink,
pub choices: Vec<pallet_corporate_actions::ballot::ChoiceTitle>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct MotionInfoLink(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BallotMeta {
pub title: pallet_corporate_actions::ballot::BallotTitle,
pub motions: Vec<pallet_corporate_actions::ballot::Motion>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "A corporate ballot was made for a non `IssuerNotice` CA."]
#[codec(index = 0u8)]
CANotNotice,
#[doc = "A corporate ballot already exists for this CA."]
#[codec(index = 1u8)]
AlreadyExists,
#[doc = "A corporate ballot doesn't exist for this CA."]
#[codec(index = 2u8)]
NoSuchBallot,
#[doc = "A corporate ballot's start time was strictly after the ballot's end."]
#[codec(index = 3u8)]
StartAfterEnd,
#[doc = "A corporate ballot's end time was strictly before the current time."]
#[codec(index = 4u8)]
NowAfterEnd,
#[doc = "If some motion in a corporate ballot has more choices than would fit in `u16`."]
#[codec(index = 5u8)]
NumberOfChoicesOverflow,
#[doc = "Voting started already. Amending a ballot is no longer possible."]
#[codec(index = 6u8)]
VotingAlreadyStarted,
#[doc = "Voting hasn't started yet."]
#[codec(index = 7u8)]
VotingNotStarted,
#[doc = "Voting ended already."]
#[codec(index = 8u8)]
VotingAlreadyEnded,
#[doc = "Provided list of balances does not match the total number of choices."]
#[codec(index = 9u8)]
WrongVoteCount,
#[doc = "Voting power used by a DID on a motion exceeds that which is available to them."]
#[codec(index = 10u8)]
InsufficientVotes,
#[doc = "The RCV fallback of some choice does not exist."]
#[codec(index = 11u8)]
NoSuchRCVFallback,
#[doc = "The RCV fallback points to the origin choice."]
#[codec(index = 12u8)]
RCVSelfCycle,
#[doc = "RCV is not allowed for this ballot."]
#[codec(index = 13u8)]
RCVNotAllowed,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::CANotNotice => "CorporateBallot.CANotNotice",
Self::AlreadyExists => "CorporateBallot.AlreadyExists",
Self::NoSuchBallot => "CorporateBallot.NoSuchBallot",
Self::StartAfterEnd => "CorporateBallot.StartAfterEnd",
Self::NowAfterEnd => "CorporateBallot.NowAfterEnd",
Self::NumberOfChoicesOverflow => "CorporateBallot.NumberOfChoicesOverflow",
Self::VotingAlreadyStarted => "CorporateBallot.VotingAlreadyStarted",
Self::VotingNotStarted => "CorporateBallot.VotingNotStarted",
Self::VotingAlreadyEnded => "CorporateBallot.VotingAlreadyEnded",
Self::WrongVoteCount => "CorporateBallot.WrongVoteCount",
Self::InsufficientVotes => "CorporateBallot.InsufficientVotes",
Self::NoSuchRCVFallback => "CorporateBallot.NoSuchRCVFallback",
Self::RCVSelfCycle => "CorporateBallot.RCVSelfCycle",
Self::RCVNotAllowed => "CorporateBallot.RCVNotAllowed",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::CANotNotice => &["A corporate ballot was made for a non `IssuerNotice` CA."],
Self::AlreadyExists => &["A corporate ballot already exists for this CA."],
Self::NoSuchBallot => &["A corporate ballot doesn't exist for this CA."],
Self::StartAfterEnd => {
&["A corporate ballot's start time was strictly after the ballot's end."]
}
Self::NowAfterEnd => {
&["A corporate ballot's end time was strictly before the current time."]
}
Self::NumberOfChoicesOverflow => {
&["If some motion in a corporate ballot has more choices than would fit in `u16`."]
}
Self::VotingAlreadyStarted => {
&["Voting started already. Amending a ballot is no longer possible."]
}
Self::VotingNotStarted => &["Voting hasn't started yet."],
Self::VotingAlreadyEnded => &["Voting ended already."],
Self::WrongVoteCount => {
&["Provided list of balances does not match the total number of choices."]
}
Self::InsufficientVotes => {
&["Voting power used by a DID on a motion exceeds that which is available to them."]
}
Self::NoSuchRCVFallback => &["The RCV fallback of some choice does not exist."],
Self::RCVSelfCycle => &["The RCV fallback points to the origin choice."],
Self::RCVNotAllowed => &["RCV is not allowed for this ballot."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A corporate ballot was created."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, Voting start/end, Ballot metadata, RCV enabled?)"]
#[codec(index = 0u8)]
Created(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
pallet_corporate_actions::ballot::BallotTimeRange,
pallet_corporate_actions::ballot::BallotMeta,
bool,
),
#[doc = "A vote was cast in a corporate ballot."]
#[doc = ""]
#[doc = "(voter DID, CAId, Votes)"]
#[codec(index = 1u8)]
VoteCast(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
Vec<pallet_corporate_actions::ballot::BallotVote>,
),
#[doc = "A corporate ballot changed its start/end date range."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, Voting start/end)"]
#[codec(index = 2u8)]
RangeChanged(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
pallet_corporate_actions::ballot::BallotTimeRange,
),
#[doc = "A corporate ballot changed its metadata."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, New metadata)"]
#[codec(index = 3u8)]
MetaChanged(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
pallet_corporate_actions::ballot::BallotMeta,
),
#[doc = "A corporate ballot changed its RCV support."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, New support)"]
#[codec(index = 4u8)]
RCVChanged(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
bool,
),
#[doc = "A corporate ballot was removed."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID)"]
#[codec(index = 5u8)]
Removed(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Created(_, _, _, _, _) => "CorporateBallot.Created",
Self::VoteCast(_, _, _) => "CorporateBallot.VoteCast",
Self::RangeChanged(_, _, _) => "CorporateBallot.RangeChanged",
Self::MetaChanged(_, _, _) => "CorporateBallot.MetaChanged",
Self::RCVChanged(_, _, _) => "CorporateBallot.RCVChanged",
Self::Removed(_, _) => "CorporateBallot.Removed",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Created(_, _, _, _, _) => &[
"A corporate ballot was created.",
"",
"(Agent DID, CA's ID, Voting start/end, Ballot metadata, RCV enabled?)",
],
Self::VoteCast(_, _, _) => &[
"A vote was cast in a corporate ballot.",
"",
"(voter DID, CAId, Votes)",
],
Self::RangeChanged(_, _, _) => &[
"A corporate ballot changed its start/end date range.",
"",
"(Agent DID, CA's ID, Voting start/end)",
],
Self::MetaChanged(_, _, _) => &[
"A corporate ballot changed its metadata.",
"",
"(Agent DID, CA's ID, New metadata)",
],
Self::RCVChanged(_, _, _) => &[
"A corporate ballot changed its RCV support.",
"",
"(Agent DID, CA's ID, New support)",
],
Self::Removed(_, _) => &[
"A corporate ballot was removed.",
"",
"(Agent DID, CA's ID)",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BallotTimeRange {
pub start: u64,
pub end: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct MotionTitle(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ChoiceTitle(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BallotTitle(pub Vec<u8>);
}
pub mod distribution {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A capital distribution, with details included,"]
#[doc = "was created by the DID (permissioned agent) for the CA identified by `CAId`."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, distribution details)"]
#[codec(index = 0u8)]
Created(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
pallet_corporate_actions::distribution::Distribution,
),
#[doc = "A token holder's benefit of a capital distribution for the given `CAId` was claimed."]
#[doc = ""]
#[doc = "(Caller DID, Holder/Claimant DID, CA's ID, updated distribution details, DID's benefit, DID's tax %)"]
#[codec(index = 1u8)]
BenefitClaimed(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
pallet_corporate_actions::distribution::Distribution,
u128,
::polymesh_api_client::per_things::Permill,
),
#[doc = "Stats from `push_benefit` was emitted."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID, max requested DIDs, processed DIDs, failed DIDs)"]
#[codec(index = 2u8)]
Reclaimed(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
u128,
),
#[doc = "A capital distribution was removed."]
#[doc = ""]
#[doc = "(Agent DID, CA's ID)"]
#[codec(index = 3u8)]
Removed(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Created(_, _, _) => "CapitalDistribution.Created",
Self::BenefitClaimed(_, _, _, _, _, _) => "CapitalDistribution.BenefitClaimed",
Self::Reclaimed(_, _, _) => "CapitalDistribution.Reclaimed",
Self::Removed(_, _) => "CapitalDistribution.Removed",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Created (_ , _ , _) => { & ["A capital distribution, with details included," , "was created by the DID (permissioned agent) for the CA identified by `CAId`." , "" , "(Agent DID, CA's ID, distribution details)" ,] } , Self :: BenefitClaimed (_ , _ , _ , _ , _ , _) => { & ["A token holder's benefit of a capital distribution for the given `CAId` was claimed." , "" , "(Caller DID, Holder/Claimant DID, CA's ID, updated distribution details, DID's benefit, DID's tax %)" ,] } , Self :: Reclaimed (_ , _ , _) => { & ["Stats from `push_benefit` was emitted." , "" , "(Agent DID, CA's ID, max requested DIDs, processed DIDs, failed DIDs)" ,] } , Self :: Removed (_ , _) => { & ["A capital distribution was removed." , "" , "(Agent DID, CA's ID)" ,] } , _ => & [""] , }
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Start and attach a capital distribution, to the CA identified by `ca_id`,"]
#[doc = "with `amount` funds in `currency` withdrawn from `portfolio` belonging to `origin`'s DID."]
#[doc = ""]
#[doc = "The distribution will commence at `payment_at` and expire at `expires_at`,"]
#[doc = "if provided, or if `None`, then there's no expiry."]
#[doc = ""]
#[doc = "The funds will be locked in `portfolio` from when `distribute` is called."]
#[doc = "When there's no expiry, some funds may be locked indefinitely in `portfolio`,"]
#[doc = "due to claimants not withdrawing or no benefits being pushed to them."]
#[doc = "For indivisible currencies, unlocked amounts, of less than one whole unit,"]
#[doc = "will not be transferable from `portfolio`."]
#[doc = "However, if we imagine that users `Alice` and `Bob` both are entitled to 1.5 units,"]
#[doc = "and only receive `1` units each, then `0.5 + 0.5 = 1` units are left in `portfolio`,"]
#[doc = "which is now transferrable."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA to start a capital distribution for."]
#[doc = "- `portfolio` specifies the portfolio number of the agent to distribute `amount` from."]
#[doc = "- `currency` to withdraw and distribute from the `portfolio`."]
#[doc = "- `per_share` amount of `currency` to withdraw and distribute."]
#[doc = " Specified as a per-million, i.e. `1 / 10^6`th of one `currency` token."]
#[doc = "- `amount` of `currency` to withdraw and distribute at most."]
#[doc = "- `payment_at` specifies when benefits may first be pushed or claimed."]
#[doc = "- `expires_at` specifies, if provided, when remaining benefits are forfeit"]
#[doc = " and may be reclaimed by `origin`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `ExpiryBeforePayment` if `expires_at.unwrap() <= payment_at`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NoRecordDate` if CA has no record date."]
#[doc = "- `RecordDateAfterStart` if CA's record date > payment_at."]
#[doc = "- `UnauthorizedCustodian` if the caller is not the custodian of `portfolio`."]
#[doc = "- `InsufficientPortfolioBalance` if `portfolio` has less than `amount` of `currency`."]
#[doc = "- `InsufficientBalance` if the protocol fee couldn't be charged."]
#[doc = "- `CANotBenefit` if the CA is not of kind PredictableBenefit/UnpredictableBenefit"]
#[doc = "- `DistributionAmountIsZero` if the `amount` is zero."]
#[doc = "- `DistributionPerShareIsZero` if the `per_share` is zero."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
#[codec(index = 0u8)]
distribute {
ca_id: pallet_corporate_actions::CAId,
portfolio: Option<polymesh_primitives::identity_id::PortfolioNumber>,
currency: polymesh_primitives::ticker::Ticker,
per_share: u128,
amount: u128,
payment_at: u64,
expires_at: Option<u64>,
},
#[doc = "Claim a benefit of the capital distribution attached to `ca_id`."]
#[doc = ""]
#[doc = "Taxes are withheld as specified by the CA."]
#[doc = "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID."]
#[doc = ""]
#[doc = "All benefits are rounded by truncation, down to first integer below."]
#[doc = "Moreover, before post-tax earnings, in indivisible currencies are transferred,"]
#[doc = "they are rounded down to a whole unit."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be a holder of the asset and eligible for the distribution."]
#[doc = "- `ca_id` identifies the CA to start a capital distribution for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `HolderAlreadyPaid` if `origin`'s DID has already received its benefit."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `CannotClaimBeforeStart` if `now < payment_at`."]
#[doc = "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `origin`'s DID."]
#[doc = "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow."]
#[doc = "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow."]
#[doc = "- Other errors can occur if the compliance manager rejects the transfer."]
#[codec(index = 1u8)]
claim {
ca_id: pallet_corporate_actions::CAId,
},
#[doc = "Push benefit of an ongoing distribution to the given `holder`."]
#[doc = ""]
#[doc = "Taxes are withheld as specified by the CA."]
#[doc = "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID."]
#[doc = ""]
#[doc = "All benefits are rounded by truncation, down to first integer below."]
#[doc = "Moreover, before post-tax earnings, in indivisible currencies are transferred,"]
#[doc = "they are rounded down to a whole unit."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA with a capital distributions to push benefits for."]
#[doc = "- `holder` to push benefits to."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `CannotClaimBeforeStart` if `now < payment_at`."]
#[doc = "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `holder`."]
#[doc = "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow."]
#[doc = "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow."]
#[doc = "- Other errors can occur if the compliance manager rejects the transfer."]
#[codec(index = 2u8)]
push_benefit {
ca_id: pallet_corporate_actions::CAId,
holder: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Assuming a distribution has expired,"]
#[doc = "unlock the remaining amount in the distributor portfolio."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be the creator of the capital distribution tied to `ca_id`."]
#[doc = "- `ca_id` identifies the CA with a capital distribution to reclaim for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `AlreadyReclaimed` if this function has already been called successfully."]
#[doc = "- `NotExpired` if `now < expiry`."]
#[codec(index = 3u8)]
reclaim {
ca_id: pallet_corporate_actions::CAId,
},
#[doc = "Removes a distribution that hasn't started yet,"]
#[doc = "unlocking the full amount in the distributor portfolio."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA with a not-yet-started capital distribution to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `DistributionStarted` if `payment_at <= now`."]
#[codec(index = 4u8)]
remove_distribution {
ca_id: pallet_corporate_actions::CAId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::distribute { .. } => "CapitalDistribution.distribute",
Self::claim { .. } => "CapitalDistribution.claim",
Self::push_benefit { .. } => "CapitalDistribution.push_benefit",
Self::reclaim { .. } => "CapitalDistribution.reclaim",
Self::remove_distribution { .. } => "CapitalDistribution.remove_distribution",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: distribute { .. } => { & ["Start and attach a capital distribution, to the CA identified by `ca_id`," , "with `amount` funds in `currency` withdrawn from `portfolio` belonging to `origin`'s DID." , "" , "The distribution will commence at `payment_at` and expire at `expires_at`," , "if provided, or if `None`, then there's no expiry." , "" , "The funds will be locked in `portfolio` from when `distribute` is called." , "When there's no expiry, some funds may be locked indefinitely in `portfolio`," , "due to claimants not withdrawing or no benefits being pushed to them." , "For indivisible currencies, unlocked amounts, of less than one whole unit," , "will not be transferable from `portfolio`." , "However, if we imagine that users `Alice` and `Bob` both are entitled to 1.5 units," , "and only receive `1` units each, then `0.5 + 0.5 = 1` units are left in `portfolio`," , "which is now transferrable." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the CA to start a capital distribution for." , "- `portfolio` specifies the portfolio number of the agent to distribute `amount` from." , "- `currency` to withdraw and distribute from the `portfolio`." , "- `per_share` amount of `currency` to withdraw and distribute." , " Specified as a per-million, i.e. `1 / 10^6`th of one `currency` token." , "- `amount` of `currency` to withdraw and distribute at most." , "- `payment_at` specifies when benefits may first be pushed or claimed." , "- `expires_at` specifies, if provided, when remaining benefits are forfeit" , " and may be reclaimed by `origin`." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `ExpiryBeforePayment` if `expires_at.unwrap() <= payment_at`." , "- `NoSuchCA` if `ca_id` does not identify an existing CA." , "- `NoRecordDate` if CA has no record date." , "- `RecordDateAfterStart` if CA's record date > payment_at." , "- `UnauthorizedCustodian` if the caller is not the custodian of `portfolio`." , "- `InsufficientPortfolioBalance` if `portfolio` has less than `amount` of `currency`." , "- `InsufficientBalance` if the protocol fee couldn't be charged." , "- `CANotBenefit` if the CA is not of kind PredictableBenefit/UnpredictableBenefit" , "- `DistributionAmountIsZero` if the `amount` is zero." , "- `DistributionPerShareIsZero` if the `per_share` is zero." , "" , "# Permissions" , "* Asset" , "* Portfolio" ,] } , Self :: claim { .. } => { & ["Claim a benefit of the capital distribution attached to `ca_id`." , "" , "Taxes are withheld as specified by the CA." , "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID." , "" , "All benefits are rounded by truncation, down to first integer below." , "Moreover, before post-tax earnings, in indivisible currencies are transferred," , "they are rounded down to a whole unit." , "" , "## Arguments" , "- `origin` which must be a holder of the asset and eligible for the distribution." , "- `ca_id` identifies the CA to start a capital distribution for." , "" , "# Errors" , "- `HolderAlreadyPaid` if `origin`'s DID has already received its benefit." , "- `NoSuchDistribution` if there's no capital distribution for `ca_id`." , "- `CannotClaimBeforeStart` if `now < payment_at`." , "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`." , "- `NoSuchCA` if `ca_id` does not identify an existing CA." , "- `NotTargetedByCA` if the CA does not target `origin`'s DID." , "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow." , "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow." , "- Other errors can occur if the compliance manager rejects the transfer." ,] } , Self :: push_benefit { .. } => { & ["Push benefit of an ongoing distribution to the given `holder`." , "" , "Taxes are withheld as specified by the CA." , "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID." , "" , "All benefits are rounded by truncation, down to first integer below." , "Moreover, before post-tax earnings, in indivisible currencies are transferred," , "they are rounded down to a whole unit." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the CA with a capital distributions to push benefits for." , "- `holder` to push benefits to." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchDistribution` if there's no capital distribution for `ca_id`." , "- `CannotClaimBeforeStart` if `now < payment_at`." , "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`." , "- `NoSuchCA` if `ca_id` does not identify an existing CA." , "- `NotTargetedByCA` if the CA does not target `holder`." , "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow." , "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow." , "- Other errors can occur if the compliance manager rejects the transfer." ,] } , Self :: reclaim { .. } => { & ["Assuming a distribution has expired," , "unlock the remaining amount in the distributor portfolio." , "" , "## Arguments" , "- `origin` which must be the creator of the capital distribution tied to `ca_id`." , "- `ca_id` identifies the CA with a capital distribution to reclaim for." , "" , "# Errors" , "- `NoSuchDistribution` if there's no capital distribution for `ca_id`." , "- `AlreadyReclaimed` if this function has already been called successfully." , "- `NotExpired` if `now < expiry`." ,] } , Self :: remove_distribution { .. } => { & ["Removes a distribution that hasn't started yet," , "unlocking the full amount in the distributor portfolio." , "" , "## Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`." , "- `ca_id` identifies the CA with a not-yet-started capital distribution to remove." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchDistribution` if there's no capital distribution for `ca_id`." , "- `DistributionStarted` if `payment_at <= now`." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "A capital distribution was made for a non-benefit CA."]
#[codec(index = 0u8)]
CANotBenefit,
#[doc = "A distribution already exists for this CA."]
#[codec(index = 1u8)]
AlreadyExists,
#[doc = "A distributions provided expiry date was strictly before its payment date."]
#[doc = "In other words, everything to distribute would immediately be forfeited."]
#[codec(index = 2u8)]
ExpiryBeforePayment,
#[doc = "The token holder has already been paid their benefit."]
#[codec(index = 3u8)]
HolderAlreadyPaid,
#[doc = "A capital distribution doesn't exist for this CA."]
#[codec(index = 4u8)]
NoSuchDistribution,
#[doc = "Distribution allotment cannot be claimed as the current time is before start-of-payment."]
#[codec(index = 5u8)]
CannotClaimBeforeStart,
#[doc = "Distribution's expiry has passed. DID cannot claim anymore and has forfeited the benefits."]
#[codec(index = 6u8)]
CannotClaimAfterExpiry,
#[doc = "Multiplication of the balance with the per share payout amount overflowed."]
#[codec(index = 7u8)]
BalancePerShareProductOverflowed,
#[doc = "DID is not the one who created the distribution."]
#[codec(index = 8u8)]
NotDistributionCreator,
#[doc = "DID who created the distribution already did reclaim."]
#[codec(index = 9u8)]
AlreadyReclaimed,
#[doc = "Distribution had not expired yet, or there's no expiry date."]
#[codec(index = 10u8)]
NotExpired,
#[doc = "A distribution has been activated, as `payment_at <= now` holds."]
#[codec(index = 11u8)]
DistributionStarted,
#[doc = "A distribution has insufficient remaining amount of currency to distribute."]
#[codec(index = 12u8)]
InsufficientRemainingAmount,
#[doc = "Distribution `amount` cannot be zero."]
#[codec(index = 13u8)]
DistributionAmountIsZero,
#[doc = "Distribution `per_share` cannot be zero."]
#[codec(index = 14u8)]
DistributionPerShareIsZero,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::CANotBenefit => "CapitalDistribution.CANotBenefit",
Self::AlreadyExists => "CapitalDistribution.AlreadyExists",
Self::ExpiryBeforePayment => "CapitalDistribution.ExpiryBeforePayment",
Self::HolderAlreadyPaid => "CapitalDistribution.HolderAlreadyPaid",
Self::NoSuchDistribution => "CapitalDistribution.NoSuchDistribution",
Self::CannotClaimBeforeStart => "CapitalDistribution.CannotClaimBeforeStart",
Self::CannotClaimAfterExpiry => "CapitalDistribution.CannotClaimAfterExpiry",
Self::BalancePerShareProductOverflowed => {
"CapitalDistribution.BalancePerShareProductOverflowed"
}
Self::NotDistributionCreator => "CapitalDistribution.NotDistributionCreator",
Self::AlreadyReclaimed => "CapitalDistribution.AlreadyReclaimed",
Self::NotExpired => "CapitalDistribution.NotExpired",
Self::DistributionStarted => "CapitalDistribution.DistributionStarted",
Self::InsufficientRemainingAmount => "CapitalDistribution.InsufficientRemainingAmount",
Self::DistributionAmountIsZero => "CapitalDistribution.DistributionAmountIsZero",
Self::DistributionPerShareIsZero => "CapitalDistribution.DistributionPerShareIsZero",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: CANotBenefit => { & ["A capital distribution was made for a non-benefit CA." ,] } , Self :: AlreadyExists => { & ["A distribution already exists for this CA." ,] } , Self :: ExpiryBeforePayment => { & ["A distributions provided expiry date was strictly before its payment date." , "In other words, everything to distribute would immediately be forfeited." ,] } , Self :: HolderAlreadyPaid => { & ["The token holder has already been paid their benefit." ,] } , Self :: NoSuchDistribution => { & ["A capital distribution doesn't exist for this CA." ,] } , Self :: CannotClaimBeforeStart => { & ["Distribution allotment cannot be claimed as the current time is before start-of-payment." ,] } , Self :: CannotClaimAfterExpiry => { & ["Distribution's expiry has passed. DID cannot claim anymore and has forfeited the benefits." ,] } , Self :: BalancePerShareProductOverflowed => { & ["Multiplication of the balance with the per share payout amount overflowed." ,] } , Self :: NotDistributionCreator => { & ["DID is not the one who created the distribution." ,] } , Self :: AlreadyReclaimed => { & ["DID who created the distribution already did reclaim." ,] } , Self :: NotExpired => { & ["Distribution had not expired yet, or there's no expiry date." ,] } , Self :: DistributionStarted => { & ["A distribution has been activated, as `payment_at <= now` holds." ,] } , Self :: InsufficientRemainingAmount => { & ["A distribution has insufficient remaining amount of currency to distribute." ,] } , Self :: DistributionAmountIsZero => { & ["Distribution `amount` cannot be zero." ,] } , Self :: DistributionPerShareIsZero => { & ["Distribution `per_share` cannot be zero." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Distribution {
pub from: polymesh_primitives::identity_id::PortfolioId,
pub currency: polymesh_primitives::ticker::Ticker,
pub per_share: u128,
pub amount: u128,
pub remaining: u128,
pub reclaimed: bool,
pub payment_at: u64,
pub expires_at: Option<u64>,
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Set the max `length` of `details` in terms of bytes."]
#[doc = "May only be called via a PIP."]
#[codec(index = 0u8)]
set_max_details_length { length: u32 },
#[doc = "Set the default CA `TargetIdentities` to `targets`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` for which the default identities are changing."]
#[doc = "- `targets` the default target identities for a CA."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `TooManyTargetIds` if `targets.identities.len() > T::MaxTargetIds::get()`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 1u8)]
set_default_targets {
ticker: polymesh_primitives::ticker::Ticker,
targets: pallet_corporate_actions::TargetIdentities,
},
#[doc = "Set the default withholding tax for all DIDs and CAs relevant to this `ticker`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the withholding tax will apply to."]
#[doc = "- `tax` that should be withheld when distributing dividends, etc."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 2u8)]
set_default_withholding_tax {
ticker: polymesh_primitives::ticker::Ticker,
tax: ::polymesh_api_client::per_things::Permill,
},
#[doc = "Set the withholding tax of `ticker` for `taxed_did` to `tax`."]
#[doc = "If `Some(tax)`, this overrides the default withholding tax of `ticker` to `tax` for `taxed_did`."]
#[doc = "Otherwise, if `None`, the default withholding tax will be used."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the withholding tax will apply to."]
#[doc = "- `taxed_did` that will have its withholding tax updated."]
#[doc = "- `tax` that should be withheld when distributing dividends, etc."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `TooManyDidTaxes` if `Some(tax)` and adding the override would go over the limit `MaxDidWhts`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 3u8)]
set_did_withholding_tax {
ticker: polymesh_primitives::ticker::Ticker,
taxed_did: polymesh_primitives::identity_id::IdentityId,
tax: Option<::polymesh_api_client::per_things::Permill>,
},
#[doc = "Initiates a CA for `ticker` of `kind` with `details` and other provided arguments."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the CA is made for."]
#[doc = "- `kind` of CA being initiated."]
#[doc = "- `decl_date` of CA bring initialized."]
#[doc = "- `record_date`, if any, to calculate the impact of this CA."]
#[doc = " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date."]
#[doc = "- `details` of the CA in free-text form, up to a certain number of bytes in length."]
#[doc = "- `targets`, if any, which this CA is relevant/irrelevant to."]
#[doc = " Overrides, if provided, the default at the asset level (`set_default_targets`)."]
#[doc = "- `default_withholding_tax`, if any, is the default withholding tax to use for this CA."]
#[doc = " Overrides, if provided, the default at the asset level (`set_default_withholding_tax`)."]
#[doc = "- `withholding_tax`, if any, provides per-DID withholding tax overrides."]
#[doc = " Overrides, if provided, the default at the asset level (`set_did_withholding_tax`)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `DetailsTooLong` if `details.len()` goes beyond `max_details_length`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `CounterOverflow` in the unlikely event that so many CAs were created for this `ticker`,"]
#[doc = " that integer overflow would have occured if instead allowed."]
#[doc = "- `TooManyDidTaxes` if `withholding_tax.unwrap().len()` would go over the limit `MaxDidWhts`."]
#[doc = "- `DuplicateDidTax` if a DID is included more than once in `wt`."]
#[doc = "- `TooManyTargetIds` if `targets.unwrap().identities.len() > T::MaxTargetIds::get()`."]
#[doc = "- `DeclDateInFuture` if the declaration date is not in the past."]
#[doc = "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 4u8)]
initiate_corporate_action {
ticker: polymesh_primitives::ticker::Ticker,
kind: pallet_corporate_actions::CAKind,
decl_date: u64,
record_date: Option<pallet_corporate_actions::RecordDateSpec>,
details: pallet_corporate_actions::CADetails,
targets: Option<pallet_corporate_actions::TargetIdentities>,
default_withholding_tax: Option<::polymesh_api_client::per_things::Permill>,
withholding_tax: Option<
Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>,
>,
},
#[doc = "Link the given CA `id` to the given `docs`."]
#[doc = "Any previous links for the CA are removed in favor of `docs`."]
#[doc = ""]
#[doc = "The workflow here is to add the documents and initiating the CA in any order desired."]
#[doc = "Once both exist, they can now be linked together."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `id.ticker` with relevant permissions."]
#[doc = "- `id` of the CA to associate with `docs`."]
#[doc = "- `docs` to associate with the CA with `id`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = "- `NoSuchDoc` if any of `docs` does not identify an existing document."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 5u8)]
link_ca_doc {
id: pallet_corporate_actions::CAId,
docs: Vec<polymesh_primitives::document::DocumentId>,
},
#[doc = "Removes the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "Associated data, such as document links, ballots,"]
#[doc = "and capital distributions are also removed."]
#[doc = ""]
#[doc = "Any schedule associated with the record date will see"]
#[doc = "`strong_ref_count(schedule_id)` decremented."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions."]
#[doc = "- `ca_id` of the CA to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 6u8)]
remove_ca {
ca_id: pallet_corporate_actions::CAId,
},
#[doc = "Changes the record date of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions."]
#[doc = "- `ca_id` of the CA to alter."]
#[doc = "- `record_date`, if any, to calculate the impact of the CA."]
#[doc = " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 7u8)]
change_record_date {
ca_id: pallet_corporate_actions::CAId,
record_date: Option<pallet_corporate_actions::RecordDateSpec>,
},
#[doc = "Utility extrinsic to batch `initiate_corporate_action` and `distribute`"]
#[codec(index = 8u8)]
initiate_corporate_action_and_distribute {
ca_args: pallet_corporate_actions::InitiateCorporateActionArgs,
portfolio: Option<polymesh_primitives::identity_id::PortfolioNumber>,
currency: polymesh_primitives::ticker::Ticker,
per_share: u128,
amount: u128,
payment_at: u64,
expires_at: Option<u64>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_max_details_length { .. } => "CorporateAction.set_max_details_length",
Self::set_default_targets { .. } => "CorporateAction.set_default_targets",
Self::set_default_withholding_tax { .. } => "CorporateAction.set_default_withholding_tax",
Self::set_did_withholding_tax { .. } => "CorporateAction.set_did_withholding_tax",
Self::initiate_corporate_action { .. } => "CorporateAction.initiate_corporate_action",
Self::link_ca_doc { .. } => "CorporateAction.link_ca_doc",
Self::remove_ca { .. } => "CorporateAction.remove_ca",
Self::change_record_date { .. } => "CorporateAction.change_record_date",
Self::initiate_corporate_action_and_distribute { .. } => {
"CorporateAction.initiate_corporate_action_and_distribute"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_max_details_length { .. } => { & ["Set the max `length` of `details` in terms of bytes." , "May only be called via a PIP." ,] } , Self :: set_default_targets { .. } => { & ["Set the default CA `TargetIdentities` to `targets`." , "" , "## Arguments" , "- `origin` which must be an external agent of `ticker` with relevant permissions." , "- `ticker` for which the default identities are changing." , "- `targets` the default target identities for a CA." , "" , "## Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `TooManyTargetIds` if `targets.identities.len() > T::MaxTargetIds::get()`." , "" , "# Permissions" , "* Asset" ,] } , Self :: set_default_withholding_tax { .. } => { & ["Set the default withholding tax for all DIDs and CAs relevant to this `ticker`." , "" , "## Arguments" , "- `origin` which must be an external agent of `ticker` with relevant permissions." , "- `ticker` that the withholding tax will apply to." , "- `tax` that should be withheld when distributing dividends, etc." , "" , "## Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "" , "# Permissions" , "* Asset" ,] } , Self :: set_did_withholding_tax { .. } => { & ["Set the withholding tax of `ticker` for `taxed_did` to `tax`." , "If `Some(tax)`, this overrides the default withholding tax of `ticker` to `tax` for `taxed_did`." , "Otherwise, if `None`, the default withholding tax will be used." , "" , "## Arguments" , "- `origin` which must be an external agent of `ticker` with relevant permissions." , "- `ticker` that the withholding tax will apply to." , "- `taxed_did` that will have its withholding tax updated." , "- `tax` that should be withheld when distributing dividends, etc." , "" , "## Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `TooManyDidTaxes` if `Some(tax)` and adding the override would go over the limit `MaxDidWhts`." , "" , "# Permissions" , "* Asset" ,] } , Self :: initiate_corporate_action { .. } => { & ["Initiates a CA for `ticker` of `kind` with `details` and other provided arguments." , "" , "## Arguments" , "- `origin` which must be an external agent of `ticker` with relevant permissions." , "- `ticker` that the CA is made for." , "- `kind` of CA being initiated." , "- `decl_date` of CA bring initialized." , "- `record_date`, if any, to calculate the impact of this CA." , " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date." , "- `details` of the CA in free-text form, up to a certain number of bytes in length." , "- `targets`, if any, which this CA is relevant/irrelevant to." , " Overrides, if provided, the default at the asset level (`set_default_targets`)." , "- `default_withholding_tax`, if any, is the default withholding tax to use for this CA." , " Overrides, if provided, the default at the asset level (`set_default_withholding_tax`)." , "- `withholding_tax`, if any, provides per-DID withholding tax overrides." , " Overrides, if provided, the default at the asset level (`set_did_withholding_tax`)." , "" , "# Errors" , "- `DetailsTooLong` if `details.len()` goes beyond `max_details_length`." , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `CounterOverflow` in the unlikely event that so many CAs were created for this `ticker`," , " that integer overflow would have occured if instead allowed." , "- `TooManyDidTaxes` if `withholding_tax.unwrap().len()` would go over the limit `MaxDidWhts`." , "- `DuplicateDidTax` if a DID is included more than once in `wt`." , "- `TooManyTargetIds` if `targets.unwrap().identities.len() > T::MaxTargetIds::get()`." , "- `DeclDateInFuture` if the declaration date is not in the past." , "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur." , "" , "# Permissions" , "* Asset" ,] } , Self :: link_ca_doc { .. } => { & ["Link the given CA `id` to the given `docs`." , "Any previous links for the CA are removed in favor of `docs`." , "" , "The workflow here is to add the documents and initiating the CA in any order desired." , "Once both exist, they can now be linked together." , "" , "## Arguments" , "- `origin` which must be an external agent of `id.ticker` with relevant permissions." , "- `id` of the CA to associate with `docs`." , "- `docs` to associate with the CA with `id`." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchCA` if `id` does not identify an existing CA." , "- `NoSuchDoc` if any of `docs` does not identify an existing document." , "" , "# Permissions" , "* Asset" ,] } , Self :: remove_ca { .. } => { & ["Removes the CA identified by `ca_id`." , "" , "Associated data, such as document links, ballots," , "and capital distributions are also removed." , "" , "Any schedule associated with the record date will see" , "`strong_ref_count(schedule_id)` decremented." , "" , "## Arguments" , "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions." , "- `ca_id` of the CA to remove." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchCA` if `id` does not identify an existing CA." , "" , "# Permissions" , "* Asset" ,] } , Self :: change_record_date { .. } => { & ["Changes the record date of the CA identified by `ca_id`." , "" , "## Arguments" , "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions." , "- `ca_id` of the CA to alter." , "- `record_date`, if any, to calculate the impact of the CA." , " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date." , "" , "# Errors" , "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`." , "- `NoSuchCA` if `id` does not identify an existing CA." , "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur." , "" , "# Permissions" , "* Asset" ,] } , Self :: initiate_corporate_action_and_distribute { .. } => { & ["Utility extrinsic to batch `initiate_corporate_action` and `distribute`" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct LocalCAId(pub u32);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct RecordDate {
pub date: u64,
pub checkpoint: pallet_corporate_actions::CACheckpoint,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum TargetTreatment {
#[codec(index = 0u8)]
Include,
#[codec(index = 1u8)]
Exclude,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum CACheckpoint {
#[codec(index = 0u8)]
Scheduled(
polymesh_common_utilities::traits::checkpoint::ScheduleId,
u64,
),
#[codec(index = 1u8)]
Existing(polymesh_primitives::calendar::CheckpointId),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CorporateAction {
pub kind: pallet_corporate_actions::CAKind,
pub decl_date: u64,
pub record_date: Option<pallet_corporate_actions::RecordDate>,
pub targets: pallet_corporate_actions::TargetIdentities,
pub default_withholding_tax: ::polymesh_api_client::per_things::Permill,
pub withholding_tax: Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum CAKind {
#[codec(index = 0u8)]
PredictableBenefit,
#[codec(index = 1u8)]
UnpredictableBenefit,
#[codec(index = 2u8)]
IssuerNotice,
#[codec(index = 3u8)]
Reorganization,
#[codec(index = 4u8)]
Other,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The authorization type is not to transfer the CAA to another DID."]
#[codec(index = 0u8)]
AuthNotCAATransfer,
#[doc = "The `details` of a CA exceeded the max allowed length."]
#[codec(index = 1u8)]
DetailsTooLong,
#[doc = "A withholding tax override for a given DID was specified more than once."]
#[doc = "The chain refused to make a choice, and hence there was an error."]
#[codec(index = 2u8)]
DuplicateDidTax,
#[doc = "Too many withholding tax overrides were specified."]
#[codec(index = 3u8)]
TooManyDidTaxes,
#[doc = "Too many identities in `TargetIdentities` were specified."]
#[codec(index = 4u8)]
TooManyTargetIds,
#[doc = "On CA creation, a checkpoint ID was provided which doesn't exist."]
#[codec(index = 5u8)]
NoSuchCheckpointId,
#[doc = "A CA with the given `CAId` did not exist."]
#[codec(index = 6u8)]
NoSuchCA,
#[doc = "The CA did not have a record date."]
#[codec(index = 7u8)]
NoRecordDate,
#[doc = "A CA's record date was strictly after the \"start\" time,"]
#[doc = "where \"start\" is context dependent."]
#[doc = "For example, it could be the start of a ballot, or the start-of-payment in capital distribution."]
#[codec(index = 8u8)]
RecordDateAfterStart,
#[doc = "A CA's declaration date was strictly after its record date."]
#[codec(index = 9u8)]
DeclDateAfterRecordDate,
#[doc = "A CA's declaration date occurs in the future."]
#[codec(index = 10u8)]
DeclDateInFuture,
#[doc = "CA does not target the DID."]
#[codec(index = 11u8)]
NotTargetedByCA,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::AuthNotCAATransfer => "CorporateAction.AuthNotCAATransfer",
Self::DetailsTooLong => "CorporateAction.DetailsTooLong",
Self::DuplicateDidTax => "CorporateAction.DuplicateDidTax",
Self::TooManyDidTaxes => "CorporateAction.TooManyDidTaxes",
Self::TooManyTargetIds => "CorporateAction.TooManyTargetIds",
Self::NoSuchCheckpointId => "CorporateAction.NoSuchCheckpointId",
Self::NoSuchCA => "CorporateAction.NoSuchCA",
Self::NoRecordDate => "CorporateAction.NoRecordDate",
Self::RecordDateAfterStart => "CorporateAction.RecordDateAfterStart",
Self::DeclDateAfterRecordDate => "CorporateAction.DeclDateAfterRecordDate",
Self::DeclDateInFuture => "CorporateAction.DeclDateInFuture",
Self::NotTargetedByCA => "CorporateAction.NotTargetedByCA",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: AuthNotCAATransfer => { & ["The authorization type is not to transfer the CAA to another DID." ,] } , Self :: DetailsTooLong => { & ["The `details` of a CA exceeded the max allowed length." ,] } , Self :: DuplicateDidTax => { & ["A withholding tax override for a given DID was specified more than once." , "The chain refused to make a choice, and hence there was an error." ,] } , Self :: TooManyDidTaxes => { & ["Too many withholding tax overrides were specified." ,] } , Self :: TooManyTargetIds => { & ["Too many identities in `TargetIdentities` were specified." ,] } , Self :: NoSuchCheckpointId => { & ["On CA creation, a checkpoint ID was provided which doesn't exist." ,] } , Self :: NoSuchCA => { & ["A CA with the given `CAId` did not exist." ,] } , Self :: NoRecordDate => { & ["The CA did not have a record date." ,] } , Self :: RecordDateAfterStart => { & ["A CA's record date was strictly after the \"start\" time," , "where \"start\" is context dependent." , "For example, it could be the start of a ballot, or the start-of-payment in capital distribution." ,] } , Self :: DeclDateAfterRecordDate => { & ["A CA's declaration date was strictly after its record date." ,] } , Self :: DeclDateInFuture => { & ["A CA's declaration date occurs in the future." ,] } , Self :: NotTargetedByCA => { & ["CA does not target the DID." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct InitiateCorporateActionArgs {
pub ticker: polymesh_primitives::ticker::Ticker,
pub kind: pallet_corporate_actions::CAKind,
pub decl_date: u64,
pub record_date: Option<pallet_corporate_actions::RecordDateSpec>,
pub details: pallet_corporate_actions::CADetails,
pub targets: Option<pallet_corporate_actions::TargetIdentities>,
pub default_withholding_tax: Option<::polymesh_api_client::per_things::Permill>,
pub withholding_tax: Option<
Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>,
>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CADetails(pub Vec<u8>);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct TargetIdentities {
pub identities: Vec<polymesh_primitives::identity_id::IdentityId>,
pub treatment: pallet_corporate_actions::TargetTreatment,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CAId {
pub ticker: polymesh_primitives::ticker::Ticker,
pub local_id: pallet_corporate_actions::LocalCAId,
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "The maximum length of `details` in bytes was changed."]
#[doc = "(GC DID, new length)"]
#[codec(index = 0u8)]
MaxDetailsLengthChanged(polymesh_primitives::identity_id::IdentityId, u32),
#[doc = "The set of default `TargetIdentities` for a ticker changed."]
#[doc = "(Agent DID, Ticker, New TargetIdentities)"]
#[codec(index = 1u8)]
DefaultTargetIdentitiesChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
pallet_corporate_actions::TargetIdentities,
),
#[doc = "The default withholding tax for a ticker changed."]
#[doc = "(Agent DID, Ticker, New Tax)."]
#[codec(index = 2u8)]
DefaultWithholdingTaxChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
::polymesh_api_client::per_things::Permill,
),
#[doc = "The withholding tax specific to a DID for a ticker changed."]
#[doc = "(Agent DID, Ticker, Taxed DID, New Tax)."]
#[codec(index = 3u8)]
DidWithholdingTaxChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
Option<::polymesh_api_client::per_things::Permill>,
),
#[doc = "A new DID was made the CAA."]
#[doc = "(New CAA DID, Ticker, New CAA DID)."]
#[codec(index = 4u8)]
CAATransferred(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "A CA was initiated."]
#[doc = "(Agent DID, CA id, the CA, the CA details)"]
#[codec(index = 5u8)]
CAInitiated(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
pallet_corporate_actions::CorporateAction,
pallet_corporate_actions::CADetails,
),
#[doc = "A CA was linked to a set of docs."]
#[doc = "(Agent DID, CA Id, List of doc identifiers)"]
#[codec(index = 6u8)]
CALinkedToDoc(
polymesh_primitives::identity_id::IdentityId,
pallet_corporate_actions::CAId,
Vec<polymesh_primitives::document::DocumentId>,
),
#[doc = "A CA was removed."]
#[doc = "(Agent DID, CA Id)"]
#[codec(index = 7u8)]
CARemoved(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
),
#[doc = "A CA's record date changed."]
#[codec(index = 8u8)]
RecordDateChanged(
polymesh_primitives::event_only::EventOnly<polymesh_primitives::identity_id::IdentityId>,
pallet_corporate_actions::CAId,
pallet_corporate_actions::CorporateAction,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::MaxDetailsLengthChanged(_, _) => "CorporateAction.MaxDetailsLengthChanged",
Self::DefaultTargetIdentitiesChanged(_, _, _) => {
"CorporateAction.DefaultTargetIdentitiesChanged"
}
Self::DefaultWithholdingTaxChanged(_, _, _) => {
"CorporateAction.DefaultWithholdingTaxChanged"
}
Self::DidWithholdingTaxChanged(_, _, _, _) => "CorporateAction.DidWithholdingTaxChanged",
Self::CAATransferred(_, _, _) => "CorporateAction.CAATransferred",
Self::CAInitiated(_, _, _, _) => "CorporateAction.CAInitiated",
Self::CALinkedToDoc(_, _, _) => "CorporateAction.CALinkedToDoc",
Self::CARemoved(_, _) => "CorporateAction.CARemoved",
Self::RecordDateChanged(_, _, _) => "CorporateAction.RecordDateChanged",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::MaxDetailsLengthChanged(_, _) => &[
"The maximum length of `details` in bytes was changed.",
"(GC DID, new length)",
],
Self::DefaultTargetIdentitiesChanged(_, _, _) => &[
"The set of default `TargetIdentities` for a ticker changed.",
"(Agent DID, Ticker, New TargetIdentities)",
],
Self::DefaultWithholdingTaxChanged(_, _, _) => &[
"The default withholding tax for a ticker changed.",
"(Agent DID, Ticker, New Tax).",
],
Self::DidWithholdingTaxChanged(_, _, _, _) => &[
"The withholding tax specific to a DID for a ticker changed.",
"(Agent DID, Ticker, Taxed DID, New Tax).",
],
Self::CAATransferred(_, _, _) => &[
"A new DID was made the CAA.",
"(New CAA DID, Ticker, New CAA DID).",
],
Self::CAInitiated(_, _, _, _) => &[
"A CA was initiated.",
"(Agent DID, CA id, the CA, the CA details)",
],
Self::CALinkedToDoc(_, _, _) => &[
"A CA was linked to a set of docs.",
"(Agent DID, CA Id, List of doc identifiers)",
],
Self::CARemoved(_, _) => &["A CA was removed.", "(Agent DID, CA Id)"],
Self::RecordDateChanged(_, _, _) => &["A CA's record date changed."],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RecordDateSpec {
#[codec(index = 0u8)]
Scheduled(u64),
#[codec(index = 1u8)]
ExistingSchedule(polymesh_common_utilities::traits::checkpoint::ScheduleId),
#[codec(index = 2u8)]
Existing(polymesh_primitives::calendar::CheckpointId),
}
}
pub mod sp_consensus_slots {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EquivocationProof<Header, Id> {
pub offender: Id,
pub slot: sp_consensus_slots::Slot,
pub first_header: Header,
pub second_header: Header,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Slot(pub u64);
}
pub mod pallet_indices {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Assign an previously unassigned index."]
#[doc = ""]
#[doc = "Payment: `Deposit` is reserved from the sender account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "- `index`: the index to be claimed. This must not be in use."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
claim { index: u32 },
#[doc = "Assign an index already owned by the sender to another account. The balance reservation"]
#[doc = "is effectively transferred to the new account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."]
#[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One transfer operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Indices Accounts, System Account (recipient)"]
#[doc = " - Writes: Indices Accounts, System Account (recipient)"]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
transfer {
new: ::polymesh_api_client::AccountId,
index: u32,
},
#[doc = "Free up an index owned by the sender."]
#[doc = ""]
#[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."]
#[doc = ""]
#[doc = "- `index`: the index to be freed. This must be owned by the sender."]
#[doc = ""]
#[doc = "Emits `IndexFreed` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
#[codec(index = 2u8)]
free { index: u32 },
#[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"]
#[doc = "held, then any deposit is reimbursed to its current owner."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Root_."]
#[doc = ""]
#[doc = "- `index`: the index to be (re-)assigned."]
#[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
#[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- Up to one reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Indices Accounts, System Account (original owner)"]
#[doc = " - Writes: Indices Accounts, System Account (original owner)"]
#[doc = "# </weight>"]
#[codec(index = 3u8)]
force_transfer {
new: ::polymesh_api_client::AccountId,
index: u32,
freeze: bool,
},
#[doc = "Freeze an index so it will always point to the sender account. This consumes the"]
#[doc = "deposit."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
#[doc = "non-frozen account `index`."]
#[doc = ""]
#[doc = "- `index`: the index to be frozen in place."]
#[doc = ""]
#[doc = "Emits `IndexFrozen` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- Up to one slash operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
#[codec(index = 4u8)]
freeze { index: u32 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::claim { .. } => "Indices.claim",
Self::transfer { .. } => "Indices.transfer",
Self::free { .. } => "Indices.free",
Self::force_transfer { .. } => "Indices.force_transfer",
Self::freeze { .. } => "Indices.freeze",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: claim { .. } => { & ["Assign an previously unassigned index." , "" , "Payment: `Deposit` is reserved from the sender account." , "" , "The dispatch origin for this call must be _Signed_." , "" , "- `index`: the index to be claimed. This must not be in use." , "" , "Emits `IndexAssigned` if successful." , "" , "# <weight>" , "- `O(1)`." , "- One storage mutation (codec `O(1)`)." , "- One reserve operation." , "- One event." , "-------------------" , "- DB Weight: 1 Read/Write (Accounts)" , "# </weight>" ,] } , Self :: transfer { .. } => { & ["Assign an index already owned by the sender to another account. The balance reservation" , "is effectively transferred to the new account." , "" , "The dispatch origin for this call must be _Signed_." , "" , "- `index`: the index to be re-assigned. This must be owned by the sender." , "- `new`: the new owner of the index. This function is a no-op if it is equal to sender." , "" , "Emits `IndexAssigned` if successful." , "" , "# <weight>" , "- `O(1)`." , "- One storage mutation (codec `O(1)`)." , "- One transfer operation." , "- One event." , "-------------------" , "- DB Weight:" , " - Reads: Indices Accounts, System Account (recipient)" , " - Writes: Indices Accounts, System Account (recipient)" , "# </weight>" ,] } , Self :: free { .. } => { & ["Free up an index owned by the sender." , "" , "Payment: Any previous deposit placed for the index is unreserved in the sender account." , "" , "The dispatch origin for this call must be _Signed_ and the sender must own the index." , "" , "- `index`: the index to be freed. This must be owned by the sender." , "" , "Emits `IndexFreed` if successful." , "" , "# <weight>" , "- `O(1)`." , "- One storage mutation (codec `O(1)`)." , "- One reserve operation." , "- One event." , "-------------------" , "- DB Weight: 1 Read/Write (Accounts)" , "# </weight>" ,] } , Self :: force_transfer { .. } => { & ["Force an index to an account. This doesn't require a deposit. If the index is already" , "held, then any deposit is reimbursed to its current owner." , "" , "The dispatch origin for this call must be _Root_." , "" , "- `index`: the index to be (re-)assigned." , "- `new`: the new owner of the index. This function is a no-op if it is equal to sender." , "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred." , "" , "Emits `IndexAssigned` if successful." , "" , "# <weight>" , "- `O(1)`." , "- One storage mutation (codec `O(1)`)." , "- Up to one reserve operation." , "- One event." , "-------------------" , "- DB Weight:" , " - Reads: Indices Accounts, System Account (original owner)" , " - Writes: Indices Accounts, System Account (original owner)" , "# </weight>" ,] } , Self :: freeze { .. } => { & ["Freeze an index so it will always point to the sender account. This consumes the" , "deposit." , "" , "The dispatch origin for this call must be _Signed_ and the signing account must have a" , "non-frozen account `index`." , "" , "- `index`: the index to be frozen in place." , "" , "Emits `IndexFrozen` if successful." , "" , "# <weight>" , "- `O(1)`." , "- One storage mutation (codec `O(1)`)." , "- Up to one slash operation." , "- One event." , "-------------------" , "- DB Weight: 1 Read/Write (Accounts)" , "# </weight>" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The index was not already assigned."]
#[codec(index = 0u8)]
NotAssigned,
#[doc = "The index is assigned to another account."]
#[codec(index = 1u8)]
NotOwner,
#[doc = "The index was not available."]
#[codec(index = 2u8)]
InUse,
#[doc = "The source and destination accounts are identical."]
#[codec(index = 3u8)]
NotTransfer,
#[doc = "The index is permanent and may not be freed/changed."]
#[codec(index = 4u8)]
Permanent,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NotAssigned => "Indices.NotAssigned",
Self::NotOwner => "Indices.NotOwner",
Self::InUse => "Indices.InUse",
Self::NotTransfer => "Indices.NotTransfer",
Self::Permanent => "Indices.Permanent",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::NotAssigned => &["The index was not already assigned."],
Self::NotOwner => &["The index is assigned to another account."],
Self::InUse => &["The index was not available."],
Self::NotTransfer => &["The source and destination accounts are identical."],
Self::Permanent => &["The index is permanent and may not be freed/changed."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A account index was assigned."]
#[codec(index = 0u8)]
IndexAssigned {
who: ::polymesh_api_client::AccountId,
index: u32,
},
#[doc = "A account index has been freed up (unassigned)."]
#[codec(index = 1u8)]
IndexFreed { index: u32 },
#[doc = "A account index has been frozen to its current account ID."]
#[codec(index = 2u8)]
IndexFrozen {
index: u32,
who: ::polymesh_api_client::AccountId,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::IndexAssigned { .. } => "Indices.IndexAssigned",
Self::IndexFreed { .. } => "Indices.IndexFreed",
Self::IndexFrozen { .. } => "Indices.IndexFrozen",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::IndexAssigned { .. } => &["A account index was assigned."],
Self::IndexFreed { .. } => &["A account index has been freed up (unassigned)."],
Self::IndexFrozen { .. } => {
&["A account index has been frozen to its current account ID."]
}
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
}
pub mod pallet_contracts {
use super::*;
pub mod pallet {
use super::*;
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "A new schedule must have a greater version than the current one."]
#[codec(index = 0u8)]
InvalidScheduleVersion,
#[doc = "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`."]
#[codec(index = 1u8)]
InvalidCallFlags,
#[doc = "The executed contract exhausted its gas limit."]
#[codec(index = 2u8)]
OutOfGas,
#[doc = "The output buffer supplied to a contract API call was too small."]
#[codec(index = 3u8)]
OutputBufferTooSmall,
#[doc = "Performing the requested transfer failed. Probably because there isn't enough"]
#[doc = "free balance in the sender's account."]
#[codec(index = 4u8)]
TransferFailed,
#[doc = "Performing a call was denied because the calling depth reached the limit"]
#[doc = "of what is specified in the schedule."]
#[codec(index = 5u8)]
MaxCallDepthReached,
#[doc = "No contract was found at the specified address."]
#[codec(index = 6u8)]
ContractNotFound,
#[doc = "The code supplied to `instantiate_with_code` exceeds the limit specified in the"]
#[doc = "current schedule."]
#[codec(index = 7u8)]
CodeTooLarge,
#[doc = "No code could be found at the supplied code hash."]
#[codec(index = 8u8)]
CodeNotFound,
#[doc = "A buffer outside of sandbox memory was passed to a contract API function."]
#[codec(index = 9u8)]
OutOfBounds,
#[doc = "Input passed to a contract API function failed to decode as expected type."]
#[codec(index = 10u8)]
DecodingFailed,
#[doc = "Contract trapped during execution."]
#[codec(index = 11u8)]
ContractTrapped,
#[doc = "The size defined in `T::MaxValueSize` was exceeded."]
#[codec(index = 12u8)]
ValueTooLarge,
#[doc = "Termination of a contract is not allowed while the contract is already"]
#[doc = "on the call stack. Can be triggered by `seal_terminate`."]
#[codec(index = 13u8)]
TerminatedWhileReentrant,
#[doc = "`seal_call` forwarded this contracts input. It therefore is no longer available."]
#[codec(index = 14u8)]
InputForwarded,
#[doc = "The subject passed to `seal_random` exceeds the limit."]
#[codec(index = 15u8)]
RandomSubjectTooLong,
#[doc = "The amount of topics passed to `seal_deposit_events` exceeds the limit."]
#[codec(index = 16u8)]
TooManyTopics,
#[doc = "The topics passed to `seal_deposit_events` contains at least one duplicate."]
#[codec(index = 17u8)]
DuplicateTopics,
#[doc = "The chain does not provide a chain extension. Calling the chain extension results"]
#[doc = "in this error. Note that this usually shouldn't happen as deploying such contracts"]
#[doc = "is rejected."]
#[codec(index = 18u8)]
NoChainExtension,
#[doc = "Removal of a contract failed because the deletion queue is full."]
#[doc = ""]
#[doc = "This can happen when calling `seal_terminate`."]
#[doc = "The queue is filled by deleting contracts and emptied by a fixed amount each block."]
#[doc = "Trying again during another block is the only way to resolve this issue."]
#[codec(index = 19u8)]
DeletionQueueFull,
#[doc = "A contract with the same AccountId already exists."]
#[codec(index = 20u8)]
DuplicateContract,
#[doc = "A contract self destructed in its constructor."]
#[doc = ""]
#[doc = "This can be triggered by a call to `seal_terminate`."]
#[codec(index = 21u8)]
TerminatedInConstructor,
#[doc = "The debug message specified to `seal_debug_message` does contain invalid UTF-8."]
#[codec(index = 22u8)]
DebugMessageInvalidUTF8,
#[doc = "A call tried to invoke a contract that is flagged as non-reentrant."]
#[codec(index = 23u8)]
ReentranceDenied,
#[doc = "Origin doesn't have enough balance to pay the required storage deposits."]
#[codec(index = 24u8)]
StorageDepositNotEnoughFunds,
#[doc = "More storage was created than allowed by the storage deposit limit."]
#[codec(index = 25u8)]
StorageDepositLimitExhausted,
#[doc = "Code removal was denied because the code is still in use by at least one contract."]
#[codec(index = 26u8)]
CodeInUse,
#[doc = "The contract ran to completion but decided to revert its storage changes."]
#[doc = "Please note that this error is only returned from extrinsics. When called directly"]
#[doc = "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags"]
#[doc = "to determine whether a reversion has taken place."]
#[codec(index = 27u8)]
ContractReverted,
#[doc = "The contract's code was found to be invalid during validation or instrumentation."]
#[doc = "A more detailed error can be found on the node console if debug messages are enabled"]
#[doc = "or in the debug buffer which is returned to RPC clients."]
#[codec(index = 28u8)]
CodeRejected,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidScheduleVersion => "Contracts.InvalidScheduleVersion",
Self::InvalidCallFlags => "Contracts.InvalidCallFlags",
Self::OutOfGas => "Contracts.OutOfGas",
Self::OutputBufferTooSmall => "Contracts.OutputBufferTooSmall",
Self::TransferFailed => "Contracts.TransferFailed",
Self::MaxCallDepthReached => "Contracts.MaxCallDepthReached",
Self::ContractNotFound => "Contracts.ContractNotFound",
Self::CodeTooLarge => "Contracts.CodeTooLarge",
Self::CodeNotFound => "Contracts.CodeNotFound",
Self::OutOfBounds => "Contracts.OutOfBounds",
Self::DecodingFailed => "Contracts.DecodingFailed",
Self::ContractTrapped => "Contracts.ContractTrapped",
Self::ValueTooLarge => "Contracts.ValueTooLarge",
Self::TerminatedWhileReentrant => "Contracts.TerminatedWhileReentrant",
Self::InputForwarded => "Contracts.InputForwarded",
Self::RandomSubjectTooLong => "Contracts.RandomSubjectTooLong",
Self::TooManyTopics => "Contracts.TooManyTopics",
Self::DuplicateTopics => "Contracts.DuplicateTopics",
Self::NoChainExtension => "Contracts.NoChainExtension",
Self::DeletionQueueFull => "Contracts.DeletionQueueFull",
Self::DuplicateContract => "Contracts.DuplicateContract",
Self::TerminatedInConstructor => "Contracts.TerminatedInConstructor",
Self::DebugMessageInvalidUTF8 => "Contracts.DebugMessageInvalidUTF8",
Self::ReentranceDenied => "Contracts.ReentranceDenied",
Self::StorageDepositNotEnoughFunds => "Contracts.StorageDepositNotEnoughFunds",
Self::StorageDepositLimitExhausted => "Contracts.StorageDepositLimitExhausted",
Self::CodeInUse => "Contracts.CodeInUse",
Self::ContractReverted => "Contracts.ContractReverted",
Self::CodeRejected => "Contracts.CodeRejected",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: InvalidScheduleVersion => { & ["A new schedule must have a greater version than the current one." ,] } , Self :: InvalidCallFlags => { & ["Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." ,] } , Self :: OutOfGas => { & ["The executed contract exhausted its gas limit." ,] } , Self :: OutputBufferTooSmall => { & ["The output buffer supplied to a contract API call was too small." ,] } , Self :: TransferFailed => { & ["Performing the requested transfer failed. Probably because there isn't enough" , "free balance in the sender's account." ,] } , Self :: MaxCallDepthReached => { & ["Performing a call was denied because the calling depth reached the limit" , "of what is specified in the schedule." ,] } , Self :: ContractNotFound => { & ["No contract was found at the specified address." ,] } , Self :: CodeTooLarge => { & ["The code supplied to `instantiate_with_code` exceeds the limit specified in the" , "current schedule." ,] } , Self :: CodeNotFound => { & ["No code could be found at the supplied code hash." ,] } , Self :: OutOfBounds => { & ["A buffer outside of sandbox memory was passed to a contract API function." ,] } , Self :: DecodingFailed => { & ["Input passed to a contract API function failed to decode as expected type." ,] } , Self :: ContractTrapped => { & ["Contract trapped during execution." ,] } , Self :: ValueTooLarge => { & ["The size defined in `T::MaxValueSize` was exceeded." ,] } , Self :: TerminatedWhileReentrant => { & ["Termination of a contract is not allowed while the contract is already" , "on the call stack. Can be triggered by `seal_terminate`." ,] } , Self :: InputForwarded => { & ["`seal_call` forwarded this contracts input. It therefore is no longer available." ,] } , Self :: RandomSubjectTooLong => { & ["The subject passed to `seal_random` exceeds the limit." ,] } , Self :: TooManyTopics => { & ["The amount of topics passed to `seal_deposit_events` exceeds the limit." ,] } , Self :: DuplicateTopics => { & ["The topics passed to `seal_deposit_events` contains at least one duplicate." ,] } , Self :: NoChainExtension => { & ["The chain does not provide a chain extension. Calling the chain extension results" , "in this error. Note that this usually shouldn't happen as deploying such contracts" , "is rejected." ,] } , Self :: DeletionQueueFull => { & ["Removal of a contract failed because the deletion queue is full." , "" , "This can happen when calling `seal_terminate`." , "The queue is filled by deleting contracts and emptied by a fixed amount each block." , "Trying again during another block is the only way to resolve this issue." ,] } , Self :: DuplicateContract => { & ["A contract with the same AccountId already exists." ,] } , Self :: TerminatedInConstructor => { & ["A contract self destructed in its constructor." , "" , "This can be triggered by a call to `seal_terminate`." ,] } , Self :: DebugMessageInvalidUTF8 => { & ["The debug message specified to `seal_debug_message` does contain invalid UTF-8." ,] } , Self :: ReentranceDenied => { & ["A call tried to invoke a contract that is flagged as non-reentrant." ,] } , Self :: StorageDepositNotEnoughFunds => { & ["Origin doesn't have enough balance to pay the required storage deposits." ,] } , Self :: StorageDepositLimitExhausted => { & ["More storage was created than allowed by the storage deposit limit." ,] } , Self :: CodeInUse => { & ["Code removal was denied because the code is still in use by at least one contract." ,] } , Self :: ContractReverted => { & ["The contract ran to completion but decided to revert its storage changes." , "Please note that this error is only returned from extrinsics. When called directly" , "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags" , "to determine whether a reversion has taken place." ,] } , Self :: CodeRejected => { & ["The contract's code was found to be invalid during validation or instrumentation." , "A more detailed error can be found on the node console if debug messages are enabled" , "or in the debug buffer which is returned to RPC clients." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "Contract deployed by address at the specified address."]
#[codec(index = 0u8)]
Instantiated {
deployer: ::polymesh_api_client::AccountId,
contract: ::polymesh_api_client::AccountId,
},
#[doc = "Contract has been removed."]
#[doc = ""]
#[doc = "# Note"]
#[doc = ""]
#[doc = "The only way for a contract to be removed and emitting this event is by calling"]
#[doc = "`seal_terminate`."]
#[codec(index = 1u8)]
Terminated {
#[doc = "The contract that was terminated."]
contract: ::polymesh_api_client::AccountId,
#[doc = "The account that received the contracts remaining balance"]
beneficiary: ::polymesh_api_client::AccountId,
},
#[doc = "Code with the specified hash has been stored."]
#[codec(index = 2u8)]
CodeStored { code_hash: primitive_types::H256 },
#[doc = "A custom event emitted by the contract."]
#[codec(index = 3u8)]
ContractEmitted {
#[doc = "The contract that emitted the event."]
contract: ::polymesh_api_client::AccountId,
#[doc = "Data supplied by the contract. Metadata generated during contract compilation"]
#[doc = "is needed to decode it."]
data: Vec<u8>,
},
#[doc = "A code with the specified hash was removed."]
#[codec(index = 4u8)]
CodeRemoved { code_hash: primitive_types::H256 },
#[doc = "A contract's code was updated."]
#[codec(index = 5u8)]
ContractCodeUpdated {
#[doc = "The contract that has been updated."]
contract: ::polymesh_api_client::AccountId,
#[doc = "New code hash that was set for the contract."]
new_code_hash: primitive_types::H256,
#[doc = "Previous code hash of the contract."]
old_code_hash: primitive_types::H256,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Instantiated { .. } => "Contracts.Instantiated",
Self::Terminated { .. } => "Contracts.Terminated",
Self::CodeStored { .. } => "Contracts.CodeStored",
Self::ContractEmitted { .. } => "Contracts.ContractEmitted",
Self::CodeRemoved { .. } => "Contracts.CodeRemoved",
Self::ContractCodeUpdated { .. } => "Contracts.ContractCodeUpdated",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Instantiated { .. } => {
&["Contract deployed by address at the specified address."]
}
Self::Terminated { .. } => &[
"Contract has been removed.",
"",
"# Note",
"",
"The only way for a contract to be removed and emitting this event is by calling",
"`seal_terminate`.",
],
Self::CodeStored { .. } => &["Code with the specified hash has been stored."],
Self::ContractEmitted { .. } => &["A custom event emitted by the contract."],
Self::CodeRemoved { .. } => &["A code with the specified hash was removed."],
Self::ContractCodeUpdated { .. } => &["A contract's code was updated."],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Makes a call to an account, optionally transferring some balance."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = ""]
#[doc = "* `dest`: Address of the contract to call."]
#[doc = "* `value`: The balance to transfer from the `origin` to `dest`."]
#[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."]
#[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the"]
#[doc = " caller to pay for the storage consumed."]
#[doc = "* `data`: The input data to pass to the contract."]
#[doc = ""]
#[doc = "* If the account is a smart-contract account, the associated code will be"]
#[doc = "executed and any value will be transferred."]
#[doc = "* If the account is a regular account, any value will be transferred."]
#[doc = "* If no account exists and the call value is not less than `existential_deposit`,"]
#[doc = "a regular account will be created and any value will be transferred."]
#[codec(index = 0u8)]
call {
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
value: u128,
#[codec(compact)]
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
data: Vec<u8>,
},
#[doc = "Instantiates a new contract from the supplied `code` optionally transferring"]
#[doc = "some balance."]
#[doc = ""]
#[doc = "This dispatchable has the same effect as calling [`Self::upload_code`] +"]
#[doc = "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please"]
#[doc = "also check the documentation of [`Self::upload_code`]."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = ""]
#[doc = "* `value`: The balance to transfer from the `origin` to the newly created contract."]
#[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."]
#[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "* `code`: The contract code to deploy in raw bytes."]
#[doc = "* `data`: The input data to pass to the contract constructor."]
#[doc = "* `salt`: Used for the address derivation. See [`Pallet::contract_address`]."]
#[doc = ""]
#[doc = "Instantiation is executed as follows:"]
#[doc = ""]
#[doc = "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that"]
#[doc = " code."]
#[doc = "- If the `code_hash` already exists on the chain the underlying `code` will be shared."]
#[doc = "- The destination address is computed based on the sender, code_hash and the salt."]
#[doc = "- The smart-contract account is created at the computed address."]
#[doc = "- The `value` is transferred to the new account."]
#[doc = "- The `deploy` function is executed in the context of the newly-created account."]
#[codec(index = 1u8)]
instantiate_with_code {
#[codec(compact)]
value: u128,
#[codec(compact)]
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
code: Vec<u8>,
data: Vec<u8>,
salt: Vec<u8>,
},
#[doc = "Instantiates a contract from a previously deployed wasm binary."]
#[doc = ""]
#[doc = "This function is identical to [`Self::instantiate_with_code`] but without the"]
#[doc = "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary"]
#[doc = "must be supplied."]
#[codec(index = 2u8)]
instantiate {
#[codec(compact)]
value: u128,
#[codec(compact)]
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
code_hash: primitive_types::H256,
data: Vec<u8>,
salt: Vec<u8>,
},
#[doc = "Upload new `code` without instantiating a contract from it."]
#[doc = ""]
#[doc = "If the code does not already exist a deposit is reserved from the caller"]
#[doc = "and unreserved only when [`Self::remove_code`] is called. The size of the reserve"]
#[doc = "depends on the instrumented size of the the supplied `code`."]
#[doc = ""]
#[doc = "If the code already exists in storage it will still return `Ok` and upgrades"]
#[doc = "the in storage version to the current"]
#[doc = "[`InstructionWeights::version`](InstructionWeights)."]
#[doc = ""]
#[doc = "# Note"]
#[doc = ""]
#[doc = "Anyone can instantiate a contract from any uploaded code and thus prevent its removal."]
#[doc = "To avoid this situation a constructor could employ access control so that it can"]
#[doc = "only be instantiated by permissioned entities. The same is true when uploading"]
#[doc = "through [`Self::instantiate_with_code`]."]
#[codec(index = 3u8)]
upload_code {
code: Vec<u8>,
storage_deposit_limit: Option<::codec::Compact<u128>>,
},
#[doc = "Remove the code stored under `code_hash` and refund the deposit to its owner."]
#[doc = ""]
#[doc = "A code can only be removed by its original uploader (its owner) and only if it is"]
#[doc = "not used by any contract."]
#[codec(index = 4u8)]
remove_code { code_hash: primitive_types::H256 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::call { .. } => "Contracts.call",
Self::instantiate_with_code { .. } => "Contracts.instantiate_with_code",
Self::instantiate { .. } => "Contracts.instantiate",
Self::upload_code { .. } => "Contracts.upload_code",
Self::remove_code { .. } => "Contracts.remove_code",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: call { .. } => { & ["Makes a call to an account, optionally transferring some balance." , "" , "# Parameters" , "" , "* `dest`: Address of the contract to call." , "* `value`: The balance to transfer from the `origin` to `dest`." , "* `gas_limit`: The gas limit enforced when executing the constructor." , "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the" , " caller to pay for the storage consumed." , "* `data`: The input data to pass to the contract." , "" , "* If the account is a smart-contract account, the associated code will be" , "executed and any value will be transferred." , "* If the account is a regular account, any value will be transferred." , "* If no account exists and the call value is not less than `existential_deposit`," , "a regular account will be created and any value will be transferred." ,] } , Self :: instantiate_with_code { .. } => { & ["Instantiates a new contract from the supplied `code` optionally transferring" , "some balance." , "" , "This dispatchable has the same effect as calling [`Self::upload_code`] +" , "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please" , "also check the documentation of [`Self::upload_code`]." , "" , "# Parameters" , "" , "* `value`: The balance to transfer from the `origin` to the newly created contract." , "* `gas_limit`: The gas limit enforced when executing the constructor." , "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved" , " from the caller to pay for the storage consumed." , "* `code`: The contract code to deploy in raw bytes." , "* `data`: The input data to pass to the contract constructor." , "* `salt`: Used for the address derivation. See [`Pallet::contract_address`]." , "" , "Instantiation is executed as follows:" , "" , "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that" , " code." , "- If the `code_hash` already exists on the chain the underlying `code` will be shared." , "- The destination address is computed based on the sender, code_hash and the salt." , "- The smart-contract account is created at the computed address." , "- The `value` is transferred to the new account." , "- The `deploy` function is executed in the context of the newly-created account." ,] } , Self :: instantiate { .. } => { & ["Instantiates a contract from a previously deployed wasm binary." , "" , "This function is identical to [`Self::instantiate_with_code`] but without the" , "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary" , "must be supplied." ,] } , Self :: upload_code { .. } => { & ["Upload new `code` without instantiating a contract from it." , "" , "If the code does not already exist a deposit is reserved from the caller" , "and unreserved only when [`Self::remove_code`] is called. The size of the reserve" , "depends on the instrumented size of the the supplied `code`." , "" , "If the code already exists in storage it will still return `Ok` and upgrades" , "the in storage version to the current" , "[`InstructionWeights::version`](InstructionWeights)." , "" , "# Note" , "" , "Anyone can instantiate a contract from any uploaded code and thus prevent its removal." , "To avoid this situation a constructor could employ access control so that it can" , "only be instantiated by permissioned entities. The same is true when uploading" , "through [`Self::instantiate_with_code`]." ,] } , Self :: remove_code { .. } => { & ["Remove the code stored under `code_hash` and refund the deposit to its owner." , "" , "A code can only be removed by its original uploader (its owner) and only if it is" , "not used by any contract." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod schedule {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Schedule {
pub limits: pallet_contracts::schedule::Limits,
pub instruction_weights: pallet_contracts::schedule::InstructionWeights,
pub host_fn_weights: pallet_contracts::schedule::HostFnWeights,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct InstructionWeights {
pub version: u32,
pub i64const: u32,
pub i64load: u32,
pub i64store: u32,
pub select: u32,
pub r#if: u32,
pub br: u32,
pub br_if: u32,
pub br_table: u32,
pub br_table_per_entry: u32,
pub call: u32,
pub call_indirect: u32,
pub call_indirect_per_param: u32,
pub local_get: u32,
pub local_set: u32,
pub local_tee: u32,
pub global_get: u32,
pub global_set: u32,
pub memory_current: u32,
pub memory_grow: u32,
pub i64clz: u32,
pub i64ctz: u32,
pub i64popcnt: u32,
pub i64eqz: u32,
pub i64extendsi32: u32,
pub i64extendui32: u32,
pub i32wrapi64: u32,
pub i64eq: u32,
pub i64ne: u32,
pub i64lts: u32,
pub i64ltu: u32,
pub i64gts: u32,
pub i64gtu: u32,
pub i64les: u32,
pub i64leu: u32,
pub i64ges: u32,
pub i64geu: u32,
pub i64add: u32,
pub i64sub: u32,
pub i64mul: u32,
pub i64divs: u32,
pub i64divu: u32,
pub i64rems: u32,
pub i64remu: u32,
pub i64and: u32,
pub i64or: u32,
pub i64xor: u32,
pub i64shl: u32,
pub i64shrs: u32,
pub i64shru: u32,
pub i64rotl: u32,
pub i64rotr: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct HostFnWeights {
pub caller: u64,
pub is_contract: u64,
pub code_hash: u64,
pub own_code_hash: u64,
pub caller_is_origin: u64,
pub address: u64,
pub gas_left: u64,
pub balance: u64,
pub value_transferred: u64,
pub minimum_balance: u64,
pub block_number: u64,
pub now: u64,
pub weight_to_fee: u64,
pub gas: u64,
pub input: u64,
pub input_per_byte: u64,
pub r#return: u64,
pub return_per_byte: u64,
pub terminate: u64,
pub random: u64,
pub deposit_event: u64,
pub deposit_event_per_topic: u64,
pub deposit_event_per_byte: u64,
pub debug_message: u64,
pub set_storage: u64,
pub set_storage_per_new_byte: u64,
pub set_storage_per_old_byte: u64,
pub set_code_hash: u64,
pub clear_storage: u64,
pub clear_storage_per_byte: u64,
pub contains_storage: u64,
pub contains_storage_per_byte: u64,
pub get_storage: u64,
pub get_storage_per_byte: u64,
pub take_storage: u64,
pub take_storage_per_byte: u64,
pub transfer: u64,
pub call: u64,
pub delegate_call: u64,
pub call_transfer_surcharge: u64,
pub call_per_cloned_byte: u64,
pub instantiate: u64,
pub instantiate_transfer_surcharge: u64,
pub instantiate_per_salt_byte: u64,
pub hash_sha2_256: u64,
pub hash_sha2_256_per_byte: u64,
pub hash_keccak_256: u64,
pub hash_keccak_256_per_byte: u64,
pub hash_blake2_256: u64,
pub hash_blake2_256_per_byte: u64,
pub hash_blake2_128: u64,
pub hash_blake2_128_per_byte: u64,
pub ecdsa_recover: u64,
pub ecdsa_to_eth_address: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Limits {
pub event_topics: u32,
pub stack_height: Option<u32>,
pub globals: u32,
pub parameters: u32,
pub memory_pages: u32,
pub table_size: u32,
pub br_table_size: u32,
pub subject_len: u32,
pub call_depth: u32,
pub payload_len: u32,
pub code_len: u32,
}
}
pub mod storage {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct RawContractInfo<CodeHash, Balance> {
pub trie_id: Vec<u8>,
pub code_hash: CodeHash,
pub storage_deposit: Balance,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DeletedContract {
pub trie_id: Vec<u8>,
}
}
pub mod wasm {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct OwnerInfo {
pub owner: ::polymesh_api_client::AccountId,
#[codec(compact)]
pub deposit: u128,
#[codec(compact)]
pub refcount: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PrefabWasmModule {
#[codec(compact)]
pub instruction_weights_version: u32,
#[codec(compact)]
pub initial: u32,
#[codec(compact)]
pub maximum: u32,
pub code: Vec<u8>,
}
}
}
pub mod pallet_asset {
use super::*;
pub mod checkpoint {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Creates a single checkpoint at the current time."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "- `ticker` to create the checkpoint for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `CounterOverflow` if the total checkpoint counter would overflow."]
#[codec(index = 0u8)]
create_checkpoint {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Sets the max complexity of a schedule set for an arbitrary ticker to `max_complexity`."]
#[doc = "The new maximum is not enforced retroactively,"]
#[doc = "and only applies once new schedules are made."]
#[doc = ""]
#[doc = "Must be called as a PIP (requires \"root\")."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is the root origin."]
#[doc = "- `max_complexity` allowed for an arbitrary ticker's schedule set."]
#[codec(index = 1u8)]
set_schedules_max_complexity { max_complexity: u64 },
#[doc = "Creates a schedule generating checkpoints"]
#[doc = "in the future at either a fixed time or at intervals."]
#[doc = ""]
#[doc = "The schedule starts out with `strong_ref_count(schedule_id) <- 0`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as owner of `ticker`."]
#[doc = "- `ticker` to create the schedule for."]
#[doc = "- `schedule` that will generate checkpoints."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `ScheduleDurationTooShort` if the schedule duration is too short."]
#[doc = "- `InsufficientAccountBalance` if the protocol fee could not be charged."]
#[doc = "- `CounterOverflow` if the schedule ID or total checkpoint counters would overflow."]
#[doc = "- `FailedToComputeNextCheckpoint` if the next checkpoint for `schedule` is in the past."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 2u8)]
create_schedule {
ticker: polymesh_primitives::ticker::Ticker,
schedule: pallet_asset::checkpoint::ScheduleSpec,
},
#[doc = "Removes the checkpoint schedule of an asset identified by `id`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as owner of `ticker`."]
#[doc = "- `ticker` to remove the schedule from."]
#[doc = "- `id` of the schedule, when it was created by `created_schedule`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `NoCheckpointSchedule` if `id` does not identify a schedule for this `ticker`."]
#[doc = "- `ScheduleNotRemovable` if `id` exists but is not removable."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 3u8)]
remove_schedule {
ticker: polymesh_primitives::ticker::Ticker,
id: polymesh_common_utilities::traits::checkpoint::ScheduleId,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::create_checkpoint { .. } => "Checkpoint.create_checkpoint",
Self::set_schedules_max_complexity { .. } => "Checkpoint.set_schedules_max_complexity",
Self::create_schedule { .. } => "Checkpoint.create_schedule",
Self::remove_schedule { .. } => "Checkpoint.remove_schedule",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: create_checkpoint { .. } => { & ["Creates a single checkpoint at the current time." , "" , "# Arguments" , "- `origin` is a signer that has permissions to act as an agent of `ticker`." , "- `ticker` to create the checkpoint for." , "" , "# Errors" , "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`." , "- `CounterOverflow` if the total checkpoint counter would overflow." ,] } , Self :: set_schedules_max_complexity { .. } => { & ["Sets the max complexity of a schedule set for an arbitrary ticker to `max_complexity`." , "The new maximum is not enforced retroactively," , "and only applies once new schedules are made." , "" , "Must be called as a PIP (requires \"root\")." , "" , "# Arguments" , "- `origin` is the root origin." , "- `max_complexity` allowed for an arbitrary ticker's schedule set." ,] } , Self :: create_schedule { .. } => { & ["Creates a schedule generating checkpoints" , "in the future at either a fixed time or at intervals." , "" , "The schedule starts out with `strong_ref_count(schedule_id) <- 0`." , "" , "# Arguments" , "- `origin` is a signer that has permissions to act as owner of `ticker`." , "- `ticker` to create the schedule for." , "- `schedule` that will generate checkpoints." , "" , "# Errors" , "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`." , "- `ScheduleDurationTooShort` if the schedule duration is too short." , "- `InsufficientAccountBalance` if the protocol fee could not be charged." , "- `CounterOverflow` if the schedule ID or total checkpoint counters would overflow." , "- `FailedToComputeNextCheckpoint` if the next checkpoint for `schedule` is in the past." , "" , "# Permissions" , "* Asset" ,] } , Self :: remove_schedule { .. } => { & ["Removes the checkpoint schedule of an asset identified by `id`." , "" , "# Arguments" , "- `origin` is a signer that has permissions to act as owner of `ticker`." , "- `ticker` to remove the schedule from." , "- `id` of the schedule, when it was created by `created_schedule`." , "" , "# Errors" , "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`." , "- `NoCheckpointSchedule` if `id` does not identify a schedule for this `ticker`." , "- `ScheduleNotRemovable` if `id` exists but is not removable." , "" , "# Permissions" , "* Asset" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ScheduleSpec {
pub start: Option<u64>,
pub period: polymesh_primitives::calendar::CalendarPeriod,
pub remaining: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "A checkpoint schedule does not exist for the asset."]
#[codec(index = 0u8)]
NoSuchSchedule,
#[doc = "A checkpoint schedule is not removable as `ref_count(schedule_id) > 0`."]
#[codec(index = 1u8)]
ScheduleNotRemovable,
#[doc = "Failed to compute the next checkpoint."]
#[doc = "The schedule does not have any upcoming checkpoints."]
#[codec(index = 2u8)]
FailedToComputeNextCheckpoint,
#[doc = "The duration of a schedule period is too short."]
#[codec(index = 3u8)]
ScheduleDurationTooShort,
#[doc = "The set of schedules taken together are too complex."]
#[doc = "For example, they are too many, or they occurs too frequently."]
#[codec(index = 4u8)]
SchedulesTooComplex,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NoSuchSchedule => "Checkpoint.NoSuchSchedule",
Self::ScheduleNotRemovable => "Checkpoint.ScheduleNotRemovable",
Self::FailedToComputeNextCheckpoint => "Checkpoint.FailedToComputeNextCheckpoint",
Self::ScheduleDurationTooShort => "Checkpoint.ScheduleDurationTooShort",
Self::SchedulesTooComplex => "Checkpoint.SchedulesTooComplex",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::NoSuchSchedule => &["A checkpoint schedule does not exist for the asset."],
Self::ScheduleNotRemovable => {
&["A checkpoint schedule is not removable as `ref_count(schedule_id) > 0`."]
}
Self::FailedToComputeNextCheckpoint => &[
"Failed to compute the next checkpoint.",
"The schedule does not have any upcoming checkpoints.",
],
Self::ScheduleDurationTooShort => &["The duration of a schedule period is too short."],
Self::SchedulesTooComplex => &[
"The set of schedules taken together are too complex.",
"For example, they are too many, or they occurs too frequently.",
],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum AssetOwnershipRelation {
#[codec(index = 0u8)]
NotOwned,
#[codec(index = 1u8)]
TickerOwned,
#[codec(index = 2u8)]
AssetOwned,
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Registers a new ticker or extends validity of an existing ticker."]
#[doc = "NB: Ticker validity does not get carry forward when renewing ticker."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `ticker` ticker to register."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 0u8)]
register_ticker {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Accepts a ticker transfer."]
#[doc = ""]
#[doc = "Consumes the authorization `auth_id` (see `pallet_identity::consume_auth`)."]
#[doc = "NB: To reject the transfer, call remove auth function in identity module."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `auth_id` Authorization ID of ticker transfer authorization."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AuthorizationError::BadType` if `auth_id` is not a valid ticket transfer authorization."]
#[doc = ""]
#[codec(index = 1u8)]
accept_ticker_transfer { auth_id: u64 },
#[doc = "This function is used to accept a token ownership transfer."]
#[doc = "NB: To reject the transfer, call remove auth function in identity module."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `auth_id` Authorization ID of the token ownership transfer authorization."]
#[codec(index = 2u8)]
accept_asset_ownership_transfer { auth_id: u64 },
#[doc = "Initializes a new security token, with the initiating account as its owner."]
#[doc = "The total supply will initially be zero. To mint tokens, use `issue`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `name` - the name of the token."]
#[doc = "* `ticker` - the ticker symbol of the token."]
#[doc = "* `divisible` - a boolean to identify the divisibility status of the token."]
#[doc = "* `asset_type` - the asset type."]
#[doc = "* `identifiers` - a vector of asset identifiers."]
#[doc = "* `funding_round` - name of the funding round."]
#[doc = "* `disable_iu` - whether or not investor uniqueness enforcement should be disabled."]
#[doc = " This cannot be changed after creating the asset."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `InvalidAssetIdentifier` if any of `identifiers` are invalid."]
#[doc = "- `MaxLengthOfAssetNameExceeded` if `name`'s length exceeds `T::AssetNameMaxLength`."]
#[doc = "- `FundingRoundNameMaxLengthExceeded` if the name of the funding round is longer that"]
#[doc = "`T::FundingRoundNameMaxLength`."]
#[doc = "- `AssetAlreadyCreated` if asset was already created."]
#[doc = "- `TickerTooLong` if `ticker`'s length is greater than `config.max_ticker_length` chain"]
#[doc = "parameter."]
#[doc = "- `TickerNotAscii` if `ticker` is not yet registered, and contains non-ascii printable characters (from code 32 to 126) or any character after first occurrence of `\\0`."]
#[doc = ""]
#[doc = "## Permissions"]
#[doc = "* Portfolio"]
#[codec(index = 3u8)]
create_asset {
name: polymesh_primitives::asset::AssetName,
ticker: polymesh_primitives::ticker::Ticker,
divisible: bool,
asset_type: polymesh_primitives::asset::AssetType,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
funding_round: Option<polymesh_primitives::asset::FundingRoundName>,
disable_iu: bool,
},
#[doc = "Freezes transfers and minting of a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AlreadyFrozen` if `ticker` is already frozen."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 4u8)]
freeze {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Unfreezes transfers and minting of a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the frozen token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `NotFrozen` if `ticker` is not frozen yet."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 5u8)]
unfreeze {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Renames a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `name` - the new name of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `MaxLengthOfAssetNameExceeded` if length of `name` is greater than"]
#[doc = "`T::AssetNameMaxLength`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 6u8)]
rename_asset {
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset::AssetName,
},
#[doc = "Issue, or mint, new tokens to the caller,"]
#[doc = "which must be an authorized external agent."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` of the token."]
#[doc = "* `amount` of tokens that get issued."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
#[codec(index = 7u8)]
issue {
ticker: polymesh_primitives::ticker::Ticker,
amount: u128,
},
#[doc = "Redeems existing tokens by reducing the balance of the caller's default portfolio and the total supply of the token"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `value` Amount of tokens to redeem."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `Unauthorized` If called by someone without the appropriate external agent permissions"]
#[doc = "- `InvalidGranularity` If the amount is not divisible by 10^6 for non-divisible tokens"]
#[doc = "- `InsufficientPortfolioBalance` If the caller's default portfolio doesn't have enough free balance"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
#[codec(index = 8u8)]
redeem {
ticker: polymesh_primitives::ticker::Ticker,
value: u128,
},
#[doc = "Makes an indivisible token divisible."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AssetAlreadyDivisible` if `ticker` is already divisible."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 9u8)]
make_divisible {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Add documents for a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `docs` Documents to be attached to `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 10u8)]
add_documents {
docs: Vec<polymesh_primitives::document::Document>,
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Remove documents for a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `ids` Documents ids to be removed from `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 11u8)]
remove_documents {
ids: Vec<polymesh_primitives::document::DocumentId>,
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Sets the name of the current funding round."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `name` - the desired name of the current funding round."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `FundingRoundNameMaxLengthExceeded` if length of `name` is greater than"]
#[doc = "`T::FundingRoundNameMaxLength`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 12u8)]
set_funding_round {
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset::FundingRoundName,
},
#[doc = "Updates the asset identifiers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `identifiers` - the asset identifiers to be updated in the form of a vector of pairs"]
#[doc = " of `IdentifierType` and `AssetIdentifier` value."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `InvalidAssetIdentifier` if `identifiers` contains any invalid identifier."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 13u8)]
update_identifiers {
ticker: polymesh_primitives::ticker::Ticker,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
},
#[doc = "Claim a systematically reserved Polymath Classic (PMC) `ticker`"]
#[doc = "and transfer it to the `origin`'s identity."]
#[doc = ""]
#[doc = "To verify that the `origin` is in control of the Ethereum account on the books,"]
#[doc = "an `ethereum_signature` containing the `origin`'s DID as the message"]
#[doc = "must be provided by that Ethereum account."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchClassicTicker` if this is not a systematically reserved PMC ticker."]
#[doc = "- `TickerAlreadyRegistered` if the ticker was already registered, e.g., by `origin`."]
#[doc = "- `TickerRegistrationExpired` if the ticker's registration has expired."]
#[doc = "- `BadOrigin` if not signed."]
#[doc = "- `InvalidEthereumSignature` if the `ethereum_signature` is not valid."]
#[doc = "- `NotAnOwner` if the ethereum account is not the owner of the PMC ticker."]
#[codec(index = 14u8)]
claim_classic_ticker {
ticker: polymesh_primitives::ticker::Ticker,
ethereum_signature: polymesh_primitives::ethereum::EcdsaSignature,
},
#[doc = "Reserve a Polymath Classic (PMC) ticker."]
#[doc = "Must be called by root, and assigns the ticker to a systematic DID."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` which must be root."]
#[doc = "* `classic_ticker_import` specification for the PMC ticker."]
#[doc = "* `contract_did` to reserve the ticker to if `classic_ticker_import.is_contract` holds."]
#[doc = "* `config` to use for expiry and ticker length."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetAlreadyCreated` if `classic_ticker_import.ticker` was created as an asset."]
#[doc = "* `TickerTooLong` if the `config` considers the `classic_ticker_import.ticker` too long."]
#[doc = "* `TickerAlreadyRegistered` if `classic_ticker_import.ticker` was already registered."]
#[codec(index = 15u8)]
reserve_classic_ticker {
classic_ticker_import: pallet_asset::ClassicTickerImport,
contract_did: polymesh_primitives::identity_id::IdentityId,
config: pallet_asset::TickerRegistrationConfig<u64>,
},
#[doc = "Forces a transfer of token from `from_portfolio` to the caller's default portfolio."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` Must be an external agent with appropriate permissions for a given ticker."]
#[doc = "* `ticker` Ticker symbol of the asset."]
#[doc = "* `value` Amount of tokens need to force transfer."]
#[doc = "* `from_portfolio` From whom portfolio tokens gets transferred."]
#[codec(index = 16u8)]
controller_transfer {
ticker: polymesh_primitives::ticker::Ticker,
value: u128,
from_portfolio: polymesh_primitives::identity_id::PortfolioId,
},
#[doc = "Registers a custom asset type."]
#[doc = ""]
#[doc = "The provided `ty` will be bound to an ID in storage."]
#[doc = "The ID can then be used in `AssetType::Custom`."]
#[doc = "Should the `ty` already exist in storage, no second ID is assigned to it."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` who called the extrinsic."]
#[doc = "* `ty` contains the string representation of the asset type."]
#[codec(index = 17u8)]
register_custom_asset_type { ty: Vec<u8> },
#[doc = "Utility extrinsic to batch `create_asset` and `register_custom_asset_type`."]
#[codec(index = 18u8)]
create_asset_with_custom_type {
name: polymesh_primitives::asset::AssetName,
ticker: polymesh_primitives::ticker::Ticker,
divisible: bool,
custom_asset_type: Vec<u8>,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
funding_round: Option<polymesh_primitives::asset::FundingRoundName>,
disable_iu: bool,
},
#[doc = "Set asset metadata value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `key` Metadata key."]
#[doc = "* `value` Metadata value."]
#[doc = "* `details` Optional Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist."]
#[doc = "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked."]
#[doc = "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
#[codec(index = 19u8)]
set_asset_metadata {
ticker: polymesh_primitives::ticker::Ticker,
key: polymesh_primitives::asset_metadata::AssetMetadataKey,
value: polymesh_primitives::asset_metadata::AssetMetadataValue,
detail: Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>>,
},
#[doc = "Set asset metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `key` Metadata key."]
#[doc = "* `details` Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist."]
#[doc = "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
#[codec(index = 20u8)]
set_asset_metadata_details {
ticker: polymesh_primitives::ticker::Ticker,
key: polymesh_primitives::asset_metadata::AssetMetadataKey,
detail: polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>,
},
#[doc = "Registers and set local asset metadata."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = "* `value` Metadata value."]
#[doc = "* `details` Optional Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
#[doc = "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
#[codec(index = 21u8)]
register_and_set_local_asset_metadata {
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
value: polymesh_primitives::asset_metadata::AssetMetadataValue,
detail: Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>>,
},
#[doc = "Registers asset metadata local type."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
#[codec(index = 22u8)]
register_asset_metadata_local_type {
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
},
#[doc = "Registers asset metadata global type."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataGlobalKeyAlreadyExists` if a globa metadata type with `name` already exists."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
#[codec(index = 23u8)]
register_asset_metadata_global_type {
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::register_ticker { .. } => "Asset.register_ticker",
Self::accept_ticker_transfer { .. } => "Asset.accept_ticker_transfer",
Self::accept_asset_ownership_transfer { .. } => "Asset.accept_asset_ownership_transfer",
Self::create_asset { .. } => "Asset.create_asset",
Self::freeze { .. } => "Asset.freeze",
Self::unfreeze { .. } => "Asset.unfreeze",
Self::rename_asset { .. } => "Asset.rename_asset",
Self::issue { .. } => "Asset.issue",
Self::redeem { .. } => "Asset.redeem",
Self::make_divisible { .. } => "Asset.make_divisible",
Self::add_documents { .. } => "Asset.add_documents",
Self::remove_documents { .. } => "Asset.remove_documents",
Self::set_funding_round { .. } => "Asset.set_funding_round",
Self::update_identifiers { .. } => "Asset.update_identifiers",
Self::claim_classic_ticker { .. } => "Asset.claim_classic_ticker",
Self::reserve_classic_ticker { .. } => "Asset.reserve_classic_ticker",
Self::controller_transfer { .. } => "Asset.controller_transfer",
Self::register_custom_asset_type { .. } => "Asset.register_custom_asset_type",
Self::create_asset_with_custom_type { .. } => "Asset.create_asset_with_custom_type",
Self::set_asset_metadata { .. } => "Asset.set_asset_metadata",
Self::set_asset_metadata_details { .. } => "Asset.set_asset_metadata_details",
Self::register_and_set_local_asset_metadata { .. } => {
"Asset.register_and_set_local_asset_metadata"
}
Self::register_asset_metadata_local_type { .. } => {
"Asset.register_asset_metadata_local_type"
}
Self::register_asset_metadata_global_type { .. } => {
"Asset.register_asset_metadata_global_type"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: register_ticker { .. } => { & ["Registers a new ticker or extends validity of an existing ticker." , "NB: Ticker validity does not get carry forward when renewing ticker." , "" , "# Arguments" , "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)." , "* `ticker` ticker to register." , "" , "# Permissions" , "* Asset" ,] } , Self :: accept_ticker_transfer { .. } => { & ["Accepts a ticker transfer." , "" , "Consumes the authorization `auth_id` (see `pallet_identity::consume_auth`)." , "NB: To reject the transfer, call remove auth function in identity module." , "" , "# Arguments" , "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)." , "* `auth_id` Authorization ID of ticker transfer authorization." , "" , "## Errors" , "- `AuthorizationError::BadType` if `auth_id` is not a valid ticket transfer authorization." , "" ,] } , Self :: accept_asset_ownership_transfer { .. } => { & ["This function is used to accept a token ownership transfer." , "NB: To reject the transfer, call remove auth function in identity module." , "" , "# Arguments" , "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)." , "* `auth_id` Authorization ID of the token ownership transfer authorization." ,] } , Self :: create_asset { .. } => { & ["Initializes a new security token, with the initiating account as its owner." , "The total supply will initially be zero. To mint tokens, use `issue`." , "" , "# Arguments" , "* `origin` - contains the secondary key of the caller (i.e. who signed the transaction to execute this function)." , "* `name` - the name of the token." , "* `ticker` - the ticker symbol of the token." , "* `divisible` - a boolean to identify the divisibility status of the token." , "* `asset_type` - the asset type." , "* `identifiers` - a vector of asset identifiers." , "* `funding_round` - name of the funding round." , "* `disable_iu` - whether or not investor uniqueness enforcement should be disabled." , " This cannot be changed after creating the asset." , "" , "## Errors" , "- `InvalidAssetIdentifier` if any of `identifiers` are invalid." , "- `MaxLengthOfAssetNameExceeded` if `name`'s length exceeds `T::AssetNameMaxLength`." , "- `FundingRoundNameMaxLengthExceeded` if the name of the funding round is longer that" , "`T::FundingRoundNameMaxLength`." , "- `AssetAlreadyCreated` if asset was already created." , "- `TickerTooLong` if `ticker`'s length is greater than `config.max_ticker_length` chain" , "parameter." , "- `TickerNotAscii` if `ticker` is not yet registered, and contains non-ascii printable characters (from code 32 to 126) or any character after first occurrence of `\\0`." , "" , "## Permissions" , "* Portfolio" ,] } , Self :: freeze { .. } => { & ["Freezes transfers and minting of a given token." , "" , "# Arguments" , "* `origin` - the secondary key of the sender." , "* `ticker` - the ticker of the token." , "" , "## Errors" , "- `AlreadyFrozen` if `ticker` is already frozen." , "" , "# Permissions" , "* Asset" ,] } , Self :: unfreeze { .. } => { & ["Unfreezes transfers and minting of a given token." , "" , "# Arguments" , "* `origin` - the secondary key of the sender." , "* `ticker` - the ticker of the frozen token." , "" , "## Errors" , "- `NotFrozen` if `ticker` is not frozen yet." , "" , "# Permissions" , "* Asset" ,] } , Self :: rename_asset { .. } => { & ["Renames a given token." , "" , "# Arguments" , "* `origin` - the secondary key of the sender." , "* `ticker` - the ticker of the token." , "* `name` - the new name of the token." , "" , "## Errors" , "- `MaxLengthOfAssetNameExceeded` if length of `name` is greater than" , "`T::AssetNameMaxLength`." , "" , "# Permissions" , "* Asset" ,] } , Self :: issue { .. } => { & ["Issue, or mint, new tokens to the caller," , "which must be an authorized external agent." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` of the token." , "* `amount` of tokens that get issued." , "" , "# Permissions" , "* Asset" , "* Portfolio" ,] } , Self :: redeem { .. } => { & ["Redeems existing tokens by reducing the balance of the caller's default portfolio and the total supply of the token" , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `value` Amount of tokens to redeem." , "" , "# Errors" , "- `Unauthorized` If called by someone without the appropriate external agent permissions" , "- `InvalidGranularity` If the amount is not divisible by 10^6 for non-divisible tokens" , "- `InsufficientPortfolioBalance` If the caller's default portfolio doesn't have enough free balance" , "" , "# Permissions" , "* Asset" , "* Portfolio" ,] } , Self :: make_divisible { .. } => { & ["Makes an indivisible token divisible." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "" , "## Errors" , "- `AssetAlreadyDivisible` if `ticker` is already divisible." , "" , "# Permissions" , "* Asset" ,] } , Self :: add_documents { .. } => { & ["Add documents for a given token." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `docs` Documents to be attached to `ticker`." , "" , "# Permissions" , "* Asset" ,] } , Self :: remove_documents { .. } => { & ["Remove documents for a given token." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `ids` Documents ids to be removed from `ticker`." , "" , "# Permissions" , "* Asset" ,] } , Self :: set_funding_round { .. } => { & ["Sets the name of the current funding round." , "" , "# Arguments" , "* `origin` - a signer that has permissions to act as an agent of `ticker`." , "* `ticker` - the ticker of the token." , "* `name` - the desired name of the current funding round." , "" , "## Errors" , "- `FundingRoundNameMaxLengthExceeded` if length of `name` is greater than" , "`T::FundingRoundNameMaxLength`." , "" , "# Permissions" , "* Asset" ,] } , Self :: update_identifiers { .. } => { & ["Updates the asset identifiers." , "" , "# Arguments" , "* `origin` - a signer that has permissions to act as an agent of `ticker`." , "* `ticker` - the ticker of the token." , "* `identifiers` - the asset identifiers to be updated in the form of a vector of pairs" , " of `IdentifierType` and `AssetIdentifier` value." , "" , "## Errors" , "- `InvalidAssetIdentifier` if `identifiers` contains any invalid identifier." , "" , "# Permissions" , "* Asset" ,] } , Self :: claim_classic_ticker { .. } => { & ["Claim a systematically reserved Polymath Classic (PMC) `ticker`" , "and transfer it to the `origin`'s identity." , "" , "To verify that the `origin` is in control of the Ethereum account on the books," , "an `ethereum_signature` containing the `origin`'s DID as the message" , "must be provided by that Ethereum account." , "" , "# Errors" , "- `NoSuchClassicTicker` if this is not a systematically reserved PMC ticker." , "- `TickerAlreadyRegistered` if the ticker was already registered, e.g., by `origin`." , "- `TickerRegistrationExpired` if the ticker's registration has expired." , "- `BadOrigin` if not signed." , "- `InvalidEthereumSignature` if the `ethereum_signature` is not valid." , "- `NotAnOwner` if the ethereum account is not the owner of the PMC ticker." ,] } , Self :: reserve_classic_ticker { .. } => { & ["Reserve a Polymath Classic (PMC) ticker." , "Must be called by root, and assigns the ticker to a systematic DID." , "" , "# Arguments" , "* `origin` which must be root." , "* `classic_ticker_import` specification for the PMC ticker." , "* `contract_did` to reserve the ticker to if `classic_ticker_import.is_contract` holds." , "* `config` to use for expiry and ticker length." , "" , "# Errors" , "* `AssetAlreadyCreated` if `classic_ticker_import.ticker` was created as an asset." , "* `TickerTooLong` if the `config` considers the `classic_ticker_import.ticker` too long." , "* `TickerAlreadyRegistered` if `classic_ticker_import.ticker` was already registered." ,] } , Self :: controller_transfer { .. } => { & ["Forces a transfer of token from `from_portfolio` to the caller's default portfolio." , "" , "# Arguments" , "* `origin` Must be an external agent with appropriate permissions for a given ticker." , "* `ticker` Ticker symbol of the asset." , "* `value` Amount of tokens need to force transfer." , "* `from_portfolio` From whom portfolio tokens gets transferred." ,] } , Self :: register_custom_asset_type { .. } => { & ["Registers a custom asset type." , "" , "The provided `ty` will be bound to an ID in storage." , "The ID can then be used in `AssetType::Custom`." , "Should the `ty` already exist in storage, no second ID is assigned to it." , "" , "# Arguments" , "* `origin` who called the extrinsic." , "* `ty` contains the string representation of the asset type." ,] } , Self :: create_asset_with_custom_type { .. } => { & ["Utility extrinsic to batch `create_asset` and `register_custom_asset_type`." ,] } , Self :: set_asset_metadata { .. } => { & ["Set asset metadata value." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `key` Metadata key." , "* `value` Metadata value." , "* `details` Optional Metadata value details (expire, lock status)." , "" , "# Errors" , "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist." , "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked." , "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length." , "" , "# Permissions" , "* Agent" , "* Asset" ,] } , Self :: set_asset_metadata_details { .. } => { & ["Set asset metadata value details (expire, lock status)." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `key` Metadata key." , "* `details` Metadata value details (expire, lock status)." , "" , "# Errors" , "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist." , "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked." , "" , "# Permissions" , "* Agent" , "* Asset" ,] } , Self :: register_and_set_local_asset_metadata { .. } => { & ["Registers and set local asset metadata." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `name` Metadata name." , "* `spec` Metadata type definition." , "* `value` Metadata value." , "* `details` Optional Metadata value details (expire, lock status)." , "" , "# Errors" , "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`." , "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length." , "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length." , "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length." , "" , "# Permissions" , "* Agent" , "* Asset" ,] } , Self :: register_asset_metadata_local_type { .. } => { & ["Registers asset metadata local type." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `ticker` Ticker of the token." , "* `name` Metadata name." , "* `spec` Metadata type definition." , "" , "# Errors" , "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`." , "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length." , "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length." , "" , "# Permissions" , "* Agent" , "* Asset" ,] } , Self :: register_asset_metadata_global_type { .. } => { & ["Registers asset metadata global type." , "" , "# Arguments" , "* `origin` is a signer that has permissions to act as an agent of `ticker`." , "* `name` Metadata name." , "* `spec` Metadata type definition." , "" , "# Errors" , "* `AssetMetadataGlobalKeyAlreadyExists` if a globa metadata type with `name` already exists." , "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length." , "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SecurityToken {
pub total_supply: u128,
pub owner_did: polymesh_primitives::identity_id::IdentityId,
pub divisible: bool,
pub asset_type: polymesh_primitives::asset::AssetType,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The user is not authorized."]
#[codec(index = 0u8)]
Unauthorized,
#[doc = "The token has already been created."]
#[codec(index = 1u8)]
AssetAlreadyCreated,
#[doc = "The ticker length is over the limit."]
#[codec(index = 2u8)]
TickerTooLong,
#[doc = "The ticker has non-ascii-encoded parts."]
#[codec(index = 3u8)]
TickerNotAscii,
#[doc = "The ticker is already registered to someone else."]
#[codec(index = 4u8)]
TickerAlreadyRegistered,
#[doc = "The total supply is above the limit."]
#[codec(index = 5u8)]
TotalSupplyAboveLimit,
#[doc = "No such token."]
#[codec(index = 6u8)]
NoSuchAsset,
#[doc = "The token is already frozen."]
#[codec(index = 7u8)]
AlreadyFrozen,
#[doc = "Not an owner of the token on Ethereum."]
#[codec(index = 8u8)]
NotAnOwner,
#[doc = "An overflow while calculating the balance."]
#[codec(index = 9u8)]
BalanceOverflow,
#[doc = "An overflow while calculating the total supply."]
#[codec(index = 10u8)]
TotalSupplyOverflow,
#[doc = "An invalid granularity."]
#[codec(index = 11u8)]
InvalidGranularity,
#[doc = "The asset must be frozen."]
#[codec(index = 12u8)]
NotFrozen,
#[doc = "Transfer validation check failed."]
#[codec(index = 13u8)]
InvalidTransfer,
#[doc = "The sender balance is not sufficient."]
#[codec(index = 14u8)]
InsufficientBalance,
#[doc = "The token is already divisible."]
#[codec(index = 15u8)]
AssetAlreadyDivisible,
#[doc = "An invalid Ethereum `EcdsaSignature`."]
#[codec(index = 16u8)]
InvalidEthereumSignature,
#[doc = "The given ticker is not a classic one."]
#[codec(index = 17u8)]
NoSuchClassicTicker,
#[doc = "Registration of ticker has expired."]
#[codec(index = 18u8)]
TickerRegistrationExpired,
#[doc = "Transfers to self are not allowed"]
#[codec(index = 19u8)]
SenderSameAsReceiver,
#[doc = "The given Document does not exist."]
#[codec(index = 20u8)]
NoSuchDoc,
#[doc = "Maximum length of asset name has been exceeded."]
#[codec(index = 21u8)]
MaxLengthOfAssetNameExceeded,
#[doc = "Maximum length of the funding round name has been exceeded."]
#[codec(index = 22u8)]
FundingRoundNameMaxLengthExceeded,
#[doc = "Some `AssetIdentifier` was invalid."]
#[codec(index = 23u8)]
InvalidAssetIdentifier,
#[doc = "Investor Uniqueness claims are not allowed for this asset."]
#[codec(index = 24u8)]
InvestorUniquenessClaimNotAllowed,
#[doc = "Invalid `CustomAssetTypeId`."]
#[codec(index = 25u8)]
InvalidCustomAssetTypeId,
#[doc = "Maximum length of the asset metadata type name has been exceeded."]
#[codec(index = 26u8)]
AssetMetadataNameMaxLengthExceeded,
#[doc = "Maximum length of the asset metadata value has been exceeded."]
#[codec(index = 27u8)]
AssetMetadataValueMaxLengthExceeded,
#[doc = "Maximum length of the asset metadata type definition has been exceeded."]
#[codec(index = 28u8)]
AssetMetadataTypeDefMaxLengthExceeded,
#[doc = "Asset Metadata key is missing."]
#[codec(index = 29u8)]
AssetMetadataKeyIsMissing,
#[doc = "Asset Metadata value is locked."]
#[codec(index = 30u8)]
AssetMetadataValueIsLocked,
#[doc = "Asset Metadata Local type already exists for asset."]
#[codec(index = 31u8)]
AssetMetadataLocalKeyAlreadyExists,
#[doc = "Asset Metadata Global type already exists."]
#[codec(index = 32u8)]
AssetMetadataGlobalKeyAlreadyExists,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Unauthorized => "Asset.Unauthorized",
Self::AssetAlreadyCreated => "Asset.AssetAlreadyCreated",
Self::TickerTooLong => "Asset.TickerTooLong",
Self::TickerNotAscii => "Asset.TickerNotAscii",
Self::TickerAlreadyRegistered => "Asset.TickerAlreadyRegistered",
Self::TotalSupplyAboveLimit => "Asset.TotalSupplyAboveLimit",
Self::NoSuchAsset => "Asset.NoSuchAsset",
Self::AlreadyFrozen => "Asset.AlreadyFrozen",
Self::NotAnOwner => "Asset.NotAnOwner",
Self::BalanceOverflow => "Asset.BalanceOverflow",
Self::TotalSupplyOverflow => "Asset.TotalSupplyOverflow",
Self::InvalidGranularity => "Asset.InvalidGranularity",
Self::NotFrozen => "Asset.NotFrozen",
Self::InvalidTransfer => "Asset.InvalidTransfer",
Self::InsufficientBalance => "Asset.InsufficientBalance",
Self::AssetAlreadyDivisible => "Asset.AssetAlreadyDivisible",
Self::InvalidEthereumSignature => "Asset.InvalidEthereumSignature",
Self::NoSuchClassicTicker => "Asset.NoSuchClassicTicker",
Self::TickerRegistrationExpired => "Asset.TickerRegistrationExpired",
Self::SenderSameAsReceiver => "Asset.SenderSameAsReceiver",
Self::NoSuchDoc => "Asset.NoSuchDoc",
Self::MaxLengthOfAssetNameExceeded => "Asset.MaxLengthOfAssetNameExceeded",
Self::FundingRoundNameMaxLengthExceeded => "Asset.FundingRoundNameMaxLengthExceeded",
Self::InvalidAssetIdentifier => "Asset.InvalidAssetIdentifier",
Self::InvestorUniquenessClaimNotAllowed => "Asset.InvestorUniquenessClaimNotAllowed",
Self::InvalidCustomAssetTypeId => "Asset.InvalidCustomAssetTypeId",
Self::AssetMetadataNameMaxLengthExceeded => "Asset.AssetMetadataNameMaxLengthExceeded",
Self::AssetMetadataValueMaxLengthExceeded => "Asset.AssetMetadataValueMaxLengthExceeded",
Self::AssetMetadataTypeDefMaxLengthExceeded => {
"Asset.AssetMetadataTypeDefMaxLengthExceeded"
}
Self::AssetMetadataKeyIsMissing => "Asset.AssetMetadataKeyIsMissing",
Self::AssetMetadataValueIsLocked => "Asset.AssetMetadataValueIsLocked",
Self::AssetMetadataLocalKeyAlreadyExists => "Asset.AssetMetadataLocalKeyAlreadyExists",
Self::AssetMetadataGlobalKeyAlreadyExists => "Asset.AssetMetadataGlobalKeyAlreadyExists",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Unauthorized => &["The user is not authorized."],
Self::AssetAlreadyCreated => &["The token has already been created."],
Self::TickerTooLong => &["The ticker length is over the limit."],
Self::TickerNotAscii => &["The ticker has non-ascii-encoded parts."],
Self::TickerAlreadyRegistered => &["The ticker is already registered to someone else."],
Self::TotalSupplyAboveLimit => &["The total supply is above the limit."],
Self::NoSuchAsset => &["No such token."],
Self::AlreadyFrozen => &["The token is already frozen."],
Self::NotAnOwner => &["Not an owner of the token on Ethereum."],
Self::BalanceOverflow => &["An overflow while calculating the balance."],
Self::TotalSupplyOverflow => &["An overflow while calculating the total supply."],
Self::InvalidGranularity => &["An invalid granularity."],
Self::NotFrozen => &["The asset must be frozen."],
Self::InvalidTransfer => &["Transfer validation check failed."],
Self::InsufficientBalance => &["The sender balance is not sufficient."],
Self::AssetAlreadyDivisible => &["The token is already divisible."],
Self::InvalidEthereumSignature => &["An invalid Ethereum `EcdsaSignature`."],
Self::NoSuchClassicTicker => &["The given ticker is not a classic one."],
Self::TickerRegistrationExpired => &["Registration of ticker has expired."],
Self::SenderSameAsReceiver => &["Transfers to self are not allowed"],
Self::NoSuchDoc => &["The given Document does not exist."],
Self::MaxLengthOfAssetNameExceeded => {
&["Maximum length of asset name has been exceeded."]
}
Self::FundingRoundNameMaxLengthExceeded => {
&["Maximum length of the funding round name has been exceeded."]
}
Self::InvalidAssetIdentifier => &["Some `AssetIdentifier` was invalid."],
Self::InvestorUniquenessClaimNotAllowed => {
&["Investor Uniqueness claims are not allowed for this asset."]
}
Self::InvalidCustomAssetTypeId => &["Invalid `CustomAssetTypeId`."],
Self::AssetMetadataNameMaxLengthExceeded => {
&["Maximum length of the asset metadata type name has been exceeded."]
}
Self::AssetMetadataValueMaxLengthExceeded => {
&["Maximum length of the asset metadata value has been exceeded."]
}
Self::AssetMetadataTypeDefMaxLengthExceeded => {
&["Maximum length of the asset metadata type definition has been exceeded."]
}
Self::AssetMetadataKeyIsMissing => &["Asset Metadata key is missing."],
Self::AssetMetadataValueIsLocked => &["Asset Metadata value is locked."],
Self::AssetMetadataLocalKeyAlreadyExists => {
&["Asset Metadata Local type already exists for asset."]
}
Self::AssetMetadataGlobalKeyAlreadyExists => {
&["Asset Metadata Global type already exists."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct TickerRegistrationConfig<U> {
pub max_ticker_length: u8,
pub registration_length: Option<U>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ClassicTickerRegistration {
pub eth_owner: polymesh_primitives::ethereum::EthereumAddress,
pub is_created: bool,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ClassicTickerImport {
pub eth_owner: polymesh_primitives::ethereum::EthereumAddress,
pub ticker: polymesh_primitives::ticker::Ticker,
pub is_contract: bool,
pub is_created: bool,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct TickerRegistration<U> {
pub owner: polymesh_primitives::identity_id::IdentityId,
pub expiry: Option<U>,
}
}
pub mod pallet_rewards {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Claim an ITN reward."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "* `itn_address` specifying the awarded address on ITN."]
#[doc = "* `signature` authenticating the claim to the reward."]
#[doc = " The signature should contain `reward_address` followed by the suffix `\"claim_itn_reward\"`,"]
#[doc = " and must have been signed by `itn_address`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `InsufficientBalance` - Itn rewards has insufficient funds to issue the reward."]
#[doc = "* `InvalidSignature` - `signature` had an invalid signer or invalid message."]
#[doc = "* `ItnRewardAlreadyClaimed` - Reward issued to the `itn_address` has already been claimed."]
#[doc = "* `UnknownItnAddress` - `itn_address` is not in the rewards table and has no reward to be claimed."]
#[codec(index = 0u8)]
claim_itn_reward {
reward_address: ::polymesh_api_client::AccountId,
itn_address: ::polymesh_api_client::AccountId,
signature: sp_runtime::MultiSignature,
},
#[codec(index = 1u8)]
set_itn_reward_status {
itn_address: ::polymesh_api_client::AccountId,
status: pallet_rewards::ItnRewardStatus,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::claim_itn_reward { .. } => "Rewards.claim_itn_reward",
Self::set_itn_reward_status { .. } => "Rewards.set_itn_reward_status",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: claim_itn_reward { .. } => { & ["Claim an ITN reward." , "" , "## Arguments" , "* `itn_address` specifying the awarded address on ITN." , "* `signature` authenticating the claim to the reward." , " The signature should contain `reward_address` followed by the suffix `\"claim_itn_reward\"`," , " and must have been signed by `itn_address`." , "" , "# Errors" , "* `InsufficientBalance` - Itn rewards has insufficient funds to issue the reward." , "* `InvalidSignature` - `signature` had an invalid signer or invalid message." , "* `ItnRewardAlreadyClaimed` - Reward issued to the `itn_address` has already been claimed." , "* `UnknownItnAddress` - `itn_address` is not in the rewards table and has no reward to be claimed." ,] } , Self :: set_itn_reward_status { .. } => { & ["" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "Itn reward was claimed."]
#[codec(index = 0u8)]
ItnRewardClaimed(AccountId, u128),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::ItnRewardClaimed(_, _) => "Rewards.ItnRewardClaimed",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::ItnRewardClaimed(_, _) => &["Itn reward was claimed."],
_ => &[""],
}
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ItnRewardStatus {
#[codec(index = 0u8)]
Unclaimed(u128),
#[codec(index = 1u8)]
Claimed,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Address was not found in the list of Itn addresses."]
#[codec(index = 0u8)]
UnknownItnAddress,
#[doc = "Itn reward was already claimed."]
#[codec(index = 1u8)]
ItnRewardAlreadyClaimed,
#[doc = "Provided signature was invalid."]
#[codec(index = 2u8)]
InvalidSignature,
#[doc = "Balance can not be converted to a primitive."]
#[codec(index = 3u8)]
UnableToCovertBalance,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::UnknownItnAddress => "Rewards.UnknownItnAddress",
Self::ItnRewardAlreadyClaimed => "Rewards.ItnRewardAlreadyClaimed",
Self::InvalidSignature => "Rewards.InvalidSignature",
Self::UnableToCovertBalance => "Rewards.UnableToCovertBalance",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::UnknownItnAddress => &["Address was not found in the list of Itn addresses."],
Self::ItnRewardAlreadyClaimed => &["Itn reward was already claimed."],
Self::InvalidSignature => &["Provided signature was invalid."],
Self::UnableToCovertBalance => &["Balance can not be converted to a primitive."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_babe {
use super::*;
pub mod pallet {
use super::*;
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "An equivocation proof provided as part of an equivocation report is invalid."]
#[codec(index = 0u8)]
InvalidEquivocationProof,
#[doc = "A key ownership proof provided as part of an equivocation report is invalid."]
#[codec(index = 1u8)]
InvalidKeyOwnershipProof,
#[doc = "A given equivocation report is valid but already previously reported."]
#[codec(index = 2u8)]
DuplicateOffenceReport,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InvalidEquivocationProof => "Babe.InvalidEquivocationProof",
Self::InvalidKeyOwnershipProof => "Babe.InvalidKeyOwnershipProof",
Self::DuplicateOffenceReport => "Babe.DuplicateOffenceReport",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InvalidEquivocationProof => {
&["An equivocation proof provided as part of an equivocation report is invalid."]
}
Self::InvalidKeyOwnershipProof => {
&["A key ownership proof provided as part of an equivocation report is invalid."]
}
Self::DuplicateOffenceReport => {
&["A given equivocation report is valid but already previously reported."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Report authority equivocation/misbehavior. This method will verify"]
#[doc = "the equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence will"]
#[doc = "be reported."]
#[codec(index = 0u8)]
report_equivocation {
equivocation_proof: ::std::boxed::Box<
sp_consensus_slots::EquivocationProof<
sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>,
sp_consensus_babe::app::Public,
>,
>,
key_owner_proof: sp_session::MembershipProof,
},
#[doc = "Report authority equivocation/misbehavior. This method will verify"]
#[doc = "the equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence will"]
#[doc = "be reported."]
#[doc = "This extrinsic must be called unsigned and it is expected that only"]
#[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
#[doc = "if the block author is defined it will be defined as the equivocation"]
#[doc = "reporter."]
#[codec(index = 1u8)]
report_equivocation_unsigned {
equivocation_proof: ::std::boxed::Box<
sp_consensus_slots::EquivocationProof<
sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>,
sp_consensus_babe::app::Public,
>,
>,
key_owner_proof: sp_session::MembershipProof,
},
#[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"]
#[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."]
#[doc = "Multiple calls to this method will replace any existing planned config change that had"]
#[doc = "not been enacted yet."]
#[codec(index = 2u8)]
plan_config_change {
config: sp_consensus_babe::digests::NextConfigDescriptor,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::report_equivocation { .. } => "Babe.report_equivocation",
Self::report_equivocation_unsigned { .. } => "Babe.report_equivocation_unsigned",
Self::plan_config_change { .. } => "Babe.plan_config_change",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: report_equivocation { .. } => { & ["Report authority equivocation/misbehavior. This method will verify" , "the equivocation proof and validate the given key ownership proof" , "against the extracted offender. If both are valid, the offence will" , "be reported." ,] } , Self :: report_equivocation_unsigned { .. } => { & ["Report authority equivocation/misbehavior. This method will verify" , "the equivocation proof and validate the given key ownership proof" , "against the extracted offender. If both are valid, the offence will" , "be reported." , "This extrinsic must be called unsigned and it is expected that only" , "block authors will call it (validated in `ValidateUnsigned`), as such" , "if the block author is defined it will be defined as the equivocation" , "reporter." ,] } , Self :: plan_config_change { .. } => { & ["Plan an epoch config change. The epoch config change is recorded and will be enacted on" , "the next call to `enact_epoch_change`. The config will be activated one epoch after." , "Multiple calls to this method will replace any existing planned config change that had" , "not been enacted yet." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
}
pub mod sp_session {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct MembershipProof {
pub session: u32,
pub trie_nodes: Vec<Vec<u8>>,
pub validator_count: u32,
}
}
pub mod pallet_scheduler {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Anonymously schedule a task."]
#[codec(index = 0u8)]
schedule {
when: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: ::std::boxed::Box<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
>,
},
#[doc = "Cancel an anonymously scheduled task."]
#[codec(index = 1u8)]
cancel { when: u32, index: u32 },
#[doc = "Schedule a named task."]
#[codec(index = 2u8)]
schedule_named {
id: Vec<u8>,
when: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: ::std::boxed::Box<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
>,
},
#[doc = "Cancel a named scheduled task."]
#[codec(index = 3u8)]
cancel_named { id: Vec<u8> },
#[doc = "Anonymously schedule a task after a delay."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`schedule`]."]
#[doc = "# </weight>"]
#[codec(index = 4u8)]
schedule_after {
after: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: ::std::boxed::Box<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
>,
},
#[doc = "Schedule a named task after a delay."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`schedule_named`](Self::schedule_named)."]
#[doc = "# </weight>"]
#[codec(index = 5u8)]
schedule_named_after {
id: Vec<u8>,
after: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: ::std::boxed::Box<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::schedule { .. } => "Scheduler.schedule",
Self::cancel { .. } => "Scheduler.cancel",
Self::schedule_named { .. } => "Scheduler.schedule_named",
Self::cancel_named { .. } => "Scheduler.cancel_named",
Self::schedule_after { .. } => "Scheduler.schedule_after",
Self::schedule_named_after { .. } => "Scheduler.schedule_named_after",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::schedule { .. } => &["Anonymously schedule a task."],
Self::cancel { .. } => &["Cancel an anonymously scheduled task."],
Self::schedule_named { .. } => &["Schedule a named task."],
Self::cancel_named { .. } => &["Cancel a named scheduled task."],
Self::schedule_after { .. } => &[
"Anonymously schedule a task after a delay.",
"",
"# <weight>",
"Same as [`schedule`].",
"# </weight>",
],
Self::schedule_named_after { .. } => &[
"Schedule a named task after a delay.",
"",
"# <weight>",
"Same as [`schedule_named`](Self::schedule_named).",
"# </weight>",
],
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Failed to schedule a call"]
#[codec(index = 0u8)]
FailedToSchedule,
#[doc = "Cannot find the scheduled call."]
#[codec(index = 1u8)]
NotFound,
#[doc = "Given target block number is in the past."]
#[codec(index = 2u8)]
TargetBlockNumberInPast,
#[doc = "Reschedule failed because it does not change scheduled time."]
#[codec(index = 3u8)]
RescheduleNoChange,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::FailedToSchedule => "Scheduler.FailedToSchedule",
Self::NotFound => "Scheduler.NotFound",
Self::TargetBlockNumberInPast => "Scheduler.TargetBlockNumberInPast",
Self::RescheduleNoChange => "Scheduler.RescheduleNoChange",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::FailedToSchedule => &["Failed to schedule a call"],
Self::NotFound => &["Cannot find the scheduled call."],
Self::TargetBlockNumberInPast => &["Given target block number is in the past."],
Self::RescheduleNoChange => {
&["Reschedule failed because it does not change scheduled time."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events type."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "Scheduled some task."]
#[codec(index = 0u8)]
Scheduled { when: u32, index: u32 },
#[doc = "Canceled some task."]
#[codec(index = 1u8)]
Canceled { when: u32, index: u32 },
#[doc = "Dispatched some task."]
#[codec(index = 2u8)]
Dispatched {
task: (u32, u32),
id: Option<Vec<u8>>,
result: Result<(), sp_runtime::DispatchError>,
},
#[doc = "The call for the provided hash was not found so the task has been aborted."]
#[codec(index = 3u8)]
CallLookupFailed {
task: (u32, u32),
id: Option<Vec<u8>>,
error: frame_support::traits::schedule::LookupError,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Scheduled { .. } => "Scheduler.Scheduled",
Self::Canceled { .. } => "Scheduler.Canceled",
Self::Dispatched { .. } => "Scheduler.Dispatched",
Self::CallLookupFailed { .. } => "Scheduler.CallLookupFailed",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Scheduled { .. } => &["Scheduled some task."],
Self::Canceled { .. } => &["Canceled some task."],
Self::Dispatched { .. } => &["Dispatched some task."],
Self::CallLookupFailed { .. } => {
&["The call for the provided hash was not found so the task has been aborted."]
}
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ScheduledV3<Call, BlockNumber, PalletsOrigin, AccountId> {
pub maybe_id: Option<Vec<u8>>,
pub priority: u8,
pub call: Call,
pub maybe_periodic: Option<(BlockNumber, BlockNumber)>,
pub origin: PalletsOrigin,
_phantom_data: core::marker::PhantomData<AccountId>,
}
}
pub mod polymesh_extensions {
use super::*;
pub mod check_weight {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CheckWeight(pub frame_system::extensions::check_weight::CheckWeight);
}
}
pub mod pallet_transaction_payment {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Releases {
#[codec(index = 0u8)]
V1Ancient,
#[codec(index = 1u8)]
V2,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ChargeTransactionPayment(#[codec(compact)] pub u128);
}
pub mod confidential_identity_v2 {
use super::*;
pub mod sign {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Signature {
pub r: [u8; 32usize],
pub s: [u8; 32usize],
}
}
pub mod claim_proofs {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ZkProofData {
pub challenge_responses: [[u8; 32usize]; 2usize],
pub subtract_expressions_res: [u8; 32usize],
pub blinded_scope_did_hash: [u8; 32usize],
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ScopeClaimProof {
pub proof_scope_id_wellformed: confidential_identity_v2::sign::Signature,
pub proof_scope_id_cdd_id_match: confidential_identity_v2::claim_proofs::ZkProofData,
pub scope_id: [u8; 32usize],
}
}
}
pub mod pallet_group {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance2();
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance1();
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance4();
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Instance3();
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Change this group's limit for how many concurrent active members they may be."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` - the number of active members there may be concurrently."]
#[codec(index = 0u8)]
set_active_members_limit { limit: u32 },
#[doc = "Disables a member at specific moment."]
#[doc = ""]
#[doc = "Please note that if member is already revoked (a \"valid member\"), its revocation"]
#[doc = "time-stamp will be updated."]
#[doc = ""]
#[doc = "Any disabled member should NOT allow to act like an active member of the group. For"]
#[doc = "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any"]
#[doc = "generated claim issued before `at` would be considered as a valid one."]
#[doc = ""]
#[doc = "If you want to invalidate any generated claim, you should use `Self::remove_member`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `at` - Revocation time-stamp."]
#[doc = "* `who` - Target member of the group."]
#[doc = "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the"]
#[doc = "generated claims will be \"invalid\" as `who` is not considered a member of the group."]
#[codec(index = 1u8)]
disable_member {
who: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
at: Option<u64>,
},
#[doc = "Adds a member `who` to the group. May only be called from `AddOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `AddOrigin` or root"]
#[doc = "* `who` - IdentityId to be added to the group."]
#[codec(index = 2u8)]
add_member {
who: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Removes a member `who` from the set. May only be called from `RemoveOrigin` or root."]
#[doc = ""]
#[doc = "Any claim previously generated by this member is not valid as a group claim. For"]
#[doc = "instance, if a CDD member group generated a claim for a target identity and then it is"]
#[doc = "removed, that claim will be invalid. In case you want to keep the validity of generated"]
#[doc = "claims, you have to use `Self::disable_member` function"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `RemoveOrigin` or root"]
#[doc = "* `who` - IdentityId to be removed from the group."]
#[codec(index = 3u8)]
remove_member {
who: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Swaps out one member `remove` for another member `add`."]
#[doc = ""]
#[doc = "May only be called from `SwapOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `SwapOrigin` or root"]
#[doc = "* `remove` - IdentityId to be removed from the group."]
#[doc = "* `add` - IdentityId to be added in place of `remove`."]
#[codec(index = 4u8)]
swap_member {
remove: polymesh_primitives::identity_id::IdentityId,
add: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Changes the membership to a new set, disregarding the existing membership."]
#[doc = "May only be called from `ResetOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `ResetOrigin` or root"]
#[doc = "* `members` - New set of identities"]
#[codec(index = 5u8)]
reset_members {
members: Vec<polymesh_primitives::identity_id::IdentityId>,
},
#[doc = "Allows the calling member to *unilaterally quit* without this being subject to a GC"]
#[doc = "vote."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Member of committee who wants to quit."]
#[doc = ""]
#[doc = "# Error"]
#[doc = ""]
#[doc = "* Only primary key can abdicate."]
#[doc = "* Last member of a group cannot abdicate."]
#[codec(index = 6u8)]
abdicate_membership,
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_active_members_limit { .. } => {
"UpgradeCommitteeMembership.set_active_members_limit"
}
Self::disable_member { .. } => "UpgradeCommitteeMembership.disable_member",
Self::add_member { .. } => "UpgradeCommitteeMembership.add_member",
Self::remove_member { .. } => "UpgradeCommitteeMembership.remove_member",
Self::swap_member { .. } => "UpgradeCommitteeMembership.swap_member",
Self::reset_members { .. } => "UpgradeCommitteeMembership.reset_members",
Self::abdicate_membership => "UpgradeCommitteeMembership.abdicate_membership",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_active_members_limit { .. } => { & ["Change this group's limit for how many concurrent active members they may be." , "" , "# Arguments" , "* `limit` - the number of active members there may be concurrently." ,] } , Self :: disable_member { .. } => { & ["Disables a member at specific moment." , "" , "Please note that if member is already revoked (a \"valid member\"), its revocation" , "time-stamp will be updated." , "" , "Any disabled member should NOT allow to act like an active member of the group. For" , "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any" , "generated claim issued before `at` would be considered as a valid one." , "" , "If you want to invalidate any generated claim, you should use `Self::remove_member`." , "" , "# Arguments" , "* `at` - Revocation time-stamp." , "* `who` - Target member of the group." , "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the" , "generated claims will be \"invalid\" as `who` is not considered a member of the group." ,] } , Self :: add_member { .. } => { & ["Adds a member `who` to the group. May only be called from `AddOrigin` or root." , "" , "# Arguments" , "* `origin` - Origin representing `AddOrigin` or root" , "* `who` - IdentityId to be added to the group." ,] } , Self :: remove_member { .. } => { & ["Removes a member `who` from the set. May only be called from `RemoveOrigin` or root." , "" , "Any claim previously generated by this member is not valid as a group claim. For" , "instance, if a CDD member group generated a claim for a target identity and then it is" , "removed, that claim will be invalid. In case you want to keep the validity of generated" , "claims, you have to use `Self::disable_member` function" , "" , "# Arguments" , "* `origin` - Origin representing `RemoveOrigin` or root" , "* `who` - IdentityId to be removed from the group." ,] } , Self :: swap_member { .. } => { & ["Swaps out one member `remove` for another member `add`." , "" , "May only be called from `SwapOrigin` or root." , "" , "# Arguments" , "* `origin` - Origin representing `SwapOrigin` or root" , "* `remove` - IdentityId to be removed from the group." , "* `add` - IdentityId to be added in place of `remove`." ,] } , Self :: reset_members { .. } => { & ["Changes the membership to a new set, disregarding the existing membership." , "May only be called from `ResetOrigin` or root." , "" , "# Arguments" , "* `origin` - Origin representing `ResetOrigin` or root" , "* `members` - New set of identities" ,] } , Self :: abdicate_membership => { & ["Allows the calling member to *unilaterally quit* without this being subject to a GC" , "vote." , "" , "# Arguments" , "* `origin` - Member of committee who wants to quit." , "" , "# Error" , "" , "* Only primary key can abdicate." , "* Last member of a group cannot abdicate." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Only primary key of the identity is allowed."]
#[codec(index = 0u8)]
OnlyPrimaryKeyAllowed,
#[doc = "Group member was added already."]
#[codec(index = 1u8)]
DuplicateMember,
#[doc = "Can't remove a member that doesn't exist."]
#[codec(index = 2u8)]
NoSuchMember,
#[doc = "Last member of the committee can not quit."]
#[codec(index = 3u8)]
LastMemberCannotQuit,
#[doc = "Missing current DID"]
#[codec(index = 4u8)]
MissingCurrentIdentity,
#[doc = "The limit for the number of concurrent active members for this group has been exceeded."]
#[codec(index = 5u8)]
ActiveMembersLimitExceeded,
#[doc = "Active member limit was greater than maximum committee members limit."]
#[codec(index = 6u8)]
ActiveMembersLimitOverflow,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::OnlyPrimaryKeyAllowed => "UpgradeCommitteeMembership.OnlyPrimaryKeyAllowed",
Self::DuplicateMember => "UpgradeCommitteeMembership.DuplicateMember",
Self::NoSuchMember => "UpgradeCommitteeMembership.NoSuchMember",
Self::LastMemberCannotQuit => "UpgradeCommitteeMembership.LastMemberCannotQuit",
Self::MissingCurrentIdentity => "UpgradeCommitteeMembership.MissingCurrentIdentity",
Self::ActiveMembersLimitExceeded => {
"UpgradeCommitteeMembership.ActiveMembersLimitExceeded"
}
Self::ActiveMembersLimitOverflow => {
"UpgradeCommitteeMembership.ActiveMembersLimitOverflow"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: OnlyPrimaryKeyAllowed => { & ["Only primary key of the identity is allowed." ,] } , Self :: DuplicateMember => { & ["Group member was added already." ,] } , Self :: NoSuchMember => { & ["Can't remove a member that doesn't exist." ,] } , Self :: LastMemberCannotQuit => { & ["Last member of the committee can not quit." ,] } , Self :: MissingCurrentIdentity => { & ["Missing current DID" ,] } , Self :: ActiveMembersLimitExceeded => { & ["The limit for the number of concurrent active members for this group has been exceeded." ,] } , Self :: ActiveMembersLimitOverflow => { & ["Active member limit was greater than maximum committee members limit." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod primitive_types {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct H512(
#[cfg_attr(feature = "serde", serde(with = "::serde_big_array::BigArray"))] pub [u8; 64usize],
);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct H256(pub [u8; 32usize]);
}
pub mod pallet_compliance_manager {
use super::*;
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Adds a compliance requirement to an asset's compliance by ticker."]
#[doc = "If the compliance requirement is a duplicate, it does nothing."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = "* sender_conditions - Sender transfer conditions."]
#[doc = "* receiver_conditions - Receiver transfer conditions."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 0u8)]
add_compliance_requirement {
ticker: polymesh_primitives::ticker::Ticker,
sender_conditions: Vec<polymesh_primitives::condition::Condition>,
receiver_conditions: Vec<polymesh_primitives::condition::Condition>,
},
#[doc = "Removes a compliance requirement from an asset's compliance."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = "* id - Compliance requirement id which is need to be removed"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 1u8)]
remove_compliance_requirement {
ticker: polymesh_primitives::ticker::Ticker,
id: u32,
},
#[doc = "Replaces an asset's compliance by ticker with a new compliance."]
#[doc = ""]
#[doc = "Compliance requirements will be sorted (ascending by id) before"]
#[doc = "replacing the current requirements."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `ticker` - the asset ticker,"]
#[doc = "* `asset_compliance - the new asset compliance."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `Unauthorized` if `origin` is not the owner of the ticker."]
#[doc = "* `DuplicateAssetCompliance` if `asset_compliance` contains multiple entries with the same `requirement_id`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 2u8)]
replace_asset_compliance {
ticker: polymesh_primitives::ticker::Ticker,
asset_compliance: Vec<polymesh_primitives::compliance_manager::ComplianceRequirement>,
},
#[doc = "Removes an asset's compliance"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 3u8)]
reset_asset_compliance {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Pauses the verification of conditions for `ticker` during transfers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 4u8)]
pause_asset_compliance {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Resumes the verification of conditions for `ticker` during transfers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 5u8)]
resume_asset_compliance {
ticker: polymesh_primitives::ticker::Ticker,
},
#[doc = "Adds another default trusted claim issuer at the ticker level."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* issuer - IdentityId of the trusted claim issuer."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 6u8)]
add_default_trusted_claim_issuer {
ticker: polymesh_primitives::ticker::Ticker,
issuer: polymesh_primitives::condition::TrustedIssuer,
},
#[doc = "Removes the given `issuer` from the set of default trusted claim issuers at the ticker level."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* issuer - IdentityId of the trusted claim issuer."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 7u8)]
remove_default_trusted_claim_issuer {
ticker: polymesh_primitives::ticker::Ticker,
issuer: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Modify an existing compliance requirement of a given ticker."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* new_req - Compliance requirement."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[codec(index = 8u8)]
change_compliance_requirement {
ticker: polymesh_primitives::ticker::Ticker,
new_req: polymesh_primitives::compliance_manager::ComplianceRequirement,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::add_compliance_requirement { .. } => "ComplianceManager.add_compliance_requirement",
Self::remove_compliance_requirement { .. } => {
"ComplianceManager.remove_compliance_requirement"
}
Self::replace_asset_compliance { .. } => "ComplianceManager.replace_asset_compliance",
Self::reset_asset_compliance { .. } => "ComplianceManager.reset_asset_compliance",
Self::pause_asset_compliance { .. } => "ComplianceManager.pause_asset_compliance",
Self::resume_asset_compliance { .. } => "ComplianceManager.resume_asset_compliance",
Self::add_default_trusted_claim_issuer { .. } => {
"ComplianceManager.add_default_trusted_claim_issuer"
}
Self::remove_default_trusted_claim_issuer { .. } => {
"ComplianceManager.remove_default_trusted_claim_issuer"
}
Self::change_compliance_requirement { .. } => {
"ComplianceManager.change_compliance_requirement"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: add_compliance_requirement { .. } => { & ["Adds a compliance requirement to an asset's compliance by ticker." , "If the compliance requirement is a duplicate, it does nothing." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker" , "* ticker - Symbol of the asset" , "* sender_conditions - Sender transfer conditions." , "* receiver_conditions - Receiver transfer conditions." , "" , "# Permissions" , "* Asset" ,] } , Self :: remove_compliance_requirement { .. } => { & ["Removes a compliance requirement from an asset's compliance." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker" , "* ticker - Symbol of the asset" , "* id - Compliance requirement id which is need to be removed" , "" , "# Permissions" , "* Asset" ,] } , Self :: replace_asset_compliance { .. } => { & ["Replaces an asset's compliance by ticker with a new compliance." , "" , "Compliance requirements will be sorted (ascending by id) before" , "replacing the current requirements." , "" , "# Arguments" , "* `ticker` - the asset ticker," , "* `asset_compliance - the new asset compliance." , "" , "# Errors" , "* `Unauthorized` if `origin` is not the owner of the ticker." , "* `DuplicateAssetCompliance` if `asset_compliance` contains multiple entries with the same `requirement_id`." , "" , "# Permissions" , "* Asset" ,] } , Self :: reset_asset_compliance { .. } => { & ["Removes an asset's compliance" , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker" , "* ticker - Symbol of the asset" , "" , "# Permissions" , "* Asset" ,] } , Self :: pause_asset_compliance { .. } => { & ["Pauses the verification of conditions for `ticker` during transfers." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker" , "* ticker - Symbol of the asset" , "" , "# Permissions" , "* Asset" ,] } , Self :: resume_asset_compliance { .. } => { & ["Resumes the verification of conditions for `ticker` during transfers." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker" , "* ticker - Symbol of the asset" , "" , "# Permissions" , "* Asset" ,] } , Self :: add_default_trusted_claim_issuer { .. } => { & ["Adds another default trusted claim issuer at the ticker level." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker." , "* ticker - Symbol of the asset." , "* issuer - IdentityId of the trusted claim issuer." , "" , "# Permissions" , "* Asset" ,] } , Self :: remove_default_trusted_claim_issuer { .. } => { & ["Removes the given `issuer` from the set of default trusted claim issuers at the ticker level." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker." , "* ticker - Symbol of the asset." , "* issuer - IdentityId of the trusted claim issuer." , "" , "# Permissions" , "* Asset" ,] } , Self :: change_compliance_requirement { .. } => { & ["Modify an existing compliance requirement of a given ticker." , "" , "# Arguments" , "* origin - Signer of the dispatchable. It should be the owner of the ticker." , "* ticker - Symbol of the asset." , "* new_req - Compliance requirement." , "" , "# Permissions" , "* Asset" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "Emitted when new compliance requirement is created."]
#[doc = "(caller DID, Ticker, ComplianceRequirement)."]
#[codec(index = 0u8)]
ComplianceRequirementCreated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::compliance_manager::ComplianceRequirement,
),
#[doc = "Emitted when a compliance requirement is removed."]
#[doc = "(caller DID, Ticker, requirement_id)."]
#[codec(index = 1u8)]
ComplianceRequirementRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
u32,
),
#[doc = "Emitted when an asset compliance is replaced."]
#[doc = "Parameters: caller DID, ticker, new asset compliance."]
#[codec(index = 2u8)]
AssetComplianceReplaced(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
Vec<polymesh_primitives::compliance_manager::ComplianceRequirement>,
),
#[doc = "Emitted when an asset compliance of a ticker is reset."]
#[doc = "(caller DID, Ticker)."]
#[codec(index = 3u8)]
AssetComplianceReset(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "Emitted when an asset compliance for a given ticker gets resume."]
#[doc = "(caller DID, Ticker)."]
#[codec(index = 4u8)]
AssetComplianceResumed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "Emitted when an asset compliance for a given ticker gets paused."]
#[doc = "(caller DID, Ticker)."]
#[codec(index = 5u8)]
AssetCompliancePaused(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
),
#[doc = "Emitted when compliance requirement get modified/change."]
#[doc = "(caller DID, Ticker, ComplianceRequirement)."]
#[codec(index = 6u8)]
ComplianceRequirementChanged(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::compliance_manager::ComplianceRequirement,
),
#[doc = "Emitted when default claim issuer list for a given ticker gets added."]
#[doc = "(caller DID, Ticker, Added TrustedIssuer)."]
#[codec(index = 7u8)]
TrustedDefaultClaimIssuerAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::condition::TrustedIssuer,
),
#[doc = "Emitted when default claim issuer list for a given ticker get removed."]
#[doc = "(caller DID, Ticker, Removed TrustedIssuer)."]
#[codec(index = 8u8)]
TrustedDefaultClaimIssuerRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::ticker::Ticker,
polymesh_primitives::identity_id::IdentityId,
),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::ComplianceRequirementCreated(_, _, _) => {
"ComplianceManager.ComplianceRequirementCreated"
}
Self::ComplianceRequirementRemoved(_, _, _) => {
"ComplianceManager.ComplianceRequirementRemoved"
}
Self::AssetComplianceReplaced(_, _, _) => "ComplianceManager.AssetComplianceReplaced",
Self::AssetComplianceReset(_, _) => "ComplianceManager.AssetComplianceReset",
Self::AssetComplianceResumed(_, _) => "ComplianceManager.AssetComplianceResumed",
Self::AssetCompliancePaused(_, _) => "ComplianceManager.AssetCompliancePaused",
Self::ComplianceRequirementChanged(_, _, _) => {
"ComplianceManager.ComplianceRequirementChanged"
}
Self::TrustedDefaultClaimIssuerAdded(_, _, _) => {
"ComplianceManager.TrustedDefaultClaimIssuerAdded"
}
Self::TrustedDefaultClaimIssuerRemoved(_, _, _) => {
"ComplianceManager.TrustedDefaultClaimIssuerRemoved"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::ComplianceRequirementCreated(_, _, _) => &[
"Emitted when new compliance requirement is created.",
"(caller DID, Ticker, ComplianceRequirement).",
],
Self::ComplianceRequirementRemoved(_, _, _) => &[
"Emitted when a compliance requirement is removed.",
"(caller DID, Ticker, requirement_id).",
],
Self::AssetComplianceReplaced(_, _, _) => &[
"Emitted when an asset compliance is replaced.",
"Parameters: caller DID, ticker, new asset compliance.",
],
Self::AssetComplianceReset(_, _) => &[
"Emitted when an asset compliance of a ticker is reset.",
"(caller DID, Ticker).",
],
Self::AssetComplianceResumed(_, _) => &[
"Emitted when an asset compliance for a given ticker gets resume.",
"(caller DID, Ticker).",
],
Self::AssetCompliancePaused(_, _) => &[
"Emitted when an asset compliance for a given ticker gets paused.",
"(caller DID, Ticker).",
],
Self::ComplianceRequirementChanged(_, _, _) => &[
"Emitted when compliance requirement get modified/change.",
"(caller DID, Ticker, ComplianceRequirement).",
],
Self::TrustedDefaultClaimIssuerAdded(_, _, _) => &[
"Emitted when default claim issuer list for a given ticker gets added.",
"(caller DID, Ticker, Added TrustedIssuer).",
],
Self::TrustedDefaultClaimIssuerRemoved(_, _, _) => &[
"Emitted when default claim issuer list for a given ticker get removed.",
"(caller DID, Ticker, Removed TrustedIssuer).",
],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "User is not authorized."]
#[codec(index = 0u8)]
Unauthorized,
#[doc = "Did not exist"]
#[codec(index = 1u8)]
DidNotExist,
#[doc = "Compliance requirement id doesn't exist"]
#[codec(index = 2u8)]
InvalidComplianceRequirementId,
#[doc = "Issuer exist but trying to add it again"]
#[codec(index = 3u8)]
IncorrectOperationOnTrustedIssuer,
#[doc = "There are duplicate compliance requirements."]
#[codec(index = 4u8)]
DuplicateComplianceRequirements,
#[doc = "The worst case scenario of the compliance requirement is too complex"]
#[codec(index = 5u8)]
ComplianceRequirementTooComplex,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Unauthorized => "ComplianceManager.Unauthorized",
Self::DidNotExist => "ComplianceManager.DidNotExist",
Self::InvalidComplianceRequirementId => {
"ComplianceManager.InvalidComplianceRequirementId"
}
Self::IncorrectOperationOnTrustedIssuer => {
"ComplianceManager.IncorrectOperationOnTrustedIssuer"
}
Self::DuplicateComplianceRequirements => {
"ComplianceManager.DuplicateComplianceRequirements"
}
Self::ComplianceRequirementTooComplex => {
"ComplianceManager.ComplianceRequirementTooComplex"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Unauthorized => &["User is not authorized."],
Self::DidNotExist => &["Did not exist"],
Self::InvalidComplianceRequirementId => &["Compliance requirement id doesn't exist"],
Self::IncorrectOperationOnTrustedIssuer => &["Issuer exist but trying to add it again"],
Self::DuplicateComplianceRequirements => {
&["There are duplicate compliance requirements."]
}
Self::ComplianceRequirementTooComplex => {
&["The worst case scenario of the compliance requirement is too complex"]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
}
pub mod frame_support {
use super::*;
pub mod traits {
use super::*;
pub mod schedule {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum MaybeHashed<T, Hash> {
#[codec(index = 0u8)]
Value(T),
#[codec(index = 1u8)]
Hash(Hash),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum LookupError {
#[codec(index = 0u8)]
Unknown,
#[codec(index = 1u8)]
BadFormat,
}
}
pub mod tokens {
use super::*;
pub mod misc {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum BalanceStatus {
#[codec(index = 0u8)]
Free,
#[codec(index = 1u8)]
Reserved,
}
}
}
pub mod misc {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct WrapperOpaque<T>(#[codec(compact)] pub u32, pub T);
}
}
pub mod storage {
use super::*;
pub mod bounded_vec {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BoundedVec<T>(pub Vec<T>);
}
pub mod weak_bounded_vec {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct WeakBoundedVec<T>(pub Vec<T>);
}
}
pub mod dispatch {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawOrigin<AccountId> {
#[codec(index = 0u8)]
Root,
#[codec(index = 1u8)]
Signed(AccountId),
#[codec(index = 2u8)]
None,
}
}
pub mod weights {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct RuntimeDbWeight {
pub read: u64,
pub write: u64,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum DispatchClass {
#[codec(index = 0u8)]
Normal,
#[codec(index = 1u8)]
Operational,
#[codec(index = 2u8)]
Mandatory,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct DispatchInfo {
pub weight: u64,
pub class: frame_support::weights::DispatchClass,
pub pays_fee: frame_support::weights::Pays,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PerDispatchClass<T> {
pub normal: T,
pub operational: T,
pub mandatory: T,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Pays {
#[codec(index = 0u8)]
Yes,
#[codec(index = 1u8)]
No,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct WeightToFeeCoefficient<Balance> {
pub coeff_integer: Balance,
pub coeff_frac: ::polymesh_api_client::per_things::Perbill,
pub negative: bool,
pub degree: u8,
}
}
}
pub mod pallet_protocol_fee {
use super::*;
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId> {
#[doc = "The protocol fee of an operation."]
#[codec(index = 0u8)]
FeeSet(polymesh_primitives::identity_id::IdentityId, u128),
#[doc = "The fee coefficient."]
#[codec(index = 1u8)]
CoefficientSet(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::PosRatio,
),
#[doc = "Fee charged."]
#[codec(index = 2u8)]
FeeCharged(AccountId, u128),
}
impl<AccountId> RawEvent<AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::FeeSet(_, _) => "ProtocolFee.FeeSet",
Self::CoefficientSet(_, _) => "ProtocolFee.CoefficientSet",
Self::FeeCharged(_, _) => "ProtocolFee.FeeCharged",
_ => "Unknown",
}
}
}
impl<AccountId> ::polymesh_api_client::EnumInfo for RawEvent<AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::FeeSet(_, _) => &["The protocol fee of an operation."],
Self::CoefficientSet(_, _) => &["The fee coefficient."],
Self::FeeCharged(_, _) => &["Fee charged."],
_ => &[""],
}
}
}
impl<AccountId> From<RawEvent<AccountId>> for &'static str {
fn from(v: RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
impl<AccountId> From<&RawEvent<AccountId>> for &'static str {
fn from(v: &RawEvent<AccountId>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Insufficient account balance to pay the fee."]
#[codec(index = 0u8)]
InsufficientAccountBalance,
#[doc = "Not able to handled the imbalances"]
#[codec(index = 1u8)]
UnHandledImbalances,
#[doc = "Insufficient subsidy balance to pay the fee."]
#[codec(index = 2u8)]
InsufficientSubsidyBalance,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InsufficientAccountBalance => "ProtocolFee.InsufficientAccountBalance",
Self::UnHandledImbalances => "ProtocolFee.UnHandledImbalances",
Self::InsufficientSubsidyBalance => "ProtocolFee.InsufficientSubsidyBalance",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InsufficientAccountBalance => &["Insufficient account balance to pay the fee."],
Self::UnHandledImbalances => &["Not able to handled the imbalances"],
Self::InsufficientSubsidyBalance => &["Insufficient subsidy balance to pay the fee."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Changes the fee coefficient for the root origin."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - Only root allowed."]
#[codec(index = 0u8)]
change_coefficient {
coefficient: polymesh_primitives::PosRatio,
},
#[doc = "Changes the a base fee for the root origin."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - Only root allowed."]
#[codec(index = 1u8)]
change_base_fee {
op: polymesh_common_utilities::protocol_fee::ProtocolOp,
base_fee: u128,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::change_coefficient { .. } => "ProtocolFee.change_coefficient",
Self::change_base_fee { .. } => "ProtocolFee.change_base_fee",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::change_coefficient { .. } => &[
"Changes the fee coefficient for the root origin.",
"",
"# Errors",
"* `BadOrigin` - Only root allowed.",
],
Self::change_base_fee { .. } => &[
"Changes the a base fee for the root origin.",
"",
"# Errors",
"* `BadOrigin` - Only root allowed.",
],
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_bridge {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The bridge controller address is not set."]
#[codec(index = 0u8)]
ControllerNotSet,
#[doc = "The origin is not the controller or the admin address."]
#[codec(index = 1u8)]
BadCaller,
#[doc = "The origin is not the admin address."]
#[codec(index = 2u8)]
BadAdmin,
#[doc = "The recipient DID has no valid CDD."]
#[codec(index = 3u8)]
NoValidCdd,
#[doc = "The bridge transaction proposal has already been handled and the funds minted."]
#[codec(index = 4u8)]
ProposalAlreadyHandled,
#[doc = "Unauthorized to perform an operation."]
#[codec(index = 5u8)]
Unauthorized,
#[doc = "The bridge is already frozen."]
#[codec(index = 6u8)]
Frozen,
#[doc = "The bridge is not frozen."]
#[codec(index = 7u8)]
NotFrozen,
#[doc = "The transaction is frozen."]
#[codec(index = 8u8)]
FrozenTx,
#[doc = "The identity's minted total has reached the bridge limit."]
#[codec(index = 9u8)]
BridgeLimitReached,
#[doc = "The identity's minted total has overflowed."]
#[codec(index = 10u8)]
Overflow,
#[doc = "The block interval duration is zero. Cannot divide."]
#[codec(index = 11u8)]
DivisionByZero,
#[doc = "The transaction is timelocked."]
#[codec(index = 12u8)]
TimelockedTx,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::ControllerNotSet => "Bridge.ControllerNotSet",
Self::BadCaller => "Bridge.BadCaller",
Self::BadAdmin => "Bridge.BadAdmin",
Self::NoValidCdd => "Bridge.NoValidCdd",
Self::ProposalAlreadyHandled => "Bridge.ProposalAlreadyHandled",
Self::Unauthorized => "Bridge.Unauthorized",
Self::Frozen => "Bridge.Frozen",
Self::NotFrozen => "Bridge.NotFrozen",
Self::FrozenTx => "Bridge.FrozenTx",
Self::BridgeLimitReached => "Bridge.BridgeLimitReached",
Self::Overflow => "Bridge.Overflow",
Self::DivisionByZero => "Bridge.DivisionByZero",
Self::TimelockedTx => "Bridge.TimelockedTx",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::ControllerNotSet => &["The bridge controller address is not set."],
Self::BadCaller => &["The origin is not the controller or the admin address."],
Self::BadAdmin => &["The origin is not the admin address."],
Self::NoValidCdd => &["The recipient DID has no valid CDD."],
Self::ProposalAlreadyHandled => {
&["The bridge transaction proposal has already been handled and the funds minted."]
}
Self::Unauthorized => &["Unauthorized to perform an operation."],
Self::Frozen => &["The bridge is already frozen."],
Self::NotFrozen => &["The bridge is not frozen."],
Self::FrozenTx => &["The transaction is frozen."],
Self::BridgeLimitReached => {
&["The identity's minted total has reached the bridge limit."]
}
Self::Overflow => &["The identity's minted total has overflowed."],
Self::DivisionByZero => &["The block interval duration is zero. Cannot divide."],
Self::TimelockedTx => &["The transaction is timelocked."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<AccountId, BlockNumber> {
#[doc = "Confirmation of a signer set change."]
#[codec(index = 0u8)]
ControllerChanged(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "Confirmation of Admin change."]
#[codec(index = 1u8)]
AdminChanged(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "Confirmation of default timelock change."]
#[codec(index = 2u8)]
TimelockChanged(polymesh_primitives::identity_id::IdentityId, BlockNumber),
#[doc = "Confirmation of POLYX upgrade on Polymesh from POLY tokens on Ethereum."]
#[codec(index = 3u8)]
Bridged(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
),
#[doc = "Notification of freezing the bridge."]
#[codec(index = 4u8)]
Frozen(polymesh_primitives::identity_id::IdentityId),
#[doc = "Notification of unfreezing the bridge."]
#[codec(index = 5u8)]
Unfrozen(polymesh_primitives::identity_id::IdentityId),
#[doc = "Notification of freezing a transaction."]
#[codec(index = 6u8)]
FrozenTx(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
),
#[doc = "Notification of unfreezing a transaction."]
#[codec(index = 7u8)]
UnfrozenTx(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
),
#[doc = "Exemption status of an identity has been updated."]
#[codec(index = 8u8)]
ExemptedUpdated(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
bool,
),
#[doc = "Bridge limit has been updated."]
#[codec(index = 9u8)]
BridgeLimitUpdated(
polymesh_primitives::identity_id::IdentityId,
u128,
BlockNumber,
),
#[doc = "An event emitted after a vector of transactions is handled. The parameter is a vector of"]
#[doc = "tuples of recipient account, its nonce, and the status of the processed transaction."]
#[codec(index = 10u8)]
TxsHandled(Vec<(AccountId, BlockNumber, pallet_bridge::HandledTxStatus)>),
#[doc = "Bridge Tx Scheduled."]
#[codec(index = 11u8)]
BridgeTxScheduled(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
BlockNumber,
),
#[doc = "Failed to schedule Bridge Tx."]
#[codec(index = 12u8)]
BridgeTxScheduleFailed(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
Vec<u8>,
),
#[doc = "A new freeze admin has been added."]
#[codec(index = 13u8)]
FreezeAdminAdded(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "A freeze admin has been removed."]
#[codec(index = 14u8)]
FreezeAdminRemoved(polymesh_primitives::identity_id::IdentityId, AccountId),
#[doc = "Notification of removing a transaction."]
#[codec(index = 15u8)]
TxRemoved(
polymesh_primitives::identity_id::IdentityId,
pallet_bridge::BridgeTx<AccountId>,
),
}
impl<AccountId, BlockNumber> RawEvent<AccountId, BlockNumber> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::ControllerChanged(_, _) => "Bridge.ControllerChanged",
Self::AdminChanged(_, _) => "Bridge.AdminChanged",
Self::TimelockChanged(_, _) => "Bridge.TimelockChanged",
Self::Bridged(_, _) => "Bridge.Bridged",
Self::Frozen(_) => "Bridge.Frozen",
Self::Unfrozen(_) => "Bridge.Unfrozen",
Self::FrozenTx(_, _) => "Bridge.FrozenTx",
Self::UnfrozenTx(_, _) => "Bridge.UnfrozenTx",
Self::ExemptedUpdated(_, _, _) => "Bridge.ExemptedUpdated",
Self::BridgeLimitUpdated(_, _, _) => "Bridge.BridgeLimitUpdated",
Self::TxsHandled(_) => "Bridge.TxsHandled",
Self::BridgeTxScheduled(_, _, _) => "Bridge.BridgeTxScheduled",
Self::BridgeTxScheduleFailed(_, _, _) => "Bridge.BridgeTxScheduleFailed",
Self::FreezeAdminAdded(_, _) => "Bridge.FreezeAdminAdded",
Self::FreezeAdminRemoved(_, _) => "Bridge.FreezeAdminRemoved",
Self::TxRemoved(_, _) => "Bridge.TxRemoved",
_ => "Unknown",
}
}
}
impl<AccountId, BlockNumber> ::polymesh_api_client::EnumInfo for RawEvent<AccountId, BlockNumber> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: ControllerChanged (_ , _) => { & ["Confirmation of a signer set change." ,] } , Self :: AdminChanged (_ , _) => { & ["Confirmation of Admin change." ,] } , Self :: TimelockChanged (_ , _) => { & ["Confirmation of default timelock change." ,] } , Self :: Bridged (_ , _) => { & ["Confirmation of POLYX upgrade on Polymesh from POLY tokens on Ethereum." ,] } , Self :: Frozen (_) => { & ["Notification of freezing the bridge." ,] } , Self :: Unfrozen (_) => { & ["Notification of unfreezing the bridge." ,] } , Self :: FrozenTx (_ , _) => { & ["Notification of freezing a transaction." ,] } , Self :: UnfrozenTx (_ , _) => { & ["Notification of unfreezing a transaction." ,] } , Self :: ExemptedUpdated (_ , _ , _) => { & ["Exemption status of an identity has been updated." ,] } , Self :: BridgeLimitUpdated (_ , _ , _) => { & ["Bridge limit has been updated." ,] } , Self :: TxsHandled (_) => { & ["An event emitted after a vector of transactions is handled. The parameter is a vector of" , "tuples of recipient account, its nonce, and the status of the processed transaction." ,] } , Self :: BridgeTxScheduled (_ , _ , _) => { & ["Bridge Tx Scheduled." ,] } , Self :: BridgeTxScheduleFailed (_ , _ , _) => { & ["Failed to schedule Bridge Tx." ,] } , Self :: FreezeAdminAdded (_ , _) => { & ["A new freeze admin has been added." ,] } , Self :: FreezeAdminRemoved (_ , _) => { & ["A freeze admin has been removed." ,] } , Self :: TxRemoved (_ , _) => { & ["Notification of removing a transaction." ,] } , _ => & [""] , }
}
}
impl<AccountId, BlockNumber> From<RawEvent<AccountId, BlockNumber>> for &'static str {
fn from(v: RawEvent<AccountId, BlockNumber>) -> Self {
v.as_static_str()
}
}
impl<AccountId, BlockNumber> From<&RawEvent<AccountId, BlockNumber>> for &'static str {
fn from(v: &RawEvent<AccountId, BlockNumber>) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Changes the controller account as admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 0u8)]
change_controller {
controller: ::polymesh_api_client::AccountId,
},
#[doc = "Changes the bridge admin key."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 1u8)]
change_admin {
admin: ::polymesh_api_client::AccountId,
},
#[doc = "Changes the timelock period."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 2u8)]
change_timelock { timelock: u32 },
#[doc = "Freezes transaction handling in the bridge module if it is not already frozen. When the"]
#[doc = "bridge is frozen, attempted transactions get postponed instead of getting handled."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 3u8)]
freeze,
#[doc = "Unfreezes transaction handling in the bridge module if it is frozen."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 4u8)]
unfreeze,
#[doc = "Changes the bridge limits."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `DivisionByZero` if `duration` is zero."]
#[codec(index = 5u8)]
change_bridge_limit { amount: u128, duration: u32 },
#[doc = "Changes the bridge limit exempted list."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 6u8)]
change_bridge_exempted {
exempted: Vec<(polymesh_primitives::identity_id::IdentityId, bool)>,
},
#[doc = "Forces handling a transaction by bypassing the bridge limit and timelock."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `NoValidCdd` if `bridge_tx.recipient` does not have a valid CDD claim."]
#[codec(index = 7u8)]
force_handle_bridge_tx {
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
},
#[doc = "Proposes a vector of bridge transactions. The vector is processed until the first"]
#[doc = "proposal which causes an error, in which case the error is returned and the rest of"]
#[doc = "proposals are not processed."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `ControllerNotSet` if `Controllers` was not set."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`500_000_000 + 7_000_000 * bridge_txs.len()`"]
#[codec(index = 8u8)]
batch_propose_bridge_tx {
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
},
#[doc = "Proposes a bridge transaction, which amounts to making a multisig proposal for the"]
#[doc = "bridge transaction if the transaction is new or approving an existing proposal if the"]
#[doc = "transaction has already been proposed."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `ControllerNotSet` if `Controllers` was not set."]
#[codec(index = 9u8)]
propose_bridge_tx {
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
},
#[doc = "Handles an approved bridge transaction proposal."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadCaller` if `origin` is not `Self::controller` or `Self::admin`."]
#[doc = "- `TimelockedTx` if the transaction status is `Timelocked`."]
#[doc = "- `ProposalAlreadyHandled` if the transaction status is `Handled`."]
#[codec(index = 10u8)]
handle_bridge_tx {
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
},
#[doc = "Freezes given bridge transactions."]
#[doc = "If any bridge txn is already handled then this function will just ignore it and process next one."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`400_000_000 + 2_000_000 * bridge_txs.len()`"]
#[codec(index = 11u8)]
freeze_txs {
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
},
#[doc = "Unfreezes given bridge transactions."]
#[doc = "If any bridge txn is already handled then this function will just ignore it and process next one."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`400_000_000 + 7_000_000 * bridge_txs.len()`"]
#[codec(index = 12u8)]
unfreeze_txs {
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
},
#[doc = "Root callable extrinsic, used as an internal call to handle a scheduled timelocked bridge transaction."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `BadOrigin` if `origin` is not root."]
#[doc = "- `ProposalAlreadyHandled` if transaction status is `Handled`."]
#[doc = "- `FrozenTx` if transaction status is `Frozen`."]
#[codec(index = 13u8)]
handle_scheduled_bridge_tx {
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
},
#[doc = "Add a freeze admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 14u8)]
add_freeze_admin {
freeze_admin: ::polymesh_api_client::AccountId,
},
#[doc = "Remove a freeze admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[codec(index = 15u8)]
remove_freeze_admin {
freeze_admin: ::polymesh_api_client::AccountId,
},
#[doc = "Remove given bridge transactions."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `NotFrozen` if a tx in `bridge_txs` is not frozen."]
#[codec(index = 16u8)]
remove_txs {
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::change_controller { .. } => "Bridge.change_controller",
Self::change_admin { .. } => "Bridge.change_admin",
Self::change_timelock { .. } => "Bridge.change_timelock",
Self::freeze => "Bridge.freeze",
Self::unfreeze => "Bridge.unfreeze",
Self::change_bridge_limit { .. } => "Bridge.change_bridge_limit",
Self::change_bridge_exempted { .. } => "Bridge.change_bridge_exempted",
Self::force_handle_bridge_tx { .. } => "Bridge.force_handle_bridge_tx",
Self::batch_propose_bridge_tx { .. } => "Bridge.batch_propose_bridge_tx",
Self::propose_bridge_tx { .. } => "Bridge.propose_bridge_tx",
Self::handle_bridge_tx { .. } => "Bridge.handle_bridge_tx",
Self::freeze_txs { .. } => "Bridge.freeze_txs",
Self::unfreeze_txs { .. } => "Bridge.unfreeze_txs",
Self::handle_scheduled_bridge_tx { .. } => "Bridge.handle_scheduled_bridge_tx",
Self::add_freeze_admin { .. } => "Bridge.add_freeze_admin",
Self::remove_freeze_admin { .. } => "Bridge.remove_freeze_admin",
Self::remove_txs { .. } => "Bridge.remove_txs",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: change_controller { .. } => { & ["Changes the controller account as admin." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: change_admin { .. } => { & ["Changes the bridge admin key." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: change_timelock { .. } => { & ["Changes the timelock period." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: freeze => { & ["Freezes transaction handling in the bridge module if it is not already frozen. When the" , "bridge is frozen, attempted transactions get postponed instead of getting handled." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: unfreeze => { & ["Unfreezes transaction handling in the bridge module if it is frozen." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: change_bridge_limit { .. } => { & ["Changes the bridge limits." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." , "- `DivisionByZero` if `duration` is zero." ,] } , Self :: change_bridge_exempted { .. } => { & ["Changes the bridge limit exempted list." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: force_handle_bridge_tx { .. } => { & ["Forces handling a transaction by bypassing the bridge limit and timelock." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." , "- `NoValidCdd` if `bridge_tx.recipient` does not have a valid CDD claim." ,] } , Self :: batch_propose_bridge_tx { .. } => { & ["Proposes a vector of bridge transactions. The vector is processed until the first" , "proposal which causes an error, in which case the error is returned and the rest of" , "proposals are not processed." , "" , "## Errors" , "- `ControllerNotSet` if `Controllers` was not set." , "" , "# Weight" , "`500_000_000 + 7_000_000 * bridge_txs.len()`" ,] } , Self :: propose_bridge_tx { .. } => { & ["Proposes a bridge transaction, which amounts to making a multisig proposal for the" , "bridge transaction if the transaction is new or approving an existing proposal if the" , "transaction has already been proposed." , "" , "## Errors" , "- `ControllerNotSet` if `Controllers` was not set." ,] } , Self :: handle_bridge_tx { .. } => { & ["Handles an approved bridge transaction proposal." , "" , "## Errors" , "- `BadCaller` if `origin` is not `Self::controller` or `Self::admin`." , "- `TimelockedTx` if the transaction status is `Timelocked`." , "- `ProposalAlreadyHandled` if the transaction status is `Handled`." ,] } , Self :: freeze_txs { .. } => { & ["Freezes given bridge transactions." , "If any bridge txn is already handled then this function will just ignore it and process next one." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." , "" , "# Weight" , "`400_000_000 + 2_000_000 * bridge_txs.len()`" ,] } , Self :: unfreeze_txs { .. } => { & ["Unfreezes given bridge transactions." , "If any bridge txn is already handled then this function will just ignore it and process next one." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." , "" , "# Weight" , "`400_000_000 + 7_000_000 * bridge_txs.len()`" ,] } , Self :: handle_scheduled_bridge_tx { .. } => { & ["Root callable extrinsic, used as an internal call to handle a scheduled timelocked bridge transaction." , "" , "# Errors" , "- `BadOrigin` if `origin` is not root." , "- `ProposalAlreadyHandled` if transaction status is `Handled`." , "- `FrozenTx` if transaction status is `Frozen`." ,] } , Self :: add_freeze_admin { .. } => { & ["Add a freeze admin." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: remove_freeze_admin { .. } => { & ["Remove a freeze admin." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." ,] } , Self :: remove_txs { .. } => { & ["Remove given bridge transactions." , "" , "## Errors" , "- `BadAdmin` if `origin` is not `Self::admin()` account." , "- `NotFrozen` if a tx in `bridge_txs` is not frozen." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Version(pub u8);
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BridgeTxDetail<BlockNumber> {
pub amount: u128,
pub status: pallet_bridge::BridgeTxStatus,
pub execution_block: BlockNumber,
pub tx_hash: primitive_types::H256,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum HandledTxStatus {
#[codec(index = 0u8)]
Success,
#[codec(index = 1u8)]
Error(Vec<u8>),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum BridgeTxStatus {
#[codec(index = 0u8)]
Absent,
#[codec(index = 1u8)]
Pending(u8),
#[codec(index = 2u8)]
Frozen,
#[codec(index = 3u8)]
Timelocked,
#[codec(index = 4u8)]
Handled,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct BridgeTx<Account> {
pub nonce: u32,
pub recipient: Account,
pub amount: u128,
pub tx_hash: primitive_types::H256,
}
}
pub mod pallet_grandpa {
use super::*;
pub mod pallet {
use super::*;
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Attempt to signal GRANDPA pause when the authority set isn't live"]
#[doc = "(either paused or already pending pause)."]
#[codec(index = 0u8)]
PauseFailed,
#[doc = "Attempt to signal GRANDPA resume when the authority set isn't paused"]
#[doc = "(either live or already pending resume)."]
#[codec(index = 1u8)]
ResumeFailed,
#[doc = "Attempt to signal GRANDPA change with one already pending."]
#[codec(index = 2u8)]
ChangePending,
#[doc = "Cannot signal forced change so soon after last."]
#[codec(index = 3u8)]
TooSoon,
#[doc = "A key ownership proof provided as part of an equivocation report is invalid."]
#[codec(index = 4u8)]
InvalidKeyOwnershipProof,
#[doc = "An equivocation proof provided as part of an equivocation report is invalid."]
#[codec(index = 5u8)]
InvalidEquivocationProof,
#[doc = "A given equivocation report is valid but already previously reported."]
#[codec(index = 6u8)]
DuplicateOffenceReport,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::PauseFailed => "Grandpa.PauseFailed",
Self::ResumeFailed => "Grandpa.ResumeFailed",
Self::ChangePending => "Grandpa.ChangePending",
Self::TooSoon => "Grandpa.TooSoon",
Self::InvalidKeyOwnershipProof => "Grandpa.InvalidKeyOwnershipProof",
Self::InvalidEquivocationProof => "Grandpa.InvalidEquivocationProof",
Self::DuplicateOffenceReport => "Grandpa.DuplicateOffenceReport",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::PauseFailed => &[
"Attempt to signal GRANDPA pause when the authority set isn't live",
"(either paused or already pending pause).",
],
Self::ResumeFailed => &[
"Attempt to signal GRANDPA resume when the authority set isn't paused",
"(either live or already pending resume).",
],
Self::ChangePending => &["Attempt to signal GRANDPA change with one already pending."],
Self::TooSoon => &["Cannot signal forced change so soon after last."],
Self::InvalidKeyOwnershipProof => {
&["A key ownership proof provided as part of an equivocation report is invalid."]
}
Self::InvalidEquivocationProof => {
&["An equivocation proof provided as part of an equivocation report is invalid."]
}
Self::DuplicateOffenceReport => {
&["A given equivocation report is valid but already previously reported."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "New authority set has been applied."]
#[codec(index = 0u8)]
NewAuthorities {
authority_set: Vec<(sp_finality_grandpa::app::Public, u64)>,
},
#[doc = "Current authority set has been paused."]
#[codec(index = 1u8)]
Paused,
#[doc = "Current authority set has been resumed."]
#[codec(index = 2u8)]
Resumed,
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NewAuthorities { .. } => "Grandpa.NewAuthorities",
Self::Paused => "Grandpa.Paused",
Self::Resumed => "Grandpa.Resumed",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::NewAuthorities { .. } => &["New authority set has been applied."],
Self::Paused => &["Current authority set has been paused."],
Self::Resumed => &["Current authority set has been resumed."],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Report voter equivocation/misbehavior. This method will verify the"]
#[doc = "equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence"]
#[doc = "will be reported."]
#[codec(index = 0u8)]
report_equivocation {
equivocation_proof:
::std::boxed::Box<sp_finality_grandpa::EquivocationProof<primitive_types::H256, u32>>,
key_owner_proof: sp_session::MembershipProof,
},
#[doc = "Report voter equivocation/misbehavior. This method will verify the"]
#[doc = "equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence"]
#[doc = "will be reported."]
#[doc = ""]
#[doc = "This extrinsic must be called unsigned and it is expected that only"]
#[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
#[doc = "if the block author is defined it will be defined as the equivocation"]
#[doc = "reporter."]
#[codec(index = 1u8)]
report_equivocation_unsigned {
equivocation_proof:
::std::boxed::Box<sp_finality_grandpa::EquivocationProof<primitive_types::H256, u32>>,
key_owner_proof: sp_session::MembershipProof,
},
#[doc = "Note that the current authority set of the GRANDPA finality gadget has"]
#[doc = "stalled. This will trigger a forced authority set change at the beginning"]
#[doc = "of the next session, to be enacted `delay` blocks after that. The delay"]
#[doc = "should be high enough to safely assume that the block signalling the"]
#[doc = "forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters"]
#[doc = "will start the new authority set using the given finalized block as base."]
#[doc = "Only callable by root."]
#[codec(index = 2u8)]
note_stalled {
delay: u32,
best_finalized_block_number: u32,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::report_equivocation { .. } => "Grandpa.report_equivocation",
Self::report_equivocation_unsigned { .. } => "Grandpa.report_equivocation_unsigned",
Self::note_stalled { .. } => "Grandpa.note_stalled",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::report_equivocation { .. } => &[
"Report voter equivocation/misbehavior. This method will verify the",
"equivocation proof and validate the given key ownership proof",
"against the extracted offender. If both are valid, the offence",
"will be reported.",
],
Self::report_equivocation_unsigned { .. } => &[
"Report voter equivocation/misbehavior. This method will verify the",
"equivocation proof and validate the given key ownership proof",
"against the extracted offender. If both are valid, the offence",
"will be reported.",
"",
"This extrinsic must be called unsigned and it is expected that only",
"block authors will call it (validated in `ValidateUnsigned`), as such",
"if the block author is defined it will be defined as the equivocation",
"reporter.",
],
Self::note_stalled { .. } => &[
"Note that the current authority set of the GRANDPA finality gadget has",
"stalled. This will trigger a forced authority set change at the beginning",
"of the next session, to be enacted `delay` blocks after that. The delay",
"should be high enough to safely assume that the block signalling the",
"forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters",
"will start the new authority set using the given finalized block as base.",
"Only callable by root.",
],
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum StoredState<N> {
#[codec(index = 0u8)]
Live,
#[codec(index = 1u8)]
PendingPause { scheduled_at: N, delay: N },
#[codec(index = 2u8)]
Paused,
#[codec(index = 3u8)]
PendingResume { scheduled_at: N, delay: N },
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StoredPendingChange<N> {
pub scheduled_at: N,
pub delay: N,
pub next_authorities: Vec<(sp_finality_grandpa::app::Public, u64)>,
pub forced: Option<N>,
}
}
pub mod pallet_staking {
use super::*;
pub mod slashing {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SpanRecord<Balance> {
pub slashed: Balance,
pub paid_out: Balance,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SlashingSpans {
pub span_index: u32,
pub last_start: u32,
pub last_nonzero_slash: u32,
pub prior: Vec<u32>,
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct StakingLedger<AccountId, Balance> {
pub stash: AccountId,
#[codec(compact)]
pub total: Balance,
#[codec(compact)]
pub active: Balance,
pub unlocking: Vec<pallet_staking::UnlockChunk<Balance>>,
pub claimed_rewards: Vec<u32>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ElectionCompute {
#[codec(index = 0u8)]
OnChain,
#[codec(index = 1u8)]
Signed,
#[codec(index = 2u8)]
Unsigned,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Releases {
#[codec(index = 0u8)]
V1_0_0Ancient,
#[codec(index = 1u8)]
V2_0_0,
#[codec(index = 2u8)]
V3_0_0,
#[codec(index = 3u8)]
V4_0_0,
#[codec(index = 4u8)]
V5_0_0,
#[codec(index = 5u8)]
V6_0_0,
#[codec(index = 6u8)]
V6_0_1,
#[codec(index = 7u8)]
V7_0_0,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct CompactAssignments {
pub votes1: Vec<(::codec::Compact<u32>, ::codec::Compact<u16>)>,
pub votes2: Vec<(
::codec::Compact<u32>,
(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
),
::codec::Compact<u16>,
)>,
pub votes3: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 2usize],
::codec::Compact<u16>,
)>,
pub votes4: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 3usize],
::codec::Compact<u16>,
)>,
pub votes5: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 4usize],
::codec::Compact<u16>,
)>,
pub votes6: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 5usize],
::codec::Compact<u16>,
)>,
pub votes7: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 6usize],
::codec::Compact<u16>,
)>,
pub votes8: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 7usize],
::codec::Compact<u16>,
)>,
pub votes9: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 8usize],
::codec::Compact<u16>,
)>,
pub votes10: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 9usize],
::codec::Compact<u16>,
)>,
pub votes11: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 10usize],
::codec::Compact<u16>,
)>,
pub votes12: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 11usize],
::codec::Compact<u16>,
)>,
pub votes13: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 12usize],
::codec::Compact<u16>,
)>,
pub votes14: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 13usize],
::codec::Compact<u16>,
)>,
pub votes15: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 14usize],
::codec::Compact<u16>,
)>,
pub votes16: Vec<(
::codec::Compact<u32>,
[(
::codec::Compact<u16>,
::codec::Compact<::polymesh_api_client::per_things::PerU16>,
); 15usize],
::codec::Compact<u16>,
)>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum SlashingSwitch {
#[codec(index = 0u8)]
Validator,
#[codec(index = 1u8)]
ValidatorAndNominator,
#[codec(index = 2u8)]
None,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct IndividualExposure<AccountId, Balance> {
pub who: AccountId,
#[codec(compact)]
pub value: Balance,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Exposure<AccountId, Balance> {
#[codec(compact)]
pub total: Balance,
#[codec(compact)]
pub own: Balance,
pub others: Vec<pallet_staking::IndividualExposure<AccountId, Balance>>,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RewardDestination<AccountId> {
#[codec(index = 0u8)]
Staked,
#[codec(index = 1u8)]
Stash,
#[codec(index = 2u8)]
Controller,
#[codec(index = 3u8)]
Account(AccountId),
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Take the origin account as a stash and lock up `value` of its balance. `controller` will"]
#[doc = "be the account that controls it."]
#[doc = ""]
#[doc = "`value` must be more than the `minimum_balance` specified by `T::Currency`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash account."]
#[doc = ""]
#[doc = "Emits `Bonded`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Moderate complexity."]
#[doc = "- O(1)."]
#[doc = "- Three extra DB entries."]
#[doc = ""]
#[doc = "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned"]
#[doc = "unless the `origin` falls below _existential deposit_ and gets removed as dust."]
#[doc = "------------------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks"]
#[doc = "- Write: Bonded, Payee, [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
bond {
controller: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
#[codec(compact)]
value: u128,
payee: pallet_staking::RewardDestination<::polymesh_api_client::AccountId>,
},
#[doc = "Add some extra amount that have appeared in the stash `free_balance` into the balance up"]
#[doc = "for staking."]
#[doc = ""]
#[doc = "Use this if there are additional funds in your stash account that you wish to bond."]
#[doc = "Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount"]
#[doc = "that can be added."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller and"]
#[doc = "it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Bonded`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- O(1)."]
#[doc = "- One DB entry."]
#[doc = "------------"]
#[doc = "DB Weight:"]
#[doc = "- Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks"]
#[doc = "- Write: [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
#[codec(index = 1u8)]
bond_extra {
#[codec(compact)]
max_additional: u128,
},
#[doc = "Schedule a portion of the stash to be unlocked ready for transfer out after the bond"]
#[doc = "period ends. If this leaves an amount actively bonded less than"]
#[doc = "T::Currency::minimum_balance(), then it is increased to the full amount."]
#[doc = ""]
#[doc = "Once the unlock period is done, you can call `withdraw_unbonded` to actually move"]
#[doc = "the funds out of management ready for transfer."]
#[doc = ""]
#[doc = "No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)"]
#[doc = "can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need"]
#[doc = "to be called first to remove some of the chunks (if possible)."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Unbonded`."]
#[doc = ""]
#[doc = "See also [`Call::withdraw_unbonded`]."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Limited but potentially exploitable complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Each call (requires the remainder of the bonded balance to be above `minimum_balance`)"]
#[doc = " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage."]
#[doc = " The only way to clean the aforementioned storage item is also user-controlled via"]
#[doc = " `withdraw_unbonded`."]
#[doc = "- One DB entry."]
#[doc = "----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, Ledger, CurrentEra, Locks, \\[Origin Account\\]"]
#[doc = "- Write: Locks, Ledger, \\[Origin Account\\]"]
#[doc = "</weight>"]
#[codec(index = 2u8)]
unbond {
#[codec(compact)]
value: u128,
},
#[doc = "Remove any unlocked chunks from the `unlocking` queue from our management."]
#[doc = ""]
#[doc = "This essentially frees up that balance to be used by the stash account to do"]
#[doc = "whatever it wants."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Withdrawn`."]
#[doc = ""]
#[doc = "See also [`Call::unbond`]."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Could be dependent on the `origin` argument and how much `unlocking` chunks exist."]
#[doc = " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is"]
#[doc = " indirectly user-controlled. See [`unbond`] for more detail."]
#[doc = "- Contains a limited number of reads, yet the size of which could be large based on `ledger`."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "---------------"]
#[doc = "Complexity O(S) where S is the number of slashing spans to remove"]
#[doc = "Update:"]
#[doc = "- Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]"]
#[doc = "- Writes: [Origin Account], Locks, Ledger"]
#[doc = "Kill:"]
#[doc = "- Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin"]
#[doc = " Account], Locks"]
#[doc = "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,"]
#[doc = " [Origin Account], Locks"]
#[doc = "- Writes Each: SpanSlash * S"]
#[doc = "NOTE: Weight annotation is the kill scenario, we refund otherwise."]
#[doc = "# </weight>"]
#[codec(index = 3u8)]
withdraw_unbonded { num_slashing_spans: u32 },
#[doc = "Declare the desire to validate for the origin controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "-----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Era Election Status, Ledger"]
#[doc = "- Write: Nominators, Validators"]
#[doc = "# </weight>"]
#[codec(index = 4u8)]
validate {
prefs: pallet_staking::ValidatorPrefs,
},
#[doc = "Declare the desire to nominate `targets` for the origin controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era. This can only be called when"]
#[doc = "[`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- The transaction's complexity is proportional to the size of `targets` (N)"]
#[doc = "which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS)."]
#[doc = "- Both the reads and writes follow a similar pattern."]
#[doc = "---------"]
#[doc = "Weight: O(N)"]
#[doc = "where N is the number of targets"]
#[doc = "DB Weight:"]
#[doc = "- Reads: Era Election Status, Ledger, Current Era"]
#[doc = "- Writes: Validators, Nominators"]
#[doc = "# </weight>"]
#[codec(index = 5u8)]
nominate {
targets: Vec<::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>>,
},
#[doc = "Declare no desire to either validate or nominate."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains one read."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "--------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, Ledger"]
#[doc = "- Write: Validators, Nominators"]
#[doc = "# </weight>"]
#[codec(index = 6u8)]
chill,
#[doc = "(Re-)set the payment target for a controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "---------"]
#[doc = "- Weight: O(1)"]
#[doc = "- DB Weight:"]
#[doc = " - Read: Ledger"]
#[doc = " - Write: Payee"]
#[doc = "# </weight>"]
#[codec(index = 7u8)]
set_payee {
payee: pallet_staking::RewardDestination<::polymesh_api_client::AccountId>,
},
#[doc = "(Re-)set the controller of a stash."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Bonded, Ledger New Controller, Ledger Old Controller"]
#[doc = "- Write: Bonded, Ledger New Controller, Ledger Old Controller"]
#[doc = "# </weight>"]
#[codec(index = 8u8)]
set_controller {
controller: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
},
#[doc = "Sets the ideal number of validators."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Weight: O(1)"]
#[doc = "Write: Validator Count"]
#[doc = "# </weight>"]
#[codec(index = 9u8)]
set_validator_count {
#[codec(compact)]
new: u32,
},
#[doc = "Increments the ideal number of validators."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`set_validator_count`]."]
#[doc = "# </weight>"]
#[codec(index = 10u8)]
increase_validator_count {
#[codec(compact)]
additional: u32,
},
#[doc = "Scale up the ideal number of validators by a factor."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`set_validator_count`]."]
#[doc = "# </weight>"]
#[codec(index = 11u8)]
scale_validator_count {
factor: ::polymesh_api_client::per_things::Percent,
},
#[doc = "Governance committee on 2/3 rds majority can introduce a new potential identity"]
#[doc = "to the pool of permissioned entities who can run validators. Staking module uses `PermissionedIdentity`"]
#[doc = "to ensure validators have completed KYB compliance and considers them for validation."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin Required origin for adding a potential validator."]
#[doc = "* identity Validator's IdentityId."]
#[doc = "* intended_count No. of validators given identity intends to run."]
#[codec(index = 12u8)]
add_permissioned_validator {
identity: polymesh_primitives::identity_id::IdentityId,
intended_count: Option<u32>,
},
#[doc = "Remove an identity from the pool of (wannabe) validator identities. Effects are known in the next session."]
#[doc = "Staking module checks `PermissionedIdentity` to ensure validators have"]
#[doc = "completed KYB compliance"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin Required origin for removing a potential validator."]
#[doc = "* identity Validator's IdentityId."]
#[codec(index = 13u8)]
remove_permissioned_validator {
identity: polymesh_primitives::identity_id::IdentityId,
},
#[doc = "Validate the nominators CDD expiry time."]
#[doc = ""]
#[doc = "If an account from a given set of address is nominating then"]
#[doc = "check the CDD expiry time of it and if it is expired"]
#[doc = "then the account should be unbonded and removed from the nominating process."]
#[doc = ""]
#[doc = "#<weight>"]
#[doc = "- Depends on passed list of AccountId."]
#[doc = "- Depends on the no. of claim issuers an accountId has for the CDD expiry."]
#[doc = "#</weight>"]
#[codec(index = 14u8)]
validate_cdd_expiry_nominators {
targets: Vec<::polymesh_api_client::AccountId>,
},
#[doc = "Changes commission rate which applies to all validators. Only Governance"]
#[doc = "committee is allowed to change this value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `new_cap` the new commission cap."]
#[codec(index = 15u8)]
set_commission_cap {
new_cap: ::polymesh_api_client::per_things::Perbill,
},
#[doc = "Changes min bond value to be used in validate(). Only Governance"]
#[doc = "committee is allowed to change this value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `new_value` the new minimum"]
#[codec(index = 16u8)]
set_min_bond_threshold { new_value: u128 },
#[doc = "Force there to be no new eras indefinitely."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- No arguments."]
#[doc = "- Weight: O(1)"]
#[doc = "- Write: ForceEra"]
#[doc = "# </weight>"]
#[codec(index = 17u8)]
force_no_eras,
#[doc = "Force there to be a new era at the end of the next session. After this, it will be"]
#[doc = "reset to normal (non-forced) behaviour."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- No arguments."]
#[doc = "- Weight: O(1)"]
#[doc = "- Write ForceEra"]
#[doc = "# </weight>"]
#[codec(index = 18u8)]
force_new_era,
#[doc = "Set the validators who cannot be slashed (if any)."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(V)"]
#[doc = "- Write: Invulnerables"]
#[doc = "# </weight>"]
#[codec(index = 19u8)]
set_invulnerables {
invulnerables: Vec<::polymesh_api_client::AccountId>,
},
#[doc = "Force a current staker to become completely unstaked, immediately."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "O(S) where S is the number of slashing spans to be removed"]
#[doc = "Reads: Bonded, Slashing Spans, Account, Locks"]
#[doc = "Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks"]
#[doc = "Writes Each: SpanSlash * S"]
#[doc = "# </weight>"]
#[codec(index = 20u8)]
force_unstake {
stash: ::polymesh_api_client::AccountId,
num_slashing_spans: u32,
},
#[doc = "Force there to be a new era at the end of sessions indefinitely."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Weight: O(1)"]
#[doc = "- Write: ForceEra"]
#[doc = "# </weight>"]
#[codec(index = 21u8)]
force_new_era_always,
#[doc = "Cancel enactment of a deferred slash."]
#[doc = ""]
#[doc = "Can be called by the `T::SlashCancelOrigin`."]
#[doc = ""]
#[doc = "Parameters: era and indices of the slashes for that era to kill."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Complexity: O(U + S)"]
#[doc = "with U unapplied slashes weighted with U=1000"]
#[doc = "and S is the number of slash indices to be canceled."]
#[doc = "- Read: Unapplied Slashes"]
#[doc = "- Write: Unapplied Slashes"]
#[doc = "# </weight>"]
#[codec(index = 22u8)]
cancel_deferred_slash { era: u32, slash_indices: Vec<u32> },
#[doc = "Pay out all the stakers behind a single validator for a single era."]
#[doc = ""]
#[doc = "- `validator_stash` is the stash account of the validator. Their nominators, up to"]
#[doc = " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards."]
#[doc = "- `era` may be any era between `[current_era - history_depth; current_era]`."]
#[doc = ""]
#[doc = "The origin of this call must be _Signed_. Any account can call this function, even if"]
#[doc = "it is not one of the stakers."]
#[doc = ""]
#[doc = "This can only be called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Time complexity: at most O(MaxNominatorRewardedPerValidator)."]
#[doc = "- Contains a limited number of reads and writes."]
#[doc = "-----------"]
#[doc = "N is the Number of payouts for the validator (including the validator)"]
#[doc = "Weight:"]
#[doc = "- Reward Destination Staked: O(N)"]
#[doc = "- Reward Destination Controller (Creating): O(N)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,"]
#[doc = " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)"]
#[doc = "- Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)"]
#[doc = "- Write Each: System Account, Locks, Ledger (3 items)"]
#[doc = "# </weight>"]
#[codec(index = 23u8)]
payout_stakers {
validator_stash: ::polymesh_api_client::AccountId,
era: u32,
},
#[doc = "Rebond a portion of the stash scheduled to be unlocked."]
#[doc = ""]
#[doc = "The dispatch origin must be signed by the controller, and it can be only called when"]
#[doc = "[`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Time complexity: O(L), where L is unlocking chunks"]
#[doc = "- Bounded by `MAX_UNLOCKING_CHUNKS`."]
#[doc = "- Storage changes: Can't increase storage, only decrease it."]
#[doc = "---------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]"]
#[doc = " - Writes: [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
#[codec(index = 24u8)]
rebond {
#[codec(compact)]
value: u128,
},
#[doc = "Set `HistoryDepth` value. This function will delete any history information"]
#[doc = "when `HistoryDepth` is reduced."]
#[doc = ""]
#[doc = "Parameters:"]
#[doc = "- `new_history_depth`: The new history depth you would like to set."]
#[doc = "- `era_items_deleted`: The number of items that will be deleted by this dispatch."]
#[doc = " This should report all the storage items that will be deleted by clearing old"]
#[doc = " era history. Needed to report an accurate weight for the dispatch. Trusted by"]
#[doc = " `Root` to report an accurate number."]
#[doc = ""]
#[doc = "Origin must be root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- E: Number of history depths removed, i.e. 10 -> 7 = 3"]
#[doc = "- Weight: O(E)"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Current Era, History Depth"]
#[doc = " - Writes: History Depth"]
#[doc = " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs"]
#[doc = " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex"]
#[doc = "# </weight>"]
#[codec(index = 25u8)]
set_history_depth {
#[codec(compact)]
new_history_depth: u32,
#[codec(compact)]
_era_items_deleted: u32,
},
#[doc = "Remove all data structure concerning a staker/stash once its balance is at the minimum."]
#[doc = "This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone"]
#[doc = "and the target `stash` must have no funds left beyond the ED."]
#[doc = ""]
#[doc = "This can be called from any origin."]
#[doc = ""]
#[doc = "- `stash`: The stash account to reap. Its balance must be zero."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Complexity: O(S) where S is the number of slashing spans on the account."]
#[doc = "DB Weight:"]
#[doc = "- Reads: Stash Account, Bonded, Slashing Spans, Locks"]
#[doc = "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks"]
#[doc = "- Writes Each: SpanSlash * S"]
#[doc = "# </weight>"]
#[codec(index = 26u8)]
reap_stash {
stash: ::polymesh_api_client::AccountId,
num_slashing_spans: u32,
},
#[doc = "Submit an election result to the chain. If the solution:"]
#[doc = ""]
#[doc = "1. is valid."]
#[doc = "2. has a better score than a potentially existing solution on chain."]
#[doc = ""]
#[doc = "then, it will be _put_ on chain."]
#[doc = ""]
#[doc = "A solution consists of two pieces of data:"]
#[doc = ""]
#[doc = "1. `winners`: a flat vector of all the winners of the round."]
#[doc = "2. `assignments`: the compact version of an assignment vector that encodes the edge"]
#[doc = " weights."]
#[doc = ""]
#[doc = "Both of which may be computed using _phragmen_, or any other algorithm."]
#[doc = ""]
#[doc = "Additionally, the submitter must provide:"]
#[doc = ""]
#[doc = "- The `score` that they claim their solution has."]
#[doc = ""]
#[doc = "Both validators and nominators will be represented by indices in the solution. The"]
#[doc = "indices should respect the corresponding types ([`ValidatorIndex`] and"]
#[doc = "[`NominatorIndex`]). Moreover, they should be valid when used to index into"]
#[doc = "[`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the"]
#[doc = "solution to be rejected. These two storage items are set during the election window and"]
#[doc = "may be used to determine the indices."]
#[doc = ""]
#[doc = "A solution is valid if:"]
#[doc = ""]
#[doc = "0. It is submitted when [`EraElectionStatus`] is `Open`."]
#[doc = "1. Its claimed score is equal to the score computed on-chain."]
#[doc = "2. Presents the correct number of winners."]
#[doc = "3. All indexes must be value according to the snapshot vectors. All edge values must"]
#[doc = " also be correct and should not overflow the granularity of the ratio type (i.e. 256"]
#[doc = " or billion)."]
#[doc = "4. For each edge, all targets are actually nominated by the voter."]
#[doc = "5. Has correct self-votes."]
#[doc = ""]
#[doc = "A solutions score is consisted of 3 parameters:"]
#[doc = ""]
#[doc = "1. `min { support.total }` for each support of a winner. This value should be maximized."]
#[doc = "2. `sum { support.total }` for each support of a winner. This value should be minimized."]
#[doc = "3. `sum { support.total^2 }` for each support of a winner. This value should be"]
#[doc = " minimized (to ensure less variance)"]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "The transaction is assumed to be the longest path, a better solution."]
#[doc = " - Initial solution is almost the same."]
#[doc = " - Worse solution is retraced in pre-dispatch-checks which sets its own weight."]
#[doc = "# </weight>"]
#[codec(index = 27u8)]
submit_election_solution {
winners: Vec<u16>,
compact: pallet_staking::CompactAssignments,
score: sp_npos_elections::ElectionScore,
era: u32,
size: pallet_staking::ElectionSize,
},
#[doc = "Unsigned version of `submit_election_solution`."]
#[doc = ""]
#[doc = "Note that this must pass the [`ValidateUnsigned`] check which only allows transactions"]
#[doc = "from the local node to be included. In other words, only the block author can include a"]
#[doc = "transaction in the block."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "See [`submit_election_solution`]."]
#[doc = "# </weight>"]
#[codec(index = 28u8)]
submit_election_solution_unsigned {
winners: Vec<u16>,
compact: pallet_staking::CompactAssignments,
score: sp_npos_elections::ElectionScore,
era: u32,
size: pallet_staking::ElectionSize,
},
#[doc = "System version of `payout_stakers()`. Only be called by the root origin."]
#[codec(index = 29u8)]
payout_stakers_by_system {
validator_stash: ::polymesh_api_client::AccountId,
era: u32,
},
#[doc = "Switch slashing status on the basis of given `SlashingSwitch`. Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - AccountId of root."]
#[doc = "* slashing_switch - Switch used to set the targets for slashing."]
#[codec(index = 30u8)]
change_slashing_allowed_for {
slashing_switch: pallet_staking::SlashingSwitch,
},
#[doc = "Update the intended validator count for a given DID."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin which must be the required origin for adding a potential validator."]
#[doc = "* identity to add as a validator."]
#[doc = "* new_intended_count New value of intended count."]
#[codec(index = 31u8)]
update_permissioned_validator_intended_count {
identity: polymesh_primitives::identity_id::IdentityId,
new_intended_count: u32,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::bond { .. } => "Staking.bond",
Self::bond_extra { .. } => "Staking.bond_extra",
Self::unbond { .. } => "Staking.unbond",
Self::withdraw_unbonded { .. } => "Staking.withdraw_unbonded",
Self::validate { .. } => "Staking.validate",
Self::nominate { .. } => "Staking.nominate",
Self::chill => "Staking.chill",
Self::set_payee { .. } => "Staking.set_payee",
Self::set_controller { .. } => "Staking.set_controller",
Self::set_validator_count { .. } => "Staking.set_validator_count",
Self::increase_validator_count { .. } => "Staking.increase_validator_count",
Self::scale_validator_count { .. } => "Staking.scale_validator_count",
Self::add_permissioned_validator { .. } => "Staking.add_permissioned_validator",
Self::remove_permissioned_validator { .. } => "Staking.remove_permissioned_validator",
Self::validate_cdd_expiry_nominators { .. } => "Staking.validate_cdd_expiry_nominators",
Self::set_commission_cap { .. } => "Staking.set_commission_cap",
Self::set_min_bond_threshold { .. } => "Staking.set_min_bond_threshold",
Self::force_no_eras => "Staking.force_no_eras",
Self::force_new_era => "Staking.force_new_era",
Self::set_invulnerables { .. } => "Staking.set_invulnerables",
Self::force_unstake { .. } => "Staking.force_unstake",
Self::force_new_era_always => "Staking.force_new_era_always",
Self::cancel_deferred_slash { .. } => "Staking.cancel_deferred_slash",
Self::payout_stakers { .. } => "Staking.payout_stakers",
Self::rebond { .. } => "Staking.rebond",
Self::set_history_depth { .. } => "Staking.set_history_depth",
Self::reap_stash { .. } => "Staking.reap_stash",
Self::submit_election_solution { .. } => "Staking.submit_election_solution",
Self::submit_election_solution_unsigned { .. } => {
"Staking.submit_election_solution_unsigned"
}
Self::payout_stakers_by_system { .. } => "Staking.payout_stakers_by_system",
Self::change_slashing_allowed_for { .. } => "Staking.change_slashing_allowed_for",
Self::update_permissioned_validator_intended_count { .. } => {
"Staking.update_permissioned_validator_intended_count"
}
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: bond { .. } => { & ["Take the origin account as a stash and lock up `value` of its balance. `controller` will" , "be the account that controls it." , "" , "`value` must be more than the `minimum_balance` specified by `T::Currency`." , "" , "The dispatch origin for this call must be _Signed_ by the stash account." , "" , "Emits `Bonded`." , "" , "# <weight>" , "- Independent of the arguments. Moderate complexity." , "- O(1)." , "- Three extra DB entries." , "" , "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned" , "unless the `origin` falls below _existential deposit_ and gets removed as dust." , "------------------" , "Weight: O(1)" , "DB Weight:" , "- Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks" , "- Write: Bonded, Payee, [Origin Account], Locks, Ledger" , "# </weight>" ,] } , Self :: bond_extra { .. } => { & ["Add some extra amount that have appeared in the stash `free_balance` into the balance up" , "for staking." , "" , "Use this if there are additional funds in your stash account that you wish to bond." , "Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount" , "that can be added." , "" , "The dispatch origin for this call must be _Signed_ by the stash, not the controller and" , "it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "Emits `Bonded`." , "" , "# <weight>" , "- Independent of the arguments. Insignificant complexity." , "- O(1)." , "- One DB entry." , "------------" , "DB Weight:" , "- Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks" , "- Write: [Origin Account], Locks, Ledger" , "# </weight>" ,] } , Self :: unbond { .. } => { & ["Schedule a portion of the stash to be unlocked ready for transfer out after the bond" , "period ends. If this leaves an amount actively bonded less than" , "T::Currency::minimum_balance(), then it is increased to the full amount." , "" , "Once the unlock period is done, you can call `withdraw_unbonded` to actually move" , "the funds out of management ready for transfer." , "" , "No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)" , "can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need" , "to be called first to remove some of the chunks (if possible)." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "And, it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "Emits `Unbonded`." , "" , "See also [`Call::withdraw_unbonded`]." , "" , "# <weight>" , "- Independent of the arguments. Limited but potentially exploitable complexity." , "- Contains a limited number of reads." , "- Each call (requires the remainder of the bonded balance to be above `minimum_balance`)" , " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage." , " The only way to clean the aforementioned storage item is also user-controlled via" , " `withdraw_unbonded`." , "- One DB entry." , "----------" , "Weight: O(1)" , "DB Weight:" , "- Read: EraElectionStatus, Ledger, CurrentEra, Locks, \\[Origin Account\\]" , "- Write: Locks, Ledger, \\[Origin Account\\]" , "</weight>" ,] } , Self :: withdraw_unbonded { .. } => { & ["Remove any unlocked chunks from the `unlocking` queue from our management." , "" , "This essentially frees up that balance to be used by the stash account to do" , "whatever it wants." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "And, it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "Emits `Withdrawn`." , "" , "See also [`Call::unbond`]." , "" , "# <weight>" , "- Could be dependent on the `origin` argument and how much `unlocking` chunks exist." , " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is" , " indirectly user-controlled. See [`unbond`] for more detail." , "- Contains a limited number of reads, yet the size of which could be large based on `ledger`." , "- Writes are limited to the `origin` account key." , "---------------" , "Complexity O(S) where S is the number of slashing spans to remove" , "Update:" , "- Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]" , "- Writes: [Origin Account], Locks, Ledger" , "Kill:" , "- Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin" , " Account], Locks" , "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators," , " [Origin Account], Locks" , "- Writes Each: SpanSlash * S" , "NOTE: Weight annotation is the kill scenario, we refund otherwise." , "# </weight>" ,] } , Self :: validate { .. } => { & ["Declare the desire to validate for the origin controller." , "" , "Effects will be felt at the beginning of the next era." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "And, it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "# <weight>" , "- Independent of the arguments. Insignificant complexity." , "- Contains a limited number of reads." , "- Writes are limited to the `origin` account key." , "-----------" , "Weight: O(1)" , "DB Weight:" , "- Read: Era Election Status, Ledger" , "- Write: Nominators, Validators" , "# </weight>" ,] } , Self :: nominate { .. } => { & ["Declare the desire to nominate `targets` for the origin controller." , "" , "Effects will be felt at the beginning of the next era. This can only be called when" , "[`EraElectionStatus`] is `Closed`." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "And, it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "# <weight>" , "- The transaction's complexity is proportional to the size of `targets` (N)" , "which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS)." , "- Both the reads and writes follow a similar pattern." , "---------" , "Weight: O(N)" , "where N is the number of targets" , "DB Weight:" , "- Reads: Era Election Status, Ledger, Current Era" , "- Writes: Validators, Nominators" , "# </weight>" ,] } , Self :: chill => { & ["Declare no desire to either validate or nominate." , "" , "Effects will be felt at the beginning of the next era." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "And, it can be only called when [`EraElectionStatus`] is `Closed`." , "" , "# <weight>" , "- Independent of the arguments. Insignificant complexity." , "- Contains one read." , "- Writes are limited to the `origin` account key." , "--------" , "Weight: O(1)" , "DB Weight:" , "- Read: EraElectionStatus, Ledger" , "- Write: Validators, Nominators" , "# </weight>" ,] } , Self :: set_payee { .. } => { & ["(Re-)set the payment target for a controller." , "" , "Effects will be felt at the beginning of the next era." , "" , "The dispatch origin for this call must be _Signed_ by the controller, not the stash." , "" , "# <weight>" , "- Independent of the arguments. Insignificant complexity." , "- Contains a limited number of reads." , "- Writes are limited to the `origin` account key." , "---------" , "- Weight: O(1)" , "- DB Weight:" , " - Read: Ledger" , " - Write: Payee" , "# </weight>" ,] } , Self :: set_controller { .. } => { & ["(Re-)set the controller of a stash." , "" , "Effects will be felt at the beginning of the next era." , "" , "The dispatch origin for this call must be _Signed_ by the stash, not the controller." , "" , "# <weight>" , "- Independent of the arguments. Insignificant complexity." , "- Contains a limited number of reads." , "- Writes are limited to the `origin` account key." , "----------" , "Weight: O(1)" , "DB Weight:" , "- Read: Bonded, Ledger New Controller, Ledger Old Controller" , "- Write: Bonded, Ledger New Controller, Ledger Old Controller" , "# </weight>" ,] } , Self :: set_validator_count { .. } => { & ["Sets the ideal number of validators." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "Weight: O(1)" , "Write: Validator Count" , "# </weight>" ,] } , Self :: increase_validator_count { .. } => { & ["Increments the ideal number of validators." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "Same as [`set_validator_count`]." , "# </weight>" ,] } , Self :: scale_validator_count { .. } => { & ["Scale up the ideal number of validators by a factor." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "Same as [`set_validator_count`]." , "# </weight>" ,] } , Self :: add_permissioned_validator { .. } => { & ["Governance committee on 2/3 rds majority can introduce a new potential identity" , "to the pool of permissioned entities who can run validators. Staking module uses `PermissionedIdentity`" , "to ensure validators have completed KYB compliance and considers them for validation." , "" , "# Arguments" , "* origin Required origin for adding a potential validator." , "* identity Validator's IdentityId." , "* intended_count No. of validators given identity intends to run." ,] } , Self :: remove_permissioned_validator { .. } => { & ["Remove an identity from the pool of (wannabe) validator identities. Effects are known in the next session." , "Staking module checks `PermissionedIdentity` to ensure validators have" , "completed KYB compliance" , "" , "# Arguments" , "* origin Required origin for removing a potential validator." , "* identity Validator's IdentityId." ,] } , Self :: validate_cdd_expiry_nominators { .. } => { & ["Validate the nominators CDD expiry time." , "" , "If an account from a given set of address is nominating then" , "check the CDD expiry time of it and if it is expired" , "then the account should be unbonded and removed from the nominating process." , "" , "#<weight>" , "- Depends on passed list of AccountId." , "- Depends on the no. of claim issuers an accountId has for the CDD expiry." , "#</weight>" ,] } , Self :: set_commission_cap { .. } => { & ["Changes commission rate which applies to all validators. Only Governance" , "committee is allowed to change this value." , "" , "# Arguments" , "* `new_cap` the new commission cap." ,] } , Self :: set_min_bond_threshold { .. } => { & ["Changes min bond value to be used in validate(). Only Governance" , "committee is allowed to change this value." , "" , "# Arguments" , "* `new_value` the new minimum" ,] } , Self :: force_no_eras => { & ["Force there to be no new eras indefinitely." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "- No arguments." , "- Weight: O(1)" , "- Write: ForceEra" , "# </weight>" ,] } , Self :: force_new_era => { & ["Force there to be a new era at the end of the next session. After this, it will be" , "reset to normal (non-forced) behaviour." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "- No arguments." , "- Weight: O(1)" , "- Write ForceEra" , "# </weight>" ,] } , Self :: set_invulnerables { .. } => { & ["Set the validators who cannot be slashed (if any)." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "- O(V)" , "- Write: Invulnerables" , "# </weight>" ,] } , Self :: force_unstake { .. } => { & ["Force a current staker to become completely unstaked, immediately." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "O(S) where S is the number of slashing spans to be removed" , "Reads: Bonded, Slashing Spans, Account, Locks" , "Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks" , "Writes Each: SpanSlash * S" , "# </weight>" ,] } , Self :: force_new_era_always => { & ["Force there to be a new era at the end of sessions indefinitely." , "" , "The dispatch origin must be Root." , "" , "# <weight>" , "- Weight: O(1)" , "- Write: ForceEra" , "# </weight>" ,] } , Self :: cancel_deferred_slash { .. } => { & ["Cancel enactment of a deferred slash." , "" , "Can be called by the `T::SlashCancelOrigin`." , "" , "Parameters: era and indices of the slashes for that era to kill." , "" , "# <weight>" , "Complexity: O(U + S)" , "with U unapplied slashes weighted with U=1000" , "and S is the number of slash indices to be canceled." , "- Read: Unapplied Slashes" , "- Write: Unapplied Slashes" , "# </weight>" ,] } , Self :: payout_stakers { .. } => { & ["Pay out all the stakers behind a single validator for a single era." , "" , "- `validator_stash` is the stash account of the validator. Their nominators, up to" , " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards." , "- `era` may be any era between `[current_era - history_depth; current_era]`." , "" , "The origin of this call must be _Signed_. Any account can call this function, even if" , "it is not one of the stakers." , "" , "This can only be called when [`EraElectionStatus`] is `Closed`." , "" , "# <weight>" , "- Time complexity: at most O(MaxNominatorRewardedPerValidator)." , "- Contains a limited number of reads and writes." , "-----------" , "N is the Number of payouts for the validator (including the validator)" , "Weight:" , "- Reward Destination Staked: O(N)" , "- Reward Destination Controller (Creating): O(N)" , "DB Weight:" , "- Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward," , " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)" , "- Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)" , "- Write Each: System Account, Locks, Ledger (3 items)" , "# </weight>" ,] } , Self :: rebond { .. } => { & ["Rebond a portion of the stash scheduled to be unlocked." , "" , "The dispatch origin must be signed by the controller, and it can be only called when" , "[`EraElectionStatus`] is `Closed`." , "" , "# <weight>" , "- Time complexity: O(L), where L is unlocking chunks" , "- Bounded by `MAX_UNLOCKING_CHUNKS`." , "- Storage changes: Can't increase storage, only decrease it." , "---------------" , "- DB Weight:" , " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]" , " - Writes: [Origin Account], Locks, Ledger" , "# </weight>" ,] } , Self :: set_history_depth { .. } => { & ["Set `HistoryDepth` value. This function will delete any history information" , "when `HistoryDepth` is reduced." , "" , "Parameters:" , "- `new_history_depth`: The new history depth you would like to set." , "- `era_items_deleted`: The number of items that will be deleted by this dispatch." , " This should report all the storage items that will be deleted by clearing old" , " era history. Needed to report an accurate weight for the dispatch. Trusted by" , " `Root` to report an accurate number." , "" , "Origin must be root." , "" , "# <weight>" , "- E: Number of history depths removed, i.e. 10 -> 7 = 3" , "- Weight: O(E)" , "- DB Weight:" , " - Reads: Current Era, History Depth" , " - Writes: History Depth" , " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs" , " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex" , "# </weight>" ,] } , Self :: reap_stash { .. } => { & ["Remove all data structure concerning a staker/stash once its balance is at the minimum." , "This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone" , "and the target `stash` must have no funds left beyond the ED." , "" , "This can be called from any origin." , "" , "- `stash`: The stash account to reap. Its balance must be zero." , "" , "# <weight>" , "Complexity: O(S) where S is the number of slashing spans on the account." , "DB Weight:" , "- Reads: Stash Account, Bonded, Slashing Spans, Locks" , "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks" , "- Writes Each: SpanSlash * S" , "# </weight>" ,] } , Self :: submit_election_solution { .. } => { & ["Submit an election result to the chain. If the solution:" , "" , "1. is valid." , "2. has a better score than a potentially existing solution on chain." , "" , "then, it will be _put_ on chain." , "" , "A solution consists of two pieces of data:" , "" , "1. `winners`: a flat vector of all the winners of the round." , "2. `assignments`: the compact version of an assignment vector that encodes the edge" , " weights." , "" , "Both of which may be computed using _phragmen_, or any other algorithm." , "" , "Additionally, the submitter must provide:" , "" , "- The `score` that they claim their solution has." , "" , "Both validators and nominators will be represented by indices in the solution. The" , "indices should respect the corresponding types ([`ValidatorIndex`] and" , "[`NominatorIndex`]). Moreover, they should be valid when used to index into" , "[`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the" , "solution to be rejected. These two storage items are set during the election window and" , "may be used to determine the indices." , "" , "A solution is valid if:" , "" , "0. It is submitted when [`EraElectionStatus`] is `Open`." , "1. Its claimed score is equal to the score computed on-chain." , "2. Presents the correct number of winners." , "3. All indexes must be value according to the snapshot vectors. All edge values must" , " also be correct and should not overflow the granularity of the ratio type (i.e. 256" , " or billion)." , "4. For each edge, all targets are actually nominated by the voter." , "5. Has correct self-votes." , "" , "A solutions score is consisted of 3 parameters:" , "" , "1. `min { support.total }` for each support of a winner. This value should be maximized." , "2. `sum { support.total }` for each support of a winner. This value should be minimized." , "3. `sum { support.total^2 }` for each support of a winner. This value should be" , " minimized (to ensure less variance)" , "" , "# <weight>" , "The transaction is assumed to be the longest path, a better solution." , " - Initial solution is almost the same." , " - Worse solution is retraced in pre-dispatch-checks which sets its own weight." , "# </weight>" ,] } , Self :: submit_election_solution_unsigned { .. } => { & ["Unsigned version of `submit_election_solution`." , "" , "Note that this must pass the [`ValidateUnsigned`] check which only allows transactions" , "from the local node to be included. In other words, only the block author can include a" , "transaction in the block." , "" , "# <weight>" , "See [`submit_election_solution`]." , "# </weight>" ,] } , Self :: payout_stakers_by_system { .. } => { & ["System version of `payout_stakers()`. Only be called by the root origin." ,] } , Self :: change_slashing_allowed_for { .. } => { & ["Switch slashing status on the basis of given `SlashingSwitch`. Can only be called by root." , "" , "# Arguments" , "* origin - AccountId of root." , "* slashing_switch - Switch used to set the targets for slashing." ,] } , Self :: update_permissioned_validator_intended_count { .. } => { & ["Update the intended validator count for a given DID." , "" , "# Arguments" , "* origin which must be the required origin for adding a potential validator." , "* identity to add as a validator." , "* new_intended_count New value of intended count." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ActiveEraInfo {
pub index: u32,
pub start: Option<u64>,
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Balance, AccountId> {
#[doc = "The era payout has been set; the first balance is the validator-payout; the second is"]
#[doc = "the remainder from the maximum amount of reward."]
#[doc = "\\[era_index, validator_payout, remainder\\]"]
#[codec(index = 0u8)]
EraPayout(u32, Balance, Balance),
#[doc = "The staker has been rewarded by this amount. \\[stash_identity, stash, amount\\]"]
#[codec(index = 1u8)]
Reward(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Balance,
),
#[doc = "One validator (and its nominators) has been slashed by the given amount."]
#[doc = "\\[validator, amount\\]"]
#[codec(index = 2u8)]
Slash(AccountId, Balance),
#[doc = "An old slashing report from a prior era was discarded because it could"]
#[doc = "not be processed. \\[session_index\\]"]
#[codec(index = 3u8)]
OldSlashingReportDiscarded(u32),
#[doc = "A new set of stakers was elected with the given \\[compute\\]."]
#[codec(index = 4u8)]
StakingElection(pallet_staking::ElectionCompute),
#[doc = "A new solution for the upcoming election has been stored. \\[compute\\]"]
#[codec(index = 5u8)]
SolutionStored(pallet_staking::ElectionCompute),
#[doc = "An account has bonded this amount. \\[did, stash, amount\\]"]
#[doc = ""]
#[doc = "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,"]
#[doc = "it will not be emitted for staking rewards when they are added to stake."]
#[codec(index = 6u8)]
Bonded(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Balance,
),
#[doc = "An account has unbonded this amount. \\[did, stash, amount\\]"]
#[codec(index = 7u8)]
Unbonded(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Balance,
),
#[doc = "User has updated their nominations"]
#[codec(index = 8u8)]
Nominated(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Vec<AccountId>,
),
#[doc = "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`"]
#[doc = "from the unlocking queue. \\[stash, amount\\]"]
#[codec(index = 9u8)]
Withdrawn(AccountId, Balance),
#[doc = "An DID has issued a candidacy. See the transaction for who."]
#[doc = "GC identity , Validator's identity."]
#[codec(index = 10u8)]
PermissionedIdentityAdded(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "The given member was removed. See the transaction for who."]
#[doc = "GC identity , Validator's identity."]
#[codec(index = 11u8)]
PermissionedIdentityRemoved(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
),
#[doc = "Remove the nominators from the valid nominators when there CDD expired."]
#[doc = "Caller, Stash accountId of nominators"]
#[codec(index = 12u8)]
InvalidatedNominators(
polymesh_primitives::identity_id::IdentityId,
AccountId,
Vec<AccountId>,
),
#[doc = "When commission cap get updated."]
#[doc = "(old value, new value)"]
#[codec(index = 13u8)]
CommissionCapUpdated(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Perbill,
::polymesh_api_client::per_things::Perbill,
),
#[doc = "Min bond threshold was updated (new value)."]
#[codec(index = 14u8)]
MinimumBondThresholdUpdated(
Option<polymesh_primitives::identity_id::IdentityId>,
Balance,
),
#[doc = "When scheduling of reward payments get interrupted."]
#[codec(index = 15u8)]
RewardPaymentSchedulingInterrupted(AccountId, u32, sp_runtime::DispatchError),
#[doc = "Update for whom balance get slashed."]
#[codec(index = 16u8)]
SlashingAllowedForChanged(pallet_staking::SlashingSwitch),
}
impl<Balance, AccountId> RawEvent<Balance, AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::EraPayout(_, _, _) => "Staking.EraPayout",
Self::Reward(_, _, _) => "Staking.Reward",
Self::Slash(_, _) => "Staking.Slash",
Self::OldSlashingReportDiscarded(_) => "Staking.OldSlashingReportDiscarded",
Self::StakingElection(_) => "Staking.StakingElection",
Self::SolutionStored(_) => "Staking.SolutionStored",
Self::Bonded(_, _, _) => "Staking.Bonded",
Self::Unbonded(_, _, _) => "Staking.Unbonded",
Self::Nominated(_, _, _) => "Staking.Nominated",
Self::Withdrawn(_, _) => "Staking.Withdrawn",
Self::PermissionedIdentityAdded(_, _) => "Staking.PermissionedIdentityAdded",
Self::PermissionedIdentityRemoved(_, _) => "Staking.PermissionedIdentityRemoved",
Self::InvalidatedNominators(_, _, _) => "Staking.InvalidatedNominators",
Self::CommissionCapUpdated(_, _, _) => "Staking.CommissionCapUpdated",
Self::MinimumBondThresholdUpdated(_, _) => "Staking.MinimumBondThresholdUpdated",
Self::RewardPaymentSchedulingInterrupted(_, _, _) => {
"Staking.RewardPaymentSchedulingInterrupted"
}
Self::SlashingAllowedForChanged(_) => "Staking.SlashingAllowedForChanged",
_ => "Unknown",
}
}
}
impl<Balance, AccountId> ::polymesh_api_client::EnumInfo for RawEvent<Balance, AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: EraPayout (_ , _ , _) => { & ["The era payout has been set; the first balance is the validator-payout; the second is" , "the remainder from the maximum amount of reward." , "\\[era_index, validator_payout, remainder\\]" ,] } , Self :: Reward (_ , _ , _) => { & ["The staker has been rewarded by this amount. \\[stash_identity, stash, amount\\]" ,] } , Self :: Slash (_ , _) => { & ["One validator (and its nominators) has been slashed by the given amount." , "\\[validator, amount\\]" ,] } , Self :: OldSlashingReportDiscarded (_) => { & ["An old slashing report from a prior era was discarded because it could" , "not be processed. \\[session_index\\]" ,] } , Self :: StakingElection (_) => { & ["A new set of stakers was elected with the given \\[compute\\]." ,] } , Self :: SolutionStored (_) => { & ["A new solution for the upcoming election has been stored. \\[compute\\]" ,] } , Self :: Bonded (_ , _ , _) => { & ["An account has bonded this amount. \\[did, stash, amount\\]" , "" , "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably," , "it will not be emitted for staking rewards when they are added to stake." ,] } , Self :: Unbonded (_ , _ , _) => { & ["An account has unbonded this amount. \\[did, stash, amount\\]" ,] } , Self :: Nominated (_ , _ , _) => { & ["User has updated their nominations" ,] } , Self :: Withdrawn (_ , _) => { & ["An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`" , "from the unlocking queue. \\[stash, amount\\]" ,] } , Self :: PermissionedIdentityAdded (_ , _) => { & ["An DID has issued a candidacy. See the transaction for who." , "GC identity , Validator's identity." ,] } , Self :: PermissionedIdentityRemoved (_ , _) => { & ["The given member was removed. See the transaction for who." , "GC identity , Validator's identity." ,] } , Self :: InvalidatedNominators (_ , _ , _) => { & ["Remove the nominators from the valid nominators when there CDD expired." , "Caller, Stash accountId of nominators" ,] } , Self :: CommissionCapUpdated (_ , _ , _) => { & ["When commission cap get updated." , "(old value, new value)" ,] } , Self :: MinimumBondThresholdUpdated (_ , _) => { & ["Min bond threshold was updated (new value)." ,] } , Self :: RewardPaymentSchedulingInterrupted (_ , _ , _) => { & ["When scheduling of reward payments get interrupted." ,] } , Self :: SlashingAllowedForChanged (_) => { & ["Update for whom balance get slashed." ,] } , _ => & [""] , }
}
}
impl<Balance, AccountId> From<RawEvent<Balance, AccountId>> for &'static str {
fn from(v: RawEvent<Balance, AccountId>) -> Self {
v.as_static_str()
}
}
impl<Balance, AccountId> From<&RawEvent<Balance, AccountId>> for &'static str {
fn from(v: &RawEvent<Balance, AccountId>) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ElectionResult<AccountId, Balance> {
pub elected_stashes: Vec<AccountId>,
pub exposures: Vec<(AccountId, pallet_staking::Exposure<AccountId, Balance>)>,
pub compute: pallet_staking::ElectionCompute,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ElectionSize {
#[codec(compact)]
pub validators: u16,
#[codec(compact)]
pub nominators: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum ElectionStatus<BlockNumber> {
#[codec(index = 0u8)]
Closed,
#[codec(index = 1u8)]
Open(BlockNumber),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct PermissionedIdentityPrefs {
pub intended_count: u32,
pub running_count: u32,
}
#[doc = "Error for the staking module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Not a controller account."]
#[codec(index = 0u8)]
NotController,
#[doc = "Not a stash account."]
#[codec(index = 1u8)]
NotStash,
#[doc = "Stash is already bonded."]
#[codec(index = 2u8)]
AlreadyBonded,
#[doc = "Controller is already paired."]
#[codec(index = 3u8)]
AlreadyPaired,
#[doc = "Targets cannot be empty."]
#[codec(index = 4u8)]
EmptyTargets,
#[doc = "Slash record index out of bounds."]
#[codec(index = 5u8)]
InvalidSlashIndex,
#[doc = "Can not bond with value less than minimum balance."]
#[codec(index = 6u8)]
InsufficientValue,
#[doc = "Can not schedule more unlock chunks."]
#[codec(index = 7u8)]
NoMoreChunks,
#[doc = "Can not rebond without unlocking chunks."]
#[codec(index = 8u8)]
NoUnlockChunk,
#[doc = "Attempting to target a stash that still has funds."]
#[codec(index = 9u8)]
FundedTarget,
#[doc = "Invalid era to reward."]
#[codec(index = 10u8)]
InvalidEraToReward,
#[doc = "Items are not sorted and unique."]
#[codec(index = 11u8)]
NotSortedAndUnique,
#[doc = "Rewards for this era have already been claimed for this validator."]
#[codec(index = 12u8)]
AlreadyClaimed,
#[doc = "The submitted result is received out of the open window."]
#[codec(index = 13u8)]
OffchainElectionEarlySubmission,
#[doc = "The submitted result is not as good as the one stored on chain."]
#[codec(index = 14u8)]
OffchainElectionWeakSubmission,
#[doc = "The snapshot data of the current window is missing."]
#[codec(index = 15u8)]
SnapshotUnavailable,
#[doc = "Incorrect number of winners were presented."]
#[codec(index = 16u8)]
OffchainElectionBogusWinnerCount,
#[doc = "One of the submitted winners is not an active candidate on chain (index is out of range"]
#[doc = "in snapshot)."]
#[codec(index = 17u8)]
OffchainElectionBogusWinner,
#[doc = "Error while building the assignment type from the compact. This can happen if an index"]
#[doc = "is invalid, or if the weights _overflow_."]
#[codec(index = 18u8)]
OffchainElectionBogusCompact,
#[doc = "One of the submitted nominators is not an active nominator on chain."]
#[codec(index = 19u8)]
OffchainElectionBogusNominator,
#[doc = "One of the submitted nominators has an edge to which they have not voted on chain."]
#[codec(index = 20u8)]
OffchainElectionBogusNomination,
#[doc = "One of the submitted nominators has an edge which is submitted before the last non-zero"]
#[doc = "slash of the target."]
#[codec(index = 21u8)]
OffchainElectionSlashedNomination,
#[doc = "A self vote must only be originated from a validator to ONLY themselves."]
#[codec(index = 22u8)]
OffchainElectionBogusSelfVote,
#[doc = "The submitted result has unknown edges that are not among the presented winners."]
#[codec(index = 23u8)]
OffchainElectionBogusEdge,
#[doc = "The claimed score does not match with the one computed from the data."]
#[codec(index = 24u8)]
OffchainElectionBogusScore,
#[doc = "The election size is invalid."]
#[codec(index = 25u8)]
OffchainElectionBogusElectionSize,
#[doc = "The call is not allowed at the given time due to restrictions of election period."]
#[codec(index = 26u8)]
CallNotAllowed,
#[doc = "Incorrect number of slashing spans provided."]
#[codec(index = 27u8)]
IncorrectSlashingSpans,
#[doc = "Permissioned validator already exists."]
#[codec(index = 28u8)]
AlreadyExists,
#[doc = "Permissioned validator not exists."]
#[codec(index = 29u8)]
NotExists,
#[doc = "Updates with same value."]
#[codec(index = 30u8)]
NoChange,
#[doc = "Given potential validator identity is invalid."]
#[codec(index = 31u8)]
InvalidValidatorIdentity,
#[doc = "Validator prefs are not in valid range."]
#[codec(index = 32u8)]
InvalidValidatorCommission,
#[doc = "Validator or nominator stash identity does not exist."]
#[codec(index = 33u8)]
StashIdentityDoesNotExist,
#[doc = "Validator stash identity was not permissioned."]
#[codec(index = 34u8)]
StashIdentityNotPermissioned,
#[doc = "Nominator stash was not CDDed."]
#[codec(index = 35u8)]
StashIdentityNotCDDed,
#[doc = "Running validator count hit the intended count."]
#[codec(index = 36u8)]
HitIntendedValidatorCount,
#[doc = "When the intended number of validators to run is >= 2/3 of `validator_count`."]
#[codec(index = 37u8)]
IntendedCountIsExceedingConsensusLimit,
#[doc = "When the amount to be bonded is less than `MinimumBond`"]
#[codec(index = 38u8)]
BondTooSmall,
#[doc = "Internal state has become somehow corrupted and the operation cannot continue."]
#[codec(index = 39u8)]
BadState,
#[doc = "Too many nomination targets supplied."]
#[codec(index = 40u8)]
TooManyTargets,
#[doc = "A nomination target was supplied that was blocked or otherwise not a validator."]
#[codec(index = 41u8)]
BadTarget,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::NotController => "Staking.NotController",
Self::NotStash => "Staking.NotStash",
Self::AlreadyBonded => "Staking.AlreadyBonded",
Self::AlreadyPaired => "Staking.AlreadyPaired",
Self::EmptyTargets => "Staking.EmptyTargets",
Self::InvalidSlashIndex => "Staking.InvalidSlashIndex",
Self::InsufficientValue => "Staking.InsufficientValue",
Self::NoMoreChunks => "Staking.NoMoreChunks",
Self::NoUnlockChunk => "Staking.NoUnlockChunk",
Self::FundedTarget => "Staking.FundedTarget",
Self::InvalidEraToReward => "Staking.InvalidEraToReward",
Self::NotSortedAndUnique => "Staking.NotSortedAndUnique",
Self::AlreadyClaimed => "Staking.AlreadyClaimed",
Self::OffchainElectionEarlySubmission => "Staking.OffchainElectionEarlySubmission",
Self::OffchainElectionWeakSubmission => "Staking.OffchainElectionWeakSubmission",
Self::SnapshotUnavailable => "Staking.SnapshotUnavailable",
Self::OffchainElectionBogusWinnerCount => "Staking.OffchainElectionBogusWinnerCount",
Self::OffchainElectionBogusWinner => "Staking.OffchainElectionBogusWinner",
Self::OffchainElectionBogusCompact => "Staking.OffchainElectionBogusCompact",
Self::OffchainElectionBogusNominator => "Staking.OffchainElectionBogusNominator",
Self::OffchainElectionBogusNomination => "Staking.OffchainElectionBogusNomination",
Self::OffchainElectionSlashedNomination => "Staking.OffchainElectionSlashedNomination",
Self::OffchainElectionBogusSelfVote => "Staking.OffchainElectionBogusSelfVote",
Self::OffchainElectionBogusEdge => "Staking.OffchainElectionBogusEdge",
Self::OffchainElectionBogusScore => "Staking.OffchainElectionBogusScore",
Self::OffchainElectionBogusElectionSize => "Staking.OffchainElectionBogusElectionSize",
Self::CallNotAllowed => "Staking.CallNotAllowed",
Self::IncorrectSlashingSpans => "Staking.IncorrectSlashingSpans",
Self::AlreadyExists => "Staking.AlreadyExists",
Self::NotExists => "Staking.NotExists",
Self::NoChange => "Staking.NoChange",
Self::InvalidValidatorIdentity => "Staking.InvalidValidatorIdentity",
Self::InvalidValidatorCommission => "Staking.InvalidValidatorCommission",
Self::StashIdentityDoesNotExist => "Staking.StashIdentityDoesNotExist",
Self::StashIdentityNotPermissioned => "Staking.StashIdentityNotPermissioned",
Self::StashIdentityNotCDDed => "Staking.StashIdentityNotCDDed",
Self::HitIntendedValidatorCount => "Staking.HitIntendedValidatorCount",
Self::IntendedCountIsExceedingConsensusLimit => {
"Staking.IntendedCountIsExceedingConsensusLimit"
}
Self::BondTooSmall => "Staking.BondTooSmall",
Self::BadState => "Staking.BadState",
Self::TooManyTargets => "Staking.TooManyTargets",
Self::BadTarget => "Staking.BadTarget",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: NotController => { & ["Not a controller account." ,] } , Self :: NotStash => { & ["Not a stash account." ,] } , Self :: AlreadyBonded => { & ["Stash is already bonded." ,] } , Self :: AlreadyPaired => { & ["Controller is already paired." ,] } , Self :: EmptyTargets => { & ["Targets cannot be empty." ,] } , Self :: InvalidSlashIndex => { & ["Slash record index out of bounds." ,] } , Self :: InsufficientValue => { & ["Can not bond with value less than minimum balance." ,] } , Self :: NoMoreChunks => { & ["Can not schedule more unlock chunks." ,] } , Self :: NoUnlockChunk => { & ["Can not rebond without unlocking chunks." ,] } , Self :: FundedTarget => { & ["Attempting to target a stash that still has funds." ,] } , Self :: InvalidEraToReward => { & ["Invalid era to reward." ,] } , Self :: NotSortedAndUnique => { & ["Items are not sorted and unique." ,] } , Self :: AlreadyClaimed => { & ["Rewards for this era have already been claimed for this validator." ,] } , Self :: OffchainElectionEarlySubmission => { & ["The submitted result is received out of the open window." ,] } , Self :: OffchainElectionWeakSubmission => { & ["The submitted result is not as good as the one stored on chain." ,] } , Self :: SnapshotUnavailable => { & ["The snapshot data of the current window is missing." ,] } , Self :: OffchainElectionBogusWinnerCount => { & ["Incorrect number of winners were presented." ,] } , Self :: OffchainElectionBogusWinner => { & ["One of the submitted winners is not an active candidate on chain (index is out of range" , "in snapshot)." ,] } , Self :: OffchainElectionBogusCompact => { & ["Error while building the assignment type from the compact. This can happen if an index" , "is invalid, or if the weights _overflow_." ,] } , Self :: OffchainElectionBogusNominator => { & ["One of the submitted nominators is not an active nominator on chain." ,] } , Self :: OffchainElectionBogusNomination => { & ["One of the submitted nominators has an edge to which they have not voted on chain." ,] } , Self :: OffchainElectionSlashedNomination => { & ["One of the submitted nominators has an edge which is submitted before the last non-zero" , "slash of the target." ,] } , Self :: OffchainElectionBogusSelfVote => { & ["A self vote must only be originated from a validator to ONLY themselves." ,] } , Self :: OffchainElectionBogusEdge => { & ["The submitted result has unknown edges that are not among the presented winners." ,] } , Self :: OffchainElectionBogusScore => { & ["The claimed score does not match with the one computed from the data." ,] } , Self :: OffchainElectionBogusElectionSize => { & ["The election size is invalid." ,] } , Self :: CallNotAllowed => { & ["The call is not allowed at the given time due to restrictions of election period." ,] } , Self :: IncorrectSlashingSpans => { & ["Incorrect number of slashing spans provided." ,] } , Self :: AlreadyExists => { & ["Permissioned validator already exists." ,] } , Self :: NotExists => { & ["Permissioned validator not exists." ,] } , Self :: NoChange => { & ["Updates with same value." ,] } , Self :: InvalidValidatorIdentity => { & ["Given potential validator identity is invalid." ,] } , Self :: InvalidValidatorCommission => { & ["Validator prefs are not in valid range." ,] } , Self :: StashIdentityDoesNotExist => { & ["Validator or nominator stash identity does not exist." ,] } , Self :: StashIdentityNotPermissioned => { & ["Validator stash identity was not permissioned." ,] } , Self :: StashIdentityNotCDDed => { & ["Nominator stash was not CDDed." ,] } , Self :: HitIntendedValidatorCount => { & ["Running validator count hit the intended count." ,] } , Self :: IntendedCountIsExceedingConsensusLimit => { & ["When the intended number of validators to run is >= 2/3 of `validator_count`." ,] } , Self :: BondTooSmall => { & ["When the amount to be bonded is less than `MinimumBond`" ,] } , Self :: BadState => { & ["Internal state has become somehow corrupted and the operation cannot continue." ,] } , Self :: TooManyTargets => { & ["Too many nomination targets supplied." ,] } , Self :: BadTarget => { & ["A nomination target was supplied that was blocked or otherwise not a validator." ,] } , _ => & [""] , }
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct UnlockChunk<Balance> {
#[codec(compact)]
pub value: Balance,
#[codec(compact)]
pub era: u32,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Nominations<AccountId> {
pub targets: Vec<AccountId>,
pub submitted_in: u32,
pub suppressed: bool,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Forcing {
#[codec(index = 0u8)]
NotForcing,
#[codec(index = 1u8)]
ForceNew,
#[codec(index = 2u8)]
ForceNone,
#[codec(index = 3u8)]
ForceAlways,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct ValidatorPrefs {
#[codec(compact)]
pub commission: ::polymesh_api_client::per_things::Perbill,
pub blocked: bool,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct UnappliedSlash<AccountId, Balance> {
pub validator: AccountId,
pub own: Balance,
pub others: Vec<(AccountId, Balance)>,
pub reporters: Vec<AccountId>,
pub payout: Balance,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct EraRewardPoints<AccountId: Ord> {
pub total: u32,
pub individual: std::collections::BTreeMap<AccountId, u32>,
}
}
pub mod pallet_treasury {
use super::*;
#[doc = "Error for the treasury module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Proposer's balance is too low."]
#[codec(index = 0u8)]
InsufficientBalance,
#[doc = "Invalid identity for disbursement."]
#[codec(index = 1u8)]
InvalidIdentity,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::InsufficientBalance => "Treasury.InsufficientBalance",
Self::InvalidIdentity => "Treasury.InvalidIdentity",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::InsufficientBalance => &["Proposer's balance is too low."],
Self::InvalidIdentity => &["Invalid identity for disbursement."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Events for this module."]
#[doc = ""]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RawEvent<Balance, AccountId> {
#[doc = "Disbursement to a target Identity."]
#[doc = ""]
#[doc = "(treasury identity, target identity, target primary key, amount)"]
#[codec(index = 0u8)]
TreasuryDisbursement(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
AccountId,
Balance,
),
#[doc = "Disbursement to a target Identity failed."]
#[doc = ""]
#[doc = "(treasury identity, target identity, target primary key, amount)"]
#[codec(index = 1u8)]
TreasuryDisbursementFailed(
polymesh_primitives::identity_id::IdentityId,
polymesh_primitives::identity_id::IdentityId,
AccountId,
Balance,
),
#[doc = "Treasury reimbursement."]
#[doc = ""]
#[doc = "(source identity, amount)"]
#[codec(index = 2u8)]
TreasuryReimbursement(polymesh_primitives::identity_id::IdentityId, Balance),
}
impl<Balance, AccountId> RawEvent<Balance, AccountId> {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::TreasuryDisbursement(_, _, _, _) => "Treasury.TreasuryDisbursement",
Self::TreasuryDisbursementFailed(_, _, _, _) => "Treasury.TreasuryDisbursementFailed",
Self::TreasuryReimbursement(_, _) => "Treasury.TreasuryReimbursement",
_ => "Unknown",
}
}
}
impl<Balance, AccountId> ::polymesh_api_client::EnumInfo for RawEvent<Balance, AccountId> {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::TreasuryDisbursement(_, _, _, _) => &[
"Disbursement to a target Identity.",
"",
"(treasury identity, target identity, target primary key, amount)",
],
Self::TreasuryDisbursementFailed(_, _, _, _) => &[
"Disbursement to a target Identity failed.",
"",
"(treasury identity, target identity, target primary key, amount)",
],
Self::TreasuryReimbursement(_, _) => {
&["Treasury reimbursement.", "", "(source identity, amount)"]
}
_ => &[""],
}
}
}
impl<Balance, AccountId> From<RawEvent<Balance, AccountId>> for &'static str {
fn from(v: RawEvent<Balance, AccountId>) -> Self {
v.as_static_str()
}
}
impl<Balance, AccountId> From<&RawEvent<Balance, AccountId>> for &'static str {
fn from(v: &RawEvent<Balance, AccountId>) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "It transfers balances from treasury to each of beneficiaries and the specific amount"]
#[doc = "for each of them."]
#[doc = ""]
#[doc = "# Error"]
#[doc = "* `BadOrigin`: Only root can execute transaction."]
#[doc = "* `InsufficientBalance`: If treasury balances is not enough to cover all beneficiaries."]
#[doc = "* `InvalidIdentity`: If one of the beneficiaries has an invalid identity."]
#[codec(index = 0u8)]
disbursement {
beneficiaries: Vec<polymesh_primitives::Beneficiary<u128>>,
},
#[doc = "It transfers the specific `amount` from `origin` account into treasury."]
#[doc = ""]
#[doc = "Only accounts which are associated to an identity can make a donation to treasury."]
#[codec(index = 1u8)]
reimbursement { amount: u128 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::disbursement { .. } => "Treasury.disbursement",
Self::reimbursement { .. } => "Treasury.reimbursement",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: disbursement { .. } => { & ["It transfers balances from treasury to each of beneficiaries and the specific amount" , "for each of them." , "" , "# Error" , "* `BadOrigin`: Only root can execute transaction." , "* `InsufficientBalance`: If treasury balances is not enough to cover all beneficiaries." , "* `InvalidIdentity`: If one of the beneficiaries has an invalid identity." ,] } , Self :: reimbursement { .. } => { & ["It transfers the specific `amount` from `origin` account into treasury." , "" , "Only accounts which are associated to an identity can make a donation to treasury." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_preimage {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Register a preimage on-chain."]
#[doc = ""]
#[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"]
#[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."]
#[codec(index = 0u8)]
note_preimage { bytes: Vec<u8> },
#[doc = "Clear an unrequested preimage from the runtime storage."]
#[codec(index = 1u8)]
unnote_preimage { hash: primitive_types::H256 },
#[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."]
#[doc = ""]
#[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"]
#[doc = "a user may have paid, and take the control of the preimage out of their hands."]
#[codec(index = 2u8)]
request_preimage { hash: primitive_types::H256 },
#[doc = "Clear a previously made request for a preimage."]
#[doc = ""]
#[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."]
#[codec(index = 3u8)]
unrequest_preimage { hash: primitive_types::H256 },
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::note_preimage { .. } => "Preimage.note_preimage",
Self::unnote_preimage { .. } => "Preimage.unnote_preimage",
Self::request_preimage { .. } => "Preimage.request_preimage",
Self::unrequest_preimage { .. } => "Preimage.unrequest_preimage",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: note_preimage { .. } => { & ["Register a preimage on-chain." , "" , "If the preimage was previously requested, no fees or deposits are taken for providing" , "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." ,] } , Self :: unnote_preimage { .. } => { & ["Clear an unrequested preimage from the runtime storage." ,] } , Self :: request_preimage { .. } => { & ["Request a preimage be uploaded to the chain without paying any fees or deposits." , "" , "If the preimage requests has already been provided on-chain, we unreserve any deposit" , "a user may have paid, and take the control of the preimage out of their hands." ,] } , Self :: unrequest_preimage { .. } => { & ["Clear a previously made request for a preimage." , "" , "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tCustom [dispatch errors](https://docs.substrate.io/v3/runtime/events-and-errors)\n\t\t\tof this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "Preimage is too large to store on-chain."]
#[codec(index = 0u8)]
TooLarge,
#[doc = "Preimage has already been noted on-chain."]
#[codec(index = 1u8)]
AlreadyNoted,
#[doc = "The user is not authorized to perform this action."]
#[codec(index = 2u8)]
NotAuthorized,
#[doc = "The preimage cannot be removed since it has not yet been noted."]
#[codec(index = 3u8)]
NotNoted,
#[doc = "A preimage may not be removed when there are outstanding requests."]
#[codec(index = 4u8)]
Requested,
#[doc = "The preimage request cannot be removed since no outstanding requests exist."]
#[codec(index = 5u8)]
NotRequested,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::TooLarge => "Preimage.TooLarge",
Self::AlreadyNoted => "Preimage.AlreadyNoted",
Self::NotAuthorized => "Preimage.NotAuthorized",
Self::NotNoted => "Preimage.NotNoted",
Self::Requested => "Preimage.Requested",
Self::NotRequested => "Preimage.NotRequested",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::TooLarge => &["Preimage is too large to store on-chain."],
Self::AlreadyNoted => &["Preimage has already been noted on-chain."],
Self::NotAuthorized => &["The user is not authorized to perform this action."],
Self::NotNoted => &["The preimage cannot be removed since it has not yet been noted."],
Self::Requested => {
&["A preimage may not be removed when there are outstanding requests."]
}
Self::NotRequested => {
&["The preimage request cannot be removed since no outstanding requests exist."]
}
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "\n\t\t\tThe [event](https://docs.substrate.io/v3/runtime/events-and-errors) emitted\n\t\t\tby this pallet.\n\t\t\t"]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "A preimage has been noted."]
#[codec(index = 0u8)]
Noted { hash: primitive_types::H256 },
#[doc = "A preimage has been requested."]
#[codec(index = 1u8)]
Requested { hash: primitive_types::H256 },
#[doc = "A preimage has ben cleared."]
#[codec(index = 2u8)]
Cleared { hash: primitive_types::H256 },
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Noted { .. } => "Preimage.Noted",
Self::Requested { .. } => "Preimage.Requested",
Self::Cleared { .. } => "Preimage.Cleared",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::Noted { .. } => &["A preimage has been noted."],
Self::Requested { .. } => &["A preimage has been requested."],
Self::Cleared { .. } => &["A preimage has ben cleared."],
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum RequestStatus<AccountId, Balance> {
#[codec(index = 0u8)]
Unrequested(Option<(AccountId, Balance)>),
#[codec(index = 1u8)]
Requested(u32),
}
}
pub mod polymesh_runtime_develop {
use super::*;
pub mod runtime {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum OriginCaller {
#[codec(index = 0u8)]
system(frame_support::dispatch::RawOrigin<::polymesh_api_client::AccountId>),
#[codec(index = 9u8)]
PolymeshCommittee(
pallet_committee::RawOrigin<
::polymesh_api_client::AccountId,
pallet_committee::Instance1,
>,
),
#[codec(index = 11u8)]
TechnicalCommittee(
pallet_committee::RawOrigin<
::polymesh_api_client::AccountId,
pallet_committee::Instance3,
>,
),
#[codec(index = 13u8)]
UpgradeCommittee(
pallet_committee::RawOrigin<
::polymesh_api_client::AccountId,
pallet_committee::Instance4,
>,
),
#[codec(index = 4u8)]
Void(sp_core::Void),
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[codec(index = 0u8)]
System(frame_system::pallet::Event),
#[codec(index = 3u8)]
Indices(pallet_indices::pallet::Event),
#[codec(index = 5u8)]
Balances(
polymesh_common_utilities::traits::balances::RawEvent<::polymesh_api_client::AccountId>,
),
#[codec(index = 7u8)]
Identity(
polymesh_common_utilities::traits::identity::RawEvent<
::polymesh_api_client::AccountId,
u64,
>,
),
#[codec(index = 8u8)]
CddServiceProviders(
polymesh_common_utilities::traits::group::RawEvent<
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::Event,
pallet_group::Instance2,
>,
),
#[codec(index = 9u8)]
PolymeshCommittee(
pallet_committee::RawEvent<primitive_types::H256, u32, pallet_committee::Instance1>,
),
#[codec(index = 10u8)]
CommitteeMembership(
polymesh_common_utilities::traits::group::RawEvent<
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::Event,
pallet_group::Instance1,
>,
),
#[codec(index = 11u8)]
TechnicalCommittee(
pallet_committee::RawEvent<primitive_types::H256, u32, pallet_committee::Instance3>,
),
#[codec(index = 12u8)]
TechnicalCommitteeMembership(
polymesh_common_utilities::traits::group::RawEvent<
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::Event,
pallet_group::Instance3,
>,
),
#[codec(index = 13u8)]
UpgradeCommittee(
pallet_committee::RawEvent<primitive_types::H256, u32, pallet_committee::Instance4>,
),
#[codec(index = 14u8)]
UpgradeCommitteeMembership(
polymesh_common_utilities::traits::group::RawEvent<
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::Event,
pallet_group::Instance4,
>,
),
#[codec(index = 15u8)]
MultiSig(pallet_multisig::RawEvent<::polymesh_api_client::AccountId>),
#[codec(index = 16u8)]
Bridge(pallet_bridge::RawEvent<::polymesh_api_client::AccountId, u32>),
#[codec(index = 17u8)]
Staking(pallet_staking::RawEvent<u128, ::polymesh_api_client::AccountId>),
#[codec(index = 18u8)]
Offences(pallet_offences::pallet::Event),
#[codec(index = 19u8)]
Session(pallet_session::pallet::Event),
#[codec(index = 21u8)]
Grandpa(pallet_grandpa::pallet::Event),
#[codec(index = 23u8)]
ImOnline(pallet_im_online::pallet::Event),
#[codec(index = 25u8)]
Sudo(pallet_sudo::RawEvent<::polymesh_api_client::AccountId>),
#[codec(index = 26u8)]
Asset(
polymesh_common_utilities::traits::asset::RawEvent<u64, ::polymesh_api_client::AccountId>,
),
#[codec(index = 27u8)]
CapitalDistribution(pallet_corporate_actions::distribution::Event),
#[codec(index = 28u8)]
Checkpoint(polymesh_common_utilities::traits::checkpoint::Event),
#[codec(index = 29u8)]
ComplianceManager(pallet_compliance_manager::Event),
#[codec(index = 30u8)]
CorporateAction(pallet_corporate_actions::Event),
#[codec(index = 31u8)]
CorporateBallot(pallet_corporate_actions::ballot::Event),
#[codec(index = 33u8)]
Pips(pallet_pips::RawEvent<::polymesh_api_client::AccountId, u32>),
#[codec(index = 34u8)]
Portfolio(polymesh_common_utilities::traits::portfolio::Event),
#[codec(index = 35u8)]
ProtocolFee(pallet_protocol_fee::RawEvent<::polymesh_api_client::AccountId>),
#[codec(index = 36u8)]
Scheduler(pallet_scheduler::pallet::Event),
#[codec(index = 37u8)]
Settlement(pallet_settlement::RawEvent<u64, u32, ::polymesh_api_client::AccountId>),
#[codec(index = 38u8)]
Statistics(polymesh_common_utilities::traits::statistics::Event),
#[codec(index = 39u8)]
Sto(pallet_sto::RawEvent<u64>),
#[codec(index = 40u8)]
Treasury(pallet_treasury::RawEvent<u128, ::polymesh_api_client::AccountId>),
#[codec(index = 41u8)]
Utility(pallet_utility::Event),
#[codec(index = 42u8)]
Base(polymesh_common_utilities::traits::base::Event),
#[codec(index = 43u8)]
ExternalAgents(polymesh_common_utilities::traits::external_agents::Event),
#[codec(index = 44u8)]
Relayer(
polymesh_common_utilities::traits::relayer::RawEvent<::polymesh_api_client::AccountId>,
),
#[codec(index = 45u8)]
Rewards(pallet_rewards::RawEvent<::polymesh_api_client::AccountId>),
#[codec(index = 46u8)]
Contracts(pallet_contracts::pallet::Event),
#[codec(index = 47u8)]
PolymeshContracts(polymesh_contracts::Event),
#[codec(index = 48u8)]
Preimage(pallet_preimage::pallet::Event),
#[codec(index = 50u8)]
TestUtils(pallet_test_utils::RawEvent<::polymesh_api_client::AccountId>),
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::System(val) => val.as_static_str(),
Self::Indices(val) => val.as_static_str(),
Self::Balances(val) => val.as_static_str(),
Self::Identity(val) => val.as_static_str(),
Self::CddServiceProviders(val) => val.as_static_str(),
Self::PolymeshCommittee(val) => val.as_static_str(),
Self::CommitteeMembership(val) => val.as_static_str(),
Self::TechnicalCommittee(val) => val.as_static_str(),
Self::TechnicalCommitteeMembership(val) => val.as_static_str(),
Self::UpgradeCommittee(val) => val.as_static_str(),
Self::UpgradeCommitteeMembership(val) => val.as_static_str(),
Self::MultiSig(val) => val.as_static_str(),
Self::Bridge(val) => val.as_static_str(),
Self::Staking(val) => val.as_static_str(),
Self::Offences(val) => val.as_static_str(),
Self::Session(val) => val.as_static_str(),
Self::Grandpa(val) => val.as_static_str(),
Self::ImOnline(val) => val.as_static_str(),
Self::Sudo(val) => val.as_static_str(),
Self::Asset(val) => val.as_static_str(),
Self::CapitalDistribution(val) => val.as_static_str(),
Self::Checkpoint(val) => val.as_static_str(),
Self::ComplianceManager(val) => val.as_static_str(),
Self::CorporateAction(val) => val.as_static_str(),
Self::CorporateBallot(val) => val.as_static_str(),
Self::Pips(val) => val.as_static_str(),
Self::Portfolio(val) => val.as_static_str(),
Self::ProtocolFee(val) => val.as_static_str(),
Self::Scheduler(val) => val.as_static_str(),
Self::Settlement(val) => val.as_static_str(),
Self::Statistics(val) => val.as_static_str(),
Self::Sto(val) => val.as_static_str(),
Self::Treasury(val) => val.as_static_str(),
Self::Utility(val) => val.as_static_str(),
Self::Base(val) => val.as_static_str(),
Self::ExternalAgents(val) => val.as_static_str(),
Self::Relayer(val) => val.as_static_str(),
Self::Rewards(val) => val.as_static_str(),
Self::Contracts(val) => val.as_static_str(),
Self::PolymeshContracts(val) => val.as_static_str(),
Self::Preimage(val) => val.as_static_str(),
Self::TestUtils(val) => val.as_static_str(),
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::System(val) => val.as_docs(),
Self::Indices(val) => val.as_docs(),
Self::Balances(val) => val.as_docs(),
Self::Identity(val) => val.as_docs(),
Self::CddServiceProviders(val) => val.as_docs(),
Self::PolymeshCommittee(val) => val.as_docs(),
Self::CommitteeMembership(val) => val.as_docs(),
Self::TechnicalCommittee(val) => val.as_docs(),
Self::TechnicalCommitteeMembership(val) => val.as_docs(),
Self::UpgradeCommittee(val) => val.as_docs(),
Self::UpgradeCommitteeMembership(val) => val.as_docs(),
Self::MultiSig(val) => val.as_docs(),
Self::Bridge(val) => val.as_docs(),
Self::Staking(val) => val.as_docs(),
Self::Offences(val) => val.as_docs(),
Self::Session(val) => val.as_docs(),
Self::Grandpa(val) => val.as_docs(),
Self::ImOnline(val) => val.as_docs(),
Self::Sudo(val) => val.as_docs(),
Self::Asset(val) => val.as_docs(),
Self::CapitalDistribution(val) => val.as_docs(),
Self::Checkpoint(val) => val.as_docs(),
Self::ComplianceManager(val) => val.as_docs(),
Self::CorporateAction(val) => val.as_docs(),
Self::CorporateBallot(val) => val.as_docs(),
Self::Pips(val) => val.as_docs(),
Self::Portfolio(val) => val.as_docs(),
Self::ProtocolFee(val) => val.as_docs(),
Self::Scheduler(val) => val.as_docs(),
Self::Settlement(val) => val.as_docs(),
Self::Statistics(val) => val.as_docs(),
Self::Sto(val) => val.as_docs(),
Self::Treasury(val) => val.as_docs(),
Self::Utility(val) => val.as_docs(),
Self::Base(val) => val.as_docs(),
Self::ExternalAgents(val) => val.as_docs(),
Self::Relayer(val) => val.as_docs(),
Self::Rewards(val) => val.as_docs(),
Self::Contracts(val) => val.as_docs(),
Self::PolymeshContracts(val) => val.as_docs(),
Self::Preimage(val) => val.as_docs(),
Self::TestUtils(val) => val.as_docs(),
_ => &[""],
}
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Runtime();
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[codec(index = 0u8)]
System(frame_system::pallet::Call),
#[codec(index = 1u8)]
Babe(pallet_babe::pallet::Call),
#[codec(index = 2u8)]
Timestamp(pallet_timestamp::pallet::Call),
#[codec(index = 3u8)]
Indices(pallet_indices::pallet::Call),
#[codec(index = 4u8)]
Authorship(pallet_authorship::pallet::Call),
#[codec(index = 5u8)]
Balances(pallet_balances::Call),
#[codec(index = 7u8)]
Identity(pallet_identity::Call),
#[codec(index = 8u8)]
CddServiceProviders(pallet_group::Call),
#[codec(index = 9u8)]
PolymeshCommittee(pallet_committee::Call),
#[codec(index = 10u8)]
CommitteeMembership(pallet_group::Call),
#[codec(index = 11u8)]
TechnicalCommittee(pallet_committee::Call),
#[codec(index = 12u8)]
TechnicalCommitteeMembership(pallet_group::Call),
#[codec(index = 13u8)]
UpgradeCommittee(pallet_committee::Call),
#[codec(index = 14u8)]
UpgradeCommitteeMembership(pallet_group::Call),
#[codec(index = 15u8)]
MultiSig(pallet_multisig::Call),
#[codec(index = 16u8)]
Bridge(pallet_bridge::Call),
#[codec(index = 17u8)]
Staking(pallet_staking::Call),
#[codec(index = 19u8)]
Session(pallet_session::pallet::Call),
#[codec(index = 21u8)]
Grandpa(pallet_grandpa::pallet::Call),
#[codec(index = 23u8)]
ImOnline(pallet_im_online::pallet::Call),
#[codec(index = 25u8)]
Sudo(pallet_sudo::Call),
#[codec(index = 26u8)]
Asset(pallet_asset::Call),
#[codec(index = 27u8)]
CapitalDistribution(pallet_corporate_actions::distribution::Call),
#[codec(index = 28u8)]
Checkpoint(pallet_asset::checkpoint::Call),
#[codec(index = 29u8)]
ComplianceManager(pallet_compliance_manager::Call),
#[codec(index = 30u8)]
CorporateAction(pallet_corporate_actions::Call),
#[codec(index = 31u8)]
CorporateBallot(pallet_corporate_actions::ballot::Call),
#[codec(index = 33u8)]
Pips(pallet_pips::Call),
#[codec(index = 34u8)]
Portfolio(pallet_portfolio::Call),
#[codec(index = 35u8)]
ProtocolFee(pallet_protocol_fee::Call),
#[codec(index = 36u8)]
Scheduler(pallet_scheduler::pallet::Call),
#[codec(index = 37u8)]
Settlement(pallet_settlement::Call),
#[codec(index = 38u8)]
Statistics(pallet_statistics::Call),
#[codec(index = 39u8)]
Sto(pallet_sto::Call),
#[codec(index = 40u8)]
Treasury(pallet_treasury::Call),
#[codec(index = 41u8)]
Utility(pallet_utility::Call),
#[codec(index = 42u8)]
Base(pallet_base::Call),
#[codec(index = 43u8)]
ExternalAgents(pallet_external_agents::Call),
#[codec(index = 44u8)]
Relayer(pallet_relayer::Call),
#[codec(index = 45u8)]
Rewards(pallet_rewards::Call),
#[codec(index = 46u8)]
Contracts(pallet_contracts::pallet::Call),
#[codec(index = 47u8)]
PolymeshContracts(polymesh_contracts::Call),
#[codec(index = 48u8)]
Preimage(pallet_preimage::pallet::Call),
#[codec(index = 50u8)]
TestUtils(pallet_test_utils::Call),
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::System(val) => val.as_static_str(),
Self::Babe(val) => val.as_static_str(),
Self::Timestamp(val) => val.as_static_str(),
Self::Indices(val) => val.as_static_str(),
Self::Authorship(val) => val.as_static_str(),
Self::Balances(val) => val.as_static_str(),
Self::Identity(val) => val.as_static_str(),
Self::CddServiceProviders(val) => val.as_static_str(),
Self::PolymeshCommittee(val) => val.as_static_str(),
Self::CommitteeMembership(val) => val.as_static_str(),
Self::TechnicalCommittee(val) => val.as_static_str(),
Self::TechnicalCommitteeMembership(val) => val.as_static_str(),
Self::UpgradeCommittee(val) => val.as_static_str(),
Self::UpgradeCommitteeMembership(val) => val.as_static_str(),
Self::MultiSig(val) => val.as_static_str(),
Self::Bridge(val) => val.as_static_str(),
Self::Staking(val) => val.as_static_str(),
Self::Session(val) => val.as_static_str(),
Self::Grandpa(val) => val.as_static_str(),
Self::ImOnline(val) => val.as_static_str(),
Self::Sudo(val) => val.as_static_str(),
Self::Asset(val) => val.as_static_str(),
Self::CapitalDistribution(val) => val.as_static_str(),
Self::Checkpoint(val) => val.as_static_str(),
Self::ComplianceManager(val) => val.as_static_str(),
Self::CorporateAction(val) => val.as_static_str(),
Self::CorporateBallot(val) => val.as_static_str(),
Self::Pips(val) => val.as_static_str(),
Self::Portfolio(val) => val.as_static_str(),
Self::ProtocolFee(val) => val.as_static_str(),
Self::Scheduler(val) => val.as_static_str(),
Self::Settlement(val) => val.as_static_str(),
Self::Statistics(val) => val.as_static_str(),
Self::Sto(val) => val.as_static_str(),
Self::Treasury(val) => val.as_static_str(),
Self::Utility(val) => val.as_static_str(),
Self::Base(val) => val.as_static_str(),
Self::ExternalAgents(val) => val.as_static_str(),
Self::Relayer(val) => val.as_static_str(),
Self::Rewards(val) => val.as_static_str(),
Self::Contracts(val) => val.as_static_str(),
Self::PolymeshContracts(val) => val.as_static_str(),
Self::Preimage(val) => val.as_static_str(),
Self::TestUtils(val) => val.as_static_str(),
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::System(val) => val.as_docs(),
Self::Babe(val) => val.as_docs(),
Self::Timestamp(val) => val.as_docs(),
Self::Indices(val) => val.as_docs(),
Self::Authorship(val) => val.as_docs(),
Self::Balances(val) => val.as_docs(),
Self::Identity(val) => val.as_docs(),
Self::CddServiceProviders(val) => val.as_docs(),
Self::PolymeshCommittee(val) => val.as_docs(),
Self::CommitteeMembership(val) => val.as_docs(),
Self::TechnicalCommittee(val) => val.as_docs(),
Self::TechnicalCommitteeMembership(val) => val.as_docs(),
Self::UpgradeCommittee(val) => val.as_docs(),
Self::UpgradeCommitteeMembership(val) => val.as_docs(),
Self::MultiSig(val) => val.as_docs(),
Self::Bridge(val) => val.as_docs(),
Self::Staking(val) => val.as_docs(),
Self::Session(val) => val.as_docs(),
Self::Grandpa(val) => val.as_docs(),
Self::ImOnline(val) => val.as_docs(),
Self::Sudo(val) => val.as_docs(),
Self::Asset(val) => val.as_docs(),
Self::CapitalDistribution(val) => val.as_docs(),
Self::Checkpoint(val) => val.as_docs(),
Self::ComplianceManager(val) => val.as_docs(),
Self::CorporateAction(val) => val.as_docs(),
Self::CorporateBallot(val) => val.as_docs(),
Self::Pips(val) => val.as_docs(),
Self::Portfolio(val) => val.as_docs(),
Self::ProtocolFee(val) => val.as_docs(),
Self::Scheduler(val) => val.as_docs(),
Self::Settlement(val) => val.as_docs(),
Self::Statistics(val) => val.as_docs(),
Self::Sto(val) => val.as_docs(),
Self::Treasury(val) => val.as_docs(),
Self::Utility(val) => val.as_docs(),
Self::Base(val) => val.as_docs(),
Self::ExternalAgents(val) => val.as_docs(),
Self::Relayer(val) => val.as_docs(),
Self::Rewards(val) => val.as_docs(),
Self::Contracts(val) => val.as_docs(),
Self::PolymeshContracts(val) => val.as_docs(),
Self::Preimage(val) => val.as_docs(),
Self::TestUtils(val) => val.as_docs(),
_ => &[""],
}
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct SessionKeys {
pub grandpa: sp_finality_grandpa::app::Public,
pub babe: sp_consensus_babe::app::Public,
pub im_online: pallet_im_online::sr25519::app_sr25519::Public,
pub authority_discovery: sp_authority_discovery::app::Public,
}
}
}
pub mod pallet_timestamp {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Contains one variant per dispatchable that can be called by an extrinsic."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Set the current time."]
#[doc = ""]
#[doc = "This call should be invoked exactly once per block. It will panic at the finalization"]
#[doc = "phase, if this call hasn't been invoked by that time."]
#[doc = ""]
#[doc = "The timestamp should be greater than the previous one by the amount specified by"]
#[doc = "`MinimumPeriod`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be `Inherent`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"]
#[doc = "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in"]
#[doc = " `on_finalize`)"]
#[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."]
#[doc = "# </weight>"]
#[codec(index = 0u8)]
set {
#[codec(compact)]
now: u64,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set { .. } => "Timestamp.set",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set { .. } => { & ["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" , "`MinimumPeriod`." , "" , "The dispatch origin for this call must be `Inherent`." , "" , "# <weight>" , "- `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)`." , "# </weight>" ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
}
pub mod pallet_relayer {
use super::*;
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub struct Subsidy<Acc> {
pub paying_key: Acc,
pub remaining: u128,
}
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Error {
#[doc = "The `user_key` is not attached to a CDD'd identity."]
#[codec(index = 0u8)]
UserKeyCddMissing,
#[doc = "The `user_key` is not attached to a CDD'd identity."]
#[codec(index = 1u8)]
PayingKeyCddMissing,
#[doc = "The `user_key` doesn't have a `paying_key`."]
#[codec(index = 2u8)]
NoPayingKey,
#[doc = "The `user_key` has a different `paying_key`."]
#[codec(index = 3u8)]
NotPayingKey,
#[doc = "The signer is not authorized for `paying_key`."]
#[codec(index = 4u8)]
NotAuthorizedForPayingKey,
#[doc = "The signer is not authorized for `user_key`."]
#[codec(index = 5u8)]
NotAuthorizedForUserKey,
#[doc = "The remaining POLYX for `user_key` overflowed."]
#[codec(index = 6u8)]
Overflow,
}
impl Error {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::UserKeyCddMissing => "Relayer.UserKeyCddMissing",
Self::PayingKeyCddMissing => "Relayer.PayingKeyCddMissing",
Self::NoPayingKey => "Relayer.NoPayingKey",
Self::NotPayingKey => "Relayer.NotPayingKey",
Self::NotAuthorizedForPayingKey => "Relayer.NotAuthorizedForPayingKey",
Self::NotAuthorizedForUserKey => "Relayer.NotAuthorizedForUserKey",
Self::Overflow => "Relayer.Overflow",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Error {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
#[allow(unreachable_patterns)]
match self {
Self::UserKeyCddMissing => &["The `user_key` is not attached to a CDD'd identity."],
Self::PayingKeyCddMissing => &["The `user_key` is not attached to a CDD'd identity."],
Self::NoPayingKey => &["The `user_key` doesn't have a `paying_key`."],
Self::NotPayingKey => &["The `user_key` has a different `paying_key`."],
Self::NotAuthorizedForPayingKey => &["The signer is not authorized for `paying_key`."],
Self::NotAuthorizedForUserKey => &["The signer is not authorized for `user_key`."],
Self::Overflow => &["The remaining POLYX for `user_key` overflowed."],
_ => &[""],
}
}
}
impl From<Error> for &'static str {
fn from(v: Error) -> Self {
v.as_static_str()
}
}
impl From<&Error> for &'static str {
fn from(v: &Error) -> Self {
v.as_static_str()
}
}
#[doc = "Dispatchable calls."]
#[doc = ""]
#[doc = "Each variant of this enum maps to a dispatchable function from the associated module."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Call {
#[doc = "Creates an authorization to allow `user_key` to accept the caller (`origin == paying_key`) as their subsidiser."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key to subsidise."]
#[doc = "- `polyx_limit` the initial POLYX limit for this subsidy."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[codec(index = 0u8)]
set_paying_key {
user_key: ::polymesh_api_client::AccountId,
polyx_limit: u128,
},
#[doc = "Accepts a `paying_key` authorization."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `auth_id` the authorization id to accept a `paying_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller."]
#[doc = "- `AuthorizationError::Expired` if `auth_id` the authorization has expired."]
#[doc = "- `AuthorizationError::BadType` if `auth_id` was not a `AddRelayerPayingKey` authorization."]
#[doc = "- `NotAuthorizedForUserKey` if `origin` is not authorized to accept the authorization for the `user_key`."]
#[doc = "- `NotAuthorizedForPayingKey` if the authorization was created an identity different from the `paying_key`'s identity."]
#[doc = "- `UserKeyCddMissing` if the `user_key` is not attached to a CDD'd identity."]
#[doc = "- `PayingKeyCddMissing` if the `paying_key` is not attached to a CDD'd identity."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[codec(index = 1u8)]
accept_paying_key { auth_id: u64 },
#[doc = "Removes the `paying_key` from a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key to remove the subsidy from."]
#[doc = "- `paying_key` the paying key that was subsidising the `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NotAuthorizedForUserKey` if `origin` is not authorized to remove the subsidy for the `user_key`."]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if the `paying_key` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[codec(index = 2u8)]
remove_paying_key {
user_key: ::polymesh_api_client::AccountId,
paying_key: ::polymesh_api_client::AccountId,
},
#[doc = "Updates the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `polyx_limit` the amount of POLYX available for subsidising the `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[codec(index = 3u8)]
update_polyx_limit {
user_key: ::polymesh_api_client::AccountId,
polyx_limit: u128,
},
#[doc = "Increase the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `amount` the amount of POLYX to add to the subsidy of `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[doc = "- `Overlow` if the subsidy's remaining POLYX would have overflowed `u128::MAX`."]
#[codec(index = 4u8)]
increase_polyx_limit {
user_key: ::polymesh_api_client::AccountId,
amount: u128,
},
#[doc = "Decrease the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `amount` the amount of POLYX to remove from the subsidy of `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[doc = "- `Overlow` if the subsidy has less then `amount` POLYX remaining."]
#[codec(index = 5u8)]
decrease_polyx_limit {
user_key: ::polymesh_api_client::AccountId,
amount: u128,
},
}
impl Call {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::set_paying_key { .. } => "Relayer.set_paying_key",
Self::accept_paying_key { .. } => "Relayer.accept_paying_key",
Self::remove_paying_key { .. } => "Relayer.remove_paying_key",
Self::update_polyx_limit { .. } => "Relayer.update_polyx_limit",
Self::increase_polyx_limit { .. } => "Relayer.increase_polyx_limit",
Self::decrease_polyx_limit { .. } => "Relayer.decrease_polyx_limit",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Call {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: set_paying_key { .. } => { & ["Creates an authorization to allow `user_key` to accept the caller (`origin == paying_key`) as their subsidiser." , "" , "# Arguments" , "- `user_key` the user key to subsidise." , "- `polyx_limit` the initial POLYX limit for this subsidy." , "" , "# Errors" , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." ,] } , Self :: accept_paying_key { .. } => { & ["Accepts a `paying_key` authorization." , "" , "# Arguments" , "- `auth_id` the authorization id to accept a `paying_key`." , "" , "# Errors" , "- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller." , "- `AuthorizationError::Expired` if `auth_id` the authorization has expired." , "- `AuthorizationError::BadType` if `auth_id` was not a `AddRelayerPayingKey` authorization." , "- `NotAuthorizedForUserKey` if `origin` is not authorized to accept the authorization for the `user_key`." , "- `NotAuthorizedForPayingKey` if the authorization was created an identity different from the `paying_key`'s identity." , "- `UserKeyCddMissing` if the `user_key` is not attached to a CDD'd identity." , "- `PayingKeyCddMissing` if the `paying_key` is not attached to a CDD'd identity." , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." ,] } , Self :: remove_paying_key { .. } => { & ["Removes the `paying_key` from a `user_key`." , "" , "# Arguments" , "- `user_key` the user key to remove the subsidy from." , "- `paying_key` the paying key that was subsidising the `user_key`." , "" , "# Errors" , "- `NotAuthorizedForUserKey` if `origin` is not authorized to remove the subsidy for the `user_key`." , "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`." , "- `NotPayingKey` if the `paying_key` doesn't match the current `paying_key`." , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." ,] } , Self :: update_polyx_limit { .. } => { & ["Updates the available POLYX for a `user_key`." , "" , "# Arguments" , "- `user_key` the user key of the subsidy to update the available POLYX." , "- `polyx_limit` the amount of POLYX available for subsidising the `user_key`." , "" , "# Errors" , "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`." , "- `NotPayingKey` if `origin` doesn't match the current `paying_key`." , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." ,] } , Self :: increase_polyx_limit { .. } => { & ["Increase the available POLYX for a `user_key`." , "" , "# Arguments" , "- `user_key` the user key of the subsidy to update the available POLYX." , "- `amount` the amount of POLYX to add to the subsidy of `user_key`." , "" , "# Errors" , "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`." , "- `NotPayingKey` if `origin` doesn't match the current `paying_key`." , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." , "- `Overlow` if the subsidy's remaining POLYX would have overflowed `u128::MAX`." ,] } , Self :: decrease_polyx_limit { .. } => { & ["Decrease the available POLYX for a `user_key`." , "" , "# Arguments" , "- `user_key` the user key of the subsidy to update the available POLYX." , "- `amount` the amount of POLYX to remove from the subsidy of `user_key`." , "" , "# Errors" , "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`." , "- `NotPayingKey` if `origin` doesn't match the current `paying_key`." , "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic." , "- `Overlow` if the subsidy has less then `amount` POLYX remaining." ,] } , _ => & [""] , }
}
}
impl From<Call> for &'static str {
fn from(v: Call) -> Self {
v.as_static_str()
}
}
impl From<&Call> for &'static str {
fn from(v: &Call) -> Self {
v.as_static_str()
}
}
}
pub mod pallet_offences {
use super::*;
pub mod pallet {
use super::*;
#[doc = "Events type."]
#[derive(Clone, Debug, PartialEq, Eq, :: codec :: Encode, :: codec :: Decode)]
#[cfg_attr(feature = "serde", derive(::serde::Serialize, ::serde::Deserialize))]
pub enum Event {
#[doc = "There is an offence reported of the given `kind` happened at the `session_index` and"]
#[doc = "(kind-specific) time slot. This event is not deposited for duplicate slashes."]
#[doc = "\\[kind, timeslot\\]."]
#[codec(index = 0u8)]
Offence {
kind: [u8; 16usize],
timeslot: Vec<u8>,
},
}
impl Event {
pub fn as_static_str(&self) -> &'static str {
#[allow(unreachable_patterns)]
match self {
Self::Offence { .. } => "Offences.Offence",
_ => "Unknown",
}
}
}
impl ::polymesh_api_client::EnumInfo for Event {
fn as_name(&self) -> &'static str {
self.as_static_str()
}
fn as_docs(&self) -> &'static [&'static str] {
# [allow (unreachable_patterns)] match self { Self :: Offence { .. } => { & ["There is an offence reported of the given `kind` happened at the `session_index` and" , "(kind-specific) time slot. This event is not deposited for duplicate slashes." , "\\[kind, timeslot\\]." ,] } , _ => & [""] , }
}
}
impl From<Event> for &'static str {
fn from(v: Event) -> Self {
v.as_static_str()
}
}
impl From<&Event> for &'static str {
fn from(v: &Event) -> Self {
v.as_static_str()
}
}
}
}
}
#[allow(dead_code, unused_imports, non_camel_case_types)]
pub mod api {
use super::types;
use super::types::*;
use super::WrappedCall;
pub mod system {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "A dispatch that will fill the block weight up to the given ratio."]
pub fn fill_block(
&self,
ratio: ::polymesh_api_client::per_things::Perbill,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::fill_block { ratio },
))
}
#[doc = "Make some on-chain remark."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`"]
#[doc = "# </weight>"]
pub fn remark(
&self,
remark: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::remark { remark },
))
}
#[doc = "Set the number of pages in the WebAssembly environment's heap."]
pub fn set_heap_pages(
&self,
pages: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::set_heap_pages { pages },
))
}
#[doc = "Set the new runtime code."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`"]
#[doc = "- 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is"]
#[doc = " expensive)."]
#[doc = "- 1 storage write (codec `O(C)`)."]
#[doc = "- 1 digest item."]
#[doc = "- 1 event."]
#[doc = "The weight of this function is dependent on the runtime, but generally this is very"]
#[doc = "expensive. We will treat this as a full block."]
#[doc = "# </weight>"]
pub fn set_code(
&self,
code: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::set_code { code },
))
}
#[doc = "Set the new runtime code without doing any checks of the given `code`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(C)` where `C` length of `code`"]
#[doc = "- 1 storage write (codec `O(C)`)."]
#[doc = "- 1 digest item."]
#[doc = "- 1 event."]
#[doc = "The weight of this function is dependent on the runtime. We will treat this as a full"]
#[doc = "block. # </weight>"]
pub fn set_code_without_checks(
&self,
code: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::set_code_without_checks { code },
))
}
#[doc = "Set some items of storage."]
pub fn set_storage(
&self,
items: Vec<(Vec<u8>, Vec<u8>)>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::set_storage { items },
))
}
#[doc = "Kill some items from storage."]
pub fn kill_storage(
&self,
keys: Vec<Vec<u8>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::kill_storage { keys },
))
}
#[doc = "Kill all storage items with a key that starts with the given prefix."]
#[doc = ""]
#[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"]
#[doc = "the prefix we are removing to accurately calculate the weight of this function."]
pub fn kill_prefix(
&self,
prefix: Vec<u8>,
subkeys: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::kill_prefix { prefix, subkeys },
))
}
#[doc = "Make some on-chain remark and emit event."]
pub fn remark_with_event(
&self,
remark: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::System(
types::frame_system::pallet::Call::remark_with_event { remark },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The full account information for a particular account ID."]
pub async fn account(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
frame_system::AccountInfo<u32, polymesh_common_utilities::traits::balances::AccountData>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 185u8, 157u8, 136u8, 14u8, 198u8, 129u8, 121u8, 156u8, 12u8, 243u8, 14u8,
136u8, 134u8, 55u8, 29u8, 169u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<frame_system::AccountInfo<
u32,
polymesh_common_utilities::traits::balances::AccountData,
>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Total extrinsics count for the current block."]
pub async fn extrinsic_count(&self) -> ::polymesh_api_client::error::Result<Option<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 189u8, 192u8, 189u8, 48u8, 62u8, 152u8, 85u8, 129u8, 58u8, 168u8, 163u8,
13u8, 78u8, 252u8, 81u8, 18u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The current weight for the block."]
pub async fn block_weight(
&self,
) -> ::polymesh_api_client::error::Result<frame_support::weights::PerDispatchClass<u64>>
{
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 52u8, 171u8, 245u8, 203u8, 52u8, 214u8, 36u8, 67u8, 120u8, 205u8, 219u8,
241u8, 142u8, 132u8, 157u8, 150u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<frame_support::weights::PerDispatchClass<u64>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Total length (in bytes) for all extrinsics put together, for the current block."]
pub async fn all_extrinsics_len(&self) -> ::polymesh_api_client::error::Result<Option<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 168u8, 109u8, 165u8, 169u8, 50u8, 104u8, 79u8, 25u8, 149u8, 57u8, 131u8,
111u8, 203u8, 140u8, 136u8, 111u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Map of block numbers to block hashes."]
pub async fn block_hash(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<primitive_types::H256> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 164u8, 71u8, 4u8, 181u8, 104u8, 210u8, 22u8, 103u8, 53u8, 106u8, 90u8, 5u8,
12u8, 17u8, 135u8, 70u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<primitive_types::H256>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Extrinsics data for the current block (maps an extrinsic's index to its data)."]
pub async fn extrinsic_data(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<Vec<u8>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 223u8, 29u8, 174u8, 184u8, 152u8, 104u8, 55u8, 242u8, 28u8, 197u8, 209u8,
117u8, 150u8, 187u8, 120u8, 209u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u8>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current block number being processed. Set by `execute_block`."]
pub async fn number(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 2u8, 165u8, 193u8, 177u8, 154u8, 183u8, 160u8, 79u8, 83u8, 108u8, 81u8,
154u8, 202u8, 73u8, 131u8, 172u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Hash of the previous block."]
pub async fn parent_hash(
&self,
) -> ::polymesh_api_client::error::Result<primitive_types::H256> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 138u8, 66u8, 243u8, 51u8, 35u8, 203u8, 92u8, 237u8, 59u8, 68u8, 221u8,
130u8, 95u8, 218u8, 159u8, 204u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<primitive_types::H256>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Digest of the current block, also part of the block header."]
pub async fn digest(
&self,
) -> ::polymesh_api_client::error::Result<sp_runtime::generic::digest::Digest> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 153u8, 231u8, 249u8, 63u8, 198u8, 169u8, 143u8, 8u8, 116u8, 253u8, 5u8,
127u8, 17u8, 28u8, 77u8, 45u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<sp_runtime::generic::digest::Digest>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Events deposited for the current block."]
#[doc = ""]
#[doc = " NOTE: The item is unbound and should therefore never be read on chain."]
#[doc = " It could otherwise inflate the PoV size of a block."]
#[doc = ""]
#[doc = " Events have a large in-memory size. Box the events to not go out-of-memory"]
#[doc = " just in case someone still reads them from within the runtime."]
pub async fn events(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<::polymesh_api_client::EventRecord<polymesh_runtime_develop::runtime::Event>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 128u8, 212u8, 30u8, 94u8, 22u8, 5u8, 103u8, 101u8, 188u8, 132u8, 97u8,
133u8, 16u8, 114u8, 201u8, 215u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<
::polymesh_api_client::EventRecord<
polymesh_runtime_develop::runtime::Event,
>,
>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " The number of events in the `Events<T>` list."]
pub async fn event_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 10u8, 152u8, 253u8, 190u8, 156u8, 230u8, 197u8, 88u8, 55u8, 87u8, 108u8,
96u8, 199u8, 175u8, 56u8, 80u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Mapping between a topic (represented by T::Hash) and a vector of indexes"]
#[doc = " of events in the `<Events<T>>` list."]
#[doc = ""]
#[doc = " All topic vectors have deterministic storage locations depending on the topic. This"]
#[doc = " allows light-clients to leverage the changes trie storage tracking mechanism and"]
#[doc = " in case of changes fetch the list of events of interest."]
#[doc = ""]
#[doc = " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just"]
#[doc = " the `EventIndex` then in case if the topic has the same contents on the next block"]
#[doc = " no notification will be triggered thus the event might be lost."]
pub async fn event_topics(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Vec<(u32, u32)>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 187u8, 148u8, 225u8, 194u8, 26u8, 218u8, 183u8, 20u8, 152u8, 60u8, 240u8,
102u8, 34u8, 225u8, 222u8, 118u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(u32, u32)>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."]
pub async fn last_runtime_upgrade(
&self,
) -> ::polymesh_api_client::error::Result<Option<frame_system::LastRuntimeUpgradeInfo>>
{
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 249u8, 204u8, 233u8, 200u8, 136u8, 70u8, 155u8, 177u8, 160u8, 220u8, 234u8,
161u8, 41u8, 103u8, 46u8, 248u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."]
pub async fn upgraded_to_u32_ref_count(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 86u8, 132u8, 160u8, 34u8, 163u8, 77u8, 216u8, 191u8, 162u8, 186u8, 175u8,
68u8, 241u8, 114u8, 183u8, 16u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False"]
#[doc = " (default) if not."]
pub async fn upgraded_to_triple_ref_count(
&self,
) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 167u8, 253u8, 108u8, 40u8, 131u8, 107u8, 154u8, 40u8, 82u8, 45u8, 201u8,
36u8, 17u8, 12u8, 244u8, 57u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The execution phase of the block."]
pub async fn execution_phase(
&self,
) -> ::polymesh_api_client::error::Result<Option<frame_system::Phase>> {
let key = ::polymesh_api_client::StorageKey(vec![
38u8, 170u8, 57u8, 78u8, 234u8, 86u8, 48u8, 224u8, 124u8, 72u8, 174u8, 12u8, 149u8, 88u8,
206u8, 247u8, 255u8, 85u8, 59u8, 90u8, 152u8, 98u8, 165u8, 22u8, 147u8, 157u8, 130u8,
179u8, 211u8, 216u8, 102u8, 26u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod babe {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Report authority equivocation/misbehavior. This method will verify"]
#[doc = "the equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence will"]
#[doc = "be reported."]
pub fn report_equivocation(
&self,
equivocation_proof: sp_consensus_slots::EquivocationProof<
sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>,
sp_consensus_babe::app::Public,
>,
key_owner_proof: sp_session::MembershipProof,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Babe(
types::pallet_babe::pallet::Call::report_equivocation {
equivocation_proof: ::std::boxed::Box::new(equivocation_proof),
key_owner_proof,
},
))
}
#[doc = "Report authority equivocation/misbehavior. This method will verify"]
#[doc = "the equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence will"]
#[doc = "be reported."]
#[doc = "This extrinsic must be called unsigned and it is expected that only"]
#[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
#[doc = "if the block author is defined it will be defined as the equivocation"]
#[doc = "reporter."]
pub fn report_equivocation_unsigned(
&self,
equivocation_proof: sp_consensus_slots::EquivocationProof<
sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>,
sp_consensus_babe::app::Public,
>,
key_owner_proof: sp_session::MembershipProof,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Babe(
types::pallet_babe::pallet::Call::report_equivocation_unsigned {
equivocation_proof: ::std::boxed::Box::new(equivocation_proof),
key_owner_proof,
},
))
}
#[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"]
#[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."]
#[doc = "Multiple calls to this method will replace any existing planned config change that had"]
#[doc = "not been enacted yet."]
pub fn plan_config_change(
&self,
config: sp_consensus_babe::digests::NextConfigDescriptor,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Babe(
types::pallet_babe::pallet::Call::plan_config_change { config },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Current epoch index."]
pub async fn epoch_index(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 56u8, 49u8, 108u8, 191u8, 143u8, 160u8, 218u8, 130u8, 42u8, 32u8,
172u8, 28u8, 85u8, 191u8, 27u8, 227u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Current epoch authorities."]
pub async fn authorities(
&self,
) -> ::polymesh_api_client::error::Result<Vec<(sp_consensus_babe::app::Public, u64)>> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 94u8, 6u8, 33u8, 196u8, 134u8, 154u8, 166u8, 12u8, 2u8, 190u8, 154u8,
220u8, 201u8, 138u8, 13u8, 29u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(sp_consensus_babe::app::Public, u64)>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The slot at which the first epoch actually started. This is 0"]
#[doc = " until the first block of the chain."]
pub async fn genesis_slot(
&self,
) -> ::polymesh_api_client::error::Result<sp_consensus_slots::Slot> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 103u8, 135u8, 17u8, 209u8, 94u8, 187u8, 206u8, 186u8, 92u8, 208u8,
206u8, 161u8, 88u8, 230u8, 103u8, 90u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<sp_consensus_slots::Slot>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Current slot number."]
pub async fn current_slot(
&self,
) -> ::polymesh_api_client::error::Result<sp_consensus_slots::Slot> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 6u8, 21u8, 91u8, 60u8, 217u8, 168u8, 201u8, 229u8, 233u8, 162u8, 63u8,
213u8, 220u8, 19u8, 165u8, 237u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<sp_consensus_slots::Slot>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The epoch randomness for the *current* epoch."]
#[doc = ""]
#[doc = " # Security"]
#[doc = ""]
#[doc = " This MUST NOT be used for gambling, as it can be influenced by a"]
#[doc = " malicious validator in the short term. It MAY be used in many"]
#[doc = " cryptographic protocols, however, so long as one remembers that this"]
#[doc = " (like everything else on-chain) it is public. For example, it can be"]
#[doc = " used where a number is needed that cannot have been chosen by an"]
#[doc = " adversary, for purposes such as public-coin zero-knowledge proofs."]
pub async fn randomness(&self) -> ::polymesh_api_client::error::Result<[u8; 32usize]> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 122u8, 65u8, 76u8, 176u8, 8u8, 224u8, 230u8, 30u8, 70u8, 114u8, 42u8,
166u8, 10u8, 189u8, 214u8, 114u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<[u8; 32usize]>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Pending epoch configuration change that will be applied when the next epoch is enacted."]
pub async fn pending_epoch_config_change(
&self,
) -> ::polymesh_api_client::error::Result<
Option<sp_consensus_babe::digests::NextConfigDescriptor>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 139u8, 67u8, 40u8, 227u8, 67u8, 195u8, 224u8, 172u8, 144u8, 248u8,
61u8, 164u8, 134u8, 12u8, 190u8, 54u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Next epoch randomness."]
pub async fn next_randomness(&self) -> ::polymesh_api_client::error::Result<[u8; 32usize]> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 124u8, 230u8, 120u8, 121u8, 157u8, 62u8, 255u8, 2u8, 66u8, 83u8,
185u8, 14u8, 132u8, 146u8, 124u8, 198u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<[u8; 32usize]>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Next epoch authorities."]
pub async fn next_authorities(
&self,
) -> ::polymesh_api_client::error::Result<Vec<(sp_consensus_babe::app::Public, u64)>> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 170u8, 207u8, 0u8, 185u8, 180u8, 31u8, 218u8, 122u8, 146u8, 104u8,
130u8, 28u8, 42u8, 43u8, 62u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(sp_consensus_babe::app::Public, u64)>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Randomness under construction."]
#[doc = ""]
#[doc = " We make a trade-off between storage accesses and list length."]
#[doc = " We store the under-construction randomness in segments of up to"]
#[doc = " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`."]
#[doc = ""]
#[doc = " Once a segment reaches this length, we begin the next one."]
#[doc = " We reset all segments and return to `0` at the beginning of every"]
#[doc = " epoch."]
pub async fn segment_index(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 102u8, 232u8, 240u8, 53u8, 200u8, 173u8, 190u8, 127u8, 21u8, 71u8,
180u8, 60u8, 81u8, 230u8, 248u8, 164u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."]
pub async fn under_construction(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<Vec<[u8; 32usize]>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 185u8, 9u8, 54u8, 89u8, 215u8, 168u8, 86u8, 128u8, 151u8, 87u8, 19u8,
77u8, 43u8, 200u8, 110u8, 98u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<[u8; 32usize]>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Temporary value (cleared at block finalization) which is `Some`"]
#[doc = " if per-block initialization has already been called for current block."]
pub async fn initialized(
&self,
) -> ::polymesh_api_client::error::Result<Option<Option<[u8; 32usize]>>> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 250u8, 146u8, 222u8, 145u8, 10u8, 124u8, 226u8, 189u8, 88u8, 233u8,
151u8, 41u8, 198u8, 151u8, 39u8, 193u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " This field should always be populated during block processing unless"]
#[doc = " secondary plain slots are enabled (which don't contain a VRF output)."]
#[doc = ""]
#[doc = " It is set in `on_initialize`, before it will contain the value from the last block."]
pub async fn author_vrf_randomness(
&self,
) -> ::polymesh_api_client::error::Result<Option<[u8; 32usize]>> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 208u8, 119u8, 223u8, 219u8, 138u8, 219u8, 16u8, 247u8, 143u8, 16u8,
165u8, 223u8, 135u8, 66u8, 197u8, 69u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Option<[u8; 32usize]>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The block numbers when the last and current epoch have started, respectively `N-1` and"]
#[doc = " `N`."]
#[doc = " NOTE: We track this is in order to annotate the block number when a given pool of"]
#[doc = " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in"]
#[doc = " slots, which may be skipped, the block numbers may not line up with the slot numbers."]
pub async fn epoch_start(&self) -> ::polymesh_api_client::error::Result<(u32, u32)> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 233u8, 14u8, 47u8, 191u8, 45u8, 121u8, 44u8, 179u8, 36u8, 191u8,
250u8, 148u8, 39u8, 254u8, 31u8, 14u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<(u32, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " How late the current block is compared to its parent."]
#[doc = ""]
#[doc = " This entry is populated as part of block execution and is cleaned up"]
#[doc = " on block finalization. Querying this storage entry outside of block"]
#[doc = " execution context should always yield zero."]
pub async fn lateness(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 3u8, 35u8, 71u8, 86u8, 87u8, 224u8, 137u8, 15u8, 189u8, 191u8, 102u8,
251u8, 36u8, 180u8, 100u8, 158u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The configuration for the current epoch. Should never be `None` as it is initialized in"]
#[doc = " genesis."]
pub async fn epoch_config(
&self,
) -> ::polymesh_api_client::error::Result<Option<sp_consensus_babe::BabeEpochConfiguration>>
{
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 220u8, 107u8, 23u8, 27u8, 119u8, 48u8, 66u8, 99u8, 194u8, 146u8,
204u8, 62u8, 165u8, 237u8, 49u8, 239u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The configuration for the next epoch, `None` if the config will not change"]
#[doc = " (you can fallback to `EpochConfig` instead in that case)."]
pub async fn next_epoch_config(
&self,
) -> ::polymesh_api_client::error::Result<Option<sp_consensus_babe::BabeEpochConfiguration>>
{
let key = ::polymesh_api_client::StorageKey(vec![
28u8, 182u8, 243u8, 110u8, 2u8, 122u8, 187u8, 32u8, 145u8, 207u8, 181u8, 17u8, 10u8,
181u8, 8u8, 127u8, 154u8, 171u8, 10u8, 91u8, 99u8, 179u8, 89u8, 81u8, 45u8, 238u8, 229u8,
87u8, 201u8, 244u8, 207u8, 99u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod timestamp {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Set the current time."]
#[doc = ""]
#[doc = "This call should be invoked exactly once per block. It will panic at the finalization"]
#[doc = "phase, if this call hasn't been invoked by that time."]
#[doc = ""]
#[doc = "The timestamp should be greater than the previous one by the amount specified by"]
#[doc = "`MinimumPeriod`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be `Inherent`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"]
#[doc = "- 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in"]
#[doc = " `on_finalize`)"]
#[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."]
#[doc = "# </weight>"]
pub fn set(
&self,
now: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Timestamp(
types::pallet_timestamp::pallet::Call::set { now },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Current time for the current block."]
pub async fn now(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
240u8, 195u8, 101u8, 195u8, 207u8, 89u8, 214u8, 113u8, 235u8, 114u8, 218u8, 14u8, 122u8,
65u8, 19u8, 196u8, 159u8, 31u8, 5u8, 21u8, 244u8, 98u8, 205u8, 207u8, 132u8, 224u8,
241u8, 214u8, 4u8, 93u8, 252u8, 187u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Did the timestamp get updated in this block?"]
pub async fn did_update(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
240u8, 195u8, 101u8, 195u8, 207u8, 89u8, 214u8, 113u8, 235u8, 114u8, 218u8, 14u8, 122u8,
65u8, 19u8, 196u8, 187u8, 209u8, 8u8, 196u8, 137u8, 153u8, 100u8, 247u8, 7u8, 253u8,
175u8, 251u8, 130u8, 99u8, 96u8, 101u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod indices {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Assign an previously unassigned index."]
#[doc = ""]
#[doc = "Payment: `Deposit` is reserved from the sender account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "- `index`: the index to be claimed. This must not be in use."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
pub fn claim(
&self,
index: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Indices(
types::pallet_indices::pallet::Call::claim { index },
))
}
#[doc = "Assign an index already owned by the sender to another account. The balance reservation"]
#[doc = "is effectively transferred to the new account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."]
#[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One transfer operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Indices Accounts, System Account (recipient)"]
#[doc = " - Writes: Indices Accounts, System Account (recipient)"]
#[doc = "# </weight>"]
pub fn transfer(
&self,
new: ::polymesh_api_client::AccountId,
index: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Indices(
types::pallet_indices::pallet::Call::transfer { new, index },
))
}
#[doc = "Free up an index owned by the sender."]
#[doc = ""]
#[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."]
#[doc = ""]
#[doc = "- `index`: the index to be freed. This must be owned by the sender."]
#[doc = ""]
#[doc = "Emits `IndexFreed` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- One reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
pub fn free(
&self,
index: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Indices(
types::pallet_indices::pallet::Call::free { index },
))
}
#[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"]
#[doc = "held, then any deposit is reimbursed to its current owner."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Root_."]
#[doc = ""]
#[doc = "- `index`: the index to be (re-)assigned."]
#[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."]
#[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."]
#[doc = ""]
#[doc = "Emits `IndexAssigned` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- Up to one reserve operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Indices Accounts, System Account (original owner)"]
#[doc = " - Writes: Indices Accounts, System Account (original owner)"]
#[doc = "# </weight>"]
pub fn force_transfer(
&self,
new: ::polymesh_api_client::AccountId,
index: u32,
freeze: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Indices(
types::pallet_indices::pallet::Call::force_transfer { new, index, freeze },
))
}
#[doc = "Freeze an index so it will always point to the sender account. This consumes the"]
#[doc = "deposit."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"]
#[doc = "non-frozen account `index`."]
#[doc = ""]
#[doc = "- `index`: the index to be frozen in place."]
#[doc = ""]
#[doc = "Emits `IndexFrozen` if successful."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- `O(1)`."]
#[doc = "- One storage mutation (codec `O(1)`)."]
#[doc = "- Up to one slash operation."]
#[doc = "- One event."]
#[doc = "-------------------"]
#[doc = "- DB Weight: 1 Read/Write (Accounts)"]
#[doc = "# </weight>"]
pub fn freeze(
&self,
index: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Indices(
types::pallet_indices::pallet::Call::freeze { index },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The lookup from index to account."]
pub async fn accounts(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<
Option<(::polymesh_api_client::AccountId, u128, bool)>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
26u8, 115u8, 109u8, 55u8, 80u8, 76u8, 46u8, 63u8, 183u8, 61u8, 173u8, 22u8, 12u8, 85u8,
178u8, 145u8, 142u8, 231u8, 65u8, 138u8, 101u8, 49u8, 23u8, 61u8, 96u8, 209u8, 246u8,
168u8, 45u8, 143u8, 77u8, 81u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod authorship {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Provide a set of uncles."]
pub fn set_uncles(
&self,
new_uncles: Vec<sp_runtime::generic::header::Header<u32, sp_runtime::traits::BlakeTwo256>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Authorship(
types::pallet_authorship::pallet::Call::set_uncles { new_uncles },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Uncles"]
pub async fn uncles(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<
pallet_authorship::UncleEntryItem<
u32,
primitive_types::H256,
::polymesh_api_client::AccountId,
>,
>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
213u8, 123u8, 206u8, 84u8, 95u8, 179u8, 130u8, 195u8, 69u8, 112u8, 229u8, 223u8, 191u8,
51u8, 143u8, 94u8, 163u8, 97u8, 128u8, 181u8, 207u8, 185u8, 246u8, 84u8, 31u8, 136u8,
73u8, 223u8, 146u8, 166u8, 236u8, 147u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<
pallet_authorship::UncleEntryItem<
u32,
primitive_types::H256,
::polymesh_api_client::AccountId,
>,
>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Author of current block."]
pub async fn author(
&self,
) -> ::polymesh_api_client::error::Result<Option<::polymesh_api_client::AccountId>> {
let key = ::polymesh_api_client::StorageKey(vec![
213u8, 123u8, 206u8, 84u8, 95u8, 179u8, 130u8, 195u8, 69u8, 112u8, 229u8, 223u8, 191u8,
51u8, 143u8, 94u8, 50u8, 109u8, 33u8, 188u8, 103u8, 164u8, 179u8, 64u8, 35u8, 213u8,
119u8, 88u8, 93u8, 114u8, 191u8, 215u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Whether uncles were already set in this block."]
pub async fn did_set_uncles(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
213u8, 123u8, 206u8, 84u8, 95u8, 179u8, 130u8, 195u8, 69u8, 112u8, 229u8, 223u8, 191u8,
51u8, 143u8, 94u8, 189u8, 223u8, 132u8, 197u8, 235u8, 35u8, 230u8, 245u8, 58u8, 247u8,
37u8, 136u8, 13u8, 143u8, 254u8, 144u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod balances {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Transfer some liquid free balance to another account."]
#[doc = ""]
#[doc = "`transfer` will set the `FreeBalance` of the sender and receiver."]
#[doc = "It will decrease the total issuance of the system by the `TransferFee`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be `Signed` by the transactor."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Dependent on arguments but not critical, given proper implementations for"]
#[doc = " input config types. See related functions below."]
#[doc = "- It contains a limited number of reads and writes internally and no complex computation."]
#[doc = ""]
#[doc = "Related functions:"]
#[doc = ""]
#[doc = " - `ensure_can_withdraw` is always called internally but has a bounded complexity."]
#[doc = " - Transferring balances to accounts that did not exist before will cause"]
#[doc = " `T::OnNewAccount::on_new_account` to be called."]
#[doc = "---------------------------------"]
#[doc = "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)"]
#[doc = "- DB Weight: 1 Read and 1 Write to destination account."]
#[doc = "- Origin account is already in memory, so no DB operations for them."]
#[doc = "# </weight>"]
pub fn transfer(
&self,
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::transfer { dest, value },
))
}
#[doc = "Transfer the native currency with the help of identifier string"]
#[doc = "this functionality can help to differentiate the transfers."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Base Weight: 73.64 µs, worst case scenario (account created, account removed)"]
#[doc = "- DB Weight: 1 Read and 1 Write to destination account."]
#[doc = "- Origin account is already in memory, so no DB operations for them."]
#[doc = "# </weight>"]
pub fn transfer_with_memo(
&self,
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
value: u128,
memo: Option<polymesh_common_utilities::traits::balances::Memo>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::transfer_with_memo { dest, value, memo },
))
}
#[doc = "Move some POLYX from balance of self to balance of BRR."]
pub fn deposit_block_reward_reserve_balance(
&self,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::deposit_block_reward_reserve_balance { value },
))
}
#[doc = "Set the balances of a given account."]
#[doc = ""]
#[doc = "This will alter `FreeBalance` and `ReservedBalance` in storage. it will"]
#[doc = "also decrease the total issuance of the system (`TotalIssuance`)."]
#[doc = ""]
#[doc = "The dispatch origin for this call is `root`."]
pub fn set_balance(
&self,
who: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
new_free: u128,
new_reserved: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::set_balance {
who,
new_free,
new_reserved,
},
))
}
#[doc = "Exactly as `transfer`, except the origin must be root and the source account may be"]
#[doc = "specified."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Same as transfer, but additional read and write because the source account is"]
#[doc = " not assumed to be in the overlay."]
#[doc = "# </weight>"]
pub fn force_transfer(
&self,
source: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::force_transfer {
source,
dest,
value,
},
))
}
#[doc = "Burns the given amount of tokens from the caller's free, unlocked balance."]
pub fn burn_account_balance(
&self,
amount: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Balances(
types::pallet_balances::Call::burn_account_balance { amount },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The total units issued in the system."]
pub async fn total_issuance(&self) -> ::polymesh_api_client::error::Result<u128> {
let key = ::polymesh_api_client::StorageKey(vec![
194u8, 38u8, 18u8, 118u8, 204u8, 157u8, 31u8, 133u8, 152u8, 234u8, 75u8, 106u8, 116u8,
177u8, 92u8, 47u8, 87u8, 200u8, 117u8, 228u8, 207u8, 247u8, 65u8, 72u8, 228u8, 98u8,
143u8, 38u8, 75u8, 151u8, 76u8, 128u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Any liquidity locks on some account balances."]
#[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."]
pub async fn locks(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Vec<pallet_balances::BalanceLock<u128>>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
194u8, 38u8, 18u8, 118u8, 204u8, 157u8, 31u8, 133u8, 152u8, 234u8, 75u8, 106u8, 116u8,
177u8, 92u8, 47u8, 33u8, 143u8, 38u8, 199u8, 58u8, 221u8, 99u8, 72u8, 151u8, 85u8, 11u8,
64u8, 3u8, 178u8, 107u8, 198u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_balances::BalanceLock<u128>>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod transaction_payment {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
pub async fn next_fee_multiplier(
&self,
) -> ::polymesh_api_client::error::Result<sp_arithmetic::fixed_point::FixedU128> {
let key = ::polymesh_api_client::StorageKey(vec![
63u8, 20u8, 103u8, 160u8, 150u8, 188u8, 215u8, 26u8, 91u8, 106u8, 12u8, 129u8, 85u8,
226u8, 8u8, 16u8, 63u8, 46u8, 223u8, 59u8, 223u8, 56u8, 29u8, 235u8, 227u8, 49u8, 171u8,
116u8, 70u8, 173u8, 223u8, 220u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 100u8, 167u8, 179u8, 182u8, 224u8, 13u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8,
];
<sp_arithmetic::fixed_point::FixedU128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_transaction_payment::Releases> {
let key = ::polymesh_api_client::StorageKey(vec![
63u8, 20u8, 103u8, 160u8, 150u8, 188u8, 215u8, 26u8, 91u8, 106u8, 12u8, 129u8, 85u8,
226u8, 8u8, 16u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_transaction_payment::Releases>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod identity {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Register `target_account` with a new Identity."]
#[doc = ""]
#[doc = "# Failure"]
#[doc = "- `origin` has to be a active CDD provider. Inactive CDD providers cannot add new"]
#[doc = "claims."]
#[doc = "- `target_account` (primary key of the new Identity) can be linked to just one and only"]
#[doc = "one identity."]
#[doc = "- External secondary keys can be linked to just one identity."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`7_000_000_000 + 600_000 * secondary_keys.len()`"]
pub fn cdd_register_did(
&self,
target_account: ::polymesh_api_client::AccountId,
secondary_keys: Vec<
polymesh_primitives::secondary_key::SecondaryKey<::polymesh_api_client::AccountId>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::cdd_register_did {
target_account,
secondary_keys,
},
))
}
#[doc = "Invalidates any claim generated by `cdd` from `disable_from` timestamps."]
#[doc = ""]
#[doc = "You can also define an expiration time,"]
#[doc = "which will invalidate all claims generated by that `cdd` and remove it as CDD member group."]
pub fn invalidate_cdd_claims(
&self,
cdd: polymesh_primitives::identity_id::IdentityId,
disable_from: u64,
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::invalidate_cdd_claims {
cdd,
disable_from,
expiry,
},
))
}
#[doc = "Deprecated. Use `remove_secondary_keys` instead."]
pub fn remove_secondary_keys_old(
&self,
keys_to_remove: Vec<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::remove_secondary_keys_old { keys_to_remove },
))
}
#[doc = "Call this with the new primary key. By invoking this method, caller accepts authorization"]
#[doc = "to become the new primary key of the issuing identity. If a CDD service provider approved"]
#[doc = "this change (or this is not required), primary key of the DID is updated."]
#[doc = ""]
#[doc = "The caller (new primary key) must be either a secondary key of the issuing identity, or"]
#[doc = "unlinked to any identity."]
#[doc = ""]
#[doc = "Differs from rotate_primary_key_to_secondary in that it will unlink the old primary key"]
#[doc = "instead of leaving it as a secondary key."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `owner_auth_id` Authorization from the owner who initiated the change"]
#[doc = "* `cdd_auth_id` Authorization from a CDD service provider"]
pub fn accept_primary_key(
&self,
rotation_auth_id: u64,
optional_cdd_auth_id: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::accept_primary_key {
rotation_auth_id,
optional_cdd_auth_id,
},
))
}
#[doc = "Set if CDD authorization is required for updating primary key of an identity."]
#[doc = "Callable via root (governance)"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_required` CDD Authorization required or not"]
pub fn change_cdd_requirement_for_mk_rotation(
&self,
auth_required: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::change_cdd_requirement_for_mk_rotation { auth_required },
))
}
#[doc = "Join an identity as a secondary key."]
pub fn join_identity_as_key(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::join_identity_as_key { auth_id },
))
}
#[doc = "Leave the secondary key's identity."]
pub fn leave_identity_as_key(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::leave_identity_as_key,
))
}
#[doc = "Adds a new claim record or edits an existing one."]
#[doc = ""]
#[doc = "Only called by did_issuer's secondary key."]
pub fn add_claim(
&self,
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_claim {
target,
claim,
expiry,
},
))
}
#[doc = "Marks the specified claim as revoked."]
pub fn revoke_claim(
&self,
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::revoke_claim { target, claim },
))
}
#[doc = "Deprecated. Use `set_secondary_key_permissions` instead."]
pub fn set_permission_to_signer(
&self,
key: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
perms: polymesh_primitives::secondary_key::Permissions,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::set_permission_to_signer { key, perms },
))
}
#[doc = "Placeholder for removed `legacy_set_permission_to_signer`."]
pub fn placeholder_legacy_set_permission_to_signer(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::placeholder_legacy_set_permission_to_signer,
))
}
#[doc = "It disables all secondary keys at `did` identity."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = ""]
pub fn freeze_secondary_keys(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::freeze_secondary_keys,
))
}
#[doc = "Re-enables all secondary keys of the caller's identity."]
pub fn unfreeze_secondary_keys(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::unfreeze_secondary_keys,
))
}
#[doc = "Adds an authorization."]
pub fn add_authorization(
&self,
target: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
data: polymesh_primitives::authorization::AuthorizationData<
::polymesh_api_client::AccountId,
>,
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_authorization {
target,
data,
expiry,
},
))
}
#[doc = "Removes an authorization."]
#[doc = "_auth_issuer_pays determines whether the issuer of the authorisation pays the transaction fee"]
pub fn remove_authorization(
&self,
target: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
auth_id: u64,
_auth_issuer_pays: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::remove_authorization {
target,
auth_id,
_auth_issuer_pays,
},
))
}
#[doc = "Deprecated. Use `add_secondary_keys_with_authorization` instead."]
pub fn add_secondary_keys_with_authorization_old(
&self,
additional_keys: Vec<
polymesh_common_utilities::traits::identity::SecondaryKeyWithAuthV1<
::polymesh_api_client::AccountId,
>,
>,
expires_at: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_secondary_keys_with_authorization_old {
additional_keys,
expires_at,
},
))
}
#[doc = "Add `Claim::InvestorUniqueness` claim for a given target identity."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = " Weight of the this extrinsic is depend on the computation that used to validate"]
#[doc = " the proof of claim, which will be a constant independent of user inputs."]
#[doc = "# </weight>"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Who provides the claim to the user? In this case, it's the user's account id as the user provides."]
#[doc = "* target - `IdentityId` to which the claim gets assigned."]
#[doc = "* claim - `InvestorUniqueness` claim details."]
#[doc = "* proof - To validate the self attestation."]
#[doc = "* expiry - Expiry of claim."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `DidMustAlreadyExist` Target should already been a part of the ecosystem."]
#[doc = "* `ClaimVariantNotAllowed` When origin trying to pass claim variant other than `InvestorUniqueness`."]
#[doc = "* `ConfidentialScopeClaimNotAllowed` When issuer is different from target or CDD_ID is invalid for given user."]
#[doc = "* `InvalidScopeClaim When proof is invalid."]
#[doc = "* `InvalidCDDId` when you are not the owner of that CDD_ID."]
pub fn add_investor_uniqueness_claim(
&self,
target: polymesh_primitives::identity_id::IdentityId,
claim: polymesh_primitives::identity_claim::Claim,
proof: [u8; 64usize],
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_investor_uniqueness_claim {
target,
claim,
proof,
expiry,
},
))
}
#[doc = "Assuming this is executed by the GC voting majority, adds a new cdd claim record."]
pub fn gc_add_cdd_claim(
&self,
target: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::gc_add_cdd_claim { target },
))
}
#[doc = "Assuming this is executed by the GC voting majority, removes an existing cdd claim record."]
pub fn gc_revoke_cdd_claim(
&self,
target: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::gc_revoke_cdd_claim { target },
))
}
pub fn add_investor_uniqueness_claim_v2(
&self,
target: polymesh_primitives::identity_id::IdentityId,
scope: polymesh_primitives::identity_claim::Scope,
claim: polymesh_primitives::identity_claim::Claim,
proof: confidential_identity_v2::claim_proofs::ScopeClaimProof,
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_investor_uniqueness_claim_v2 {
target,
scope,
claim,
proof,
expiry,
},
))
}
#[doc = "Revokes a specific claim using its [Claim Unique Index](/pallet_identity/index.html#claim-unique-index) composed by `target`,"]
#[doc = "`claim_type`, and `scope`."]
#[doc = ""]
#[doc = "Please note that `origin` must be the issuer of the target claim."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `TargetHasNonZeroBalanceAtScopeId` when you try to revoke a `InvestorUniqueness*`"]
#[doc = "claim, and `target` identity still have any balance on the given `scope`."]
pub fn revoke_claim_by_index(
&self,
target: polymesh_primitives::identity_id::IdentityId,
claim_type: polymesh_primitives::identity_claim::ClaimType,
scope: Option<polymesh_primitives::identity_claim::Scope>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::revoke_claim_by_index {
target,
claim_type,
scope,
},
))
}
#[doc = "Call this with the new primary key. By invoking this method, caller accepts authorization"]
#[doc = "to become the new primary key of the issuing identity. If a CDD service provider approved"]
#[doc = "this change, (or this is not required), primary key of the DID is updated."]
#[doc = ""]
#[doc = "The caller (new primary key) must be either a secondary key of the issuing identity, or"]
#[doc = "unlinked to any identity."]
#[doc = ""]
#[doc = "Differs from accept_primary_key in that it will leave the old primary key as a secondary"]
#[doc = "key with the permissions specified in the corresponding RotatePrimaryKeyToSecondary authorization"]
#[doc = "instead of unlinking the old primary key."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `owner_auth_id` Authorization from the owner who initiated the change"]
#[doc = "* `cdd_auth_id` Authorization from a CDD service provider"]
pub fn rotate_primary_key_to_secondary(
&self,
auth_id: u64,
optional_cdd_auth_id: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::rotate_primary_key_to_secondary {
auth_id,
optional_cdd_auth_id,
},
))
}
#[doc = "Adds secondary keys to target identity `id`."]
#[doc = ""]
#[doc = "Keys are directly added to identity because each of them has an authorization."]
#[doc = ""]
#[doc = "# Arguments:"]
#[doc = " - `origin` which must be the primary key of the identity `id`."]
#[doc = " - `id` to which new secondary keys will be added."]
#[doc = " - `additional_keys` which includes secondary keys,"]
#[doc = " coupled with authorization data, to add to target identity."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = " - Can only called by primary key owner."]
#[doc = " - Keys should be able to linked to any identity."]
pub fn add_secondary_keys_with_authorization(
&self,
additional_keys: Vec<
polymesh_common_utilities::traits::identity::SecondaryKeyWithAuth<
::polymesh_api_client::AccountId,
>,
>,
expires_at: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::add_secondary_keys_with_authorization {
additional_keys,
expires_at,
},
))
}
#[doc = "Sets permissions for an specific `target_key` key."]
#[doc = ""]
#[doc = "Only the primary key of an identity is able to set secondary key permissions."]
pub fn set_secondary_key_permissions(
&self,
key: ::polymesh_api_client::AccountId,
perms: polymesh_primitives::secondary_key::Permissions,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::set_secondary_key_permissions { key, perms },
))
}
#[doc = "Removes specified secondary keys of a DID if present."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = ""]
#[doc = "The extrinsic can only called by primary key owner."]
pub fn remove_secondary_keys(
&self,
keys_to_remove: Vec<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Identity(
types::pallet_identity::Call::remove_secondary_keys { keys_to_remove },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " DID -> identity info"]
pub async fn did_records(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::identity::DidRecord<::polymesh_api_client::AccountId>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 116u8, 80u8, 50u8, 71u8, 155u8, 166u8, 193u8, 20u8, 243u8, 13u8, 15u8,
187u8, 81u8, 210u8, 17u8, 101u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " DID -> bool that indicates if secondary keys are frozen."]
pub async fn is_did_frozen(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 88u8, 25u8, 37u8, 70u8, 145u8, 206u8, 174u8, 76u8, 55u8, 194u8, 155u8,
126u8, 165u8, 90u8, 158u8, 251u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " It stores the current identity for current transaction."]
pub async fn current_did(
&self,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 88u8, 175u8, 95u8, 211u8, 111u8, 160u8, 107u8, 83u8, 194u8, 191u8,
249u8, 86u8, 91u8, 169u8, 181u8, 252u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " It stores the current gas fee payer for the current transaction"]
pub async fn current_payer(
&self,
) -> ::polymesh_api_client::error::Result<Option<::polymesh_api_client::AccountId>> {
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 223u8, 12u8, 177u8, 135u8, 158u8, 14u8, 195u8, 122u8, 19u8, 92u8,
166u8, 91u8, 51u8, 74u8, 253u8, 115u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " (Target ID, claim type) (issuer,scope) -> Associated claims"]
pub async fn claims(
&self,
key_0: pallet_identity::types::Claim1stKey,
key_1: pallet_identity::types::Claim2ndKey,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_claim::IdentityClaim>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 156u8, 93u8, 121u8, 93u8, 2u8, 151u8, 190u8, 86u8, 2u8, 122u8, 75u8,
36u8, 100u8, 227u8, 51u8, 151u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 10u8,
];
<polymesh_primitives::identity_claim::IdentityClaim>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Map from AccountId to `KeyRecord` that holds the key's identity and permissions."]
pub async fn key_records(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::secondary_key::KeyRecord<::polymesh_api_client::AccountId>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 140u8, 4u8, 71u8, 134u8, 27u8, 11u8, 130u8, 15u8, 11u8, 176u8, 222u8,
164u8, 7u8, 164u8, 75u8, 52u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A reverse double map to allow finding all keys for an identity."]
pub async fn did_keys(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 48u8, 201u8, 137u8, 112u8, 80u8, 239u8, 164u8, 12u8, 73u8, 173u8,
249u8, 240u8, 185u8, 87u8, 20u8, 244u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Nonce to ensure unique actions. starts from 1."]
pub async fn multi_purpose_nonce(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 136u8, 63u8, 194u8, 107u8, 192u8, 198u8, 19u8, 83u8, 149u8, 2u8, 100u8,
173u8, 112u8, 208u8, 112u8, 17u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Authorization nonce per Identity. Initially is 0."]
pub async fn off_chain_authorization_nonce(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 180u8, 43u8, 244u8, 108u8, 4u8, 166u8, 74u8, 143u8, 8u8, 226u8, 206u8,
196u8, 229u8, 245u8, 62u8, 152u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All authorizations that an identity/key has"]
pub async fn authorizations(
&self,
key_0: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
key_1: u64,
) -> ::polymesh_api_client::error::Result<
Option<
polymesh_primitives::authorization::Authorization<::polymesh_api_client::AccountId, u64>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 104u8, 58u8, 80u8, 244u8, 170u8, 112u8, 186u8, 34u8, 193u8, 127u8,
221u8, 184u8, 141u8, 38u8, 73u8, 43u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " All authorizations that an identity has given. (Authorizer, auth_id -> authorized)"]
pub async fn authorizations_given(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: u64,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 31u8, 154u8, 92u8, 218u8, 166u8, 154u8, 225u8, 139u8, 48u8, 60u8,
199u8, 128u8, 85u8, 224u8, 137u8, 110u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Obsoleted storage variable superceded by `CddAuthForPrimaryKeyRotation`. It is kept here"]
#[doc = " for the purpose of storage migration."]
pub async fn cdd_auth_for_master_key_rotation(
&self,
) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 156u8, 184u8, 109u8, 207u8, 119u8, 173u8, 127u8, 235u8, 153u8, 47u8,
59u8, 11u8, 176u8, 190u8, 39u8, 18u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " A config flag that, if set, instructs an authorization from a CDD provider in order to"]
#[doc = " change the primary key of an identity."]
pub async fn cdd_auth_for_primary_key_rotation(
&self,
) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 114u8, 149u8, 136u8, 2u8, 121u8, 4u8, 72u8, 56u8, 19u8, 118u8, 139u8,
92u8, 202u8, 32u8, 42u8, 41u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_identity::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_identity::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " How many \"strong\" references to the account key."]
#[doc = ""]
#[doc = " Strong references will block a key from leaving it's identity."]
#[doc = ""]
#[doc = " Pallets using \"strong\" references to account keys:"]
#[doc = " * Relayer: For `user_key` and `paying_key`"]
#[doc = ""]
pub async fn account_key_ref_count(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
42u8, 237u8, 220u8, 119u8, 254u8, 88u8, 201u8, 141u8, 80u8, 189u8, 55u8, 241u8, 185u8,
8u8, 64u8, 249u8, 231u8, 18u8, 4u8, 202u8, 201u8, 201u8, 123u8, 37u8, 198u8, 89u8, 13u8,
191u8, 196u8, 34u8, 200u8, 154u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod cdd_service_providers {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change this group's limit for how many concurrent active members they may be."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` - the number of active members there may be concurrently."]
pub fn set_active_members_limit(
&self,
limit: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::set_active_members_limit { limit },
),
)
}
#[doc = "Disables a member at specific moment."]
#[doc = ""]
#[doc = "Please note that if member is already revoked (a \"valid member\"), its revocation"]
#[doc = "time-stamp will be updated."]
#[doc = ""]
#[doc = "Any disabled member should NOT allow to act like an active member of the group. For"]
#[doc = "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any"]
#[doc = "generated claim issued before `at` would be considered as a valid one."]
#[doc = ""]
#[doc = "If you want to invalidate any generated claim, you should use `Self::remove_member`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `at` - Revocation time-stamp."]
#[doc = "* `who` - Target member of the group."]
#[doc = "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the"]
#[doc = "generated claims will be \"invalid\" as `who` is not considered a member of the group."]
pub fn disable_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::disable_member { who, expiry, at },
),
)
}
#[doc = "Adds a member `who` to the group. May only be called from `AddOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `AddOrigin` or root"]
#[doc = "* `who` - IdentityId to be added to the group."]
pub fn add_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::add_member { who },
),
)
}
#[doc = "Removes a member `who` from the set. May only be called from `RemoveOrigin` or root."]
#[doc = ""]
#[doc = "Any claim previously generated by this member is not valid as a group claim. For"]
#[doc = "instance, if a CDD member group generated a claim for a target identity and then it is"]
#[doc = "removed, that claim will be invalid. In case you want to keep the validity of generated"]
#[doc = "claims, you have to use `Self::disable_member` function"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `RemoveOrigin` or root"]
#[doc = "* `who` - IdentityId to be removed from the group."]
pub fn remove_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::remove_member { who },
),
)
}
#[doc = "Swaps out one member `remove` for another member `add`."]
#[doc = ""]
#[doc = "May only be called from `SwapOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `SwapOrigin` or root"]
#[doc = "* `remove` - IdentityId to be removed from the group."]
#[doc = "* `add` - IdentityId to be added in place of `remove`."]
pub fn swap_member(
&self,
remove: polymesh_primitives::identity_id::IdentityId,
add: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::swap_member { remove, add },
),
)
}
#[doc = "Changes the membership to a new set, disregarding the existing membership."]
#[doc = "May only be called from `ResetOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `ResetOrigin` or root"]
#[doc = "* `members` - New set of identities"]
pub fn reset_members(
&self,
members: Vec<polymesh_primitives::identity_id::IdentityId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::reset_members { members },
),
)
}
#[doc = "Allows the calling member to *unilaterally quit* without this being subject to a GC"]
#[doc = "vote."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Member of committee who wants to quit."]
#[doc = ""]
#[doc = "# Error"]
#[doc = ""]
#[doc = "* Only primary key can abdicate."]
#[doc = "* Last member of a group cannot abdicate."]
pub fn abdicate_membership(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CddServiceProviders(
types::pallet_group::Call::abdicate_membership,
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The current \"active\" membership, stored as an ordered Vec."]
pub async fn active_members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
78u8, 20u8, 113u8, 165u8, 155u8, 49u8, 65u8, 197u8, 28u8, 64u8, 231u8, 183u8, 195u8,
158u8, 46u8, 25u8, 118u8, 191u8, 62u8, 207u8, 240u8, 38u8, 151u8, 14u8, 138u8, 14u8,
159u8, 240u8, 162u8, 26u8, 38u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current \"inactive\" membership, stored as an ordered Vec."]
pub async fn inactive_members(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
78u8, 20u8, 113u8, 165u8, 155u8, 49u8, 65u8, 197u8, 28u8, 64u8, 231u8, 183u8, 195u8,
158u8, 46u8, 25u8, 192u8, 158u8, 95u8, 137u8, 89u8, 57u8, 167u8, 102u8, 81u8, 34u8,
107u8, 3u8, 94u8, 145u8, 7u8, 20u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Limit of how many \"active\" members there can be."]
pub async fn active_members_limit(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
78u8, 20u8, 113u8, 165u8, 155u8, 49u8, 65u8, 197u8, 28u8, 64u8, 231u8, 183u8, 195u8,
158u8, 46u8, 25u8, 101u8, 218u8, 136u8, 19u8, 44u8, 164u8, 10u8, 73u8, 97u8, 92u8, 160u8,
7u8, 124u8, 249u8, 110u8, 183u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod polymesh_committee {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change the vote threshold the determines the winning proposal."]
#[doc = "For e.g., for a simple majority use (1, 2) which represents the in-equation \">= 1/2\"."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `n` - Numerator of the fraction representing vote threshold."]
#[doc = "* `d` - Denominator of the fraction representing vote threshold."]
pub fn set_vote_threshold(
&self,
n: u32,
d: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshCommittee(
types::pallet_committee::Call::set_vote_threshold { n, d },
),
)
}
#[doc = "Changes the release coordinator."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - The DID of the new release coordinator."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, If the new coordinator `id` is not part of the committee."]
pub fn set_release_coordinator(
&self,
id: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshCommittee(
types::pallet_committee::Call::set_release_coordinator { id },
),
)
}
#[doc = "Changes the time after which a proposal expires."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` - The new expiry time."]
pub fn set_expires_after(
&self,
expiry: polymesh_common_utilities::MaybeBlock<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshCommittee(
types::pallet_committee::Call::set_expires_after { expiry },
),
)
}
#[doc = "Proposes to the committee that `call` should be executed in its name."]
#[doc = "Alternatively, if the hash of `call` has already been recorded, i.e., already proposed,"]
#[doc = "then this call counts as a vote, i.e., as if `vote_by_hash` was called."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = ""]
#[doc = "The weight of this dispatchable is that of `call` as well as the complexity"]
#[doc = "for recording the vote itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `approve` - is this an approving vote?"]
#[doc = " If the proposal doesn't exist, passing `false` will result in error `FirstVoteReject`."]
#[doc = "* `call` - the call to propose for execution."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `FirstVoteReject`, if `call` hasn't been proposed and `approve == false`."]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote_or_propose(
&self,
approve: bool,
call: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshCommittee(
types::pallet_committee::Call::vote_or_propose {
approve,
call: ::std::boxed::Box::new(call),
},
),
)
}
#[doc = "Votes `approve`ingly (or not, if `false`)"]
#[doc = "on an existing `proposal` given by its hash, `index`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposal` - A hash of the proposal to be voted on."]
#[doc = "* `index` - The proposal index."]
#[doc = "* `approve` - If `true` than this is a `for` vote, and `against` otherwise."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote(
&self,
proposal: primitive_types::H256,
index: u32,
approve: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshCommittee(
types::pallet_committee::Call::vote {
proposal,
index,
approve,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The hashes of the active proposals."]
pub async fn proposals(
&self,
) -> ::polymesh_api_client::error::Result<Vec<primitive_types::H256>> {
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 136u8, 194u8, 247u8, 24u8, 140u8, 111u8, 221u8, 29u8, 255u8, 174u8,
47u8, 160u8, 209u8, 113u8, 244u8, 64u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<primitive_types::H256>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Actual proposal for a given hash."]
pub async fn proposal_of(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<polymesh_runtime_develop::runtime::Call>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 233u8, 214u8, 219u8, 136u8, 104u8, 163u8, 125u8, 121u8, 147u8, 11u8,
195u8, 247u8, 243u8, 57u8, 80u8, 209u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " PolymeshVotes on a given proposal, if it is ongoing."]
pub async fn voting(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<pallet_committee::PolymeshVotes<u32>>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 113u8, 205u8, 48u8, 104u8, 230u8, 17u8, 139u8, 251u8, 57u8, 43u8,
121u8, 131u8, 23u8, 246u8, 58u8, 137u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Proposals so far."]
pub async fn proposal_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 98u8, 84u8, 233u8, 213u8, 85u8, 136u8, 120u8, 79u8, 162u8, 166u8,
43u8, 114u8, 102u8, 150u8, 226u8, 177u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current members of the committee."]
pub async fn members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 186u8, 127u8, 184u8, 116u8, 87u8, 53u8, 220u8, 59u8, 226u8, 162u8,
198u8, 26u8, 114u8, 195u8, 158u8, 120u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Vote threshold for an approval."]
pub async fn vote_threshold(&self) -> ::polymesh_api_client::error::Result<(u32, u32)> {
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 156u8, 139u8, 199u8, 108u8, 52u8, 115u8, 136u8, 113u8, 204u8, 101u8,
23u8, 132u8, 125u8, 93u8, 3u8, 193u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<(u32, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Release coordinator."]
pub async fn release_coordinator(
&self,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 165u8, 39u8, 240u8, 96u8, 78u8, 203u8, 185u8, 53u8, 153u8, 133u8,
116u8, 59u8, 46u8, 180u8, 116u8, 144u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Time after which a proposal will expire."]
pub async fn expires_after(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_common_utilities::MaybeBlock<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 133u8, 201u8, 79u8, 204u8, 159u8, 70u8, 222u8, 61u8, 113u8, 75u8,
210u8, 244u8, 47u8, 119u8, 123u8, 176u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8];
<polymesh_common_utilities::MaybeBlock<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_committee::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
112u8, 60u8, 205u8, 82u8, 123u8, 235u8, 235u8, 221u8, 74u8, 251u8, 195u8, 174u8, 128u8,
103u8, 49u8, 221u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_committee::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod committee_membership {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change this group's limit for how many concurrent active members they may be."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` - the number of active members there may be concurrently."]
pub fn set_active_members_limit(
&self,
limit: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::set_active_members_limit { limit },
),
)
}
#[doc = "Disables a member at specific moment."]
#[doc = ""]
#[doc = "Please note that if member is already revoked (a \"valid member\"), its revocation"]
#[doc = "time-stamp will be updated."]
#[doc = ""]
#[doc = "Any disabled member should NOT allow to act like an active member of the group. For"]
#[doc = "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any"]
#[doc = "generated claim issued before `at` would be considered as a valid one."]
#[doc = ""]
#[doc = "If you want to invalidate any generated claim, you should use `Self::remove_member`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `at` - Revocation time-stamp."]
#[doc = "* `who` - Target member of the group."]
#[doc = "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the"]
#[doc = "generated claims will be \"invalid\" as `who` is not considered a member of the group."]
pub fn disable_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::disable_member { who, expiry, at },
),
)
}
#[doc = "Adds a member `who` to the group. May only be called from `AddOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `AddOrigin` or root"]
#[doc = "* `who` - IdentityId to be added to the group."]
pub fn add_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::add_member { who },
),
)
}
#[doc = "Removes a member `who` from the set. May only be called from `RemoveOrigin` or root."]
#[doc = ""]
#[doc = "Any claim previously generated by this member is not valid as a group claim. For"]
#[doc = "instance, if a CDD member group generated a claim for a target identity and then it is"]
#[doc = "removed, that claim will be invalid. In case you want to keep the validity of generated"]
#[doc = "claims, you have to use `Self::disable_member` function"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `RemoveOrigin` or root"]
#[doc = "* `who` - IdentityId to be removed from the group."]
pub fn remove_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::remove_member { who },
),
)
}
#[doc = "Swaps out one member `remove` for another member `add`."]
#[doc = ""]
#[doc = "May only be called from `SwapOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `SwapOrigin` or root"]
#[doc = "* `remove` - IdentityId to be removed from the group."]
#[doc = "* `add` - IdentityId to be added in place of `remove`."]
pub fn swap_member(
&self,
remove: polymesh_primitives::identity_id::IdentityId,
add: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::swap_member { remove, add },
),
)
}
#[doc = "Changes the membership to a new set, disregarding the existing membership."]
#[doc = "May only be called from `ResetOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `ResetOrigin` or root"]
#[doc = "* `members` - New set of identities"]
pub fn reset_members(
&self,
members: Vec<polymesh_primitives::identity_id::IdentityId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::reset_members { members },
),
)
}
#[doc = "Allows the calling member to *unilaterally quit* without this being subject to a GC"]
#[doc = "vote."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Member of committee who wants to quit."]
#[doc = ""]
#[doc = "# Error"]
#[doc = ""]
#[doc = "* Only primary key can abdicate."]
#[doc = "* Last member of a group cannot abdicate."]
pub fn abdicate_membership(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CommitteeMembership(
types::pallet_group::Call::abdicate_membership,
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The current \"active\" membership, stored as an ordered Vec."]
pub async fn active_members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
2u8, 22u8, 215u8, 223u8, 142u8, 27u8, 196u8, 187u8, 21u8, 159u8, 246u8, 26u8, 186u8,
19u8, 204u8, 99u8, 118u8, 191u8, 62u8, 207u8, 240u8, 38u8, 151u8, 14u8, 138u8, 14u8,
159u8, 240u8, 162u8, 26u8, 38u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current \"inactive\" membership, stored as an ordered Vec."]
pub async fn inactive_members(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
2u8, 22u8, 215u8, 223u8, 142u8, 27u8, 196u8, 187u8, 21u8, 159u8, 246u8, 26u8, 186u8,
19u8, 204u8, 99u8, 192u8, 158u8, 95u8, 137u8, 89u8, 57u8, 167u8, 102u8, 81u8, 34u8,
107u8, 3u8, 94u8, 145u8, 7u8, 20u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Limit of how many \"active\" members there can be."]
pub async fn active_members_limit(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
2u8, 22u8, 215u8, 223u8, 142u8, 27u8, 196u8, 187u8, 21u8, 159u8, 246u8, 26u8, 186u8,
19u8, 204u8, 99u8, 101u8, 218u8, 136u8, 19u8, 44u8, 164u8, 10u8, 73u8, 97u8, 92u8, 160u8,
7u8, 124u8, 249u8, 110u8, 183u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod technical_committee {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change the vote threshold the determines the winning proposal."]
#[doc = "For e.g., for a simple majority use (1, 2) which represents the in-equation \">= 1/2\"."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `n` - Numerator of the fraction representing vote threshold."]
#[doc = "* `d` - Denominator of the fraction representing vote threshold."]
pub fn set_vote_threshold(
&self,
n: u32,
d: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommittee(
types::pallet_committee::Call::set_vote_threshold { n, d },
),
)
}
#[doc = "Changes the release coordinator."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - The DID of the new release coordinator."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, If the new coordinator `id` is not part of the committee."]
pub fn set_release_coordinator(
&self,
id: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommittee(
types::pallet_committee::Call::set_release_coordinator { id },
),
)
}
#[doc = "Changes the time after which a proposal expires."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` - The new expiry time."]
pub fn set_expires_after(
&self,
expiry: polymesh_common_utilities::MaybeBlock<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommittee(
types::pallet_committee::Call::set_expires_after { expiry },
),
)
}
#[doc = "Proposes to the committee that `call` should be executed in its name."]
#[doc = "Alternatively, if the hash of `call` has already been recorded, i.e., already proposed,"]
#[doc = "then this call counts as a vote, i.e., as if `vote_by_hash` was called."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = ""]
#[doc = "The weight of this dispatchable is that of `call` as well as the complexity"]
#[doc = "for recording the vote itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `approve` - is this an approving vote?"]
#[doc = " If the proposal doesn't exist, passing `false` will result in error `FirstVoteReject`."]
#[doc = "* `call` - the call to propose for execution."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `FirstVoteReject`, if `call` hasn't been proposed and `approve == false`."]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote_or_propose(
&self,
approve: bool,
call: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommittee(
types::pallet_committee::Call::vote_or_propose {
approve,
call: ::std::boxed::Box::new(call),
},
),
)
}
#[doc = "Votes `approve`ingly (or not, if `false`)"]
#[doc = "on an existing `proposal` given by its hash, `index`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposal` - A hash of the proposal to be voted on."]
#[doc = "* `index` - The proposal index."]
#[doc = "* `approve` - If `true` than this is a `for` vote, and `against` otherwise."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote(
&self,
proposal: primitive_types::H256,
index: u32,
approve: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommittee(
types::pallet_committee::Call::vote {
proposal,
index,
approve,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The hashes of the active proposals."]
pub async fn proposals(
&self,
) -> ::polymesh_api_client::error::Result<Vec<primitive_types::H256>> {
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 136u8, 194u8, 247u8, 24u8, 140u8, 111u8, 221u8, 29u8, 255u8, 174u8,
47u8, 160u8, 209u8, 113u8, 244u8, 64u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<primitive_types::H256>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Actual proposal for a given hash."]
pub async fn proposal_of(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<polymesh_runtime_develop::runtime::Call>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 233u8, 214u8, 219u8, 136u8, 104u8, 163u8, 125u8, 121u8, 147u8, 11u8,
195u8, 247u8, 243u8, 57u8, 80u8, 209u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " PolymeshVotes on a given proposal, if it is ongoing."]
pub async fn voting(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<pallet_committee::PolymeshVotes<u32>>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 113u8, 205u8, 48u8, 104u8, 230u8, 17u8, 139u8, 251u8, 57u8, 43u8,
121u8, 131u8, 23u8, 246u8, 58u8, 137u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Proposals so far."]
pub async fn proposal_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 98u8, 84u8, 233u8, 213u8, 85u8, 136u8, 120u8, 79u8, 162u8, 166u8,
43u8, 114u8, 102u8, 150u8, 226u8, 177u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current members of the committee."]
pub async fn members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 186u8, 127u8, 184u8, 116u8, 87u8, 53u8, 220u8, 59u8, 226u8, 162u8,
198u8, 26u8, 114u8, 195u8, 158u8, 120u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Vote threshold for an approval."]
pub async fn vote_threshold(&self) -> ::polymesh_api_client::error::Result<(u32, u32)> {
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 156u8, 139u8, 199u8, 108u8, 52u8, 115u8, 136u8, 113u8, 204u8, 101u8,
23u8, 132u8, 125u8, 93u8, 3u8, 193u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<(u32, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Release coordinator."]
pub async fn release_coordinator(
&self,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 165u8, 39u8, 240u8, 96u8, 78u8, 203u8, 185u8, 53u8, 153u8, 133u8,
116u8, 59u8, 46u8, 180u8, 116u8, 144u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Time after which a proposal will expire."]
pub async fn expires_after(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_common_utilities::MaybeBlock<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 133u8, 201u8, 79u8, 204u8, 159u8, 70u8, 222u8, 61u8, 113u8, 75u8,
210u8, 244u8, 47u8, 119u8, 123u8, 176u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8];
<polymesh_common_utilities::MaybeBlock<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_committee::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
164u8, 212u8, 121u8, 249u8, 139u8, 115u8, 252u8, 118u8, 237u8, 236u8, 191u8, 162u8, 90u8,
39u8, 91u8, 219u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_committee::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod technical_committee_membership {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change this group's limit for how many concurrent active members they may be."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` - the number of active members there may be concurrently."]
pub fn set_active_members_limit(
&self,
limit: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::set_active_members_limit { limit },
),
)
}
#[doc = "Disables a member at specific moment."]
#[doc = ""]
#[doc = "Please note that if member is already revoked (a \"valid member\"), its revocation"]
#[doc = "time-stamp will be updated."]
#[doc = ""]
#[doc = "Any disabled member should NOT allow to act like an active member of the group. For"]
#[doc = "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any"]
#[doc = "generated claim issued before `at` would be considered as a valid one."]
#[doc = ""]
#[doc = "If you want to invalidate any generated claim, you should use `Self::remove_member`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `at` - Revocation time-stamp."]
#[doc = "* `who` - Target member of the group."]
#[doc = "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the"]
#[doc = "generated claims will be \"invalid\" as `who` is not considered a member of the group."]
pub fn disable_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::disable_member { who, expiry, at },
),
)
}
#[doc = "Adds a member `who` to the group. May only be called from `AddOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `AddOrigin` or root"]
#[doc = "* `who` - IdentityId to be added to the group."]
pub fn add_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::add_member { who },
),
)
}
#[doc = "Removes a member `who` from the set. May only be called from `RemoveOrigin` or root."]
#[doc = ""]
#[doc = "Any claim previously generated by this member is not valid as a group claim. For"]
#[doc = "instance, if a CDD member group generated a claim for a target identity and then it is"]
#[doc = "removed, that claim will be invalid. In case you want to keep the validity of generated"]
#[doc = "claims, you have to use `Self::disable_member` function"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `RemoveOrigin` or root"]
#[doc = "* `who` - IdentityId to be removed from the group."]
pub fn remove_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::remove_member { who },
),
)
}
#[doc = "Swaps out one member `remove` for another member `add`."]
#[doc = ""]
#[doc = "May only be called from `SwapOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `SwapOrigin` or root"]
#[doc = "* `remove` - IdentityId to be removed from the group."]
#[doc = "* `add` - IdentityId to be added in place of `remove`."]
pub fn swap_member(
&self,
remove: polymesh_primitives::identity_id::IdentityId,
add: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::swap_member { remove, add },
),
)
}
#[doc = "Changes the membership to a new set, disregarding the existing membership."]
#[doc = "May only be called from `ResetOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `ResetOrigin` or root"]
#[doc = "* `members` - New set of identities"]
pub fn reset_members(
&self,
members: Vec<polymesh_primitives::identity_id::IdentityId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::reset_members { members },
),
)
}
#[doc = "Allows the calling member to *unilaterally quit* without this being subject to a GC"]
#[doc = "vote."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Member of committee who wants to quit."]
#[doc = ""]
#[doc = "# Error"]
#[doc = ""]
#[doc = "* Only primary key can abdicate."]
#[doc = "* Last member of a group cannot abdicate."]
pub fn abdicate_membership(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::TechnicalCommitteeMembership(
types::pallet_group::Call::abdicate_membership,
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The current \"active\" membership, stored as an ordered Vec."]
pub async fn active_members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
196u8, 55u8, 227u8, 242u8, 203u8, 166u8, 23u8, 60u8, 167u8, 45u8, 15u8, 98u8, 8u8, 213u8,
47u8, 136u8, 118u8, 191u8, 62u8, 207u8, 240u8, 38u8, 151u8, 14u8, 138u8, 14u8, 159u8,
240u8, 162u8, 26u8, 38u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current \"inactive\" membership, stored as an ordered Vec."]
pub async fn inactive_members(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
196u8, 55u8, 227u8, 242u8, 203u8, 166u8, 23u8, 60u8, 167u8, 45u8, 15u8, 98u8, 8u8, 213u8,
47u8, 136u8, 192u8, 158u8, 95u8, 137u8, 89u8, 57u8, 167u8, 102u8, 81u8, 34u8, 107u8, 3u8,
94u8, 145u8, 7u8, 20u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Limit of how many \"active\" members there can be."]
pub async fn active_members_limit(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
196u8, 55u8, 227u8, 242u8, 203u8, 166u8, 23u8, 60u8, 167u8, 45u8, 15u8, 98u8, 8u8, 213u8,
47u8, 136u8, 101u8, 218u8, 136u8, 19u8, 44u8, 164u8, 10u8, 73u8, 97u8, 92u8, 160u8, 7u8,
124u8, 249u8, 110u8, 183u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod upgrade_committee {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change the vote threshold the determines the winning proposal."]
#[doc = "For e.g., for a simple majority use (1, 2) which represents the in-equation \">= 1/2\"."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `n` - Numerator of the fraction representing vote threshold."]
#[doc = "* `d` - Denominator of the fraction representing vote threshold."]
pub fn set_vote_threshold(
&self,
n: u32,
d: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommittee(
types::pallet_committee::Call::set_vote_threshold { n, d },
),
)
}
#[doc = "Changes the release coordinator."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - The DID of the new release coordinator."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, If the new coordinator `id` is not part of the committee."]
pub fn set_release_coordinator(
&self,
id: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommittee(
types::pallet_committee::Call::set_release_coordinator { id },
),
)
}
#[doc = "Changes the time after which a proposal expires."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` - The new expiry time."]
pub fn set_expires_after(
&self,
expiry: polymesh_common_utilities::MaybeBlock<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommittee(
types::pallet_committee::Call::set_expires_after { expiry },
),
)
}
#[doc = "Proposes to the committee that `call` should be executed in its name."]
#[doc = "Alternatively, if the hash of `call` has already been recorded, i.e., already proposed,"]
#[doc = "then this call counts as a vote, i.e., as if `vote_by_hash` was called."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = ""]
#[doc = "The weight of this dispatchable is that of `call` as well as the complexity"]
#[doc = "for recording the vote itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `approve` - is this an approving vote?"]
#[doc = " If the proposal doesn't exist, passing `false` will result in error `FirstVoteReject`."]
#[doc = "* `call` - the call to propose for execution."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `FirstVoteReject`, if `call` hasn't been proposed and `approve == false`."]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote_or_propose(
&self,
approve: bool,
call: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommittee(
types::pallet_committee::Call::vote_or_propose {
approve,
call: ::std::boxed::Box::new(call),
},
),
)
}
#[doc = "Votes `approve`ingly (or not, if `false`)"]
#[doc = "on an existing `proposal` given by its hash, `index`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposal` - A hash of the proposal to be voted on."]
#[doc = "* `index` - The proposal index."]
#[doc = "* `approve` - If `true` than this is a `for` vote, and `against` otherwise."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotAMember`, if the `origin` is not a member of this committee."]
pub fn vote(
&self,
proposal: primitive_types::H256,
index: u32,
approve: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommittee(
types::pallet_committee::Call::vote {
proposal,
index,
approve,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The hashes of the active proposals."]
pub async fn proposals(
&self,
) -> ::polymesh_api_client::error::Result<Vec<primitive_types::H256>> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 136u8, 194u8, 247u8, 24u8, 140u8, 111u8, 221u8, 29u8, 255u8, 174u8,
47u8, 160u8, 209u8, 113u8, 244u8, 64u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<primitive_types::H256>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Actual proposal for a given hash."]
pub async fn proposal_of(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<polymesh_runtime_develop::runtime::Call>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 233u8, 214u8, 219u8, 136u8, 104u8, 163u8, 125u8, 121u8, 147u8, 11u8,
195u8, 247u8, 243u8, 57u8, 80u8, 209u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " PolymeshVotes on a given proposal, if it is ongoing."]
pub async fn voting(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<pallet_committee::PolymeshVotes<u32>>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 113u8, 205u8, 48u8, 104u8, 230u8, 17u8, 139u8, 251u8, 57u8, 43u8,
121u8, 131u8, 23u8, 246u8, 58u8, 137u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Proposals so far."]
pub async fn proposal_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 98u8, 84u8, 233u8, 213u8, 85u8, 136u8, 120u8, 79u8, 162u8, 166u8,
43u8, 114u8, 102u8, 150u8, 226u8, 177u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current members of the committee."]
pub async fn members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 186u8, 127u8, 184u8, 116u8, 87u8, 53u8, 220u8, 59u8, 226u8, 162u8,
198u8, 26u8, 114u8, 195u8, 158u8, 120u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Vote threshold for an approval."]
pub async fn vote_threshold(&self) -> ::polymesh_api_client::error::Result<(u32, u32)> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 156u8, 139u8, 199u8, 108u8, 52u8, 115u8, 136u8, 113u8, 204u8, 101u8,
23u8, 132u8, 125u8, 93u8, 3u8, 193u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<(u32, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Release coordinator."]
pub async fn release_coordinator(
&self,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 165u8, 39u8, 240u8, 96u8, 78u8, 203u8, 185u8, 53u8, 153u8, 133u8,
116u8, 59u8, 46u8, 180u8, 116u8, 144u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Time after which a proposal will expire."]
pub async fn expires_after(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_common_utilities::MaybeBlock<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 133u8, 201u8, 79u8, 204u8, 159u8, 70u8, 222u8, 61u8, 113u8, 75u8,
210u8, 244u8, 47u8, 119u8, 123u8, 176u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8];
<polymesh_common_utilities::MaybeBlock<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_committee::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 155u8, 254u8, 225u8, 50u8, 205u8, 88u8, 23u8, 3u8, 164u8, 149u8, 57u8, 253u8,
227u8, 45u8, 185u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_committee::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod upgrade_committee_membership {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change this group's limit for how many concurrent active members they may be."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` - the number of active members there may be concurrently."]
pub fn set_active_members_limit(
&self,
limit: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::set_active_members_limit { limit },
),
)
}
#[doc = "Disables a member at specific moment."]
#[doc = ""]
#[doc = "Please note that if member is already revoked (a \"valid member\"), its revocation"]
#[doc = "time-stamp will be updated."]
#[doc = ""]
#[doc = "Any disabled member should NOT allow to act like an active member of the group. For"]
#[doc = "instance, a disabled CDD member should NOT be able to generate a CDD claim. However any"]
#[doc = "generated claim issued before `at` would be considered as a valid one."]
#[doc = ""]
#[doc = "If you want to invalidate any generated claim, you should use `Self::remove_member`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `at` - Revocation time-stamp."]
#[doc = "* `who` - Target member of the group."]
#[doc = "* `expiry` - Time-stamp when `who` is removed from CDD. As soon as it is expired, the"]
#[doc = "generated claims will be \"invalid\" as `who` is not considered a member of the group."]
pub fn disable_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::disable_member { who, expiry, at },
),
)
}
#[doc = "Adds a member `who` to the group. May only be called from `AddOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `AddOrigin` or root"]
#[doc = "* `who` - IdentityId to be added to the group."]
pub fn add_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::add_member { who },
),
)
}
#[doc = "Removes a member `who` from the set. May only be called from `RemoveOrigin` or root."]
#[doc = ""]
#[doc = "Any claim previously generated by this member is not valid as a group claim. For"]
#[doc = "instance, if a CDD member group generated a claim for a target identity and then it is"]
#[doc = "removed, that claim will be invalid. In case you want to keep the validity of generated"]
#[doc = "claims, you have to use `Self::disable_member` function"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `RemoveOrigin` or root"]
#[doc = "* `who` - IdentityId to be removed from the group."]
pub fn remove_member(
&self,
who: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::remove_member { who },
),
)
}
#[doc = "Swaps out one member `remove` for another member `add`."]
#[doc = ""]
#[doc = "May only be called from `SwapOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `SwapOrigin` or root"]
#[doc = "* `remove` - IdentityId to be removed from the group."]
#[doc = "* `add` - IdentityId to be added in place of `remove`."]
pub fn swap_member(
&self,
remove: polymesh_primitives::identity_id::IdentityId,
add: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::swap_member { remove, add },
),
)
}
#[doc = "Changes the membership to a new set, disregarding the existing membership."]
#[doc = "May only be called from `ResetOrigin` or root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Origin representing `ResetOrigin` or root"]
#[doc = "* `members` - New set of identities"]
pub fn reset_members(
&self,
members: Vec<polymesh_primitives::identity_id::IdentityId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::reset_members { members },
),
)
}
#[doc = "Allows the calling member to *unilaterally quit* without this being subject to a GC"]
#[doc = "vote."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - Member of committee who wants to quit."]
#[doc = ""]
#[doc = "# Error"]
#[doc = ""]
#[doc = "* Only primary key can abdicate."]
#[doc = "* Last member of a group cannot abdicate."]
pub fn abdicate_membership(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::UpgradeCommitteeMembership(
types::pallet_group::Call::abdicate_membership,
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The current \"active\" membership, stored as an ordered Vec."]
pub async fn active_members(
&self,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::identity_id::IdentityId>>
{
let key = ::polymesh_api_client::StorageKey(vec![
182u8, 126u8, 252u8, 69u8, 11u8, 212u8, 60u8, 43u8, 72u8, 78u8, 70u8, 113u8, 3u8, 206u8,
131u8, 172u8, 118u8, 191u8, 62u8, 207u8, 240u8, 38u8, 151u8, 14u8, 138u8, 14u8, 159u8,
240u8, 162u8, 26u8, 38u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::identity_id::IdentityId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current \"inactive\" membership, stored as an ordered Vec."]
pub async fn inactive_members(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
182u8, 126u8, 252u8, 69u8, 11u8, 212u8, 60u8, 43u8, 72u8, 78u8, 70u8, 113u8, 3u8, 206u8,
131u8, 172u8, 192u8, 158u8, 95u8, 137u8, 89u8, 57u8, 167u8, 102u8, 81u8, 34u8, 107u8,
3u8, 94u8, 145u8, 7u8, 20u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_common_utilities::traits::group::InactiveMember<u64>>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Limit of how many \"active\" members there can be."]
pub async fn active_members_limit(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
182u8, 126u8, 252u8, 69u8, 11u8, 212u8, 60u8, 43u8, 72u8, 78u8, 70u8, 113u8, 3u8, 206u8,
131u8, 172u8, 101u8, 218u8, 136u8, 19u8, 44u8, 164u8, 10u8, 73u8, 97u8, 92u8, 160u8, 7u8,
124u8, 249u8, 110u8, 183u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod multi_sig {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Creates a multisig"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signers` - Signers of the multisig (They need to accept authorization before they are actually added)."]
#[doc = "* `sigs_required` - Number of sigs required to process a multi-sig tx."]
pub fn create_multisig(
&self,
signers: Vec<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
>,
sigs_required: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::create_multisig {
signers,
sigs_required,
},
))
}
#[doc = "Creates a multisig proposal if it hasn't been created or approves it if it has."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
pub fn create_or_approve_proposal_as_identity(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal: polymesh_runtime_develop::runtime::Call,
expiry: Option<u64>,
auto_close: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::create_or_approve_proposal_as_identity {
multisig,
proposal: ::std::boxed::Box::new(proposal),
expiry,
auto_close,
},
))
}
#[doc = "Creates a multisig proposal if it hasn't been created or approves it if it has."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
pub fn create_or_approve_proposal_as_key(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal: polymesh_runtime_develop::runtime::Call,
expiry: Option<u64>,
auto_close: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::create_or_approve_proposal_as_key {
multisig,
proposal: ::std::boxed::Box::new(proposal),
expiry,
auto_close,
},
))
}
#[doc = "Creates a multisig proposal"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
pub fn create_proposal_as_identity(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal: polymesh_runtime_develop::runtime::Call,
expiry: Option<u64>,
auto_close: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::create_proposal_as_identity {
multisig,
proposal: ::std::boxed::Box::new(proposal),
expiry,
auto_close,
},
))
}
#[doc = "Creates a multisig proposal"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal` - Proposal to be voted on."]
#[doc = "* `expiry` - Optional proposal expiry time."]
#[doc = "* `auto_close` - Close proposal on receiving enough reject votes."]
#[doc = "If this is 1 out of `m` multisig, the proposal will be immediately executed."]
pub fn create_proposal_as_key(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal: polymesh_runtime_develop::runtime::Call,
expiry: Option<u64>,
auto_close: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::create_proposal_as_key {
multisig,
proposal: ::std::boxed::Box::new(proposal),
expiry,
auto_close,
},
))
}
#[doc = "Approves a multisig proposal using the caller's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to approve."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
pub fn approve_as_identity(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::approve_as_identity {
multisig,
proposal_id,
},
))
}
#[doc = "Approves a multisig proposal using the caller's secondary key (`AccountId`)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to approve."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
pub fn approve_as_key(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::approve_as_key {
multisig,
proposal_id,
},
))
}
#[doc = "Rejects a multisig proposal using the caller's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to reject."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
pub fn reject_as_identity(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::reject_as_identity {
multisig,
proposal_id,
},
))
}
#[doc = "Rejects a multisig proposal using the caller's secondary key (`AccountId`)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - MultiSig address."]
#[doc = "* `proposal_id` - Proposal id to reject."]
#[doc = "If quorum is reached, the proposal will be immediately executed."]
pub fn reject_as_key(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::reject_as_key {
multisig,
proposal_id,
},
))
}
#[doc = "Accepts a multisig signer authorization given to signer's identity."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_id` - Auth id of the authorization."]
pub fn accept_multisig_signer_as_identity(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::accept_multisig_signer_as_identity { auth_id },
))
}
#[doc = "Accepts a multisig signer authorization given to signer's key (AccountId)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `auth_id` - Auth id of the authorization."]
pub fn accept_multisig_signer_as_key(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::accept_multisig_signer_as_key { auth_id },
))
}
#[doc = "Adds a signer to the multisig. This must be called by the multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signer` - Signatory to add."]
pub fn add_multisig_signer(
&self,
signer: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::add_multisig_signer { signer },
))
}
#[doc = "Removes a signer from the multisig. This must be called by the multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `signer` - Signatory to remove."]
pub fn remove_multisig_signer(
&self,
signer: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::remove_multisig_signer { signer },
))
}
#[doc = "Adds a signer to the multisig. This must be called by the creator identity of the"]
#[doc = "multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - Address of the multi sig"]
#[doc = "* `signers` - Signatories to add."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`900_000_000 + 3_000_000 * signers.len()`"]
pub fn add_multisig_signers_via_creator(
&self,
multisig: ::polymesh_api_client::AccountId,
signers: Vec<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::add_multisig_signers_via_creator { multisig, signers },
))
}
#[doc = "Removes a signer from the multisig."]
#[doc = "This must be called by the creator identity of the multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - Address of the multisig."]
#[doc = "* `signers` - Signatories to remove."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`900_000_000 + 3_000_000 * signers.len()`"]
pub fn remove_multisig_signers_via_creator(
&self,
multisig: ::polymesh_api_client::AccountId,
signers: Vec<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::remove_multisig_signers_via_creator { multisig, signers },
))
}
#[doc = "Changes the number of signatures required by a multisig. This must be called by the"]
#[doc = "multisig itself."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `sigs_required` - New number of required signatures."]
pub fn change_sigs_required(
&self,
sigs_required: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::change_sigs_required { sigs_required },
))
}
#[doc = "Adds a multisig as a secondary key of current did if the current did is the creator of the"]
#[doc = "multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multisig` - multi sig address"]
pub fn make_multisig_secondary(
&self,
multisig: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::make_multisig_secondary { multisig },
))
}
#[doc = "Adds a multisig as the primary key of the current did if the current DID is the creator"]
#[doc = "of the multisig."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `multi_sig` - multi sig address"]
pub fn make_multisig_primary(
&self,
multisig: ::polymesh_api_client::AccountId,
optional_cdd_auth_id: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::make_multisig_primary {
multisig,
optional_cdd_auth_id,
},
))
}
#[doc = "Root callable extrinsic, used as an internal call for executing scheduled multisig proposal."]
pub fn execute_scheduled_proposal(
&self,
multisig: ::polymesh_api_client::AccountId,
proposal_id: u64,
multisig_did: polymesh_primitives::identity_id::IdentityId,
_proposal_weight: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::MultiSig(
types::pallet_multisig::Call::execute_scheduled_proposal {
multisig,
proposal_id,
multisig_did,
_proposal_weight,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Nonce to ensure unique MultiSig addresses are generated; starts from 1."]
pub async fn multi_sig_nonce(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 10u8, 14u8, 167u8, 96u8, 87u8, 167u8, 154u8, 118u8, 104u8, 172u8,
98u8, 216u8, 200u8, 251u8, 224u8, 34u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Signers of a multisig. (multisig, signer) => signer."]
pub async fn multi_sig_signers(
&self,
key_0: ::polymesh_api_client::AccountId,
key_1: polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 87u8, 55u8, 48u8, 162u8, 27u8, 187u8, 140u8, 140u8, 243u8, 200u8,
51u8, 112u8, 105u8, 135u8, 190u8, 191u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Number of approved/accepted signers of a multisig."]
pub async fn number_of_signers(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 71u8, 130u8, 22u8, 60u8, 187u8, 185u8, 53u8, 64u8, 248u8, 2u8, 20u8,
216u8, 127u8, 68u8, 253u8, 226u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Confirmations required before processing a multisig tx."]
pub async fn multi_sig_signs_required(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 186u8, 252u8, 143u8, 56u8, 160u8, 191u8, 27u8, 28u8, 14u8, 157u8,
223u8, 36u8, 138u8, 28u8, 207u8, 150u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Number of transactions proposed in a multisig. Used as tx id; starts from 0."]
pub async fn multi_sig_tx_done(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 79u8, 31u8, 81u8, 244u8, 28u8, 45u8, 127u8, 189u8, 55u8, 203u8, 110u8,
144u8, 201u8, 64u8, 76u8, 148u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Proposals presented for voting to a multisig (multisig, proposal id) => Option<T::Proposal>."]
pub async fn proposals(
&self,
key_0: (::polymesh_api_client::AccountId, u64),
) -> ::polymesh_api_client::error::Result<Option<polymesh_runtime_develop::runtime::Call>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 136u8, 194u8, 247u8, 24u8, 140u8, 111u8, 221u8, 29u8, 255u8, 174u8,
47u8, 160u8, 209u8, 113u8, 244u8, 64u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A mapping of proposals to their IDs."]
pub async fn proposal_ids(
&self,
key_0: ::polymesh_api_client::AccountId,
key_1: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<Option<u64>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 149u8, 230u8, 68u8, 209u8, 93u8, 43u8, 168u8, 123u8, 142u8, 97u8,
255u8, 121u8, 47u8, 101u8, 10u8, 146u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Individual multisig signer votes. (multi sig, signer, proposal) => vote."]
pub async fn votes(
&self,
key_0: (
::polymesh_api_client::AccountId,
polymesh_primitives::secondary_key::Signatory<::polymesh_api_client::AccountId>,
u64,
),
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 180u8, 173u8, 198u8, 161u8, 206u8, 79u8, 124u8, 194u8, 230u8, 150u8,
237u8, 15u8, 208u8, 107u8, 208u8, 28u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Maps a multisig account to its identity."]
pub async fn multi_sig_to_identity(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_id::IdentityId>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 140u8, 115u8, 230u8, 224u8, 53u8, 243u8, 38u8, 176u8, 80u8, 75u8,
73u8, 102u8, 20u8, 63u8, 143u8, 252u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<polymesh_primitives::identity_id::IdentityId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Details of a multisig proposal"]
pub async fn proposal_detail(
&self,
key_0: (::polymesh_api_client::AccountId, u64),
) -> ::polymesh_api_client::error::Result<pallet_multisig::ProposalDetails<u64>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 31u8, 32u8, 177u8, 185u8, 65u8, 92u8, 211u8, 48u8, 162u8, 227u8,
178u8, 217u8, 224u8, 146u8, 100u8, 61u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8,
];
<pallet_multisig::ProposalDetails<u64>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The last transaction version, used for `on_runtime_upgrade`."]
pub async fn transaction_version(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 136u8, 215u8, 103u8, 226u8, 158u8, 158u8, 152u8, 49u8, 187u8, 71u8,
177u8, 173u8, 103u8, 53u8, 72u8, 253u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_multisig::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
232u8, 14u8, 200u8, 196u8, 228u8, 213u8, 75u8, 150u8, 203u8, 167u8, 42u8, 186u8, 133u8,
109u8, 50u8, 47u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_multisig::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod bridge {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Changes the controller account as admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn change_controller(
&self,
controller: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::change_controller { controller },
))
}
#[doc = "Changes the bridge admin key."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn change_admin(
&self,
admin: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::change_admin { admin },
))
}
#[doc = "Changes the timelock period."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn change_timelock(
&self,
timelock: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::change_timelock { timelock },
))
}
#[doc = "Freezes transaction handling in the bridge module if it is not already frozen. When the"]
#[doc = "bridge is frozen, attempted transactions get postponed instead of getting handled."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn freeze(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::freeze,
))
}
#[doc = "Unfreezes transaction handling in the bridge module if it is frozen."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn unfreeze(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::unfreeze,
))
}
#[doc = "Changes the bridge limits."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `DivisionByZero` if `duration` is zero."]
pub fn change_bridge_limit(
&self,
amount: u128,
duration: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::change_bridge_limit { amount, duration },
))
}
#[doc = "Changes the bridge limit exempted list."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn change_bridge_exempted(
&self,
exempted: Vec<(polymesh_primitives::identity_id::IdentityId, bool)>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::change_bridge_exempted { exempted },
))
}
#[doc = "Forces handling a transaction by bypassing the bridge limit and timelock."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `NoValidCdd` if `bridge_tx.recipient` does not have a valid CDD claim."]
pub fn force_handle_bridge_tx(
&self,
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::force_handle_bridge_tx { bridge_tx },
))
}
#[doc = "Proposes a vector of bridge transactions. The vector is processed until the first"]
#[doc = "proposal which causes an error, in which case the error is returned and the rest of"]
#[doc = "proposals are not processed."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `ControllerNotSet` if `Controllers` was not set."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`500_000_000 + 7_000_000 * bridge_txs.len()`"]
pub fn batch_propose_bridge_tx(
&self,
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::batch_propose_bridge_tx { bridge_txs },
))
}
#[doc = "Proposes a bridge transaction, which amounts to making a multisig proposal for the"]
#[doc = "bridge transaction if the transaction is new or approving an existing proposal if the"]
#[doc = "transaction has already been proposed."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `ControllerNotSet` if `Controllers` was not set."]
pub fn propose_bridge_tx(
&self,
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::propose_bridge_tx { bridge_tx },
))
}
#[doc = "Handles an approved bridge transaction proposal."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadCaller` if `origin` is not `Self::controller` or `Self::admin`."]
#[doc = "- `TimelockedTx` if the transaction status is `Timelocked`."]
#[doc = "- `ProposalAlreadyHandled` if the transaction status is `Handled`."]
pub fn handle_bridge_tx(
&self,
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::handle_bridge_tx { bridge_tx },
))
}
#[doc = "Freezes given bridge transactions."]
#[doc = "If any bridge txn is already handled then this function will just ignore it and process next one."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`400_000_000 + 2_000_000 * bridge_txs.len()`"]
pub fn freeze_txs(
&self,
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::freeze_txs { bridge_txs },
))
}
#[doc = "Unfreezes given bridge transactions."]
#[doc = "If any bridge txn is already handled then this function will just ignore it and process next one."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`400_000_000 + 7_000_000 * bridge_txs.len()`"]
pub fn unfreeze_txs(
&self,
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::unfreeze_txs { bridge_txs },
))
}
#[doc = "Root callable extrinsic, used as an internal call to handle a scheduled timelocked bridge transaction."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `BadOrigin` if `origin` is not root."]
#[doc = "- `ProposalAlreadyHandled` if transaction status is `Handled`."]
#[doc = "- `FrozenTx` if transaction status is `Frozen`."]
pub fn handle_scheduled_bridge_tx(
&self,
bridge_tx: pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::handle_scheduled_bridge_tx { bridge_tx },
))
}
#[doc = "Add a freeze admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn add_freeze_admin(
&self,
freeze_admin: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::add_freeze_admin { freeze_admin },
))
}
#[doc = "Remove a freeze admin."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
pub fn remove_freeze_admin(
&self,
freeze_admin: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::remove_freeze_admin { freeze_admin },
))
}
#[doc = "Remove given bridge transactions."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `BadAdmin` if `origin` is not `Self::admin()` account."]
#[doc = "- `NotFrozen` if a tx in `bridge_txs` is not frozen."]
pub fn remove_txs(
&self,
bridge_txs: Vec<pallet_bridge::BridgeTx<::polymesh_api_client::AccountId>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Bridge(
types::pallet_bridge::Call::remove_txs { bridge_txs },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The multisig account of the bridge controller. The genesis signers accept their"]
#[doc = " authorizations and are able to get their proposals delivered. The bridge creator"]
#[doc = " transfers some POLY to their identity."]
pub async fn controller(
&self,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::AccountId> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 183u8, 204u8, 54u8, 145u8, 109u8, 19u8, 45u8, 59u8, 195u8, 248u8,
242u8, 199u8, 1u8, 23u8, 109u8, 66u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<::polymesh_api_client::AccountId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Details of bridge transactions identified with pairs of the recipient account and the"]
#[doc = " bridge transaction nonce."]
pub async fn bridge_tx_details(
&self,
key_0: ::polymesh_api_client::AccountId,
key_1: u32,
) -> ::polymesh_api_client::error::Result<pallet_bridge::BridgeTxDetail<u32>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 160u8, 171u8, 250u8, 46u8, 255u8, 186u8, 133u8, 70u8, 5u8, 113u8,
106u8, 184u8, 89u8, 221u8, 9u8, 230u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8,
];
<pallet_bridge::BridgeTxDetail<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The admin key."]
pub async fn admin(
&self,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::AccountId> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 173u8, 16u8, 141u8, 89u8, 159u8, 82u8, 234u8, 243u8, 141u8, 183u8,
130u8, 149u8, 229u8, 208u8, 119u8, 7u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<::polymesh_api_client::AccountId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Whether or not the bridge operation is frozen."]
pub async fn frozen(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 113u8, 75u8, 228u8, 71u8, 135u8, 205u8, 51u8, 93u8, 238u8, 240u8,
115u8, 32u8, 236u8, 125u8, 7u8, 114u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Freeze bridge admins. These accounts can only freeze the bridge."]
pub async fn freeze_admins(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 46u8, 14u8, 105u8, 223u8, 24u8, 9u8, 5u8, 55u8, 62u8, 201u8, 158u8,
14u8, 181u8, 153u8, 155u8, 227u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The bridge transaction timelock period, in blocks, since the acceptance of the"]
#[doc = " transaction proposal during which the admin key can freeze the transaction."]
pub async fn timelock(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 165u8, 103u8, 110u8, 43u8, 52u8, 147u8, 66u8, 159u8, 203u8, 158u8,
136u8, 171u8, 49u8, 13u8, 97u8, 241u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The maximum number of bridged POLYX per identity within a set interval of"]
#[doc = " blocks. Fields: POLYX amount and the block interval duration."]
pub async fn bridge_limit(&self) -> ::polymesh_api_client::error::Result<(u128, u32)> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 132u8, 135u8, 62u8, 163u8, 160u8, 182u8, 134u8, 35u8, 36u8, 148u8,
56u8, 64u8, 19u8, 139u8, 235u8, 155u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8,
];
<(u128, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Amount of POLYX bridged by the identity in last block interval. Fields: the bridged"]
#[doc = " amount and the last interval number."]
pub async fn polyx_bridged(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<(u128, u32)> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 153u8, 172u8, 54u8, 12u8, 240u8, 75u8, 42u8, 186u8, 164u8, 214u8,
162u8, 172u8, 42u8, 252u8, 113u8, 145u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8,
];
<(u128, u32)>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Identities not constrained by the bridge limit."]
pub async fn bridge_limit_exempted(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 108u8, 105u8, 144u8, 154u8, 14u8, 188u8, 102u8, 133u8, 14u8, 53u8,
105u8, 27u8, 178u8, 56u8, 52u8, 155u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_bridge::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
107u8, 189u8, 52u8, 241u8, 88u8, 169u8, 225u8, 165u8, 229u8, 96u8, 11u8, 3u8, 173u8,
238u8, 121u8, 50u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_bridge::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod staking {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Take the origin account as a stash and lock up `value` of its balance. `controller` will"]
#[doc = "be the account that controls it."]
#[doc = ""]
#[doc = "`value` must be more than the `minimum_balance` specified by `T::Currency`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash account."]
#[doc = ""]
#[doc = "Emits `Bonded`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Moderate complexity."]
#[doc = "- O(1)."]
#[doc = "- Three extra DB entries."]
#[doc = ""]
#[doc = "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned"]
#[doc = "unless the `origin` falls below _existential deposit_ and gets removed as dust."]
#[doc = "------------------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks"]
#[doc = "- Write: Bonded, Payee, [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
pub fn bond(
&self,
controller: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
value: u128,
payee: pallet_staking::RewardDestination<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::bond {
controller,
value,
payee,
},
))
}
#[doc = "Add some extra amount that have appeared in the stash `free_balance` into the balance up"]
#[doc = "for staking."]
#[doc = ""]
#[doc = "Use this if there are additional funds in your stash account that you wish to bond."]
#[doc = "Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount"]
#[doc = "that can be added."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller and"]
#[doc = "it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Bonded`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- O(1)."]
#[doc = "- One DB entry."]
#[doc = "------------"]
#[doc = "DB Weight:"]
#[doc = "- Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks"]
#[doc = "- Write: [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
pub fn bond_extra(
&self,
max_additional: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::bond_extra { max_additional },
))
}
#[doc = "Schedule a portion of the stash to be unlocked ready for transfer out after the bond"]
#[doc = "period ends. If this leaves an amount actively bonded less than"]
#[doc = "T::Currency::minimum_balance(), then it is increased to the full amount."]
#[doc = ""]
#[doc = "Once the unlock period is done, you can call `withdraw_unbonded` to actually move"]
#[doc = "the funds out of management ready for transfer."]
#[doc = ""]
#[doc = "No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)"]
#[doc = "can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need"]
#[doc = "to be called first to remove some of the chunks (if possible)."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Unbonded`."]
#[doc = ""]
#[doc = "See also [`Call::withdraw_unbonded`]."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Limited but potentially exploitable complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Each call (requires the remainder of the bonded balance to be above `minimum_balance`)"]
#[doc = " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage."]
#[doc = " The only way to clean the aforementioned storage item is also user-controlled via"]
#[doc = " `withdraw_unbonded`."]
#[doc = "- One DB entry."]
#[doc = "----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, Ledger, CurrentEra, Locks, \\[Origin Account\\]"]
#[doc = "- Write: Locks, Ledger, \\[Origin Account\\]"]
#[doc = "</weight>"]
pub fn unbond(
&self,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::unbond { value },
))
}
#[doc = "Remove any unlocked chunks from the `unlocking` queue from our management."]
#[doc = ""]
#[doc = "This essentially frees up that balance to be used by the stash account to do"]
#[doc = "whatever it wants."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "Emits `Withdrawn`."]
#[doc = ""]
#[doc = "See also [`Call::unbond`]."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Could be dependent on the `origin` argument and how much `unlocking` chunks exist."]
#[doc = " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is"]
#[doc = " indirectly user-controlled. See [`unbond`] for more detail."]
#[doc = "- Contains a limited number of reads, yet the size of which could be large based on `ledger`."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "---------------"]
#[doc = "Complexity O(S) where S is the number of slashing spans to remove"]
#[doc = "Update:"]
#[doc = "- Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]"]
#[doc = "- Writes: [Origin Account], Locks, Ledger"]
#[doc = "Kill:"]
#[doc = "- Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin"]
#[doc = " Account], Locks"]
#[doc = "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,"]
#[doc = " [Origin Account], Locks"]
#[doc = "- Writes Each: SpanSlash * S"]
#[doc = "NOTE: Weight annotation is the kill scenario, we refund otherwise."]
#[doc = "# </weight>"]
pub fn withdraw_unbonded(
&self,
num_slashing_spans: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::withdraw_unbonded { num_slashing_spans },
))
}
#[doc = "Declare the desire to validate for the origin controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "-----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Era Election Status, Ledger"]
#[doc = "- Write: Nominators, Validators"]
#[doc = "# </weight>"]
pub fn validate(
&self,
prefs: pallet_staking::ValidatorPrefs,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::validate { prefs },
))
}
#[doc = "Declare the desire to nominate `targets` for the origin controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era. This can only be called when"]
#[doc = "[`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- The transaction's complexity is proportional to the size of `targets` (N)"]
#[doc = "which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS)."]
#[doc = "- Both the reads and writes follow a similar pattern."]
#[doc = "---------"]
#[doc = "Weight: O(N)"]
#[doc = "where N is the number of targets"]
#[doc = "DB Weight:"]
#[doc = "- Reads: Era Election Status, Ledger, Current Era"]
#[doc = "- Writes: Validators, Nominators"]
#[doc = "# </weight>"]
pub fn nominate(
&self,
targets: Vec<::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::nominate { targets },
))
}
#[doc = "Declare no desire to either validate or nominate."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = "And, it can be only called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains one read."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "--------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, Ledger"]
#[doc = "- Write: Validators, Nominators"]
#[doc = "# </weight>"]
pub fn chill(&self) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::chill,
))
}
#[doc = "(Re-)set the payment target for a controller."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the controller, not the stash."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "---------"]
#[doc = "- Weight: O(1)"]
#[doc = "- DB Weight:"]
#[doc = " - Read: Ledger"]
#[doc = " - Write: Payee"]
#[doc = "# </weight>"]
pub fn set_payee(
&self,
payee: pallet_staking::RewardDestination<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_payee { payee },
))
}
#[doc = "(Re-)set the controller of a stash."]
#[doc = ""]
#[doc = "Effects will be felt at the beginning of the next era."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_ by the stash, not the controller."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Independent of the arguments. Insignificant complexity."]
#[doc = "- Contains a limited number of reads."]
#[doc = "- Writes are limited to the `origin` account key."]
#[doc = "----------"]
#[doc = "Weight: O(1)"]
#[doc = "DB Weight:"]
#[doc = "- Read: Bonded, Ledger New Controller, Ledger Old Controller"]
#[doc = "- Write: Bonded, Ledger New Controller, Ledger Old Controller"]
#[doc = "# </weight>"]
pub fn set_controller(
&self,
controller: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_controller { controller },
))
}
#[doc = "Sets the ideal number of validators."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Weight: O(1)"]
#[doc = "Write: Validator Count"]
#[doc = "# </weight>"]
pub fn set_validator_count(
&self,
new: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_validator_count { new },
))
}
#[doc = "Increments the ideal number of validators."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`set_validator_count`]."]
#[doc = "# </weight>"]
pub fn increase_validator_count(
&self,
additional: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::increase_validator_count { additional },
))
}
#[doc = "Scale up the ideal number of validators by a factor."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`set_validator_count`]."]
#[doc = "# </weight>"]
pub fn scale_validator_count(
&self,
factor: ::polymesh_api_client::per_things::Percent,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::scale_validator_count { factor },
))
}
#[doc = "Governance committee on 2/3 rds majority can introduce a new potential identity"]
#[doc = "to the pool of permissioned entities who can run validators. Staking module uses `PermissionedIdentity`"]
#[doc = "to ensure validators have completed KYB compliance and considers them for validation."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin Required origin for adding a potential validator."]
#[doc = "* identity Validator's IdentityId."]
#[doc = "* intended_count No. of validators given identity intends to run."]
pub fn add_permissioned_validator(
&self,
identity: polymesh_primitives::identity_id::IdentityId,
intended_count: Option<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::add_permissioned_validator {
identity,
intended_count,
},
))
}
#[doc = "Remove an identity from the pool of (wannabe) validator identities. Effects are known in the next session."]
#[doc = "Staking module checks `PermissionedIdentity` to ensure validators have"]
#[doc = "completed KYB compliance"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin Required origin for removing a potential validator."]
#[doc = "* identity Validator's IdentityId."]
pub fn remove_permissioned_validator(
&self,
identity: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::remove_permissioned_validator { identity },
))
}
#[doc = "Validate the nominators CDD expiry time."]
#[doc = ""]
#[doc = "If an account from a given set of address is nominating then"]
#[doc = "check the CDD expiry time of it and if it is expired"]
#[doc = "then the account should be unbonded and removed from the nominating process."]
#[doc = ""]
#[doc = "#<weight>"]
#[doc = "- Depends on passed list of AccountId."]
#[doc = "- Depends on the no. of claim issuers an accountId has for the CDD expiry."]
#[doc = "#</weight>"]
pub fn validate_cdd_expiry_nominators(
&self,
targets: Vec<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::validate_cdd_expiry_nominators { targets },
))
}
#[doc = "Changes commission rate which applies to all validators. Only Governance"]
#[doc = "committee is allowed to change this value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `new_cap` the new commission cap."]
pub fn set_commission_cap(
&self,
new_cap: ::polymesh_api_client::per_things::Perbill,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_commission_cap { new_cap },
))
}
#[doc = "Changes min bond value to be used in validate(). Only Governance"]
#[doc = "committee is allowed to change this value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `new_value` the new minimum"]
pub fn set_min_bond_threshold(
&self,
new_value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_min_bond_threshold { new_value },
))
}
#[doc = "Force there to be no new eras indefinitely."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- No arguments."]
#[doc = "- Weight: O(1)"]
#[doc = "- Write: ForceEra"]
#[doc = "# </weight>"]
pub fn force_no_eras(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::force_no_eras,
))
}
#[doc = "Force there to be a new era at the end of the next session. After this, it will be"]
#[doc = "reset to normal (non-forced) behaviour."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- No arguments."]
#[doc = "- Weight: O(1)"]
#[doc = "- Write ForceEra"]
#[doc = "# </weight>"]
pub fn force_new_era(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::force_new_era,
))
}
#[doc = "Set the validators who cannot be slashed (if any)."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(V)"]
#[doc = "- Write: Invulnerables"]
#[doc = "# </weight>"]
pub fn set_invulnerables(
&self,
invulnerables: Vec<::polymesh_api_client::AccountId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_invulnerables { invulnerables },
))
}
#[doc = "Force a current staker to become completely unstaked, immediately."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "O(S) where S is the number of slashing spans to be removed"]
#[doc = "Reads: Bonded, Slashing Spans, Account, Locks"]
#[doc = "Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks"]
#[doc = "Writes Each: SpanSlash * S"]
#[doc = "# </weight>"]
pub fn force_unstake(
&self,
stash: ::polymesh_api_client::AccountId,
num_slashing_spans: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::force_unstake {
stash,
num_slashing_spans,
},
))
}
#[doc = "Force there to be a new era at the end of sessions indefinitely."]
#[doc = ""]
#[doc = "The dispatch origin must be Root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Weight: O(1)"]
#[doc = "- Write: ForceEra"]
#[doc = "# </weight>"]
pub fn force_new_era_always(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::force_new_era_always,
))
}
#[doc = "Cancel enactment of a deferred slash."]
#[doc = ""]
#[doc = "Can be called by the `T::SlashCancelOrigin`."]
#[doc = ""]
#[doc = "Parameters: era and indices of the slashes for that era to kill."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Complexity: O(U + S)"]
#[doc = "with U unapplied slashes weighted with U=1000"]
#[doc = "and S is the number of slash indices to be canceled."]
#[doc = "- Read: Unapplied Slashes"]
#[doc = "- Write: Unapplied Slashes"]
#[doc = "# </weight>"]
pub fn cancel_deferred_slash(
&self,
era: u32,
slash_indices: Vec<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::cancel_deferred_slash { era, slash_indices },
))
}
#[doc = "Pay out all the stakers behind a single validator for a single era."]
#[doc = ""]
#[doc = "- `validator_stash` is the stash account of the validator. Their nominators, up to"]
#[doc = " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards."]
#[doc = "- `era` may be any era between `[current_era - history_depth; current_era]`."]
#[doc = ""]
#[doc = "The origin of this call must be _Signed_. Any account can call this function, even if"]
#[doc = "it is not one of the stakers."]
#[doc = ""]
#[doc = "This can only be called when [`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Time complexity: at most O(MaxNominatorRewardedPerValidator)."]
#[doc = "- Contains a limited number of reads and writes."]
#[doc = "-----------"]
#[doc = "N is the Number of payouts for the validator (including the validator)"]
#[doc = "Weight:"]
#[doc = "- Reward Destination Staked: O(N)"]
#[doc = "- Reward Destination Controller (Creating): O(N)"]
#[doc = "DB Weight:"]
#[doc = "- Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,"]
#[doc = " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)"]
#[doc = "- Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)"]
#[doc = "- Write Each: System Account, Locks, Ledger (3 items)"]
#[doc = "# </weight>"]
pub fn payout_stakers(
&self,
validator_stash: ::polymesh_api_client::AccountId,
era: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::payout_stakers {
validator_stash,
era,
},
))
}
#[doc = "Rebond a portion of the stash scheduled to be unlocked."]
#[doc = ""]
#[doc = "The dispatch origin must be signed by the controller, and it can be only called when"]
#[doc = "[`EraElectionStatus`] is `Closed`."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Time complexity: O(L), where L is unlocking chunks"]
#[doc = "- Bounded by `MAX_UNLOCKING_CHUNKS`."]
#[doc = "- Storage changes: Can't increase storage, only decrease it."]
#[doc = "---------------"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]"]
#[doc = " - Writes: [Origin Account], Locks, Ledger"]
#[doc = "# </weight>"]
pub fn rebond(
&self,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::rebond { value },
))
}
#[doc = "Set `HistoryDepth` value. This function will delete any history information"]
#[doc = "when `HistoryDepth` is reduced."]
#[doc = ""]
#[doc = "Parameters:"]
#[doc = "- `new_history_depth`: The new history depth you would like to set."]
#[doc = "- `era_items_deleted`: The number of items that will be deleted by this dispatch."]
#[doc = " This should report all the storage items that will be deleted by clearing old"]
#[doc = " era history. Needed to report an accurate weight for the dispatch. Trusted by"]
#[doc = " `Root` to report an accurate number."]
#[doc = ""]
#[doc = "Origin must be root."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- E: Number of history depths removed, i.e. 10 -> 7 = 3"]
#[doc = "- Weight: O(E)"]
#[doc = "- DB Weight:"]
#[doc = " - Reads: Current Era, History Depth"]
#[doc = " - Writes: History Depth"]
#[doc = " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs"]
#[doc = " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex"]
#[doc = "# </weight>"]
pub fn set_history_depth(
&self,
new_history_depth: u32,
_era_items_deleted: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::set_history_depth {
new_history_depth,
_era_items_deleted,
},
))
}
#[doc = "Remove all data structure concerning a staker/stash once its balance is at the minimum."]
#[doc = "This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone"]
#[doc = "and the target `stash` must have no funds left beyond the ED."]
#[doc = ""]
#[doc = "This can be called from any origin."]
#[doc = ""]
#[doc = "- `stash`: The stash account to reap. Its balance must be zero."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Complexity: O(S) where S is the number of slashing spans on the account."]
#[doc = "DB Weight:"]
#[doc = "- Reads: Stash Account, Bonded, Slashing Spans, Locks"]
#[doc = "- Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks"]
#[doc = "- Writes Each: SpanSlash * S"]
#[doc = "# </weight>"]
pub fn reap_stash(
&self,
stash: ::polymesh_api_client::AccountId,
num_slashing_spans: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::reap_stash {
stash,
num_slashing_spans,
},
))
}
#[doc = "Submit an election result to the chain. If the solution:"]
#[doc = ""]
#[doc = "1. is valid."]
#[doc = "2. has a better score than a potentially existing solution on chain."]
#[doc = ""]
#[doc = "then, it will be _put_ on chain."]
#[doc = ""]
#[doc = "A solution consists of two pieces of data:"]
#[doc = ""]
#[doc = "1. `winners`: a flat vector of all the winners of the round."]
#[doc = "2. `assignments`: the compact version of an assignment vector that encodes the edge"]
#[doc = " weights."]
#[doc = ""]
#[doc = "Both of which may be computed using _phragmen_, or any other algorithm."]
#[doc = ""]
#[doc = "Additionally, the submitter must provide:"]
#[doc = ""]
#[doc = "- The `score` that they claim their solution has."]
#[doc = ""]
#[doc = "Both validators and nominators will be represented by indices in the solution. The"]
#[doc = "indices should respect the corresponding types ([`ValidatorIndex`] and"]
#[doc = "[`NominatorIndex`]). Moreover, they should be valid when used to index into"]
#[doc = "[`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the"]
#[doc = "solution to be rejected. These two storage items are set during the election window and"]
#[doc = "may be used to determine the indices."]
#[doc = ""]
#[doc = "A solution is valid if:"]
#[doc = ""]
#[doc = "0. It is submitted when [`EraElectionStatus`] is `Open`."]
#[doc = "1. Its claimed score is equal to the score computed on-chain."]
#[doc = "2. Presents the correct number of winners."]
#[doc = "3. All indexes must be value according to the snapshot vectors. All edge values must"]
#[doc = " also be correct and should not overflow the granularity of the ratio type (i.e. 256"]
#[doc = " or billion)."]
#[doc = "4. For each edge, all targets are actually nominated by the voter."]
#[doc = "5. Has correct self-votes."]
#[doc = ""]
#[doc = "A solutions score is consisted of 3 parameters:"]
#[doc = ""]
#[doc = "1. `min { support.total }` for each support of a winner. This value should be maximized."]
#[doc = "2. `sum { support.total }` for each support of a winner. This value should be minimized."]
#[doc = "3. `sum { support.total^2 }` for each support of a winner. This value should be"]
#[doc = " minimized (to ensure less variance)"]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "The transaction is assumed to be the longest path, a better solution."]
#[doc = " - Initial solution is almost the same."]
#[doc = " - Worse solution is retraced in pre-dispatch-checks which sets its own weight."]
#[doc = "# </weight>"]
pub fn submit_election_solution(
&self,
winners: Vec<u16>,
compact: pallet_staking::CompactAssignments,
score: sp_npos_elections::ElectionScore,
era: u32,
size: pallet_staking::ElectionSize,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::submit_election_solution {
winners,
compact,
score,
era,
size,
},
))
}
#[doc = "Unsigned version of `submit_election_solution`."]
#[doc = ""]
#[doc = "Note that this must pass the [`ValidateUnsigned`] check which only allows transactions"]
#[doc = "from the local node to be included. In other words, only the block author can include a"]
#[doc = "transaction in the block."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "See [`submit_election_solution`]."]
#[doc = "# </weight>"]
pub fn submit_election_solution_unsigned(
&self,
winners: Vec<u16>,
compact: pallet_staking::CompactAssignments,
score: sp_npos_elections::ElectionScore,
era: u32,
size: pallet_staking::ElectionSize,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::submit_election_solution_unsigned {
winners,
compact,
score,
era,
size,
},
))
}
#[doc = "System version of `payout_stakers()`. Only be called by the root origin."]
pub fn payout_stakers_by_system(
&self,
validator_stash: ::polymesh_api_client::AccountId,
era: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::payout_stakers_by_system {
validator_stash,
era,
},
))
}
#[doc = "Switch slashing status on the basis of given `SlashingSwitch`. Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - AccountId of root."]
#[doc = "* slashing_switch - Switch used to set the targets for slashing."]
pub fn change_slashing_allowed_for(
&self,
slashing_switch: pallet_staking::SlashingSwitch,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::change_slashing_allowed_for { slashing_switch },
))
}
#[doc = "Update the intended validator count for a given DID."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin which must be the required origin for adding a potential validator."]
#[doc = "* identity to add as a validator."]
#[doc = "* new_intended_count New value of intended count."]
pub fn update_permissioned_validator_intended_count(
&self,
identity: polymesh_primitives::identity_id::IdentityId,
new_intended_count: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Staking(
types::pallet_staking::Call::update_permissioned_validator_intended_count {
identity,
new_intended_count,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Number of eras to keep in history."]
#[doc = ""]
#[doc = " Information is kept for eras in `[current_era - history_depth; current_era]`."]
#[doc = ""]
#[doc = " Must be more than the number of eras delayed by session otherwise. I.e. active era must"]
#[doc = " always be in history. I.e. `active_era > current_era - history_depth` must be"]
#[doc = " guaranteed."]
pub async fn history_depth(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 172u8, 10u8, 44u8, 191u8, 142u8, 53u8, 95u8, 94u8, 166u8, 203u8, 45u8,
232u8, 114u8, 123u8, 251u8, 12u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[84u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The ideal number of staking participants."]
pub async fn validator_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 19u8, 142u8, 113u8, 97u8, 36u8, 145u8, 25u8, 45u8, 104u8, 222u8, 171u8,
126u8, 111u8, 86u8, 63u8, 225u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Minimum number of staking participants before emergency conditions are imposed."]
pub async fn minimum_validator_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 180u8, 154u8, 39u8, 56u8, 238u8, 179u8, 8u8, 150u8, 170u8, 203u8, 139u8,
63u8, 180u8, 100u8, 113u8, 189u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're"]
#[doc = " easy to initialize and the performance hit is minimal (we expect no more than four"]
#[doc = " invulnerables) and restricted to testnets."]
pub async fn invulnerables(
&self,
) -> ::polymesh_api_client::error::Result<Vec<::polymesh_api_client::AccountId>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 85u8, 121u8, 41u8, 127u8, 77u8, 251u8, 150u8, 9u8, 231u8, 228u8, 194u8,
235u8, 171u8, 156u8, 228u8, 10u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<::polymesh_api_client::AccountId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Map from all locked \"stash\" accounts to the controller account."]
pub async fn bonded(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Option<::polymesh_api_client::AccountId>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 62u8, 209u8, 75u8, 69u8, 237u8, 32u8, 208u8, 84u8, 240u8, 94u8, 55u8,
226u8, 84u8, 44u8, 254u8, 112u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Map from all (unlocked) \"controller\" accounts to the info regarding the staking."]
pub async fn ledger(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_staking::StakingLedger<::polymesh_api_client::AccountId, u128>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 66u8, 42u8, 219u8, 87u8, 159u8, 29u8, 191u8, 79u8, 56u8, 134u8, 197u8,
207u8, 163u8, 187u8, 140u8, 196u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Where the reward payment should be made. Keyed by stash."]
pub async fn payee(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
pallet_staking::RewardDestination<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 146u8, 32u8, 225u8, 114u8, 190u8, 211u8, 22u8, 96u8, 95u8, 115u8, 241u8,
255u8, 123u8, 74u8, 222u8, 152u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_staking::RewardDestination<::polymesh_api_client::AccountId>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " The map from (wannabe) validator stash key to the preferences of that validator."]
pub async fn validators(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<pallet_staking::ValidatorPrefs> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 136u8, 220u8, 222u8, 147u8, 76u8, 101u8, 130u8, 39u8, 238u8, 29u8, 250u8,
252u8, 214u8, 225u8, 105u8, 3u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8];
<pallet_staking::ValidatorPrefs>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The map from nominator stash key to the set of stash keys of all validators to nominate."]
pub async fn nominators(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_staking::Nominations<::polymesh_api_client::AccountId>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 156u8, 106u8, 99u8, 127u8, 98u8, 174u8, 42u8, 241u8, 199u8, 227u8, 30u8,
237u8, 126u8, 150u8, 190u8, 4u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The current era index."]
#[doc = ""]
#[doc = " This is the latest planned era, depending on how the Session pallet queues the validator"]
#[doc = " set, it might be active or not."]
pub async fn current_era(&self) -> ::polymesh_api_client::error::Result<Option<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 11u8, 106u8, 69u8, 50u8, 30u8, 250u8, 233u8, 42u8, 234u8, 21u8, 224u8,
116u8, 14u8, 199u8, 175u8, 231u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The active era information, it holds index and start."]
#[doc = ""]
#[doc = " The active era is the era being currently rewarded. Validator set of this era must be"]
#[doc = " equal to [`SessionInterface::validators`]."]
pub async fn active_era(
&self,
) -> ::polymesh_api_client::error::Result<Option<pallet_staking::ActiveEraInfo>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 72u8, 125u8, 244u8, 100u8, 228u8, 74u8, 83u8, 75u8, 166u8, 176u8, 203u8,
179u8, 36u8, 7u8, 181u8, 135u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The session index at which the era start for the last `HISTORY_DEPTH` eras."]
#[doc = ""]
#[doc = " Note: This tracks the starting session (i.e. session index when era start being active)"]
#[doc = " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."]
pub async fn eras_start_session_index(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<Option<u32>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 173u8, 129u8, 28u8, 214u8, 90u8, 71u8, 13u8, 220u8, 95u8, 29u8, 98u8,
143u8, 240u8, 85u8, 9u8, 130u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Exposure of validator at era."]
#[doc = ""]
#[doc = " This is keyed first by the era index to allow bulk deletion and then the stash account."]
#[doc = ""]
#[doc = " Is it removed after `HISTORY_DEPTH` eras."]
#[doc = " If stakers hasn't been set or has been removed then empty exposure is returned."]
pub async fn eras_stakers(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 139u8, 222u8, 10u8, 14u8, 168u8, 134u8, 70u8, 5u8, 227u8, 182u8, 142u8,
217u8, 203u8, 45u8, 160u8, 27u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8];
<pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Clipped Exposure of validator at era."]
#[doc = ""]
#[doc = " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the"]
#[doc = " `T::MaxNominatorRewardedPerValidator` biggest stakers."]
#[doc = " (Note: the field `total` and `own` of the exposure remains unchanged)."]
#[doc = " This is used to limit the i/o cost for the nominator payout."]
#[doc = ""]
#[doc = " This is keyed fist by the era index to allow bulk deletion and then the stash account."]
#[doc = ""]
#[doc = " Is it removed after `HISTORY_DEPTH` eras."]
#[doc = " If stakers hasn't been set or has been removed then empty exposure is returned."]
pub async fn eras_stakers_clipped(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 66u8, 152u8, 43u8, 157u8, 108u8, 122u8, 204u8, 153u8, 250u8, 169u8, 9u8,
76u8, 145u8, 35u8, 114u8, 194u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8];
<pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Similar to `ErasStakers`, this holds the preferences of validators."]
#[doc = ""]
#[doc = " This is keyed first by the era index to allow bulk deletion and then the stash account."]
#[doc = ""]
#[doc = " Is it removed after `HISTORY_DEPTH` eras."]
pub async fn eras_validator_prefs(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<pallet_staking::ValidatorPrefs> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 104u8, 45u8, 185u8, 45u8, 222u8, 32u8, 161u8, 13u8, 150u8, 208u8, 15u8,
240u8, 233u8, 226u8, 33u8, 192u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8];
<pallet_staking::ValidatorPrefs>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The total validator era payout for the last `HISTORY_DEPTH` eras."]
#[doc = ""]
#[doc = " Eras that haven't finished yet or has been removed doesn't have reward."]
pub async fn eras_validator_reward(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<Option<u128>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 126u8, 110u8, 210u8, 238u8, 80u8, 124u8, 123u8, 68u8, 65u8, 213u8, 158u8,
77u8, 237u8, 68u8, 184u8, 162u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Rewards for the last `HISTORY_DEPTH` eras."]
#[doc = " If reward hasn't been set or has been removed then 0 reward is returned."]
pub async fn eras_reward_points(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<
pallet_staking::EraRewardPoints<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 128u8, 204u8, 101u8, 116u8, 40u8, 22u8, 113u8, 178u8, 153u8, 193u8, 114u8,
125u8, 122u8, 198u8, 140u8, 171u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8];
<pallet_staking::EraRewardPoints<::polymesh_api_client::AccountId>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " The total amount staked for the last `HISTORY_DEPTH` eras."]
#[doc = " If total hasn't been set or has been removed then 0 stake is returned."]
pub async fn eras_total_stake(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 161u8, 65u8, 196u8, 254u8, 103u8, 194u8, 209u8, 31u8, 74u8, 16u8, 198u8,
172u8, 167u8, 167u8, 154u8, 4u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Mode of era forcing."]
pub async fn force_era(
&self,
) -> ::polymesh_api_client::error::Result<pallet_staking::Forcing> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 247u8, 218u8, 208u8, 49u8, 115u8, 36u8, 174u8, 202u8, 232u8, 116u8, 75u8,
135u8, 252u8, 149u8, 242u8, 243u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_staking::Forcing>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The percentage of the slash that is distributed to reporters."]
#[doc = ""]
#[doc = " The rest of the slashed value is handled by the `Slash`."]
pub async fn slash_reward_fraction(
&self,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::per_things::Perbill> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 194u8, 154u8, 3u8, 16u8, 225u8, 187u8, 69u8, 210u8, 12u8, 172u8, 231u8,
124u8, 203u8, 98u8, 201u8, 125u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<::polymesh_api_client::per_things::Perbill>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The amount of currency given to reporters of a slash event which was"]
#[doc = " canceled by extraordinary circumstances (e.g. governance)."]
pub async fn canceled_slash_payout(&self) -> ::polymesh_api_client::error::Result<u128> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 40u8, 220u8, 203u8, 85u8, 155u8, 149u8, 196u8, 1u8, 104u8, 161u8, 178u8,
105u8, 101u8, 129u8, 181u8, 167u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All unapplied slashes that are queued for later."]
pub async fn unapplied_slashes(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<
Vec<pallet_staking::UnappliedSlash<::polymesh_api_client::AccountId, u128>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 4u8, 40u8, 36u8, 23u8, 10u8, 93u8, 180u8, 56u8, 31u8, 227u8, 57u8, 80u8,
57u8, 202u8, 189u8, 36u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_staking::UnappliedSlash<::polymesh_api_client::AccountId, u128>>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " A mapping from still-bonded eras to the first session index of that era."]
#[doc = ""]
#[doc = " Must contains information for eras for the range:"]
#[doc = " `[active_era - bounding_duration; active_era]`"]
pub async fn bonded_eras(&self) -> ::polymesh_api_client::error::Result<Vec<(u32, u32)>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 234u8, 7u8, 222u8, 43u8, 143u8, 1u8, 5u8, 22u8, 220u8, 163u8, 247u8, 239u8,
82u8, 247u8, 172u8, 90u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(u32, u32)>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All slashing events on validators, mapped by era to the highest slash proportion"]
#[doc = " and slash value of the era."]
pub async fn validator_slash_in_era(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<(::polymesh_api_client::per_things::Perbill, u128)>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 173u8, 110u8, 21u8, 238u8, 123u8, 253u8, 93u8, 85u8, 235u8, 161u8, 1u8,
36u8, 135u8, 211u8, 175u8, 84u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " All slashing events on nominators, mapped by era to the highest slash value of the era."]
pub async fn nominator_slash_in_era(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Option<u128>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 129u8, 80u8, 8u8, 232u8, 33u8, 11u8, 109u8, 108u8, 247u8, 1u8, 226u8, 46u8,
91u8, 242u8, 113u8, 65u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Slashing spans for stash accounts."]
pub async fn slashing_spans(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Option<pallet_staking::slashing::SlashingSpans>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 171u8, 106u8, 33u8, 43u8, 192u8, 138u8, 86u8, 3u8, 130u8, 143u8, 51u8,
249u8, 14u8, 196u8, 161u8, 57u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Records information about the maximum slash of a stash within a slashing span,"]
#[doc = " as well as how much reward has been paid out."]
pub async fn span_slash(
&self,
key_0: (::polymesh_api_client::AccountId, u32),
) -> ::polymesh_api_client::error::Result<pallet_staking::slashing::SpanRecord<u128>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 230u8, 47u8, 111u8, 121u8, 126u8, 190u8, 145u8, 56u8, 223u8, 206u8, 217u8,
66u8, 151u8, 127u8, 234u8, 80u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_staking::slashing::SpanRecord<u128>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The earliest era for which we have a pending, unapplied slash."]
pub async fn earliest_unapplied_slash(
&self,
) -> ::polymesh_api_client::error::Result<Option<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 96u8, 91u8, 44u8, 4u8, 107u8, 85u8, 9u8, 3u8, 127u8, 63u8, 21u8, 139u8,
151u8, 65u8, 208u8, 55u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Snapshot of validators at the beginning of the current election window. This should only"]
#[doc = " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."]
pub async fn snapshot_validators(
&self,
) -> ::polymesh_api_client::error::Result<Option<Vec<::polymesh_api_client::AccountId>>>
{
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 126u8, 0u8, 108u8, 38u8, 214u8, 156u8, 76u8, 151u8, 246u8, 86u8, 72u8,
171u8, 129u8, 90u8, 39u8, 68u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Snapshot of nominators at the beginning of the current election window. This should only"]
#[doc = " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."]
pub async fn snapshot_nominators(
&self,
) -> ::polymesh_api_client::error::Result<Option<Vec<::polymesh_api_client::AccountId>>>
{
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 247u8, 226u8, 87u8, 201u8, 67u8, 111u8, 230u8, 126u8, 44u8, 77u8, 157u8,
76u8, 237u8, 125u8, 69u8, 76u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The next validator set. At the end of an era, if this is available (potentially from the"]
#[doc = " result of an offchain worker), it is immediately used. Otherwise, the on-chain election"]
#[doc = " is executed."]
pub async fn queued_elected(
&self,
) -> ::polymesh_api_client::error::Result<
Option<pallet_staking::ElectionResult<::polymesh_api_client::AccountId, u128>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 80u8, 109u8, 34u8, 179u8, 53u8, 5u8, 182u8, 127u8, 82u8, 93u8, 129u8,
189u8, 0u8, 91u8, 22u8, 135u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The score of the current [`QueuedElected`]."]
pub async fn queued_score(
&self,
) -> ::polymesh_api_client::error::Result<Option<sp_npos_elections::ElectionScore>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 179u8, 182u8, 147u8, 10u8, 243u8, 119u8, 186u8, 116u8, 247u8, 232u8, 55u8,
158u8, 68u8, 178u8, 199u8, 127u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Flag to control the execution of the offchain election. When `Open(_)`, we accept"]
#[doc = " solutions to be submitted."]
pub async fn era_election_status(
&self,
) -> ::polymesh_api_client::error::Result<pallet_staking::ElectionStatus<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 225u8, 121u8, 21u8, 119u8, 228u8, 239u8, 203u8, 8u8, 63u8, 220u8, 60u8,
178u8, 30u8, 133u8, 178u8, 228u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_staking::ElectionStatus<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " True if the current **planned** session is final. Note that this does not take era"]
#[doc = " forcing into account."]
pub async fn is_current_session_final(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 163u8, 246u8, 221u8, 41u8, 154u8, 211u8, 175u8, 166u8, 133u8, 128u8, 162u8,
90u8, 115u8, 246u8, 234u8, 191u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Entities that are allowed to run operator/validator nodes."]
pub async fn permissioned_identity(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<Option<pallet_staking::PermissionedIdentityPrefs>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 43u8, 183u8, 3u8, 134u8, 104u8, 250u8, 251u8, 247u8, 56u8, 149u8, 104u8,
159u8, 128u8, 103u8, 131u8, 19u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Every validator has commission that should be in the range [0, Cap]."]
pub async fn validator_commission_cap(
&self,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::per_things::Perbill> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 153u8, 11u8, 115u8, 89u8, 10u8, 47u8, 61u8, 123u8, 111u8, 250u8, 62u8, 6u8,
47u8, 110u8, 11u8, 162u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<::polymesh_api_client::per_things::Perbill>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The minimum amount with which a validator can bond."]
pub async fn minimum_bond_threshold(&self) -> ::polymesh_api_client::error::Result<u128> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 241u8, 1u8, 231u8, 252u8, 155u8, 88u8, 8u8, 104u8, 205u8, 239u8, 247u8,
179u8, 33u8, 130u8, 44u8, 147u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
pub async fn slashing_allowed_for(
&self,
) -> ::polymesh_api_client::error::Result<pallet_staking::SlashingSwitch> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 231u8, 118u8, 103u8, 194u8, 236u8, 24u8, 122u8, 5u8, 185u8, 143u8, 2u8,
137u8, 239u8, 72u8, 161u8, 77u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[2u8];
<pallet_staking::SlashingSwitch>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " True if network has been upgraded to this version."]
#[doc = " Storage version of the pallet."]
#[doc = ""]
#[doc = " This is set to v6.0.1 for new networks."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_staking::Releases> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 62u8, 73u8, 7u8, 247u8, 22u8, 172u8, 137u8, 182u8, 52u8, 125u8, 21u8, 236u8, 236u8,
237u8, 202u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8, 169u8,
77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[6u8];
<pallet_staking::Releases>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod offences {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The primary structure that holds all offence records keyed by report identifiers."]
pub async fn reports(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<
Option<
sp_staking::offence::OffenceDetails<
::polymesh_api_client::AccountId,
(
::polymesh_api_client::AccountId,
pallet_staking::Exposure<::polymesh_api_client::AccountId, u128>,
),
>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
213u8, 196u8, 27u8, 82u8, 163u8, 113u8, 170u8, 54u8, 201u8, 37u8, 76u8, 227u8, 67u8,
36u8, 242u8, 165u8, 178u8, 98u8, 233u8, 35u8, 143u8, 164u8, 2u8, 84u8, 12u8, 37u8, 11u8,
195u8, 245u8, 214u8, 24u8, 141u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A vector of reports of the same kind that happened at the same time slot."]
pub async fn concurrent_reports_index(
&self,
key_0: [u8; 16usize],
key_1: Vec<u8>,
) -> ::polymesh_api_client::error::Result<Vec<primitive_types::H256>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
213u8, 196u8, 27u8, 82u8, 163u8, 113u8, 170u8, 54u8, 201u8, 37u8, 76u8, 227u8, 67u8,
36u8, 242u8, 165u8, 96u8, 220u8, 142u8, 240u8, 0u8, 205u8, 189u8, 200u8, 89u8, 221u8,
53u8, 34u8, 41u8, 206u8, 22u8, 251u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<primitive_types::H256>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Enumerates all reports of a kind along with the time they happened."]
#[doc = ""]
#[doc = " All reports are sorted by the time of offence."]
#[doc = ""]
#[doc = " Note that the actual type of this mapping is `Vec<u8>`, this is because values of"]
#[doc = " different types are not supported at the moment so we are doing the manual serialization."]
pub async fn reports_by_kind_index(
&self,
key_0: [u8; 16usize],
) -> ::polymesh_api_client::error::Result<Vec<u8>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
213u8, 196u8, 27u8, 82u8, 163u8, 113u8, 170u8, 54u8, 201u8, 37u8, 76u8, 227u8, 67u8,
36u8, 242u8, 165u8, 53u8, 137u8, 192u8, 218u8, 197u8, 13u8, 166u8, 251u8, 58u8, 54u8,
17u8, 235u8, 50u8, 188u8, 210u8, 126u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u8>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod session {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Sets the session key(s) of the function caller to `keys`."]
#[doc = "Allows an account to set its session key prior to becoming a validator."]
#[doc = "This doesn't take effect until the next session."]
#[doc = ""]
#[doc = "The dispatch origin of this function must be signed."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(1)`. Actual cost depends on the number of length of"]
#[doc = " `T::Keys::key_ids()` which is fixed."]
#[doc = "- DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`"]
#[doc = "- DbWrites: `origin account`, `NextKeys`"]
#[doc = "- DbReads per key id: `KeyOwner`"]
#[doc = "- DbWrites per key id: `KeyOwner`"]
#[doc = "# </weight>"]
pub fn set_keys(
&self,
keys: polymesh_runtime_develop::runtime::SessionKeys,
proof: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Session(
types::pallet_session::pallet::Call::set_keys { keys, proof },
))
}
#[doc = "Removes any session key(s) of the function caller."]
#[doc = ""]
#[doc = "This doesn't take effect until the next session."]
#[doc = ""]
#[doc = "The dispatch origin of this function must be Signed and the account must be either be"]
#[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"]
#[doc = "means being a controller account) or directly convertible into a validator ID (which"]
#[doc = "usually means being a stash account)."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(1)` in number of key types. Actual cost depends on the number of length"]
#[doc = " of `T::Keys::key_ids()` which is fixed."]
#[doc = "- DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`"]
#[doc = "- DbWrites: `NextKeys`, `origin account`"]
#[doc = "- DbWrites per key id: `KeyOwner`"]
#[doc = "# </weight>"]
pub fn purge_keys(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Session(
types::pallet_session::pallet::Call::purge_keys,
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The current set of validators."]
pub async fn validators(
&self,
) -> ::polymesh_api_client::error::Result<Vec<::polymesh_api_client::AccountId>> {
let key = ::polymesh_api_client::StorageKey(vec![
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 136u8, 220u8, 222u8, 147u8, 76u8, 101u8, 130u8, 39u8, 238u8, 29u8,
250u8, 252u8, 214u8, 225u8, 105u8, 3u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<::polymesh_api_client::AccountId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Current index of the session."]
pub async fn current_index(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 114u8, 118u8, 56u8, 0u8, 163u8, 106u8, 153u8, 253u8, 252u8, 124u8,
16u8, 246u8, 65u8, 95u8, 110u8, 230u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " True if the underlying economic identities or weighting behind the validators"]
#[doc = " has changed in the queued validator set."]
pub async fn queued_changed(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 148u8, 80u8, 191u8, 164u8, 185u8, 106u8, 63u8, 167u8, 163u8, 200u8,
244u8, 13u8, 166u8, 191u8, 50u8, 225u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The queued keys for the next session. When the next session begins, these keys"]
#[doc = " will be used to determine the validator's session keys."]
pub async fn queued_keys(
&self,
) -> ::polymesh_api_client::error::Result<
Vec<(
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::SessionKeys,
)>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 224u8, 205u8, 208u8, 98u8, 230u8, 234u8, 242u8, 66u8, 149u8, 173u8,
76u8, 207u8, 196u8, 29u8, 70u8, 9u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(
::polymesh_api_client::AccountId,
polymesh_runtime_develop::runtime::SessionKeys,
)>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Indices of disabled validators."]
#[doc = ""]
#[doc = " The vec is always kept sorted so that we can find whether a given validator is"]
#[doc = " disabled using binary search. It gets cleared when `on_session_ending` returns"]
#[doc = " a new set of identities."]
pub async fn disabled_validators(&self) -> ::polymesh_api_client::error::Result<Vec<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 90u8, 154u8, 116u8, 190u8, 74u8, 90u8, 125u8, 246u8, 11u8, 1u8,
166u8, 192u8, 50u8, 108u8, 94u8, 32u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The next session keys for a validator."]
pub async fn next_keys(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_runtime_develop::runtime::SessionKeys>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 76u8, 1u8, 78u8, 107u8, 248u8, 184u8, 194u8, 192u8, 17u8, 231u8,
41u8, 11u8, 133u8, 105u8, 107u8, 179u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The owner of a key. The key is the `KeyTypeId` + the encoded key."]
pub async fn key_owner(
&self,
key_0: (sp_core::crypto::KeyTypeId, Vec<u8>),
) -> ::polymesh_api_client::error::Result<Option<::polymesh_api_client::AccountId>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
206u8, 197u8, 7u8, 13u8, 96u8, 157u8, 211u8, 73u8, 127u8, 114u8, 189u8, 224u8, 127u8,
201u8, 107u8, 160u8, 114u8, 99u8, 128u8, 64u8, 70u8, 131u8, 252u8, 137u8, 232u8, 35u8,
52u8, 80u8, 200u8, 170u8, 25u8, 80u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod authority_discovery {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod grandpa {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Report voter equivocation/misbehavior. This method will verify the"]
#[doc = "equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence"]
#[doc = "will be reported."]
pub fn report_equivocation(
&self,
equivocation_proof: sp_finality_grandpa::EquivocationProof<primitive_types::H256, u32>,
key_owner_proof: sp_session::MembershipProof,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Grandpa(
types::pallet_grandpa::pallet::Call::report_equivocation {
equivocation_proof: ::std::boxed::Box::new(equivocation_proof),
key_owner_proof,
},
))
}
#[doc = "Report voter equivocation/misbehavior. This method will verify the"]
#[doc = "equivocation proof and validate the given key ownership proof"]
#[doc = "against the extracted offender. If both are valid, the offence"]
#[doc = "will be reported."]
#[doc = ""]
#[doc = "This extrinsic must be called unsigned and it is expected that only"]
#[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"]
#[doc = "if the block author is defined it will be defined as the equivocation"]
#[doc = "reporter."]
pub fn report_equivocation_unsigned(
&self,
equivocation_proof: sp_finality_grandpa::EquivocationProof<primitive_types::H256, u32>,
key_owner_proof: sp_session::MembershipProof,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Grandpa(
types::pallet_grandpa::pallet::Call::report_equivocation_unsigned {
equivocation_proof: ::std::boxed::Box::new(equivocation_proof),
key_owner_proof,
},
))
}
#[doc = "Note that the current authority set of the GRANDPA finality gadget has"]
#[doc = "stalled. This will trigger a forced authority set change at the beginning"]
#[doc = "of the next session, to be enacted `delay` blocks after that. The delay"]
#[doc = "should be high enough to safely assume that the block signalling the"]
#[doc = "forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters"]
#[doc = "will start the new authority set using the given finalized block as base."]
#[doc = "Only callable by root."]
pub fn note_stalled(
&self,
delay: u32,
best_finalized_block_number: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Grandpa(
types::pallet_grandpa::pallet::Call::note_stalled {
delay,
best_finalized_block_number,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " State of the current authority set."]
pub async fn state(
&self,
) -> ::polymesh_api_client::error::Result<pallet_grandpa::StoredState<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 243u8, 154u8, 16u8, 127u8, 45u8, 141u8, 56u8, 84u8, 201u8, 171u8,
169u8, 176u8, 33u8, 244u8, 61u8, 156u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_grandpa::StoredState<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Pending change: (signaled at, scheduled change)."]
pub async fn pending_change(
&self,
) -> ::polymesh_api_client::error::Result<Option<pallet_grandpa::StoredPendingChange<u32>>>
{
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 47u8, 246u8, 89u8, 145u8, 177u8, 201u8, 21u8, 221u8, 108u8, 200u8,
212u8, 130u8, 94u8, 172u8, 252u8, 180u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " next block number where we can force a change."]
pub async fn next_forced(&self) -> ::polymesh_api_client::error::Result<Option<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 1u8, 215u8, 129u8, 129u8, 38u8, 189u8, 155u8, 48u8, 116u8, 128u8,
62u8, 145u8, 244u8, 201u8, 27u8, 89u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " `true` if we are currently stalled."]
pub async fn stalled(&self) -> ::polymesh_api_client::error::Result<Option<(u32, u32)>> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 125u8, 221u8, 1u8, 52u8, 97u8, 183u8, 44u8, 48u8, 4u8, 249u8, 192u8,
202u8, 63u8, 175u8, 158u8, 190u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The number of changes (both in terms of keys and underlying economic responsibilities)"]
#[doc = " in the \"set\" of Grandpa validators from genesis."]
pub async fn current_set_id(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 138u8, 45u8, 9u8, 70u8, 62u8, 255u8, 204u8, 120u8, 162u8, 45u8,
117u8, 185u8, 203u8, 135u8, 223u8, 252u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " A mapping from grandpa set ID to the index of the *most recent* session for which its"]
#[doc = " members were responsible."]
#[doc = ""]
#[doc = " TWOX-NOTE: `SetId` is not under user control."]
pub async fn set_id_session(
&self,
key_0: u64,
) -> ::polymesh_api_client::error::Result<Option<u32>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
95u8, 156u8, 196u8, 91u8, 122u8, 0u8, 197u8, 137u8, 147u8, 97u8, 225u8, 198u8, 9u8,
150u8, 120u8, 220u8, 212u8, 124u8, 184u8, 245u8, 50u8, 138u8, 247u8, 67u8, 221u8, 251u8,
54u8, 30u8, 113u8, 128u8, 231u8, 252u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod historical {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod im_online {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "# <weight>"]
#[doc = "- Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is"]
#[doc = " length of `heartbeat.network_state.external_address`"]
#[doc = " - `O(K)`: decoding of length `K`"]
#[doc = " - `O(E)`: decoding/encoding of length `E`"]
#[doc = "- DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,"]
#[doc = " `ReceivedHeartbeats`"]
#[doc = "- DbWrites: `ReceivedHeartbeats`"]
#[doc = "# </weight>"]
pub fn heartbeat(
&self,
heartbeat: pallet_im_online::Heartbeat<u32>,
signature: pallet_im_online::sr25519::app_sr25519::Signature,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::ImOnline(
types::pallet_im_online::pallet::Call::heartbeat {
heartbeat,
signature,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The block number after which it's ok to send heartbeats in the current"]
#[doc = " session."]
#[doc = ""]
#[doc = " At the beginning of each session we set this to a value that should fall"]
#[doc = " roughly in the middle of the session duration. The idea is to first wait for"]
#[doc = " the validators to produce a block in the current session, so that the"]
#[doc = " heartbeat later on will not be necessary."]
#[doc = ""]
#[doc = " This value will only be used as a fallback if we fail to get a proper session"]
#[doc = " progress estimate from `NextSessionRotation`, as those estimates should be"]
#[doc = " more accurate then the value we calculate for `HeartbeatAfter`."]
pub async fn heartbeat_after(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
43u8, 6u8, 175u8, 151u8, 25u8, 172u8, 100u8, 215u8, 85u8, 98u8, 60u8, 218u8, 141u8,
221u8, 155u8, 148u8, 138u8, 161u8, 242u8, 201u8, 132u8, 79u8, 17u8, 2u8, 76u8, 29u8,
32u8, 78u8, 112u8, 90u8, 98u8, 23u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The current set of keys that may issue a heartbeat."]
pub async fn keys(
&self,
) -> ::polymesh_api_client::error::Result<Vec<pallet_im_online::sr25519::app_sr25519::Public>>
{
let key = ::polymesh_api_client::StorageKey(vec![
43u8, 6u8, 175u8, 151u8, 25u8, 172u8, 100u8, 215u8, 85u8, 98u8, 60u8, 218u8, 141u8,
221u8, 155u8, 148u8, 159u8, 153u8, 162u8, 206u8, 113u8, 31u8, 58u8, 49u8, 178u8, 252u8,
5u8, 96u8, 76u8, 147u8, 241u8, 121u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_im_online::sr25519::app_sr25519::Public>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex` to"]
#[doc = " `WrapperOpaque<BoundedOpaqueNetworkState>`."]
pub async fn received_heartbeats(
&self,
key_0: u32,
key_1: u32,
) -> ::polymesh_api_client::error::Result<
Option<
frame_support::traits::misc::WrapperOpaque<pallet_im_online::BoundedOpaqueNetworkState>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
43u8, 6u8, 175u8, 151u8, 25u8, 172u8, 100u8, 215u8, 85u8, 98u8, 60u8, 218u8, 141u8,
221u8, 155u8, 148u8, 204u8, 90u8, 26u8, 166u8, 227u8, 113u8, 99u8, 114u8, 243u8, 110u8,
241u8, 3u8, 183u8, 227u8, 174u8, 103u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " For each session index, we keep a mapping of `ValidatorId<T>` to the"]
#[doc = " number of blocks authored by the given authority."]
pub async fn authored_blocks(
&self,
key_0: u32,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u32> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
43u8, 6u8, 175u8, 151u8, 25u8, 172u8, 100u8, 215u8, 85u8, 98u8, 60u8, 218u8, 141u8,
221u8, 155u8, 148u8, 177u8, 195u8, 113u8, 222u8, 217u8, 233u8, 197u8, 101u8, 232u8,
155u8, 167u8, 131u8, 196u8, 213u8, 245u8, 249u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod randomness_collective_flip {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Series of block headers from the last 81 blocks that acts as random seed material. This"]
#[doc = " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of"]
#[doc = " the oldest hash."]
pub async fn random_material(
&self,
) -> ::polymesh_api_client::error::Result<Vec<primitive_types::H256>> {
let key = ::polymesh_api_client::StorageKey(vec![
189u8, 42u8, 82u8, 147u8, 121u8, 71u8, 80u8, 136u8, 211u8, 226u8, 154u8, 145u8, 140u8,
212u8, 120u8, 114u8, 26u8, 57u8, 236u8, 118u8, 123u8, 213u8, 38u8, 145u8, 17u8, 230u8,
73u8, 42u8, 22u8, 117u8, 112u8, 42u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<primitive_types::H256>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod sudo {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB write (event)."]
#[doc = "- Weight of derivative `call` execution + 10,000."]
#[doc = "# </weight>"]
pub fn sudo(
&self,
call: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sudo(
types::pallet_sudo::Call::sudo {
call: ::std::boxed::Box::new(call),
},
))
}
#[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."]
#[doc = "This function does not check the weight of the call, and instead allows the"]
#[doc = "Sudo user to specify the weight of the call."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- The weight of this call is defined by the caller."]
#[doc = "# </weight>"]
pub fn sudo_unchecked_weight(
&self,
call: polymesh_runtime_develop::runtime::Call,
_weight: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sudo(
types::pallet_sudo::Call::sudo_unchecked_weight {
call: ::std::boxed::Box::new(call),
_weight,
},
))
}
#[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB change."]
#[doc = "# </weight>"]
pub fn set_key(
&self,
new: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sudo(
types::pallet_sudo::Call::set_key { new },
))
}
#[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"]
#[doc = "a given account."]
#[doc = ""]
#[doc = "The dispatch origin for this call must be _Signed_."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "- O(1)."]
#[doc = "- Limited storage reads."]
#[doc = "- One DB write (event)."]
#[doc = "- Weight of derivative `call` execution + 10,000."]
#[doc = "# </weight>"]
pub fn sudo_as(
&self,
who: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
call: polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sudo(
types::pallet_sudo::Call::sudo_as {
who,
call: ::std::boxed::Box::new(call),
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The `AccountId` of the sudo key."]
pub async fn key(
&self,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::AccountId> {
let key = ::polymesh_api_client::StorageKey(vec![
92u8, 13u8, 17u8, 118u8, 165u8, 104u8, 193u8, 249u8, 41u8, 68u8, 52u8, 13u8, 191u8,
237u8, 158u8, 156u8, 83u8, 14u8, 188u8, 167u8, 3u8, 200u8, 89u8, 16u8, 231u8, 22u8, 76u8,
183u8, 209u8, 201u8, 228u8, 123u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<::polymesh_api_client::AccountId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod asset {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Registers a new ticker or extends validity of an existing ticker."]
#[doc = "NB: Ticker validity does not get carry forward when renewing ticker."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `ticker` ticker to register."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn register_ticker(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::register_ticker { ticker },
))
}
#[doc = "Accepts a ticker transfer."]
#[doc = ""]
#[doc = "Consumes the authorization `auth_id` (see `pallet_identity::consume_auth`)."]
#[doc = "NB: To reject the transfer, call remove auth function in identity module."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `auth_id` Authorization ID of ticker transfer authorization."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AuthorizationError::BadType` if `auth_id` is not a valid ticket transfer authorization."]
#[doc = ""]
pub fn accept_ticker_transfer(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::accept_ticker_transfer { auth_id },
))
}
#[doc = "This function is used to accept a token ownership transfer."]
#[doc = "NB: To reject the transfer, call remove auth function in identity module."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` It contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `auth_id` Authorization ID of the token ownership transfer authorization."]
pub fn accept_asset_ownership_transfer(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::accept_asset_ownership_transfer { auth_id },
))
}
#[doc = "Initializes a new security token, with the initiating account as its owner."]
#[doc = "The total supply will initially be zero. To mint tokens, use `issue`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - contains the secondary key of the caller (i.e. who signed the transaction to execute this function)."]
#[doc = "* `name` - the name of the token."]
#[doc = "* `ticker` - the ticker symbol of the token."]
#[doc = "* `divisible` - a boolean to identify the divisibility status of the token."]
#[doc = "* `asset_type` - the asset type."]
#[doc = "* `identifiers` - a vector of asset identifiers."]
#[doc = "* `funding_round` - name of the funding round."]
#[doc = "* `disable_iu` - whether or not investor uniqueness enforcement should be disabled."]
#[doc = " This cannot be changed after creating the asset."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `InvalidAssetIdentifier` if any of `identifiers` are invalid."]
#[doc = "- `MaxLengthOfAssetNameExceeded` if `name`'s length exceeds `T::AssetNameMaxLength`."]
#[doc = "- `FundingRoundNameMaxLengthExceeded` if the name of the funding round is longer that"]
#[doc = "`T::FundingRoundNameMaxLength`."]
#[doc = "- `AssetAlreadyCreated` if asset was already created."]
#[doc = "- `TickerTooLong` if `ticker`'s length is greater than `config.max_ticker_length` chain"]
#[doc = "parameter."]
#[doc = "- `TickerNotAscii` if `ticker` is not yet registered, and contains non-ascii printable characters (from code 32 to 126) or any character after first occurrence of `\\0`."]
#[doc = ""]
#[doc = "## Permissions"]
#[doc = "* Portfolio"]
pub fn create_asset(
&self,
name: polymesh_primitives::asset::AssetName,
ticker: polymesh_primitives::ticker::Ticker,
divisible: bool,
asset_type: polymesh_primitives::asset::AssetType,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
funding_round: Option<polymesh_primitives::asset::FundingRoundName>,
disable_iu: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::create_asset {
name,
ticker,
divisible,
asset_type,
identifiers,
funding_round,
disable_iu,
},
))
}
#[doc = "Freezes transfers and minting of a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AlreadyFrozen` if `ticker` is already frozen."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn freeze(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::freeze { ticker },
))
}
#[doc = "Unfreezes transfers and minting of a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the frozen token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `NotFrozen` if `ticker` is not frozen yet."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn unfreeze(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::unfreeze { ticker },
))
}
#[doc = "Renames a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - the secondary key of the sender."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `name` - the new name of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `MaxLengthOfAssetNameExceeded` if length of `name` is greater than"]
#[doc = "`T::AssetNameMaxLength`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn rename_asset(
&self,
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset::AssetName,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::rename_asset { ticker, name },
))
}
#[doc = "Issue, or mint, new tokens to the caller,"]
#[doc = "which must be an authorized external agent."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` of the token."]
#[doc = "* `amount` of tokens that get issued."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
pub fn issue(
&self,
ticker: polymesh_primitives::ticker::Ticker,
amount: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::issue { ticker, amount },
))
}
#[doc = "Redeems existing tokens by reducing the balance of the caller's default portfolio and the total supply of the token"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `value` Amount of tokens to redeem."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `Unauthorized` If called by someone without the appropriate external agent permissions"]
#[doc = "- `InvalidGranularity` If the amount is not divisible by 10^6 for non-divisible tokens"]
#[doc = "- `InsufficientPortfolioBalance` If the caller's default portfolio doesn't have enough free balance"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
pub fn redeem(
&self,
ticker: polymesh_primitives::ticker::Ticker,
value: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::redeem { ticker, value },
))
}
#[doc = "Makes an indivisible token divisible."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `AssetAlreadyDivisible` if `ticker` is already divisible."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn make_divisible(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::make_divisible { ticker },
))
}
#[doc = "Add documents for a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `docs` Documents to be attached to `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn add_documents(
&self,
docs: Vec<polymesh_primitives::document::Document>,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::add_documents { docs, ticker },
))
}
#[doc = "Remove documents for a given token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `ids` Documents ids to be removed from `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn remove_documents(
&self,
ids: Vec<polymesh_primitives::document::DocumentId>,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::remove_documents { ids, ticker },
))
}
#[doc = "Sets the name of the current funding round."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `name` - the desired name of the current funding round."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `FundingRoundNameMaxLengthExceeded` if length of `name` is greater than"]
#[doc = "`T::FundingRoundNameMaxLength`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn set_funding_round(
&self,
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset::FundingRoundName,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::set_funding_round { ticker, name },
))
}
#[doc = "Updates the asset identifiers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` - a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` - the ticker of the token."]
#[doc = "* `identifiers` - the asset identifiers to be updated in the form of a vector of pairs"]
#[doc = " of `IdentifierType` and `AssetIdentifier` value."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `InvalidAssetIdentifier` if `identifiers` contains any invalid identifier."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn update_identifiers(
&self,
ticker: polymesh_primitives::ticker::Ticker,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::update_identifiers {
ticker,
identifiers,
},
))
}
#[doc = "Claim a systematically reserved Polymath Classic (PMC) `ticker`"]
#[doc = "and transfer it to the `origin`'s identity."]
#[doc = ""]
#[doc = "To verify that the `origin` is in control of the Ethereum account on the books,"]
#[doc = "an `ethereum_signature` containing the `origin`'s DID as the message"]
#[doc = "must be provided by that Ethereum account."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchClassicTicker` if this is not a systematically reserved PMC ticker."]
#[doc = "- `TickerAlreadyRegistered` if the ticker was already registered, e.g., by `origin`."]
#[doc = "- `TickerRegistrationExpired` if the ticker's registration has expired."]
#[doc = "- `BadOrigin` if not signed."]
#[doc = "- `InvalidEthereumSignature` if the `ethereum_signature` is not valid."]
#[doc = "- `NotAnOwner` if the ethereum account is not the owner of the PMC ticker."]
pub fn claim_classic_ticker(
&self,
ticker: polymesh_primitives::ticker::Ticker,
ethereum_signature: polymesh_primitives::ethereum::EcdsaSignature,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::claim_classic_ticker {
ticker,
ethereum_signature,
},
))
}
#[doc = "Reserve a Polymath Classic (PMC) ticker."]
#[doc = "Must be called by root, and assigns the ticker to a systematic DID."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` which must be root."]
#[doc = "* `classic_ticker_import` specification for the PMC ticker."]
#[doc = "* `contract_did` to reserve the ticker to if `classic_ticker_import.is_contract` holds."]
#[doc = "* `config` to use for expiry and ticker length."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetAlreadyCreated` if `classic_ticker_import.ticker` was created as an asset."]
#[doc = "* `TickerTooLong` if the `config` considers the `classic_ticker_import.ticker` too long."]
#[doc = "* `TickerAlreadyRegistered` if `classic_ticker_import.ticker` was already registered."]
pub fn reserve_classic_ticker(
&self,
classic_ticker_import: pallet_asset::ClassicTickerImport,
contract_did: polymesh_primitives::identity_id::IdentityId,
config: pallet_asset::TickerRegistrationConfig<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::reserve_classic_ticker {
classic_ticker_import,
contract_did,
config,
},
))
}
#[doc = "Forces a transfer of token from `from_portfolio` to the caller's default portfolio."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` Must be an external agent with appropriate permissions for a given ticker."]
#[doc = "* `ticker` Ticker symbol of the asset."]
#[doc = "* `value` Amount of tokens need to force transfer."]
#[doc = "* `from_portfolio` From whom portfolio tokens gets transferred."]
pub fn controller_transfer(
&self,
ticker: polymesh_primitives::ticker::Ticker,
value: u128,
from_portfolio: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::controller_transfer {
ticker,
value,
from_portfolio,
},
))
}
#[doc = "Registers a custom asset type."]
#[doc = ""]
#[doc = "The provided `ty` will be bound to an ID in storage."]
#[doc = "The ID can then be used in `AssetType::Custom`."]
#[doc = "Should the `ty` already exist in storage, no second ID is assigned to it."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` who called the extrinsic."]
#[doc = "* `ty` contains the string representation of the asset type."]
pub fn register_custom_asset_type(
&self,
ty: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::register_custom_asset_type { ty },
))
}
#[doc = "Utility extrinsic to batch `create_asset` and `register_custom_asset_type`."]
pub fn create_asset_with_custom_type(
&self,
name: polymesh_primitives::asset::AssetName,
ticker: polymesh_primitives::ticker::Ticker,
divisible: bool,
custom_asset_type: Vec<u8>,
identifiers: Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
funding_round: Option<polymesh_primitives::asset::FundingRoundName>,
disable_iu: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::create_asset_with_custom_type {
name,
ticker,
divisible,
custom_asset_type,
identifiers,
funding_round,
disable_iu,
},
))
}
#[doc = "Set asset metadata value."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `key` Metadata key."]
#[doc = "* `value` Metadata value."]
#[doc = "* `details` Optional Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist."]
#[doc = "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked."]
#[doc = "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
pub fn set_asset_metadata(
&self,
ticker: polymesh_primitives::ticker::Ticker,
key: polymesh_primitives::asset_metadata::AssetMetadataKey,
value: polymesh_primitives::asset_metadata::AssetMetadataValue,
detail: Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::set_asset_metadata {
ticker,
key,
value,
detail,
},
))
}
#[doc = "Set asset metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `key` Metadata key."]
#[doc = "* `details` Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataKeyIsMissing` if the metadata type key doesn't exist."]
#[doc = "* `AssetMetadataValueIsLocked` if the metadata value for `key` is locked."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
pub fn set_asset_metadata_details(
&self,
ticker: polymesh_primitives::ticker::Ticker,
key: polymesh_primitives::asset_metadata::AssetMetadataKey,
detail: polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::set_asset_metadata_details {
ticker,
key,
detail,
},
))
}
#[doc = "Registers and set local asset metadata."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = "* `value` Metadata value."]
#[doc = "* `details` Optional Metadata value details (expire, lock status)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
#[doc = "* `AssetMetadataValueMaxLengthExceeded` if the metadata value exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
pub fn register_and_set_local_asset_metadata(
&self,
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
value: polymesh_primitives::asset_metadata::AssetMetadataValue,
detail: Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::register_and_set_local_asset_metadata {
ticker,
name,
spec,
value,
detail,
},
))
}
#[doc = "Registers asset metadata local type."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `ticker` Ticker of the token."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataLocalKeyAlreadyExists` if a local metadata type with `name` already exists for `ticker`."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
#[doc = "* Asset"]
pub fn register_asset_metadata_local_type(
&self,
ticker: polymesh_primitives::ticker::Ticker,
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::register_asset_metadata_local_type { ticker, name, spec },
))
}
#[doc = "Registers asset metadata global type."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "* `name` Metadata name."]
#[doc = "* `spec` Metadata type definition."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `AssetMetadataGlobalKeyAlreadyExists` if a globa metadata type with `name` already exists."]
#[doc = "* `AssetMetadataNameMaxLengthExceeded` if the metadata `name` exceeds the maximum length."]
#[doc = "* `AssetMetadataTypeDefMaxLengthExceeded` if the metadata `spec` type definition exceeds the maximum length."]
pub fn register_asset_metadata_global_type(
&self,
name: polymesh_primitives::asset_metadata::AssetMetadataName,
spec: polymesh_primitives::asset_metadata::AssetMetadataSpec,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Asset(
types::pallet_asset::Call::register_asset_metadata_global_type { name, spec },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Ticker registration details."]
#[doc = " (ticker) -> TickerRegistration"]
pub async fn tickers(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_asset::TickerRegistration<u64>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 79u8, 99u8, 172u8, 50u8, 155u8, 165u8, 225u8, 25u8, 154u8, 107u8,
42u8, 66u8, 52u8, 112u8, 140u8, 188u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_asset::TickerRegistration<u64>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Ticker registration config."]
#[doc = " (ticker) -> TickerRegistrationConfig"]
pub async fn ticker_config(
&self,
) -> ::polymesh_api_client::error::Result<pallet_asset::TickerRegistrationConfig<u64>> {
let key = ::polymesh_api_client::StorageKey(vec![
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 185u8, 113u8, 30u8, 121u8, 127u8, 46u8, 243u8, 186u8, 159u8, 108u8,
75u8, 247u8, 236u8, 154u8, 169u8, 176u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8];
<pallet_asset::TickerRegistrationConfig<u64>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Details of the token corresponding to the token ticker."]
#[doc = " (ticker) -> SecurityToken details [returns SecurityToken struct]"]
pub async fn tokens(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_asset::SecurityToken> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 153u8, 151u8, 27u8, 87u8, 73u8, 172u8, 67u8, 224u8, 35u8, 94u8, 65u8,
176u8, 211u8, 120u8, 105u8, 24u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_asset::SecurityToken>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Asset name of the token corresponding to the token ticker."]
#[doc = " (ticker) -> `AssetName`"]
pub async fn asset_names(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::asset::AssetName> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 123u8, 195u8, 250u8, 203u8, 235u8, 133u8, 90u8, 23u8, 143u8, 10u8,
8u8, 53u8, 96u8, 109u8, 5u8, 206u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<polymesh_primitives::asset::AssetName>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The total asset ticker balance per identity."]
#[doc = " (ticker, DID) -> Balance"]
pub async fn balance_of(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 106u8, 75u8, 187u8, 251u8, 206u8, 1u8, 124u8, 102u8, 14u8, 227u8,
176u8, 68u8, 23u8, 115u8, 19u8, 64u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
buf.extend(key_1.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " A map of a ticker name and asset identifiers."]
pub async fn identifiers(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_primitives::asset_identifier::AssetIdentifier>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 249u8, 164u8, 131u8, 240u8, 209u8, 227u8, 62u8, 56u8, 212u8, 69u8,
56u8, 130u8, 119u8, 235u8, 13u8, 237u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::asset_identifier::AssetIdentifier>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " The next `AssetType::Custom` ID in the sequence."]
#[doc = ""]
#[doc = " Numbers in the sequence start from 1 rather than 0."]
pub async fn custom_type_id_sequence(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::asset::CustomAssetTypeId>
{
let key = ::polymesh_api_client::StorageKey(vec![
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 16u8, 121u8, 19u8, 48u8, 14u8, 106u8, 39u8, 83u8, 29u8, 145u8, 209u8,
187u8, 190u8, 66u8, 165u8, 176u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::asset::CustomAssetTypeId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Maps custom asset type ids to the registered string contents."]
pub async fn custom_types(
&self,
key_0: polymesh_primitives::asset::CustomAssetTypeId,
) -> ::polymesh_api_client::error::Result<Vec<u8>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 214u8, 35u8, 90u8, 254u8, 57u8, 243u8, 210u8, 34u8, 193u8, 0u8, 96u8,
131u8, 116u8, 109u8, 49u8, 166u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u8>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Inverse map of `CustomTypes`, from registered string contents to custom asset type ids."]
pub async fn custom_types_inverse(
&self,
key_0: Vec<u8>,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::asset::CustomAssetTypeId>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 2u8, 147u8, 168u8, 237u8, 90u8, 35u8, 218u8, 237u8, 169u8, 231u8,
223u8, 32u8, 46u8, 15u8, 228u8, 85u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::asset::CustomAssetTypeId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The name of the current funding round."]
#[doc = " ticker -> funding round"]
pub async fn funding_round(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::asset::FundingRoundName>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 93u8, 34u8, 9u8, 253u8, 168u8, 224u8, 203u8, 196u8, 69u8, 133u8, 25u8,
204u8, 124u8, 207u8, 104u8, 5u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<polymesh_primitives::asset::FundingRoundName>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The total balances of tokens issued in all recorded funding rounds."]
#[doc = " (ticker, funding round) -> balance"]
pub async fn issued_in_funding_round(
&self,
key_0: (
polymesh_primitives::ticker::Ticker,
polymesh_primitives::asset::FundingRoundName,
),
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 215u8, 137u8, 60u8, 134u8, 127u8, 54u8, 56u8, 208u8, 215u8, 148u8,
185u8, 185u8, 12u8, 48u8, 135u8, 44u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The set of frozen assets implemented as a membership map."]
#[doc = " ticker -> bool"]
pub async fn frozen(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 113u8, 75u8, 228u8, 71u8, 135u8, 205u8, 51u8, 93u8, 238u8, 240u8,
115u8, 32u8, 236u8, 125u8, 7u8, 114u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Tickers and token owned by a user"]
#[doc = " (user, ticker) -> AssetOwnership"]
pub async fn asset_ownership_relations(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_asset::AssetOwnershipRelation> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 120u8, 175u8, 65u8, 84u8, 91u8, 225u8, 83u8, 120u8, 92u8, 157u8, 17u8,
119u8, 178u8, 122u8, 105u8, 103u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_asset::AssetOwnershipRelation>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Documents attached to an Asset"]
#[doc = " (ticker, doc_id) -> document"]
pub async fn asset_documents(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::document::DocumentId,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::document::Document> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 166u8, 167u8, 74u8, 143u8, 116u8, 237u8, 66u8, 137u8, 149u8, 40u8,
102u8, 20u8, 236u8, 96u8, 52u8, 9u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::document::Document>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Per-ticker document ID counter."]
#[doc = " (ticker) -> doc_id"]
pub async fn asset_documents_id_sequence(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::document::DocumentId> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 201u8, 198u8, 40u8, 95u8, 195u8, 158u8, 100u8, 69u8, 247u8, 3u8, 87u8,
5u8, 57u8, 71u8, 8u8, 63u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::document::DocumentId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Ticker registration details on Polymath Classic / Ethereum."]
pub async fn classic_tickers(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<Option<pallet_asset::ClassicTickerRegistration>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 172u8, 242u8, 196u8, 175u8, 39u8, 4u8, 210u8, 72u8, 225u8, 213u8,
209u8, 150u8, 114u8, 197u8, 147u8, 182u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Balances get stored on the basis of the `ScopeId`."]
#[doc = " Right now it is only helpful for the UI purposes but in future it can be used to do miracles on-chain."]
#[doc = " (ScopeId, IdentityId) => Balance."]
pub async fn balance_of_at_scope(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 14u8, 34u8, 163u8, 28u8, 102u8, 117u8, 178u8, 253u8, 78u8, 45u8, 73u8,
176u8, 129u8, 188u8, 84u8, 23u8,
]);
buf.extend(key_0.encode());
buf.extend(key_1.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Store aggregate balance of those identities that has the same `ScopeId`."]
#[doc = " (Ticker, ScopeId) => Balance."]
pub async fn aggregate_balance(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 129u8, 67u8, 184u8, 193u8, 110u8, 255u8, 22u8, 84u8, 149u8, 67u8,
99u8, 103u8, 206u8, 205u8, 97u8, 162u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
buf.extend(key_1.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Tracks the ScopeId of the identity for a given ticker."]
#[doc = " (Ticker, IdentityId) => ScopeId."]
pub async fn scope_id_of(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_id::IdentityId>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 0u8, 141u8, 222u8, 224u8, 133u8, 138u8, 193u8, 36u8, 202u8, 19u8,
245u8, 55u8, 125u8, 42u8, 40u8, 90u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
buf.extend(key_1.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<polymesh_primitives::identity_id::IdentityId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Decides whether investor uniqueness requirement is enforced for this asset."]
#[doc = " `false` means that it is enforced."]
#[doc = ""]
#[doc = " Ticker => bool."]
pub async fn disable_investor_uniqueness(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 235u8, 24u8, 209u8, 226u8, 101u8, 212u8, 17u8, 236u8, 12u8, 149u8,
25u8, 162u8, 244u8, 78u8, 246u8, 171u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Metatdata values for an asset."]
pub async fn asset_metadata_values(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::asset_metadata::AssetMetadataKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataValue>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 12u8, 236u8, 10u8, 112u8, 182u8, 190u8, 51u8, 243u8, 171u8, 240u8,
46u8, 214u8, 255u8, 55u8, 188u8, 48u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Details for an asset's Metadata values."]
pub async fn asset_metadata_value_details(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::asset_metadata::AssetMetadataKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataValueDetail<u64>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 177u8, 107u8, 241u8, 225u8, 188u8, 86u8, 141u8, 84u8, 219u8, 116u8,
115u8, 57u8, 230u8, 243u8, 42u8, 93u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Local Name -> Key."]
pub async fn asset_metadata_local_name_to_key(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::asset_metadata::AssetMetadataName,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataLocalKey>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 132u8, 79u8, 149u8, 0u8, 75u8, 89u8, 31u8, 241u8, 75u8, 208u8, 41u8,
159u8, 32u8, 36u8, 73u8, 8u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Global Name -> Key."]
pub async fn asset_metadata_global_name_to_key(
&self,
key_0: polymesh_primitives::asset_metadata::AssetMetadataName,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataGlobalKey>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 27u8, 55u8, 255u8, 139u8, 76u8, 15u8, 234u8, 246u8, 25u8, 194u8,
110u8, 238u8, 121u8, 209u8, 31u8, 28u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Local Key -> Name."]
pub async fn asset_metadata_local_key_to_name(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::asset_metadata::AssetMetadataLocalKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataName>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 15u8, 104u8, 156u8, 10u8, 116u8, 95u8, 149u8, 200u8, 0u8, 202u8,
149u8, 7u8, 13u8, 176u8, 112u8, 120u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Global Key -> Name."]
pub async fn asset_metadata_global_key_to_name(
&self,
key_0: polymesh_primitives::asset_metadata::AssetMetadataGlobalKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataName>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 34u8, 54u8, 201u8, 61u8, 167u8, 233u8, 191u8, 146u8, 116u8, 241u8,
41u8, 22u8, 57u8, 221u8, 39u8, 238u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Local Key specs."]
pub async fn asset_metadata_local_specs(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::asset_metadata::AssetMetadataLocalKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataSpec>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 142u8, 233u8, 192u8, 135u8, 176u8, 130u8, 140u8, 179u8, 147u8, 154u8,
225u8, 87u8, 146u8, 146u8, 58u8, 218u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Asset Metadata Global Key specs."]
pub async fn asset_metadata_global_specs(
&self,
key_0: polymesh_primitives::asset_metadata::AssetMetadataGlobalKey,
) -> ::polymesh_api_client::error::Result<
Option<polymesh_primitives::asset_metadata::AssetMetadataSpec>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 68u8, 154u8, 137u8, 212u8, 2u8, 194u8, 202u8, 170u8, 149u8, 44u8,
16u8, 103u8, 57u8, 78u8, 188u8, 125u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Next Asset Metadata Local Key."]
pub async fn asset_metadata_next_local_key(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::asset_metadata::AssetMetadataLocalKey,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 227u8, 167u8, 30u8, 21u8, 95u8, 214u8, 84u8, 40u8, 18u8, 4u8, 97u8,
135u8, 56u8, 213u8, 243u8, 59u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::asset_metadata::AssetMetadataLocalKey>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Next Asset Metadata Global Key."]
pub async fn asset_metadata_next_global_key(
&self,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::asset_metadata::AssetMetadataGlobalKey,
> {
let key = ::polymesh_api_client::StorageKey(vec![
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 65u8, 13u8, 61u8, 170u8, 126u8, 198u8, 120u8, 78u8, 47u8, 160u8,
108u8, 155u8, 20u8, 24u8, 193u8, 5u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::asset_metadata::AssetMetadataGlobalKey>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_asset::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
211u8, 67u8, 113u8, 161u8, 147u8, 167u8, 81u8, 238u8, 165u8, 136u8, 62u8, 149u8, 83u8,
69u8, 123u8, 46u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_asset::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod capital_distribution {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Start and attach a capital distribution, to the CA identified by `ca_id`,"]
#[doc = "with `amount` funds in `currency` withdrawn from `portfolio` belonging to `origin`'s DID."]
#[doc = ""]
#[doc = "The distribution will commence at `payment_at` and expire at `expires_at`,"]
#[doc = "if provided, or if `None`, then there's no expiry."]
#[doc = ""]
#[doc = "The funds will be locked in `portfolio` from when `distribute` is called."]
#[doc = "When there's no expiry, some funds may be locked indefinitely in `portfolio`,"]
#[doc = "due to claimants not withdrawing or no benefits being pushed to them."]
#[doc = "For indivisible currencies, unlocked amounts, of less than one whole unit,"]
#[doc = "will not be transferable from `portfolio`."]
#[doc = "However, if we imagine that users `Alice` and `Bob` both are entitled to 1.5 units,"]
#[doc = "and only receive `1` units each, then `0.5 + 0.5 = 1` units are left in `portfolio`,"]
#[doc = "which is now transferrable."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA to start a capital distribution for."]
#[doc = "- `portfolio` specifies the portfolio number of the agent to distribute `amount` from."]
#[doc = "- `currency` to withdraw and distribute from the `portfolio`."]
#[doc = "- `per_share` amount of `currency` to withdraw and distribute."]
#[doc = " Specified as a per-million, i.e. `1 / 10^6`th of one `currency` token."]
#[doc = "- `amount` of `currency` to withdraw and distribute at most."]
#[doc = "- `payment_at` specifies when benefits may first be pushed or claimed."]
#[doc = "- `expires_at` specifies, if provided, when remaining benefits are forfeit"]
#[doc = " and may be reclaimed by `origin`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `ExpiryBeforePayment` if `expires_at.unwrap() <= payment_at`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NoRecordDate` if CA has no record date."]
#[doc = "- `RecordDateAfterStart` if CA's record date > payment_at."]
#[doc = "- `UnauthorizedCustodian` if the caller is not the custodian of `portfolio`."]
#[doc = "- `InsufficientPortfolioBalance` if `portfolio` has less than `amount` of `currency`."]
#[doc = "- `InsufficientBalance` if the protocol fee couldn't be charged."]
#[doc = "- `CANotBenefit` if the CA is not of kind PredictableBenefit/UnpredictableBenefit"]
#[doc = "- `DistributionAmountIsZero` if the `amount` is zero."]
#[doc = "- `DistributionPerShareIsZero` if the `per_share` is zero."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
pub fn distribute(
&self,
ca_id: pallet_corporate_actions::CAId,
portfolio: Option<polymesh_primitives::identity_id::PortfolioNumber>,
currency: polymesh_primitives::ticker::Ticker,
per_share: u128,
amount: u128,
payment_at: u64,
expires_at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CapitalDistribution(
types::pallet_corporate_actions::distribution::Call::distribute {
ca_id,
portfolio,
currency,
per_share,
amount,
payment_at,
expires_at,
},
),
)
}
#[doc = "Claim a benefit of the capital distribution attached to `ca_id`."]
#[doc = ""]
#[doc = "Taxes are withheld as specified by the CA."]
#[doc = "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID."]
#[doc = ""]
#[doc = "All benefits are rounded by truncation, down to first integer below."]
#[doc = "Moreover, before post-tax earnings, in indivisible currencies are transferred,"]
#[doc = "they are rounded down to a whole unit."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be a holder of the asset and eligible for the distribution."]
#[doc = "- `ca_id` identifies the CA to start a capital distribution for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `HolderAlreadyPaid` if `origin`'s DID has already received its benefit."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `CannotClaimBeforeStart` if `now < payment_at`."]
#[doc = "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `origin`'s DID."]
#[doc = "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow."]
#[doc = "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow."]
#[doc = "- Other errors can occur if the compliance manager rejects the transfer."]
pub fn claim(
&self,
ca_id: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CapitalDistribution(
types::pallet_corporate_actions::distribution::Call::claim { ca_id },
),
)
}
#[doc = "Push benefit of an ongoing distribution to the given `holder`."]
#[doc = ""]
#[doc = "Taxes are withheld as specified by the CA."]
#[doc = "Post-tax earnings are then transferred to the default portfolio of the `origin`'s DID."]
#[doc = ""]
#[doc = "All benefits are rounded by truncation, down to first integer below."]
#[doc = "Moreover, before post-tax earnings, in indivisible currencies are transferred,"]
#[doc = "they are rounded down to a whole unit."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA with a capital distributions to push benefits for."]
#[doc = "- `holder` to push benefits to."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `CannotClaimBeforeStart` if `now < payment_at`."]
#[doc = "- `CannotClaimAfterExpiry` if `now > expiry_at.unwrap()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `holder`."]
#[doc = "- `BalanceAmountProductOverflowed` if `ba = balance * amount` would overflow."]
#[doc = "- `BalanceAmountProductSupplyDivisionFailed` if `ba * supply` would overflow."]
#[doc = "- Other errors can occur if the compliance manager rejects the transfer."]
pub fn push_benefit(
&self,
ca_id: pallet_corporate_actions::CAId,
holder: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CapitalDistribution(
types::pallet_corporate_actions::distribution::Call::push_benefit { ca_id, holder },
),
)
}
#[doc = "Assuming a distribution has expired,"]
#[doc = "unlock the remaining amount in the distributor portfolio."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be the creator of the capital distribution tied to `ca_id`."]
#[doc = "- `ca_id` identifies the CA with a capital distribution to reclaim for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `AlreadyReclaimed` if this function has already been called successfully."]
#[doc = "- `NotExpired` if `now < expiry`."]
pub fn reclaim(
&self,
ca_id: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CapitalDistribution(
types::pallet_corporate_actions::distribution::Call::reclaim { ca_id },
),
)
}
#[doc = "Removes a distribution that hasn't started yet,"]
#[doc = "unlocking the full amount in the distributor portfolio."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA with a not-yet-started capital distribution to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchDistribution` if there's no capital distribution for `ca_id`."]
#[doc = "- `DistributionStarted` if `payment_at <= now`."]
pub fn remove_distribution(
&self,
ca_id: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CapitalDistribution(
types::pallet_corporate_actions::distribution::Call::remove_distribution { ca_id },
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " All capital distributions, tied to their respective corporate actions (CAs)."]
#[doc = ""]
#[doc = " (CAId) => Distribution"]
pub async fn distributions(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_corporate_actions::distribution::Distribution>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
81u8, 154u8, 187u8, 138u8, 109u8, 32u8, 81u8, 139u8, 168u8, 202u8, 75u8, 130u8, 52u8,
39u8, 59u8, 17u8, 106u8, 209u8, 103u8, 105u8, 114u8, 107u8, 158u8, 5u8, 125u8, 150u8,
235u8, 86u8, 125u8, 11u8, 175u8, 145u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Has an asset holder been paid yet?"]
#[doc = ""]
#[doc = " (CAId, DID) -> Was DID paid in the CAId?"]
pub async fn holder_paid(
&self,
key_0: (
pallet_corporate_actions::CAId,
polymesh_primitives::identity_id::IdentityId,
),
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
81u8, 154u8, 187u8, 138u8, 109u8, 32u8, 81u8, 139u8, 168u8, 202u8, 75u8, 130u8, 52u8,
39u8, 59u8, 17u8, 55u8, 215u8, 43u8, 172u8, 158u8, 205u8, 29u8, 130u8, 146u8, 125u8,
52u8, 215u8, 183u8, 138u8, 60u8, 26u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_corporate_actions::distribution::Version>
{
let key = ::polymesh_api_client::StorageKey(vec![
81u8, 154u8, 187u8, 138u8, 109u8, 32u8, 81u8, 139u8, 168u8, 202u8, 75u8, 130u8, 52u8,
39u8, 59u8, 17u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_corporate_actions::distribution::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod checkpoint {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Creates a single checkpoint at the current time."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ticker`."]
#[doc = "- `ticker` to create the checkpoint for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `CounterOverflow` if the total checkpoint counter would overflow."]
pub fn create_checkpoint(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Checkpoint(
types::pallet_asset::checkpoint::Call::create_checkpoint { ticker },
))
}
#[doc = "Sets the max complexity of a schedule set for an arbitrary ticker to `max_complexity`."]
#[doc = "The new maximum is not enforced retroactively,"]
#[doc = "and only applies once new schedules are made."]
#[doc = ""]
#[doc = "Must be called as a PIP (requires \"root\")."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is the root origin."]
#[doc = "- `max_complexity` allowed for an arbitrary ticker's schedule set."]
pub fn set_schedules_max_complexity(
&self,
max_complexity: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Checkpoint(
types::pallet_asset::checkpoint::Call::set_schedules_max_complexity { max_complexity },
))
}
#[doc = "Creates a schedule generating checkpoints"]
#[doc = "in the future at either a fixed time or at intervals."]
#[doc = ""]
#[doc = "The schedule starts out with `strong_ref_count(schedule_id) <- 0`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as owner of `ticker`."]
#[doc = "- `ticker` to create the schedule for."]
#[doc = "- `schedule` that will generate checkpoints."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `ScheduleDurationTooShort` if the schedule duration is too short."]
#[doc = "- `InsufficientAccountBalance` if the protocol fee could not be charged."]
#[doc = "- `CounterOverflow` if the schedule ID or total checkpoint counters would overflow."]
#[doc = "- `FailedToComputeNextCheckpoint` if the next checkpoint for `schedule` is in the past."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn create_schedule(
&self,
ticker: polymesh_primitives::ticker::Ticker,
schedule: pallet_asset::checkpoint::ScheduleSpec,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Checkpoint(
types::pallet_asset::checkpoint::Call::create_schedule { ticker, schedule },
))
}
#[doc = "Removes the checkpoint schedule of an asset identified by `id`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as owner of `ticker`."]
#[doc = "- `ticker` to remove the schedule from."]
#[doc = "- `id` of the schedule, when it was created by `created_schedule`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if the DID of `origin` isn't a permissioned agent for `ticker`."]
#[doc = "- `NoCheckpointSchedule` if `id` does not identify a schedule for this `ticker`."]
#[doc = "- `ScheduleNotRemovable` if `id` exists but is not removable."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn remove_schedule(
&self,
ticker: polymesh_primitives::ticker::Ticker,
id: polymesh_common_utilities::traits::checkpoint::ScheduleId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Checkpoint(
types::pallet_asset::checkpoint::Call::remove_schedule { ticker, id },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Total supply of the token at the checkpoint."]
#[doc = ""]
#[doc = " (ticker, checkpointId) -> total supply at given checkpoint"]
pub async fn total_supply(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::calendar::CheckpointId,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 89u8, 148u8, 207u8, 218u8, 20u8, 205u8, 103u8, 225u8, 88u8, 102u8,
71u8, 212u8, 0u8, 8u8, 171u8, 170u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Balance of a DID at a checkpoint."]
#[doc = ""]
#[doc = " (ticker, did, checkpoint ID) -> Balance of a DID at a checkpoint"]
pub async fn balance(
&self,
key_0: (
polymesh_primitives::ticker::Ticker,
polymesh_primitives::calendar::CheckpointId,
),
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 78u8, 168u8, 234u8, 12u8, 1u8, 250u8, 164u8, 43u8, 110u8, 179u8,
68u8, 168u8, 92u8, 71u8, 179u8, 135u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Checkpoints ID generator sequence."]
#[doc = " ID of first checkpoint is 1 instead of 0."]
#[doc = ""]
#[doc = " (ticker) -> no. of checkpoints"]
pub async fn checkpoint_id_sequence(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::calendar::CheckpointId> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 125u8, 12u8, 59u8, 36u8, 10u8, 236u8, 235u8, 137u8, 107u8, 225u8,
196u8, 253u8, 46u8, 38u8, 239u8, 219u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::calendar::CheckpointId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Checkpoints where a DID's balance was updated."]
#[doc = " (ticker, did) -> [checkpoint ID where user balance changed]"]
pub async fn balance_updates(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::calendar::CheckpointId>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 143u8, 217u8, 170u8, 216u8, 91u8, 210u8, 121u8, 231u8, 28u8, 142u8,
98u8, 99u8, 214u8, 201u8, 229u8, 250u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::calendar::CheckpointId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Checkpoint timestamps."]
#[doc = ""]
#[doc = " Every schedule-originated checkpoint maps its ID to its due time."]
#[doc = " Every checkpoint manually created maps its ID to the time of recording."]
#[doc = ""]
#[doc = " (ticker) -> (checkpoint ID) -> checkpoint timestamp"]
pub async fn timestamps(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::calendar::CheckpointId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 212u8, 135u8, 3u8, 189u8, 214u8, 233u8, 162u8, 207u8, 215u8, 14u8,
169u8, 158u8, 121u8, 254u8, 114u8, 232u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The maximum complexity allowed for an arbitrary ticker's schedule set"]
#[doc = " (i.e. `Schedules` storage item below)."]
pub async fn schedules_max_complexity(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 157u8, 164u8, 151u8, 8u8, 64u8, 141u8, 200u8, 122u8, 167u8, 39u8,
230u8, 249u8, 114u8, 60u8, 67u8, 180u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Checkpoint schedule ID sequence for tickers."]
#[doc = ""]
#[doc = " (ticker) -> schedule ID"]
pub async fn schedule_id_sequence(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
polymesh_common_utilities::traits::checkpoint::ScheduleId,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 105u8, 127u8, 108u8, 151u8, 163u8, 248u8, 224u8, 135u8, 154u8, 147u8,
248u8, 192u8, 179u8, 162u8, 41u8, 13u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_common_utilities::traits::checkpoint::ScheduleId>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Checkpoint schedules for tickers."]
#[doc = ""]
#[doc = " (ticker) -> [schedule]"]
pub async fn schedules(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
Vec<polymesh_common_utilities::traits::checkpoint::StoredSchedule>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 52u8, 125u8, 146u8, 8u8, 195u8, 161u8, 45u8, 171u8, 132u8, 104u8,
102u8, 66u8, 103u8, 39u8, 250u8, 11u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_common_utilities::traits::checkpoint::StoredSchedule>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " How many \"strong\" references are there to a given `ScheduleId`?"]
#[doc = ""]
#[doc = " The presence of a \"strong\" reference, in the sense of `Rc<T>`,"]
#[doc = " entails that the referenced schedule cannot be removed."]
#[doc = " Thus, as long as `strong_ref_count(schedule_id) > 0`,"]
#[doc = " `remove_schedule(schedule_id)` will error."]
#[doc = ""]
#[doc = " (ticker, schedule ID) -> strong ref count"]
pub async fn schedule_ref_count(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_common_utilities::traits::checkpoint::ScheduleId,
) -> ::polymesh_api_client::error::Result<u32> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 237u8, 119u8, 84u8, 159u8, 230u8, 166u8, 65u8, 61u8, 186u8, 244u8,
172u8, 93u8, 185u8, 128u8, 39u8, 122u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All the checkpoints a given schedule originated."]
#[doc = ""]
#[doc = " (ticker, schedule ID) -> [checkpoint ID]"]
pub async fn schedule_points(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_common_utilities::traits::checkpoint::ScheduleId,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::calendar::CheckpointId>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 169u8, 253u8, 229u8, 218u8, 162u8, 17u8, 213u8, 206u8, 52u8, 53u8,
24u8, 44u8, 3u8, 149u8, 70u8, 134u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::calendar::CheckpointId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_asset::checkpoint::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
195u8, 146u8, 155u8, 32u8, 184u8, 204u8, 94u8, 128u8, 197u8, 29u8, 170u8, 187u8, 151u8,
103u8, 187u8, 14u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_asset::checkpoint::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod compliance_manager {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Adds a compliance requirement to an asset's compliance by ticker."]
#[doc = "If the compliance requirement is a duplicate, it does nothing."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = "* sender_conditions - Sender transfer conditions."]
#[doc = "* receiver_conditions - Receiver transfer conditions."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn add_compliance_requirement(
&self,
ticker: polymesh_primitives::ticker::Ticker,
sender_conditions: Vec<polymesh_primitives::condition::Condition>,
receiver_conditions: Vec<polymesh_primitives::condition::Condition>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::add_compliance_requirement {
ticker,
sender_conditions,
receiver_conditions,
},
),
)
}
#[doc = "Removes a compliance requirement from an asset's compliance."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = "* id - Compliance requirement id which is need to be removed"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn remove_compliance_requirement(
&self,
ticker: polymesh_primitives::ticker::Ticker,
id: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::remove_compliance_requirement { ticker, id },
),
)
}
#[doc = "Replaces an asset's compliance by ticker with a new compliance."]
#[doc = ""]
#[doc = "Compliance requirements will be sorted (ascending by id) before"]
#[doc = "replacing the current requirements."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `ticker` - the asset ticker,"]
#[doc = "* `asset_compliance - the new asset compliance."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `Unauthorized` if `origin` is not the owner of the ticker."]
#[doc = "* `DuplicateAssetCompliance` if `asset_compliance` contains multiple entries with the same `requirement_id`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn replace_asset_compliance(
&self,
ticker: polymesh_primitives::ticker::Ticker,
asset_compliance: Vec<polymesh_primitives::compliance_manager::ComplianceRequirement>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::replace_asset_compliance {
ticker,
asset_compliance,
},
),
)
}
#[doc = "Removes an asset's compliance"]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn reset_asset_compliance(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::reset_asset_compliance { ticker },
),
)
}
#[doc = "Pauses the verification of conditions for `ticker` during transfers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn pause_asset_compliance(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::pause_asset_compliance { ticker },
),
)
}
#[doc = "Resumes the verification of conditions for `ticker` during transfers."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker"]
#[doc = "* ticker - Symbol of the asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn resume_asset_compliance(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::resume_asset_compliance { ticker },
),
)
}
#[doc = "Adds another default trusted claim issuer at the ticker level."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* issuer - IdentityId of the trusted claim issuer."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn add_default_trusted_claim_issuer(
&self,
ticker: polymesh_primitives::ticker::Ticker,
issuer: polymesh_primitives::condition::TrustedIssuer,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::add_default_trusted_claim_issuer {
ticker,
issuer,
},
),
)
}
#[doc = "Removes the given `issuer` from the set of default trusted claim issuers at the ticker level."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* issuer - IdentityId of the trusted claim issuer."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn remove_default_trusted_claim_issuer(
&self,
ticker: polymesh_primitives::ticker::Ticker,
issuer: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::remove_default_trusted_claim_issuer {
ticker,
issuer,
},
),
)
}
#[doc = "Modify an existing compliance requirement of a given ticker."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* origin - Signer of the dispatchable. It should be the owner of the ticker."]
#[doc = "* ticker - Symbol of the asset."]
#[doc = "* new_req - Compliance requirement."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn change_compliance_requirement(
&self,
ticker: polymesh_primitives::ticker::Ticker,
new_req: polymesh_primitives::compliance_manager::ComplianceRequirement,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ComplianceManager(
types::pallet_compliance_manager::Call::change_compliance_requirement {
ticker,
new_req,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Asset compliance for a ticker (Ticker -> AssetCompliance)"]
pub async fn asset_compliances(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::compliance_manager::AssetCompliance,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
255u8, 219u8, 199u8, 116u8, 193u8, 144u8, 129u8, 130u8, 221u8, 228u8, 247u8, 53u8, 193u8,
10u8, 8u8, 220u8, 174u8, 4u8, 188u8, 209u8, 112u8, 119u8, 72u8, 235u8, 75u8, 159u8, 89u8,
9u8, 248u8, 244u8, 242u8, 195u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8];
<polymesh_primitives::compliance_manager::AssetCompliance>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " List of trusted claim issuer Ticker -> Issuer Identity"]
pub async fn trusted_claim_issuer(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::condition::TrustedIssuer>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
255u8, 219u8, 199u8, 116u8, 193u8, 144u8, 129u8, 130u8, 221u8, 228u8, 247u8, 53u8, 193u8,
10u8, 8u8, 220u8, 7u8, 112u8, 219u8, 149u8, 59u8, 221u8, 90u8, 127u8, 146u8, 167u8, 42u8,
117u8, 122u8, 15u8, 129u8, 253u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::condition::TrustedIssuer>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_compliance_manager::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
255u8, 219u8, 199u8, 116u8, 193u8, 144u8, 129u8, 130u8, 221u8, 228u8, 247u8, 53u8, 193u8,
10u8, 8u8, 220u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_compliance_manager::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod corporate_action {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Set the max `length` of `details` in terms of bytes."]
#[doc = "May only be called via a PIP."]
pub fn set_max_details_length(
&self,
length: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::set_max_details_length { length },
),
)
}
#[doc = "Set the default CA `TargetIdentities` to `targets`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` for which the default identities are changing."]
#[doc = "- `targets` the default target identities for a CA."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `TooManyTargetIds` if `targets.identities.len() > T::MaxTargetIds::get()`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn set_default_targets(
&self,
ticker: polymesh_primitives::ticker::Ticker,
targets: pallet_corporate_actions::TargetIdentities,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::set_default_targets { ticker, targets },
),
)
}
#[doc = "Set the default withholding tax for all DIDs and CAs relevant to this `ticker`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the withholding tax will apply to."]
#[doc = "- `tax` that should be withheld when distributing dividends, etc."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn set_default_withholding_tax(
&self,
ticker: polymesh_primitives::ticker::Ticker,
tax: ::polymesh_api_client::per_things::Permill,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::set_default_withholding_tax { ticker, tax },
),
)
}
#[doc = "Set the withholding tax of `ticker` for `taxed_did` to `tax`."]
#[doc = "If `Some(tax)`, this overrides the default withholding tax of `ticker` to `tax` for `taxed_did`."]
#[doc = "Otherwise, if `None`, the default withholding tax will be used."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the withholding tax will apply to."]
#[doc = "- `taxed_did` that will have its withholding tax updated."]
#[doc = "- `tax` that should be withheld when distributing dividends, etc."]
#[doc = ""]
#[doc = "## Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `TooManyDidTaxes` if `Some(tax)` and adding the override would go over the limit `MaxDidWhts`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn set_did_withholding_tax(
&self,
ticker: polymesh_primitives::ticker::Ticker,
taxed_did: polymesh_primitives::identity_id::IdentityId,
tax: Option<::polymesh_api_client::per_things::Permill>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::set_did_withholding_tax {
ticker,
taxed_did,
tax,
},
),
)
}
#[doc = "Initiates a CA for `ticker` of `kind` with `details` and other provided arguments."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ticker` with relevant permissions."]
#[doc = "- `ticker` that the CA is made for."]
#[doc = "- `kind` of CA being initiated."]
#[doc = "- `decl_date` of CA bring initialized."]
#[doc = "- `record_date`, if any, to calculate the impact of this CA."]
#[doc = " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date."]
#[doc = "- `details` of the CA in free-text form, up to a certain number of bytes in length."]
#[doc = "- `targets`, if any, which this CA is relevant/irrelevant to."]
#[doc = " Overrides, if provided, the default at the asset level (`set_default_targets`)."]
#[doc = "- `default_withholding_tax`, if any, is the default withholding tax to use for this CA."]
#[doc = " Overrides, if provided, the default at the asset level (`set_default_withholding_tax`)."]
#[doc = "- `withholding_tax`, if any, provides per-DID withholding tax overrides."]
#[doc = " Overrides, if provided, the default at the asset level (`set_did_withholding_tax`)."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `DetailsTooLong` if `details.len()` goes beyond `max_details_length`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `CounterOverflow` in the unlikely event that so many CAs were created for this `ticker`,"]
#[doc = " that integer overflow would have occured if instead allowed."]
#[doc = "- `TooManyDidTaxes` if `withholding_tax.unwrap().len()` would go over the limit `MaxDidWhts`."]
#[doc = "- `DuplicateDidTax` if a DID is included more than once in `wt`."]
#[doc = "- `TooManyTargetIds` if `targets.unwrap().identities.len() > T::MaxTargetIds::get()`."]
#[doc = "- `DeclDateInFuture` if the declaration date is not in the past."]
#[doc = "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn initiate_corporate_action(
&self,
ticker: polymesh_primitives::ticker::Ticker,
kind: pallet_corporate_actions::CAKind,
decl_date: u64,
record_date: Option<pallet_corporate_actions::RecordDateSpec>,
details: pallet_corporate_actions::CADetails,
targets: Option<pallet_corporate_actions::TargetIdentities>,
default_withholding_tax: Option<::polymesh_api_client::per_things::Permill>,
withholding_tax: Option<
Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::initiate_corporate_action {
ticker,
kind,
decl_date,
record_date,
details,
targets,
default_withholding_tax,
withholding_tax,
},
),
)
}
#[doc = "Link the given CA `id` to the given `docs`."]
#[doc = "Any previous links for the CA are removed in favor of `docs`."]
#[doc = ""]
#[doc = "The workflow here is to add the documents and initiating the CA in any order desired."]
#[doc = "Once both exist, they can now be linked together."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `id.ticker` with relevant permissions."]
#[doc = "- `id` of the CA to associate with `docs`."]
#[doc = "- `docs` to associate with the CA with `id`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = "- `NoSuchDoc` if any of `docs` does not identify an existing document."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn link_ca_doc(
&self,
id: pallet_corporate_actions::CAId,
docs: Vec<polymesh_primitives::document::DocumentId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::link_ca_doc { id, docs },
),
)
}
#[doc = "Removes the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "Associated data, such as document links, ballots,"]
#[doc = "and capital distributions are also removed."]
#[doc = ""]
#[doc = "Any schedule associated with the record date will see"]
#[doc = "`strong_ref_count(schedule_id)` decremented."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions."]
#[doc = "- `ca_id` of the CA to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn remove_ca(
&self,
ca_id: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::remove_ca { ca_id },
),
)
}
#[doc = "Changes the record date of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be an external agent of `ca_id.ticker` with relevant permissions."]
#[doc = "- `ca_id` of the CA to alter."]
#[doc = "- `record_date`, if any, to calculate the impact of the CA."]
#[doc = " If provided, this results in a scheduled balance snapshot (\"checkpoint\") at the date."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `id` does not identify an existing CA."]
#[doc = "- When `record_date.is_some()`, other errors due to checkpoint scheduling may occur."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn change_record_date(
&self,
ca_id: pallet_corporate_actions::CAId,
record_date: Option<pallet_corporate_actions::RecordDateSpec>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::change_record_date { ca_id, record_date },
),
)
}
#[doc = "Utility extrinsic to batch `initiate_corporate_action` and `distribute`"]
pub fn initiate_corporate_action_and_distribute(
&self,
ca_args: pallet_corporate_actions::InitiateCorporateActionArgs,
portfolio: Option<polymesh_primitives::identity_id::PortfolioNumber>,
currency: polymesh_primitives::ticker::Ticker,
per_share: u128,
amount: u128,
payment_at: u64,
expires_at: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateAction(
types::pallet_corporate_actions::Call::initiate_corporate_action_and_distribute {
ca_args,
portfolio,
currency,
per_share,
amount,
payment_at,
expires_at,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Determines the maximum number of bytes that the free-form `details` of a CA can store."]
#[doc = ""]
#[doc = " Note that this is not the number of `char`s or the number of [graphemes]."]
#[doc = " While this may be unnatural in terms of human understanding of a text's length,"]
#[doc = " it more closely reflects actual storage costs (`'a'` is cheaper to store than an emoji)."]
#[doc = ""]
#[doc = " [graphemes]: https://en.wikipedia.org/wiki/Grapheme"]
pub async fn max_details_length(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 35u8, 28u8, 123u8, 214u8, 108u8, 218u8, 59u8, 20u8, 118u8, 8u8, 139u8,
67u8, 69u8, 136u8, 180u8, 5u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The identities targeted by default for CAs for this ticker,"]
#[doc = " either to be excluded or included."]
#[doc = ""]
#[doc = " (ticker => target identities)"]
pub async fn default_target_identities(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_corporate_actions::TargetIdentities> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 77u8, 99u8, 45u8, 196u8, 84u8, 74u8, 106u8, 171u8, 172u8, 166u8,
213u8, 51u8, 51u8, 209u8, 34u8, 188u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 1u8];
<pallet_corporate_actions::TargetIdentities>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The default amount of tax to withhold (\"withholding tax\", WT) for this ticker when distributing dividends."]
#[doc = ""]
#[doc = " To understand withholding tax, e.g., let's assume that you hold ACME shares."]
#[doc = " ACME now decides to distribute 100 SEK to Alice."]
#[doc = " Alice lives in Sweden, so Skatteverket (the Swedish tax authority) wants 30% of that."]
#[doc = " Then those 100 * 30% are withheld from Alice, and ACME will send them to Skatteverket."]
#[doc = ""]
#[doc = " (ticker => % to withhold)"]
pub async fn default_withholding_tax(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<::polymesh_api_client::per_things::Permill> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 170u8, 50u8, 103u8, 81u8, 229u8, 40u8, 244u8, 16u8, 164u8, 129u8,
103u8, 210u8, 52u8, 41u8, 13u8, 197u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<::polymesh_api_client::per_things::Permill>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The amount of tax to withhold (\"withholding tax\", WT) for a certain ticker x DID."]
#[doc = " If an entry exists for a certain DID, it overrides the default in `DefaultWithholdingTax`."]
#[doc = ""]
#[doc = " (ticker => [(did, % to withhold)]"]
pub async fn did_withholding_tax(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<
Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 224u8, 222u8, 223u8, 202u8, 239u8, 39u8, 125u8, 98u8, 152u8, 237u8,
195u8, 114u8, 134u8, 40u8, 221u8, 13u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<(
polymesh_primitives::identity_id::IdentityId,
::polymesh_api_client::per_things::Permill,
)>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " The next per-`Ticker` CA ID in the sequence."]
#[doc = " The full ID is defined as a combination of `Ticker` and a number in this sequence."]
pub async fn ca_id_sequence(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_corporate_actions::LocalCAId> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 82u8, 91u8, 86u8, 204u8, 80u8, 123u8, 119u8, 166u8, 116u8, 44u8,
136u8, 13u8, 78u8, 115u8, 129u8, 34u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<pallet_corporate_actions::LocalCAId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All recorded CAs thus far."]
#[doc = " Only generic information is stored here."]
#[doc = " Specific `CAKind`s, e.g., benefits and corporate ballots, may use additional on-chain storage."]
#[doc = ""]
#[doc = " (ticker => local ID => the corporate action)"]
pub async fn corporate_actions(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: pallet_corporate_actions::LocalCAId,
) -> ::polymesh_api_client::error::Result<Option<pallet_corporate_actions::CorporateAction>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 14u8, 36u8, 40u8, 25u8, 103u8, 79u8, 185u8, 193u8, 131u8, 31u8, 153u8,
37u8, 135u8, 74u8, 8u8, 159u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Associations from CAs to `Document`s via their IDs."]
#[doc = " (CAId => [DocumentId])"]
#[doc = ""]
#[doc = " The `CorporateActions` map stores `Ticker => LocalId => The CA`,"]
#[doc = " so we can infer `Ticker => CAId`. Therefore, we don't need a double map."]
pub async fn ca_doc_link(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<Vec<polymesh_primitives::document::DocumentId>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 120u8, 114u8, 125u8, 160u8, 162u8, 78u8, 111u8, 100u8, 74u8, 192u8,
8u8, 173u8, 45u8, 35u8, 163u8, 153u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<polymesh_primitives::document::DocumentId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Associates details in free-form text with a CA by its ID."]
#[doc = " (CAId => CADetails)"]
pub async fn details(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<pallet_corporate_actions::CADetails> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 38u8, 140u8, 214u8, 5u8, 85u8, 135u8, 135u8, 226u8, 198u8, 220u8,
28u8, 194u8, 130u8, 139u8, 228u8, 24u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_corporate_actions::CADetails>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_corporate_actions::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
220u8, 91u8, 74u8, 49u8, 243u8, 242u8, 170u8, 172u8, 182u8, 184u8, 60u8, 136u8, 217u8,
32u8, 99u8, 238u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_corporate_actions::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod corporate_ballot {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Attach a corporate ballot to the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "The ballot will admit votes within `range`."]
#[doc = "The ballot's metadata is provided by `meta`,"]
#[doc = "which includes the ballot title, the motions, their choices, etc."]
#[doc = "See the `BallotMeta` for more."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the CA to attach the ballot to."]
#[doc = "- `range` specifies when voting starts and ends."]
#[doc = "- `meta` specifies the ballot's metadata as aforementioned."]
#[doc = "- `rcv` specifies whether RCV is enabled for this ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `CANotNotice` if the CA is not of the `IssuerNotice` kind."]
#[doc = "- `StartAfterEnd` if `range.start > range.end`."]
#[doc = "- `NowAfterEnd` if `now > range.end` where `now` is the current timestamp."]
#[doc = "- `NoRecordDate` if CA has no record date."]
#[doc = "- `RecordDateAfterStart` if `date > range.start` where `date` is the CA's record date."]
#[doc = "- `AlreadyExists` if there's a ballot already."]
#[doc = "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`."]
#[doc = "- `TooLong` if any of the embedded strings in `meta` are too long."]
#[doc = "- `InsufficientBalance` if the protocol fee couldn't be charged."]
pub fn attach_ballot(
&self,
ca_id: pallet_corporate_actions::CAId,
range: pallet_corporate_actions::ballot::BallotTimeRange,
meta: pallet_corporate_actions::ballot::BallotMeta,
rcv: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::attach_ballot {
ca_id,
range,
meta,
rcv,
},
),
)
}
#[doc = "Cast `votes` in the ballot attached to the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` which must be a permissioned signer targeted by the CA."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `votes` specifies the balances to assign to each choice in the ballot."]
#[doc = " The full voting power of `origin`'s DID may be used for each motion in the ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingNotStarted` if the voting period hasn't commenced yet."]
#[doc = "- `VotingAlreadyEnded` if the voting period has ended."]
#[doc = "- `WrongVoteCount` if the number of choices in the ballot does not match `votes.len()`."]
#[doc = "- `NoSuchCA` if `ca_id` does not identify an existing CA."]
#[doc = "- `NotTargetedByCA` if the CA does not target `origin`'s DID."]
#[doc = "- `InsufficientVotes` if the voting power used for any motion in `votes`"]
#[doc = " exceeds `origin`'s DID's voting power."]
pub fn vote(
&self,
ca_id: pallet_corporate_actions::CAId,
votes: Vec<pallet_corporate_actions::ballot::BallotVote>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::vote { ca_id, votes },
),
)
}
#[doc = "Amend the end date of the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `end` specifies the new end date of the ballot."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[doc = "- `StartAfterEnd` if `start > end`."]
pub fn change_end(
&self,
ca_id: pallet_corporate_actions::CAId,
end: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::change_end { ca_id, end },
),
)
}
#[doc = "Amend the metadata (title, motions, etc.) of the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `meta` specifies the new metadata."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
#[doc = "- `NumberOfChoicesOverflow` if the total choice in `meta` overflows `usize`."]
#[doc = "- `TooLong` if any of the embedded strings in `meta` are too long."]
pub fn change_meta(
&self,
ca_id: pallet_corporate_actions::CAId,
meta: pallet_corporate_actions::ballot::BallotMeta,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::change_meta { ca_id, meta },
),
)
}
#[doc = "Amend RCV support for the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = "- `rcv` specifies if RCV is to be supported or not."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
pub fn change_rcv(
&self,
ca_id: pallet_corporate_actions::CAId,
rcv: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::change_rcv { ca_id, rcv },
),
)
}
#[doc = "Remove the ballot of the CA identified by `ca_id`."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "- `origin` is a signer that has permissions to act as an agent of `ca_id.ticker`."]
#[doc = "- `ca_id` identifies the attached ballot's CA."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `ticker`."]
#[doc = "- `NoSuchBallot` if `ca_id` does not identify a ballot."]
#[doc = "- `VotingAlreadyStarted` if `start >= now`, where `now` is the current time."]
pub fn remove_ballot(
&self,
ca_id: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::CorporateBallot(
types::pallet_corporate_actions::ballot::Call::remove_ballot { ca_id },
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Metadata of a corporate ballot."]
#[doc = ""]
#[doc = " (CAId) => BallotMeta"]
pub async fn metas(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<Option<pallet_corporate_actions::ballot::BallotMeta>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 156u8, 233u8, 150u8, 83u8, 80u8, 111u8, 149u8, 210u8, 238u8, 76u8,
158u8, 22u8, 106u8, 202u8, 6u8, 64u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Time details of a corporate ballot associated with a CA."]
#[doc = " The timestamps denote when voting starts and stops."]
#[doc = ""]
#[doc = " (CAId) => BallotTimeRange"]
pub async fn time_ranges(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_corporate_actions::ballot::BallotTimeRange>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 224u8, 44u8, 93u8, 167u8, 153u8, 243u8, 193u8, 143u8, 81u8, 133u8,
254u8, 177u8, 13u8, 204u8, 115u8, 80u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Stores how many choices there are in each motion."]
#[doc = ""]
#[doc = " At all times, the invariant holds that `motion_choices[idx]` is equal to"]
#[doc = " `metas.unwrap().motions[idx].choices.len()`. That is, this is just a cache,"]
#[doc = " used to avoid fetching all the motions with their associated texts."]
#[doc = ""]
#[doc = " `u16` choices should be more than enough to fit real use cases."]
#[doc = ""]
#[doc = " (CAId) => Number of choices in each motion."]
pub async fn motion_num_choices(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<Vec<u16>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 128u8, 121u8, 46u8, 246u8, 146u8, 237u8, 189u8, 150u8, 253u8, 219u8,
95u8, 102u8, 195u8, 212u8, 151u8, 27u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u16>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Is ranked choice voting (RCV) enabled for this ballot?"]
#[doc = " For an understanding of how RCV is handled, see note on `BallotVote`'s `fallback` field."]
#[doc = ""]
#[doc = " (CAId) => bool"]
pub async fn rcv(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 255u8, 206u8, 156u8, 27u8, 141u8, 170u8, 167u8, 14u8, 136u8, 113u8,
191u8, 30u8, 171u8, 45u8, 90u8, 96u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Stores the total vote tally on each choice."]
#[doc = ""]
#[doc = " RCV is not accounted for,"]
#[doc = " as there are too many wants to interpret the graph,"]
#[doc = " and because it would not be efficient."]
#[doc = ""]
#[doc = " (CAId) => [current vote weights]"]
pub async fn results(
&self,
key_0: pallet_corporate_actions::CAId,
) -> ::polymesh_api_client::error::Result<Vec<u128>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 2u8, 53u8, 15u8, 184u8, 68u8, 197u8, 167u8, 101u8, 105u8, 101u8,
134u8, 40u8, 189u8, 68u8, 197u8, 62u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<u128>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Stores each DID's votes in a given ballot."]
#[doc = " See the documentation of `BallotVote` for notes on semantics."]
#[doc = ""]
#[doc = " (CAId) => (DID) => [vote weight]"]
#[doc = ""]
#[doc = " User must enter 0 vote weight if they don't want to vote for a choice."]
pub async fn votes(
&self,
key_0: pallet_corporate_actions::CAId,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<Vec<pallet_corporate_actions::ballot::BallotVote>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
231u8, 254u8, 118u8, 5u8, 155u8, 236u8, 50u8, 215u8, 156u8, 69u8, 147u8, 235u8, 7u8,
48u8, 134u8, 127u8, 180u8, 173u8, 198u8, 161u8, 206u8, 79u8, 124u8, 194u8, 230u8, 150u8,
237u8, 15u8, 208u8, 107u8, 208u8, 28u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
buf.extend(key_1.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_corporate_actions::ballot::BallotVote>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod permissions {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod pips {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Change whether completed PIPs are pruned."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `prune` specifies whether completed PIPs should be pruned."]
pub fn set_prune_historical_pips(
&self,
prune: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_prune_historical_pips { prune },
))
}
#[doc = "Change the minimum proposal deposit amount required to start a proposal."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `deposit` the new min deposit required to start a proposal"]
pub fn set_min_proposal_deposit(
&self,
deposit: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_min_proposal_deposit { deposit },
))
}
#[doc = "Change the default enactment period."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `duration` the new default enactment period it takes for a scheduled PIP to be executed."]
pub fn set_default_enactment_period(
&self,
duration: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_default_enactment_period { duration },
))
}
#[doc = "Change the amount of blocks after which a pending PIP is expired."]
#[doc = "If `expiry` is `None` then PIPs never expire."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `expiry` the block-time it takes for a still-`Pending` PIP to expire."]
pub fn set_pending_pip_expiry(
&self,
expiry: polymesh_common_utilities::MaybeBlock<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_pending_pip_expiry { expiry },
))
}
#[doc = "Change the maximum skip count (`max_pip_skip_count`)."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `max` skips before a PIP cannot be skipped by GC anymore."]
pub fn set_max_pip_skip_count(
&self,
max: u8,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_max_pip_skip_count { max },
))
}
#[doc = "Change the maximum number of active PIPs before community members cannot propose anything."]
#[doc = "Can only be called by root."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `limit` of concurrent active PIPs."]
pub fn set_active_pip_limit(
&self,
limit: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::set_active_pip_limit { limit },
))
}
#[doc = "A network member creates a PIP by submitting a dispatchable which"]
#[doc = "changes the network in someway. A minimum deposit is required to open a new proposal."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `proposer` is either a signing key or committee."]
#[doc = " Used to understand whether this is a committee proposal and verified against `origin`."]
#[doc = "* `proposal` a dispatchable call"]
#[doc = "* `deposit` minimum deposit value, which is ignored if `proposer` is a committee."]
#[doc = "* `url` a link to a website for proposal discussion"]
pub fn propose(
&self,
proposal: polymesh_runtime_develop::runtime::Call,
deposit: u128,
url: Option<polymesh_primitives::Url>,
description: Option<pallet_pips::PipDescription>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::propose {
proposal: ::std::boxed::Box::new(proposal),
deposit,
url,
description,
},
))
}
#[doc = "Vote either in favor (`aye_or_nay` == true) or against a PIP with `id`."]
#[doc = "The \"convinction\" or strength of the vote is given by `deposit`, which is reserved."]
#[doc = ""]
#[doc = "Note that `vote` is *not* additive."]
#[doc = "That is, `vote(id, true, 50)` followed by `vote(id, true, 40)`"]
#[doc = "will first reserve `50` and then refund `50 - 10`, ending up with `40` in deposit."]
#[doc = "To add atop of existing votes, you'll need `existing_deposit + addition`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id`, proposal id"]
#[doc = "* `aye_or_nay`, a bool representing for or against vote"]
#[doc = "* `deposit`, the \"conviction\" with which the vote is made."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NoSuchProposal` if `id` doesn't reference a valid PIP."]
#[doc = "* `NotFromCommunity` if proposal was made by a committee."]
#[doc = "* `IncorrectProposalState` if PIP isn't pending."]
#[doc = "* `InsufficientDeposit` if `origin` cannot reserve `deposit - old_deposit`."]
pub fn vote(
&self,
id: pallet_pips::PipId,
aye_or_nay: bool,
deposit: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::vote {
id,
aye_or_nay,
deposit,
},
))
}
#[doc = "Approves the pending committee PIP given by the `id`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal isn't pending."]
#[doc = "* `NotByCommittee` if the proposal isn't by a committee."]
pub fn approve_committee_proposal(
&self,
id: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::approve_committee_proposal { id },
))
}
#[doc = "Rejects the PIP given by the `id`, refunding any bonded funds,"]
#[doc = "assuming it hasn't been cancelled or executed."]
#[doc = "Note that proposals scheduled-for-execution can also be rejected."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal was cancelled or executed."]
pub fn reject_proposal(
&self,
id: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::reject_proposal { id },
))
}
#[doc = "Prune the PIP given by the `id`, refunding any funds not already refunded."]
#[doc = "The PIP may not be active"]
#[doc = ""]
#[doc = "This function is intended for storage garbage collection purposes."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` unless a GC voting majority executes this function."]
#[doc = "* `NoSuchProposal` if the PIP with `id` doesn't exist."]
#[doc = "* `IncorrectProposalState` if the proposal is active."]
pub fn prune_proposal(
&self,
id: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::prune_proposal { id },
))
}
#[doc = "Updates the execution schedule of the PIP given by `id`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `until` defines the future block where the enactment period will finished."]
#[doc = " `None` value means that enactment period is going to finish in the next block."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `RescheduleNotByReleaseCoordinator` unless triggered by release coordinator."]
#[doc = "* `IncorrectProposalState` unless the proposal was in a scheduled state."]
pub fn reschedule_execution(
&self,
id: pallet_pips::PipId,
until: Option<u32>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::reschedule_execution { id, until },
))
}
#[doc = "Clears the snapshot and emits the event `SnapshotCleared`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotACommitteeMember` - triggered when a non-GC-member executes the function."]
pub fn clear_snapshot(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::clear_snapshot,
))
}
#[doc = "Takes a new snapshot of the current list of active && pending PIPs."]
#[doc = "The PIPs are then sorted into a priority queue based on each PIP's weight."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `NotACommitteeMember` - triggered when a non-GC-member executes the function."]
pub fn snapshot(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::snapshot,
))
}
#[doc = "Enacts `results` for the PIPs in the snapshot queue."]
#[doc = "The snapshot will be available for further enactments until it is cleared."]
#[doc = ""]
#[doc = "The `results` are encoded a list of `(id, result)` where `result` is applied to `id`."]
#[doc = "Note that the snapshot priority queue is encoded with the *lowest priority first*."]
#[doc = "so `results = [(id, Approve)]` will approve `SnapshotQueue[SnapshotQueue.len() - 1]`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - unless a GC voting majority executes this function."]
#[doc = "* `CannotSkipPip` - a given PIP has already been skipped too many times."]
#[doc = "* `SnapshotResultTooLarge` - on len(results) > len(snapshot_queue)."]
#[doc = "* `SnapshotIdMismatch` - if:"]
#[doc = " ```text"]
#[doc = " ∃ (i ∈ 0..SnapshotQueue.len())."]
#[doc = " results[i].0 ≠SnapshotQueue[SnapshotQueue.len() - i].id"]
#[doc = " ```"]
#[doc = " This is protects against clearing queue while GC is voting."]
pub fn enact_snapshot_results(
&self,
results: Vec<(pallet_pips::PipId, pallet_pips::SnapshotResult)>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::enact_snapshot_results { results },
))
}
#[doc = "Internal dispatchable that handles execution of a PIP."]
pub fn execute_scheduled_pip(
&self,
id: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::execute_scheduled_pip { id },
))
}
#[doc = "Internal dispatchable that handles expiration of a PIP."]
pub fn expire_scheduled_pip(
&self,
did: polymesh_primitives::identity_id::IdentityId,
id: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Pips(
types::pallet_pips::Call::expire_scheduled_pip { did, id },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Determines whether historical PIP data is persisted or removed"]
pub async fn prune_historical_pips(&self) -> ::polymesh_api_client::error::Result<bool> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 189u8, 16u8, 192u8, 60u8, 149u8, 36u8, 81u8, 199u8, 53u8, 30u8,
52u8, 222u8, 47u8, 68u8, 166u8, 44u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The minimum amount to be used as a deposit for community PIP creation."]
pub async fn minimum_proposal_deposit(&self) -> ::polymesh_api_client::error::Result<u128> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 142u8, 186u8, 24u8, 71u8, 175u8, 165u8, 243u8, 64u8, 139u8, 26u8,
206u8, 10u8, 193u8, 132u8, 103u8, 2u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Default enactment period that will be use after a proposal is accepted by GC."]
pub async fn default_enactment_period(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 51u8, 170u8, 252u8, 74u8, 212u8, 72u8, 38u8, 0u8, 53u8, 50u8, 101u8,
120u8, 239u8, 111u8, 130u8, 18u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " How many blocks will it take, after a `Pending` PIP expires,"]
#[doc = " assuming it has not transitioned to another `ProposalState`?"]
pub async fn pending_pip_expiry(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_common_utilities::MaybeBlock<u32>> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 58u8, 147u8, 255u8, 239u8, 101u8, 133u8, 6u8, 145u8, 79u8, 53u8,
65u8, 205u8, 53u8, 56u8, 227u8, 209u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8];
<polymesh_common_utilities::MaybeBlock<u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Maximum times a PIP can be skipped before triggering `CannotSkipPip` in `enact_snapshot_results`."]
pub async fn max_pip_skip_count(&self) -> ::polymesh_api_client::error::Result<u8> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 220u8, 153u8, 145u8, 58u8, 218u8, 242u8, 187u8, 63u8, 0u8, 101u8,
235u8, 95u8, 125u8, 163u8, 103u8, 164u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<u8>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The maximum allowed number for `ActivePipCount`."]
#[doc = " Once reached, new PIPs cannot be proposed by community members."]
pub async fn active_pip_limit(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 142u8, 176u8, 200u8, 221u8, 213u8, 71u8, 139u8, 145u8, 46u8, 82u8,
219u8, 155u8, 155u8, 174u8, 243u8, 103u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Proposals so far. id can be used to keep track of PIPs off-chain."]
pub async fn pip_id_sequence(
&self,
) -> ::polymesh_api_client::error::Result<pallet_pips::PipId> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 89u8, 187u8, 247u8, 248u8, 106u8, 18u8, 26u8, 188u8, 148u8, 170u8,
211u8, 21u8, 5u8, 34u8, 135u8, 100u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<pallet_pips::PipId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Snapshots so far. id can be used to keep track of snapshots off-chain."]
pub async fn snapshot_id_sequence(
&self,
) -> ::polymesh_api_client::error::Result<pallet_pips::SnapshotId> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 6u8, 175u8, 149u8, 151u8, 152u8, 112u8, 164u8, 18u8, 129u8, 2u8,
178u8, 5u8, 64u8, 255u8, 210u8, 228u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<pallet_pips::SnapshotId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Total count of current pending or scheduled PIPs."]
pub async fn active_pip_count(&self) -> ::polymesh_api_client::error::Result<u32> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 160u8, 15u8, 19u8, 210u8, 89u8, 80u8, 103u8, 48u8, 205u8, 26u8,
95u8, 188u8, 201u8, 27u8, 117u8, 206u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The metadata of the active proposals."]
pub async fn proposal_metadata(
&self,
key_0: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<Option<pallet_pips::PipsMetadata<u32>>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 84u8, 36u8, 238u8, 140u8, 56u8, 250u8, 92u8, 7u8, 255u8, 42u8,
121u8, 197u8, 145u8, 184u8, 96u8, 30u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Those who have locked a deposit."]
#[doc = " proposal (id, proposer) -> deposit"]
pub async fn deposits(
&self,
key_0: pallet_pips::PipId,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
pallet_pips::DepositInfo<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 116u8, 166u8, 20u8, 219u8, 128u8, 33u8, 198u8, 189u8, 10u8, 2u8,
138u8, 175u8, 223u8, 41u8, 221u8, 8u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_pips::DepositInfo<::polymesh_api_client::AccountId>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Actual proposal for a given id, if it's current."]
#[doc = " proposal id -> proposal"]
pub async fn proposals(
&self,
key_0: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<
Option<
pallet_pips::Pip<
polymesh_runtime_develop::runtime::Call,
::polymesh_api_client::AccountId,
>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 136u8, 194u8, 247u8, 24u8, 140u8, 111u8, 221u8, 29u8, 255u8, 174u8,
47u8, 160u8, 209u8, 113u8, 244u8, 64u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " PolymeshVotes on a given proposal, if it is ongoing."]
#[doc = " proposal id -> vote count"]
pub async fn proposal_result(
&self,
key_0: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<pallet_pips::VotingResult> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 239u8, 64u8, 138u8, 67u8, 171u8, 101u8, 203u8, 26u8, 180u8, 173u8,
95u8, 36u8, 142u8, 58u8, 33u8, 239u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_pips::VotingResult>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Votes per Proposal and account. Used to avoid double vote issue."]
#[doc = " (proposal id, account) -> Vote"]
pub async fn proposal_votes(
&self,
key_0: pallet_pips::PipId,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Option<pallet_pips::Vote>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 38u8, 65u8, 14u8, 13u8, 124u8, 179u8, 198u8, 250u8, 215u8, 127u8,
63u8, 42u8, 53u8, 72u8, 177u8, 49u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Maps PIPs to the block at which they will be executed, if any."]
pub async fn pip_to_schedule(
&self,
key_0: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<Option<u32>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 235u8, 79u8, 164u8, 184u8, 26u8, 18u8, 180u8, 116u8, 221u8, 96u8,
50u8, 249u8, 124u8, 39u8, 211u8, 186u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A live priority queue (lowest priority at index 0)"]
#[doc = " of pending PIPs up to the active limit."]
#[doc = " Priority is defined by the `weight` in the `SnapshottedPip`."]
#[doc = ""]
#[doc = " Unlike `SnapshotQueue`, this queue is live, getting updated with each vote cast."]
#[doc = " The snapshot is therefore essentially a point-in-time clone of this queue."]
pub async fn live_queue(
&self,
) -> ::polymesh_api_client::error::Result<Vec<pallet_pips::SnapshottedPip>> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 199u8, 191u8, 241u8, 183u8, 34u8, 25u8, 14u8, 165u8, 58u8, 69u8,
114u8, 15u8, 85u8, 83u8, 223u8, 90u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_pips::SnapshottedPip>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The priority queue (lowest priority at index 0) of PIPs at the point of snapshotting."]
#[doc = " Priority is defined by the `weight` in the `SnapshottedPip`."]
#[doc = ""]
#[doc = " A queued PIP can be skipped. Doing so bumps the `pip_skip_count`."]
#[doc = " Once a (configurable) threshhold is exceeded, a PIP cannot be skipped again."]
pub async fn snapshot_queue(
&self,
) -> ::polymesh_api_client::error::Result<Vec<pallet_pips::SnapshottedPip>> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 71u8, 8u8, 47u8, 250u8, 214u8, 91u8, 162u8, 233u8, 118u8, 69u8,
120u8, 55u8, 47u8, 38u8, 190u8, 247u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_pips::SnapshottedPip>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The metadata of the snapshot, if there is one."]
pub async fn snapshot_meta(
&self,
) -> ::polymesh_api_client::error::Result<
Option<pallet_pips::SnapshotMetadata<u32, ::polymesh_api_client::AccountId>>,
> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 90u8, 74u8, 35u8, 0u8, 255u8, 31u8, 130u8, 141u8, 244u8, 34u8,
103u8, 253u8, 93u8, 30u8, 199u8, 83u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The number of times a certain PIP has been skipped."]
#[doc = " Once a (configurable) threshhold is exceeded, a PIP cannot be skipped again."]
pub async fn pip_skip_count(
&self,
key_0: pallet_pips::PipId,
) -> ::polymesh_api_client::error::Result<u8> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 225u8, 98u8, 238u8, 82u8, 4u8, 74u8, 74u8, 120u8, 78u8, 232u8,
200u8, 123u8, 191u8, 156u8, 108u8, 85u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<u8>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " All existing PIPs where the proposer is a committee."]
#[doc = " This list is a cache of all ids in `Proposals` with `Proposer::Committee(_)`."]
pub async fn committee_pips(
&self,
) -> ::polymesh_api_client::error::Result<Vec<pallet_pips::PipId>> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 189u8, 121u8, 13u8, 219u8, 47u8, 171u8, 170u8, 240u8, 102u8, 140u8,
146u8, 163u8, 22u8, 76u8, 210u8, 186u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_pips::PipId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_pips::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
55u8, 181u8, 173u8, 154u8, 186u8, 156u8, 122u8, 135u8, 120u8, 164u8, 215u8, 115u8, 13u8,
254u8, 103u8, 198u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_pips::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod portfolio {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Creates a portfolio with the given `name`."]
pub fn create_portfolio(
&self,
name: polymesh_primitives::identity_id::PortfolioName,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::create_portfolio { name },
))
}
#[doc = "Deletes a user portfolio. A portfolio can be deleted only if it has no funds."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio."]
#[doc = "* `PortfolioNotEmpty` if the portfolio still holds any asset"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn delete_portfolio(
&self,
num: polymesh_primitives::identity_id::PortfolioNumber,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::delete_portfolio { num },
))
}
#[doc = "Moves a token amount from one portfolio of an identity to another portfolio of the same"]
#[doc = "identity. Must be called by the custodian of the sender."]
#[doc = "Funds from deleted portfolios can also be recovered via this method."]
#[doc = ""]
#[doc = "A short memo can be added to to each token amount moved."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if one or both of the portfolios reference an invalid portfolio."]
#[doc = "* `destination_is_same_portfolio` if both sender and receiver portfolio are the same"]
#[doc = "* `DifferentIdentityPortfolios` if the sender and receiver portfolios belong to different identities"]
#[doc = "* `UnauthorizedCustodian` if the caller is not the custodian of the from portfolio"]
#[doc = "* `InsufficientPortfolioBalance` if the sender does not have enough free balance"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn move_portfolio_funds(
&self,
from: polymesh_primitives::identity_id::PortfolioId,
to: polymesh_primitives::identity_id::PortfolioId,
items: Vec<pallet_portfolio::MovePortfolioItem>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::move_portfolio_funds { from, to, items },
))
}
#[doc = "Renames a non-default portfolio."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `PortfolioDoesNotExist` if `num` doesn't reference a valid portfolio."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn rename_portfolio(
&self,
num: polymesh_primitives::identity_id::PortfolioNumber,
to_name: polymesh_primitives::identity_id::PortfolioName,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::rename_portfolio { num, to_name },
))
}
#[doc = "When called by the custodian of `portfolio_id`,"]
#[doc = "allows returning the custody of the portfolio to the portfolio owner unilaterally."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `UnauthorizedCustodian` if the caller is not the current custodian of `portfolio_id`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn quit_portfolio_custody(
&self,
pid: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::quit_portfolio_custody { pid },
))
}
pub fn accept_portfolio_custody(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Portfolio(
types::pallet_portfolio::Call::accept_portfolio_custody { auth_id },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The next portfolio sequence number of an identity."]
pub async fn next_portfolio_number(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_id::PortfolioNumber>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 172u8, 83u8, 250u8, 216u8, 150u8, 217u8, 192u8, 44u8, 226u8, 108u8, 214u8,
101u8, 230u8, 169u8, 16u8, 146u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::identity_id::PortfolioNumber>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The set of existing portfolios with their names. If a certain pair of a DID and"]
#[doc = " portfolio number maps to `None` then such a portfolio doesn't exist. Conversely, if a"]
#[doc = " pair maps to `Some(name)` then such a portfolio exists and is called `name`."]
pub async fn portfolios(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::identity_id::PortfolioNumber,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_id::PortfolioName>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 216u8, 45u8, 233u8, 131u8, 28u8, 44u8, 102u8, 233u8, 160u8, 8u8, 50u8,
33u8, 79u8, 22u8, 134u8, 96u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<polymesh_primitives::identity_id::PortfolioName>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Inverse map of `Portfolios` used to ensure bijectivitiy,"]
#[doc = " and uniqueness of names in `Portfolios`."]
pub async fn name_to_number(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::identity_id::PortfolioName,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::identity_id::PortfolioNumber>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 201u8, 73u8, 93u8, 142u8, 176u8, 225u8, 64u8, 248u8, 75u8, 153u8, 21u8,
11u8, 147u8, 73u8, 1u8, 128u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::identity_id::PortfolioNumber>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " How many assets with non-zero balance this portfolio contains."]
pub async fn portfolio_asset_count(
&self,
key_0: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 134u8, 1u8, 141u8, 242u8, 36u8, 217u8, 225u8, 140u8, 57u8, 102u8, 61u8,
167u8, 241u8, 14u8, 193u8, 102u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The asset balances of portfolios."]
pub async fn portfolio_asset_balances(
&self,
key_0: polymesh_primitives::identity_id::PortfolioId,
key_1: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 187u8, 126u8, 217u8, 17u8, 104u8, 223u8, 249u8, 141u8, 179u8, 194u8, 128u8,
143u8, 216u8, 237u8, 226u8, 9u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Amount of assets locked in a portfolio."]
#[doc = " These assets show up in portfolio balance but can not be transferred away."]
pub async fn portfolio_locked_assets(
&self,
key_0: polymesh_primitives::identity_id::PortfolioId,
key_1: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 116u8, 19u8, 199u8, 203u8, 198u8, 5u8, 145u8, 166u8, 100u8, 250u8, 216u8,
43u8, 219u8, 255u8, 196u8, 204u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The custodian of a particular portfolio. None implies that the identity owner is the custodian."]
pub async fn portfolio_custodian(
&self,
key_0: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::identity_id::IdentityId>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 10u8, 6u8, 59u8, 83u8, 137u8, 54u8, 238u8, 218u8, 141u8, 253u8, 27u8,
117u8, 25u8, 62u8, 192u8, 180u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Tracks all the portfolios in custody of a particular identity. Only used by the UIs."]
#[doc = " When `true` is stored as the value for a given `(did, pid)`, it means that `pid` is in custody of `did`."]
#[doc = " `false` values are never explicitly stored in the map, and are instead inferred by the absence of a key."]
pub async fn portfolios_in_custody(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 151u8, 1u8, 246u8, 111u8, 5u8, 25u8, 23u8, 126u8, 54u8, 90u8, 86u8, 176u8,
77u8, 30u8, 44u8, 29u8,
]);
buf.extend(key_0.encode());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_portfolio::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
36u8, 2u8, 13u8, 65u8, 5u8, 65u8, 106u8, 176u8, 166u8, 221u8, 157u8, 115u8, 101u8, 254u8,
169u8, 230u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8, 169u8,
77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_portfolio::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod protocol_fee {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Changes the fee coefficient for the root origin."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - Only root allowed."]
pub fn change_coefficient(
&self,
coefficient: polymesh_primitives::PosRatio,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::ProtocolFee(
types::pallet_protocol_fee::Call::change_coefficient { coefficient },
))
}
#[doc = "Changes the a base fee for the root origin."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `BadOrigin` - Only root allowed."]
pub fn change_base_fee(
&self,
op: polymesh_common_utilities::protocol_fee::ProtocolOp,
base_fee: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::ProtocolFee(
types::pallet_protocol_fee::Call::change_base_fee { op, base_fee },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The mapping of operation names to the base fees of those operations."]
pub async fn base_fees(
&self,
key_0: polymesh_common_utilities::protocol_fee::ProtocolOp,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
184u8, 15u8, 129u8, 169u8, 9u8, 174u8, 84u8, 41u8, 252u8, 227u8, 28u8, 64u8, 3u8, 169u8,
228u8, 161u8, 54u8, 217u8, 243u8, 154u8, 193u8, 14u8, 44u8, 253u8, 114u8, 99u8, 70u8,
43u8, 154u8, 102u8, 138u8, 8u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The fee coefficient as a positive rational (numerator, denominator)."]
pub async fn coefficient(
&self,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::PosRatio> {
let key = ::polymesh_api_client::StorageKey(vec![
184u8, 15u8, 129u8, 169u8, 9u8, 174u8, 84u8, 41u8, 252u8, 227u8, 28u8, 64u8, 3u8, 169u8,
228u8, 161u8, 155u8, 182u8, 208u8, 38u8, 251u8, 72u8, 4u8, 189u8, 110u8, 17u8, 231u8,
0u8, 23u8, 52u8, 26u8, 97u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[1u8, 0u8, 0u8, 0u8, 1u8, 0u8, 0u8, 0u8];
<polymesh_primitives::PosRatio>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod scheduler {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Anonymously schedule a task."]
pub fn schedule(
&self,
when: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::schedule {
when,
maybe_periodic,
priority,
call: ::std::boxed::Box::new(call),
},
))
}
#[doc = "Cancel an anonymously scheduled task."]
pub fn cancel(
&self,
when: u32,
index: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::cancel { when, index },
))
}
#[doc = "Schedule a named task."]
pub fn schedule_named(
&self,
id: Vec<u8>,
when: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::schedule_named {
id,
when,
maybe_periodic,
priority,
call: ::std::boxed::Box::new(call),
},
))
}
#[doc = "Cancel a named scheduled task."]
pub fn cancel_named(
&self,
id: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::cancel_named { id },
))
}
#[doc = "Anonymously schedule a task after a delay."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`schedule`]."]
#[doc = "# </weight>"]
pub fn schedule_after(
&self,
after: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::schedule_after {
after,
maybe_periodic,
priority,
call: ::std::boxed::Box::new(call),
},
))
}
#[doc = "Schedule a named task after a delay."]
#[doc = ""]
#[doc = "# <weight>"]
#[doc = "Same as [`schedule_named`](Self::schedule_named)."]
#[doc = "# </weight>"]
pub fn schedule_named_after(
&self,
id: Vec<u8>,
after: u32,
maybe_periodic: Option<(u32, u32)>,
priority: u8,
call: frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Scheduler(
types::pallet_scheduler::pallet::Call::schedule_named_after {
id,
after,
maybe_periodic,
priority,
call: ::std::boxed::Box::new(call),
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Items to be executed, indexed by the block number that they should be executed on."]
pub async fn agenda(
&self,
key_0: u32,
) -> ::polymesh_api_client::error::Result<
Vec<
Option<
pallet_scheduler::ScheduledV3<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
u32,
polymesh_runtime_develop::runtime::OriginCaller,
::polymesh_api_client::AccountId,
>,
>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
61u8, 183u8, 162u8, 76u8, 253u8, 201u8, 222u8, 120u8, 89u8, 116u8, 116u8, 108u8, 20u8,
169u8, 157u8, 249u8, 22u8, 67u8, 245u8, 65u8, 151u8, 24u8, 33u8, 156u8, 149u8, 103u8,
157u8, 221u8, 45u8, 130u8, 85u8, 116u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<
Option<
pallet_scheduler::ScheduledV3<
frame_support::traits::schedule::MaybeHashed<
polymesh_runtime_develop::runtime::Call,
primitive_types::H256,
>,
u32,
polymesh_runtime_develop::runtime::OriginCaller,
::polymesh_api_client::AccountId,
>,
>,
>>::decode(&mut &DEFAULT[..])
.unwrap()
}))
}
#[doc = " Lookup from identity to the block number and index of the task."]
pub async fn lookup(
&self,
key_0: Vec<u8>,
) -> ::polymesh_api_client::error::Result<Option<(u32, u32)>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
61u8, 183u8, 162u8, 76u8, 253u8, 201u8, 222u8, 120u8, 89u8, 116u8, 116u8, 108u8, 20u8,
169u8, 157u8, 249u8, 137u8, 26u8, 212u8, 87u8, 191u8, 77u8, 165u8, 73u8, 144u8, 250u8,
132u8, 162u8, 172u8, 177u8, 72u8, 162u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod settlement {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Registers a new venue."]
#[doc = ""]
#[doc = "* `details` - Extra details about a venue"]
#[doc = "* `signers` - Array of signers that are allowed to sign receipts for this venue"]
#[doc = "* `typ` - Type of venue being created"]
pub fn create_venue(
&self,
details: pallet_settlement::VenueDetails,
signers: Vec<::polymesh_api_client::AccountId>,
typ: pallet_settlement::VenueType,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::create_venue {
details,
signers,
typ,
},
))
}
#[doc = "Edit a venue's details."]
#[doc = ""]
#[doc = "* `id` specifies the ID of the venue to edit."]
#[doc = "* `details` specifies the updated venue details."]
pub fn update_venue_details(
&self,
id: pallet_settlement::VenueId,
details: pallet_settlement::VenueDetails,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::update_venue_details { id, details },
))
}
#[doc = "Edit a venue's type."]
#[doc = ""]
#[doc = "* `id` specifies the ID of the venue to edit."]
#[doc = "* `type` specifies the new type of the venue."]
pub fn update_venue_type(
&self,
id: pallet_settlement::VenueId,
typ: pallet_settlement::VenueType,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::update_venue_type { id, typ },
))
}
#[doc = "Adds a new instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `venue_id` - ID of the venue this instruction belongs to."]
#[doc = "* `settlement_type` - Defines if the instruction should be settled"]
#[doc = " in the next block after receiving all affirmations or waiting till a specific block."]
#[doc = "* `trade_date` - Optional date from which people can interact with this instruction."]
#[doc = "* `value_date` - Optional date after which the instruction should be settled (not enforced)"]
#[doc = "* `legs` - Legs included in this instruction."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "`950_000_000 + 1_000_000 * legs.len()`"]
pub fn add_instruction(
&self,
venue_id: pallet_settlement::VenueId,
settlement_type: pallet_settlement::SettlementType<u32>,
trade_date: Option<u64>,
value_date: Option<u64>,
legs: Vec<pallet_settlement::Leg>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::add_instruction {
venue_id,
settlement_type,
trade_date,
value_date,
legs,
},
))
}
#[doc = "Adds and affirms a new instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `venue_id` - ID of the venue this instruction belongs to."]
#[doc = "* `settlement_type` - Defines if the instruction should be settled"]
#[doc = " in the next block after receiving all affirmations or waiting till a specific block."]
#[doc = "* `trade_date` - Optional date from which people can interact with this instruction."]
#[doc = "* `value_date` - Optional date after which the instruction should be settled (not enforced)"]
#[doc = "* `legs` - Legs included in this instruction."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to use in this affirmations."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn add_and_affirm_instruction(
&self,
venue_id: pallet_settlement::VenueId,
settlement_type: pallet_settlement::SettlementType<u32>,
trade_date: Option<u64>,
value_date: Option<u64>,
legs: Vec<pallet_settlement::Leg>,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::add_and_affirm_instruction {
venue_id,
settlement_type,
trade_date,
value_date,
legs,
portfolios,
},
))
}
#[doc = "Provide affirmation to an existing instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id to affirm."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to affirm this instruction."]
#[doc = "* `max_legs_count` - Number of legs that need to be affirmed."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn affirm_instruction(
&self,
id: pallet_settlement::InstructionId,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::affirm_instruction {
id,
portfolios,
max_legs_count,
},
))
}
#[doc = "Withdraw an affirmation for a given instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id for that affirmation get withdrawn."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to withdraw affirmation."]
#[doc = "* `max_legs_count` - Number of legs that need to be un-affirmed."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn withdraw_affirmation(
&self,
id: pallet_settlement::InstructionId,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::withdraw_affirmation {
id,
portfolios,
max_legs_count,
},
))
}
#[doc = "Rejects an existing instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Instruction id to reject."]
#[doc = "* `portfolio` - Portfolio to reject the instruction."]
#[doc = "* `num_of_legs` - Number of legs in the instruction."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn reject_instruction(
&self,
id: pallet_settlement::InstructionId,
portfolio: polymesh_primitives::identity_id::PortfolioId,
num_of_legs: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::reject_instruction {
id,
portfolio,
num_of_legs,
},
))
}
#[doc = "Accepts an instruction and claims a signed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = "* `receipt_uid` - Receipt ID generated by the signer."]
#[doc = "* `signer` - Signer of the receipt."]
#[doc = "* `signed_data` - Signed receipt."]
#[doc = "* `portfolios` - Portfolios that the sender controls and wants to accept this instruction with"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn affirm_with_receipts(
&self,
id: pallet_settlement::InstructionId,
receipt_details: Vec<
pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
>,
portfolios: Vec<polymesh_primitives::identity_id::PortfolioId>,
max_legs_count: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::affirm_with_receipts {
id,
receipt_details,
portfolios,
max_legs_count,
},
))
}
#[doc = "Claims a signed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id for the receipt."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = "* `receipt_uid` - Receipt ID generated by the signer."]
#[doc = "* `signer` - Signer of the receipt."]
#[doc = "* `signed_data` - Signed receipt."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn claim_receipt(
&self,
id: pallet_settlement::InstructionId,
receipt_details: pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::claim_receipt {
id,
receipt_details,
},
))
}
#[doc = "Unclaims a previously claimed receipt."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `instruction_id` - Target instruction id for the receipt."]
#[doc = "* `leg_id` - Target leg id for the receipt"]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn unclaim_receipt(
&self,
instruction_id: pallet_settlement::InstructionId,
leg_id: pallet_settlement::LegId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::unclaim_receipt {
instruction_id,
leg_id,
},
))
}
#[doc = "Enables or disabled venue filtering for a token."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `enabled` - Boolean that decides if the filtering should be enabled."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn set_venue_filtering(
&self,
ticker: polymesh_primitives::ticker::Ticker,
enabled: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::set_venue_filtering { ticker, enabled },
))
}
#[doc = "Allows additional venues to create instructions involving an asset."]
#[doc = ""]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `venues` - Array of venues that are allowed to create instructions for the token in question."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn allow_venues(
&self,
ticker: polymesh_primitives::ticker::Ticker,
venues: Vec<pallet_settlement::VenueId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::allow_venues { ticker, venues },
))
}
#[doc = "Revokes permission given to venues for creating instructions involving a particular asset."]
#[doc = ""]
#[doc = "* `ticker` - Ticker of the token in question."]
#[doc = "* `venues` - Array of venues that are no longer allowed to create instructions for the token in question."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn disallow_venues(
&self,
ticker: polymesh_primitives::ticker::Ticker,
venues: Vec<pallet_settlement::VenueId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::disallow_venues { ticker, venues },
))
}
#[doc = "Marks a receipt issued by the caller as claimed or not claimed."]
#[doc = "This allows the receipt issuer to invalidate an already issued receipt or revalidate an already claimed receipt."]
#[doc = ""]
#[doc = "* `receipt_uid` - Unique ID of the receipt."]
#[doc = "* `validity` - New validity of the receipt."]
pub fn change_receipt_validity(
&self,
receipt_uid: u64,
validity: bool,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::change_receipt_validity {
receipt_uid,
validity,
},
))
}
#[doc = "Root callable extrinsic, used as an internal call to execute a scheduled settlement instruction."]
pub fn execute_scheduled_instruction(
&self,
id: pallet_settlement::InstructionId,
_legs_count: u32,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::execute_scheduled_instruction { id, _legs_count },
))
}
#[doc = "Reschedules a failed instruction."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "* `id` - Target instruction id to reschedule."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `InstructionNotFailed` - Instruction not in a failed state or does not exist."]
pub fn reschedule_instruction(
&self,
id: pallet_settlement::InstructionId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Settlement(
types::pallet_settlement::Call::reschedule_instruction { id },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Info about a venue. venue_id -> venue"]
pub async fn venue_info(
&self,
key_0: pallet_settlement::VenueId,
) -> ::polymesh_api_client::error::Result<Option<pallet_settlement::Venue>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 37u8, 149u8, 35u8, 221u8, 234u8, 221u8, 43u8, 130u8, 235u8, 131u8,
158u8, 182u8, 118u8, 158u8, 16u8, 163u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Free-form text about a venue. venue_id -> `VenueDetails`"]
#[doc = " Only needed for the UI."]
pub async fn details(
&self,
key_0: pallet_settlement::VenueId,
) -> ::polymesh_api_client::error::Result<pallet_settlement::VenueDetails> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 38u8, 140u8, 214u8, 5u8, 85u8, 135u8, 135u8, 226u8, 198u8, 220u8,
28u8, 194u8, 130u8, 139u8, 228u8, 24u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_settlement::VenueDetails>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Instructions under a venue."]
#[doc = " Only needed for the UI."]
#[doc = ""]
#[doc = " venue_id -> instruction_id -> ()"]
pub async fn venue_instructions(
&self,
key_0: pallet_settlement::VenueId,
key_1: pallet_settlement::InstructionId,
) -> ::polymesh_api_client::error::Result<()> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 194u8, 12u8, 53u8, 241u8, 21u8, 245u8, 35u8, 172u8, 170u8, 85u8, 47u8,
113u8, 49u8, 126u8, 98u8, 7u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[];
<()>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Signers allowed by the venue. (venue_id, signer) -> bool"]
pub async fn venue_signers(
&self,
key_0: pallet_settlement::VenueId,
key_1: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 182u8, 5u8, 81u8, 237u8, 11u8, 31u8, 45u8, 224u8, 46u8, 226u8, 44u8,
156u8, 78u8, 11u8, 160u8, 64u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Array of venues created by an identity. Only needed for the UI. IdentityId -> Vec<venue_id>"]
pub async fn user_venues(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<Vec<pallet_settlement::VenueId>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 210u8, 109u8, 136u8, 8u8, 7u8, 235u8, 230u8, 119u8, 137u8, 87u8,
141u8, 192u8, 40u8, 218u8, 115u8, 74u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_settlement::VenueId>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Details about an instruction. instruction_id -> instruction_details"]
pub async fn instruction_details(
&self,
key_0: pallet_settlement::InstructionId,
) -> ::polymesh_api_client::error::Result<pallet_settlement::Instruction<u64, u32>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 139u8, 174u8, 75u8, 191u8, 82u8, 90u8, 68u8, 48u8, 145u8, 19u8, 222u8,
238u8, 96u8, 255u8, 129u8, 178u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8,
];
<pallet_settlement::Instruction<u64, u32>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Legs under an instruction. (instruction_id, leg_id) -> Leg"]
pub async fn instruction_legs(
&self,
key_0: pallet_settlement::InstructionId,
key_1: pallet_settlement::LegId,
) -> ::polymesh_api_client::error::Result<pallet_settlement::Leg> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 17u8, 1u8, 179u8, 157u8, 113u8, 141u8, 101u8, 250u8, 213u8, 115u8,
20u8, 61u8, 204u8, 53u8, 74u8, 4u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<pallet_settlement::Leg>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Status of a leg under an instruction. (instruction_id, leg_id) -> LegStatus"]
pub async fn instruction_leg_status(
&self,
key_0: pallet_settlement::InstructionId,
key_1: pallet_settlement::LegId,
) -> ::polymesh_api_client::error::Result<
pallet_settlement::LegStatus<::polymesh_api_client::AccountId>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 241u8, 210u8, 62u8, 209u8, 210u8, 216u8, 97u8, 163u8, 74u8, 117u8,
189u8, 72u8, 12u8, 109u8, 191u8, 35u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_settlement::LegStatus<::polymesh_api_client::AccountId>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Number of affirmations pending before instruction is executed. instruction_id -> affirm_pending"]
pub async fn instruction_affirms_pending(
&self,
key_0: pallet_settlement::InstructionId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 84u8, 168u8, 38u8, 237u8, 42u8, 215u8, 233u8, 246u8, 173u8, 70u8, 3u8,
122u8, 135u8, 90u8, 149u8, 95u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Tracks affirmations received for an instruction. (instruction_id, counter_party) -> AffirmationStatus"]
pub async fn affirms_received(
&self,
key_0: pallet_settlement::InstructionId,
key_1: polymesh_primitives::identity_id::PortfolioId,
) -> ::polymesh_api_client::error::Result<pallet_settlement::AffirmationStatus> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 196u8, 164u8, 249u8, 77u8, 192u8, 14u8, 231u8, 77u8, 10u8, 20u8, 57u8,
61u8, 241u8, 216u8, 34u8, 202u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_settlement::AffirmationStatus>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Helps a user track their pending instructions and affirmations (only needed for UI)."]
#[doc = " (counter_party, instruction_id) -> AffirmationStatus"]
pub async fn user_affirmations(
&self,
key_0: polymesh_primitives::identity_id::PortfolioId,
key_1: pallet_settlement::InstructionId,
) -> ::polymesh_api_client::error::Result<pallet_settlement::AffirmationStatus> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 34u8, 4u8, 158u8, 52u8, 236u8, 109u8, 105u8, 33u8, 29u8, 40u8, 146u8,
57u8, 70u8, 48u8, 102u8, 159u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_settlement::AffirmationStatus>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Tracks redemption of receipts. (signer, receipt_uid) -> receipt_used"]
pub async fn receipts_used(
&self,
key_0: ::polymesh_api_client::AccountId,
key_1: u64,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 127u8, 126u8, 234u8, 226u8, 61u8, 64u8, 167u8, 253u8, 218u8, 94u8,
162u8, 111u8, 120u8, 56u8, 116u8, 157u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Tracks if a token has enabled filtering venues that can create instructions involving their token. Ticker -> filtering_enabled"]
pub async fn venue_filtering(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 242u8, 42u8, 22u8, 99u8, 179u8, 59u8, 93u8, 97u8, 223u8, 90u8, 186u8,
160u8, 76u8, 19u8, 198u8, 73u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Venues that are allowed to create instructions involving a particular ticker. Only used if filtering is enabled."]
#[doc = " (ticker, venue_id) -> allowed"]
pub async fn venue_allow_list(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: pallet_settlement::VenueId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 113u8, 120u8, 81u8, 211u8, 168u8, 229u8, 128u8, 215u8, 96u8, 177u8,
241u8, 151u8, 120u8, 224u8, 185u8, 22u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Number of venues in the system (It's one more than the actual number)"]
pub async fn venue_counter(
&self,
) -> ::polymesh_api_client::error::Result<pallet_settlement::VenueId> {
let key = ::polymesh_api_client::StorageKey(vec![
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 117u8, 30u8, 157u8, 0u8, 240u8, 121u8, 103u8, 207u8, 127u8, 87u8,
212u8, 100u8, 178u8, 100u8, 6u8, 108u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<pallet_settlement::VenueId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Number of instructions in the system (It's one more than the actual number)"]
pub async fn instruction_counter(
&self,
) -> ::polymesh_api_client::error::Result<pallet_settlement::InstructionId> {
let key = ::polymesh_api_client::StorageKey(vec![
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 186u8, 56u8, 151u8, 67u8, 78u8, 201u8, 90u8, 108u8, 36u8, 245u8,
147u8, 242u8, 23u8, 13u8, 233u8, 58u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<pallet_settlement::InstructionId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_settlement::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
165u8, 111u8, 232u8, 82u8, 109u8, 208u8, 251u8, 206u8, 254u8, 94u8, 76u8, 244u8, 45u8,
74u8, 131u8, 57u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_settlement::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod statistics {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Set the active asset stat_types."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `stat_types` - the new stat types to replace any existing types."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `StatTypeLimitReached` - too many stat types enabled for the `asset`."]
#[doc = "- `CannotRemoveStatTypeInUse` - can not remove a stat type that is in use by transfer conditions."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
pub fn set_active_asset_stats(
&self,
asset: polymesh_primitives::statistics::AssetScope,
stat_types: std::collections::BTreeSet<polymesh_primitives::statistics::StatType>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Statistics(
types::pallet_statistics::Call::set_active_asset_stats { asset, stat_types },
))
}
#[doc = "Allow a trusted issuer to init/resync ticker/company stats."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `stat_type` - stat type to update."]
#[doc = "- `values` - Updated values for `stat_type`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `StatTypeMissing` - `stat_type` is not enabled for the `asset`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
pub fn batch_update_asset_stats(
&self,
asset: polymesh_primitives::statistics::AssetScope,
stat_type: polymesh_primitives::statistics::StatType,
values: std::collections::BTreeSet<polymesh_primitives::statistics::StatUpdate>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Statistics(
types::pallet_statistics::Call::batch_update_asset_stats {
asset,
stat_type,
values,
},
))
}
#[doc = "Set asset transfer compliance rules."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `asset`."]
#[doc = "- `asset` - the asset to change the active stats on."]
#[doc = "- `transfer_conditions` - the new transfer condition to replace any existing conditions."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `TransferConditionLimitReached` - too many transfer condititon enabled for `asset`."]
#[doc = "- `StatTypeMissing` - a transfer condition requires a stat type that is not enabled for the `asset`."]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
pub fn set_asset_transfer_compliance(
&self,
asset: polymesh_primitives::statistics::AssetScope,
transfer_conditions: std::collections::BTreeSet<
polymesh_primitives::transfer_compliance::TransferCondition,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Statistics(
types::pallet_statistics::Call::set_asset_transfer_compliance {
asset,
transfer_conditions,
},
))
}
#[doc = "Set/unset entities exempt from an asset's transfer compliance rules."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `origin` - a signer that has permissions to act as an agent of `exempt_key.asset`."]
#[doc = "- `is_exempt` - enable/disable exemption for `entities`."]
#[doc = "- `exempt_key` - the asset and stat type to exempt the `entities` from."]
#[doc = "- `entities` - the entities to set/unset the exemption for."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` is not agent-permissioned for `asset`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "- Agent"]
#[doc = "- Asset"]
pub fn set_entities_exempt(
&self,
is_exempt: bool,
exempt_key: polymesh_primitives::transfer_compliance::TransferConditionExemptKey,
entities: std::collections::BTreeSet<polymesh_primitives::identity_id::IdentityId>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Statistics(
types::pallet_statistics::Call::set_entities_exempt {
is_exempt,
exempt_key,
entities,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Active stats for a ticker/company. There should be a max limit on the number of active stats for a ticker/company."]
pub async fn active_asset_stats(
&self,
key_0: polymesh_primitives::statistics::AssetScope,
) -> ::polymesh_api_client::error::Result<
std::collections::BTreeSet<polymesh_primitives::statistics::StatType>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
122u8, 118u8, 79u8, 87u8, 64u8, 136u8, 128u8, 152u8, 133u8, 248u8, 66u8, 104u8, 92u8,
191u8, 151u8, 8u8, 239u8, 22u8, 59u8, 174u8, 32u8, 48u8, 119u8, 218u8, 227u8, 43u8,
193u8, 151u8, 65u8, 213u8, 147u8, 30u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<std::collections::BTreeSet<polymesh_primitives::statistics::StatType>>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Asset stats."]
pub async fn asset_stats(
&self,
key_0: polymesh_primitives::statistics::Stat1stKey,
key_1: polymesh_primitives::statistics::Stat2ndKey,
) -> ::polymesh_api_client::error::Result<u128> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
122u8, 118u8, 79u8, 87u8, 64u8, 136u8, 128u8, 152u8, 133u8, 248u8, 66u8, 104u8, 92u8,
191u8, 151u8, 8u8, 13u8, 224u8, 187u8, 176u8, 120u8, 186u8, 103u8, 210u8, 250u8, 246u8,
251u8, 70u8, 123u8, 141u8, 62u8, 51u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[
0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8,
];
<u128>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Asset transfer compliance for a ticker (AssetScope -> AssetTransferCompliance)"]
pub async fn asset_transfer_compliances(
&self,
key_0: polymesh_primitives::statistics::AssetScope,
) -> ::polymesh_api_client::error::Result<
polymesh_primitives::transfer_compliance::AssetTransferCompliance,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
122u8, 118u8, 79u8, 87u8, 64u8, 136u8, 128u8, 152u8, 133u8, 248u8, 66u8, 104u8, 92u8,
191u8, 151u8, 8u8, 86u8, 51u8, 252u8, 244u8, 127u8, 54u8, 208u8, 97u8, 49u8, 83u8, 224u8,
203u8, 24u8, 190u8, 105u8, 124u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8];
<polymesh_primitives::transfer_compliance::AssetTransferCompliance>::decode(
&mut &DEFAULT[..],
)
.unwrap()
}))
}
#[doc = " Entities exempt from a Transfer Compliance rule."]
pub async fn transfer_condition_exempt_entities(
&self,
key_0: polymesh_primitives::transfer_compliance::TransferConditionExemptKey,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<bool> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
122u8, 118u8, 79u8, 87u8, 64u8, 136u8, 128u8, 152u8, 133u8, 248u8, 66u8, 104u8, 92u8,
191u8, 151u8, 8u8, 26u8, 48u8, 88u8, 202u8, 218u8, 234u8, 155u8, 104u8, 25u8, 241u8,
119u8, 22u8, 42u8, 149u8, 27u8, 223u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<bool>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Storage migration version."]
pub async fn storage_version(
&self,
) -> ::polymesh_api_client::error::Result<pallet_statistics::Version> {
let key = ::polymesh_api_client::StorageKey(vec![
122u8, 118u8, 79u8, 87u8, 64u8, 136u8, 128u8, 152u8, 133u8, 248u8, 66u8, 104u8, 92u8,
191u8, 151u8, 8u8, 48u8, 140u8, 233u8, 97u8, 93u8, 224u8, 119u8, 90u8, 130u8, 248u8,
169u8, 77u8, 195u8, 210u8, 133u8, 161u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_statistics::Version>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod sto {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Create a new fundraiser."]
#[doc = ""]
#[doc = "* `offering_portfolio` - Portfolio containing the `offering_asset`."]
#[doc = "* `offering_asset` - Asset being offered."]
#[doc = "* `raising_portfolio` - Portfolio containing the `raising_asset`."]
#[doc = "* `raising_asset` - Asset being exchanged for `offering_asset` on investment."]
#[doc = "* `tiers` - Price tiers to charge investors on investment."]
#[doc = "* `venue_id` - Venue to handle settlement."]
#[doc = "* `start` - Fundraiser start time, if `None` the fundraiser will start immediately."]
#[doc = "* `end` - Fundraiser end time, if `None` the fundraiser will never expire."]
#[doc = "* `minimum_investment` - Minimum amount of `raising_asset` that an investor needs to spend to invest in this raise."]
#[doc = "* `fundraiser_name` - Fundraiser name, only used in the UIs."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Portfolio"]
pub fn create_fundraiser(
&self,
offering_portfolio: polymesh_primitives::identity_id::PortfolioId,
offering_asset: polymesh_primitives::ticker::Ticker,
raising_portfolio: polymesh_primitives::identity_id::PortfolioId,
raising_asset: polymesh_primitives::ticker::Ticker,
tiers: Vec<pallet_sto::PriceTier>,
venue_id: pallet_settlement::VenueId,
start: Option<u64>,
end: Option<u64>,
minimum_investment: u128,
fundraiser_name: pallet_sto::FundraiserName,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::create_fundraiser {
offering_portfolio,
offering_asset,
raising_portfolio,
raising_asset,
tiers,
venue_id,
start,
end,
minimum_investment,
fundraiser_name,
},
))
}
#[doc = "Invest in a fundraiser."]
#[doc = ""]
#[doc = "* `investment_portfolio` - Portfolio that `offering_asset` will be deposited in."]
#[doc = "* `funding_portfolio` - Portfolio that will fund the investment."]
#[doc = "* `offering_asset` - Asset to invest in."]
#[doc = "* `id` - ID of the fundraiser to invest in."]
#[doc = "* `purchase_amount` - Amount of `offering_asset` to purchase."]
#[doc = "* `max_price` - Maximum price to pay per unit of `offering_asset`, If `None`there are no constraints on price."]
#[doc = "* `receipt` - Off-chain receipt to use instead of on-chain balance in `funding_portfolio`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Portfolio"]
pub fn invest(
&self,
investment_portfolio: polymesh_primitives::identity_id::PortfolioId,
funding_portfolio: polymesh_primitives::identity_id::PortfolioId,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
purchase_amount: u128,
max_price: Option<u128>,
receipt: Option<
pallet_settlement::ReceiptDetails<
::polymesh_api_client::AccountId,
sp_runtime::MultiSignature,
>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::invest {
investment_portfolio,
funding_portfolio,
offering_asset,
id,
purchase_amount,
max_price,
receipt,
},
))
}
#[doc = "Freeze a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to freeze."]
#[doc = "* `id` - ID of the fundraiser to freeze."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn freeze_fundraiser(
&self,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::freeze_fundraiser { offering_asset, id },
))
}
#[doc = "Unfreeze a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to unfreeze."]
#[doc = "* `id` - ID of the fundraiser to unfreeze."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn unfreeze_fundraiser(
&self,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::unfreeze_fundraiser { offering_asset, id },
))
}
#[doc = "Modify the time window a fundraiser is active"]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to modify."]
#[doc = "* `id` - ID of the fundraiser to modify."]
#[doc = "* `start` - New start of the fundraiser."]
#[doc = "* `end` - New end of the fundraiser to modify."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn modify_fundraiser_window(
&self,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
start: u64,
end: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::modify_fundraiser_window {
offering_asset,
id,
start,
end,
},
))
}
#[doc = "Stop a fundraiser."]
#[doc = ""]
#[doc = "* `offering_asset` - Asset to stop."]
#[doc = "* `id` - ID of the fundraiser to stop."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn stop(
&self,
offering_asset: polymesh_primitives::ticker::Ticker,
id: pallet_sto::FundraiserId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Sto(
types::pallet_sto::Call::stop { offering_asset, id },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " All fundraisers that are currently running."]
#[doc = " (ticker, fundraiser_id) -> Fundraiser"]
pub async fn fundraisers(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: pallet_sto::FundraiserId,
) -> ::polymesh_api_client::error::Result<Option<pallet_sto::Fundraiser<u64>>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
74u8, 66u8, 125u8, 144u8, 93u8, 182u8, 66u8, 62u8, 238u8, 230u8, 185u8, 54u8, 235u8,
242u8, 167u8, 54u8, 200u8, 242u8, 149u8, 77u8, 218u8, 243u8, 200u8, 19u8, 142u8, 65u8,
23u8, 184u8, 97u8, 230u8, 68u8, 109u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Total fundraisers created for a token."]
pub async fn fundraiser_count(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<pallet_sto::FundraiserId> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
74u8, 66u8, 125u8, 144u8, 93u8, 182u8, 66u8, 62u8, 238u8, 230u8, 185u8, 54u8, 235u8,
242u8, 167u8, 54u8, 220u8, 57u8, 49u8, 4u8, 64u8, 150u8, 65u8, 208u8, 189u8, 149u8, 72u8,
244u8, 76u8, 90u8, 115u8, 235u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<pallet_sto::FundraiserId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Name for the Fundraiser. Only used offchain."]
#[doc = " (ticker, fundraiser_id) -> Fundraiser name"]
pub async fn fundraiser_names(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: pallet_sto::FundraiserId,
) -> ::polymesh_api_client::error::Result<pallet_sto::FundraiserName> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
74u8, 66u8, 125u8, 144u8, 93u8, 182u8, 66u8, 62u8, 238u8, 230u8, 185u8, 54u8, 235u8,
242u8, 167u8, 54u8, 70u8, 206u8, 185u8, 249u8, 61u8, 181u8, 239u8, 65u8, 114u8, 228u8,
101u8, 54u8, 80u8, 98u8, 238u8, 252u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<pallet_sto::FundraiserName>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod treasury {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "It transfers balances from treasury to each of beneficiaries and the specific amount"]
#[doc = "for each of them."]
#[doc = ""]
#[doc = "# Error"]
#[doc = "* `BadOrigin`: Only root can execute transaction."]
#[doc = "* `InsufficientBalance`: If treasury balances is not enough to cover all beneficiaries."]
#[doc = "* `InvalidIdentity`: If one of the beneficiaries has an invalid identity."]
pub fn disbursement(
&self,
beneficiaries: Vec<polymesh_primitives::Beneficiary<u128>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Treasury(
types::pallet_treasury::Call::disbursement { beneficiaries },
))
}
#[doc = "It transfers the specific `amount` from `origin` account into treasury."]
#[doc = ""]
#[doc = "Only accounts which are associated to an identity can make a donation to treasury."]
pub fn reimbursement(
&self,
amount: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Treasury(
types::pallet_treasury::Call::reimbursement { amount },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod utility {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute until the first one fails and then stop."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin. To determine the success of the batch, an"]
#[doc = "event is deposited. If a call failed and the batch was interrupted, then the"]
#[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"]
#[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"]
#[doc = "event is deposited."]
pub fn batch(
&self,
calls: Vec<polymesh_runtime_develop::runtime::Call>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Utility(
types::pallet_utility::Call::batch { calls },
))
}
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute all calls, in order, stopping at the first failure,"]
#[doc = "in which case the state changes are rolled back."]
#[doc = "On failure, an event `BatchInterrupted(failure_idx, error)` is deposited."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin."]
#[doc = "To determine the success of the batch, an event is deposited."]
#[doc = "If any call failed, then `BatchInterrupted` is deposited."]
#[doc = "If all were successful, then the `BatchCompleted` event is deposited."]
pub fn batch_atomic(
&self,
calls: Vec<polymesh_runtime_develop::runtime::Call>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Utility(
types::pallet_utility::Call::batch_atomic { calls },
))
}
#[doc = "Dispatch multiple calls from the sender's origin."]
#[doc = ""]
#[doc = "This will execute all calls, in order, irrespective of failures."]
#[doc = "Any failures will be available in a `BatchOptimisticFailed` event."]
#[doc = ""]
#[doc = "May be called from root or a signed origin."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `calls`: The calls to be dispatched from the same origin."]
#[doc = ""]
#[doc = ""]
#[doc = "# Weight"]
#[doc = "- The sum of the weights of the `calls`."]
#[doc = "- One event."]
#[doc = ""]
#[doc = "This will return `Ok` in all circumstances except an unsigned origin."]
#[doc = "To determine the success of the batch, an event is deposited."]
#[doc = "If any call failed, then `BatchOptimisticFailed` is deposited,"]
#[doc = "with a vector of event counts for each call as well as a vector"]
#[doc = "of errors."]
#[doc = "If all were successful, then the `BatchCompleted` event is deposited."]
pub fn batch_optimistic(
&self,
calls: Vec<polymesh_runtime_develop::runtime::Call>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Utility(
types::pallet_utility::Call::batch_optimistic { calls },
))
}
#[doc = "Relay a call for a target from an origin"]
#[doc = ""]
#[doc = "Relaying in this context refers to the ability of origin to make a call on behalf of"]
#[doc = "target."]
#[doc = ""]
#[doc = "Fees are charged to origin"]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = "- `target`: Account to be relayed"]
#[doc = "- `signature`: Signature from target authorizing the relay"]
#[doc = "- `call`: Call to be relayed on behalf of target"]
#[doc = ""]
pub fn relay_tx(
&self,
target: ::polymesh_api_client::AccountId,
signature: sp_runtime::MultiSignature,
call: pallet_utility::UniqueCall<polymesh_runtime_develop::runtime::Call>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Utility(
types::pallet_utility::Call::relay_tx {
target,
signature,
call,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
pub async fn nonces(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<u64> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
213u8, 225u8, 162u8, 250u8, 22u8, 115u8, 44u8, 230u8, 144u8, 97u8, 137u8, 67u8, 140u8,
10u8, 130u8, 198u8, 194u8, 10u8, 83u8, 78u8, 161u8, 40u8, 231u8, 69u8, 69u8, 109u8,
162u8, 52u8, 205u8, 165u8, 229u8, 109u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod base {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod external_agents {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Creates a custom agent group (AG) for the given `ticker`."]
#[doc = ""]
#[doc = "The AG will have the permissions as given by `perms`."]
#[doc = "This new AG is then assigned `id = AGIdSequence::get() + 1` as its `AGId`,"]
#[doc = "which you can use as `AgentGroup::Custom(id)` when adding agents for `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` to add the custom group for."]
#[doc = "- `perms` that the new AG will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `TooLong` if `perms` had some string or list length that was too long."]
#[doc = "- `CounterOverflow` if `AGIdSequence::get() + 1` would exceed `u32::MAX`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn create_group(
&self,
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::create_group { ticker, perms },
),
)
}
#[doc = "Updates the permissions of the custom AG identified by `id`, for the given `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` the custom AG belongs to."]
#[doc = "- `id` for the custom AG within `ticker`."]
#[doc = "- `perms` to update the custom AG to."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `TooLong` if `perms` had some string or list length that was too long."]
#[doc = "- `NoSuchAG` if `id` does not identify a custom AG."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn set_group_permissions(
&self,
ticker: polymesh_primitives::ticker::Ticker,
id: polymesh_primitives::agent::AGId,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::set_group_permissions { ticker, id, perms },
),
)
}
#[doc = "Remove the given `agent` from `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` that has the `agent` to remove."]
#[doc = "- `agent` of `ticker` to remove."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `NotAnAgent` if `agent` is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if `agent` is the last full one."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn remove_agent(
&self,
ticker: polymesh_primitives::ticker::Ticker,
agent: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::remove_agent { ticker, agent },
),
)
}
#[doc = "Abdicate agentship for `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` of which the caller is an agent."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NotAnAgent` if the caller is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if the caller is the last full agent."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
pub fn abdicate(
&self,
ticker: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::abdicate { ticker },
),
)
}
#[doc = "Change the agent group that `agent` belongs to in `ticker`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `ticker` that has the `agent`."]
#[doc = "- `agent` of `ticker` to change the group for."]
#[doc = "- `group` that `agent` will belong to in `ticker`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedAgent` if `origin` was not authorized as an agent to call this."]
#[doc = "- `NoSuchAG` if `id` does not identify a custom AG."]
#[doc = "- `NotAnAgent` if `agent` is not an agent of `ticker`."]
#[doc = "- `RemovingLastFullAgent` if `agent` was a `Full` one and is being demoted."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn change_group(
&self,
ticker: polymesh_primitives::ticker::Ticker,
agent: polymesh_primitives::identity_id::IdentityId,
group: polymesh_primitives::agent::AgentGroup,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::change_group {
ticker,
agent,
group,
},
),
)
}
#[doc = "Accept an authorization by an agent \"Alice\" who issued `auth_id`"]
#[doc = "to also become an agent of the ticker Alice specified."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `auth_id` identifying the authorization to accept."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller."]
#[doc = "- `AuthorizationError::Expired` if `auth_id` is for an auth that has expired."]
#[doc = "- `AuthorizationError::BadType` if `auth_id` was not for a `BecomeAgent` auth type."]
#[doc = "- `UnauthorizedAgent` if \"Alice\" is not permissioned to provide the auth."]
#[doc = "- `NoSuchAG` if the group referred to a custom that does not exist."]
#[doc = "- `AlreadyAnAgent` if the caller is already an agent of the ticker."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Agent"]
pub fn accept_become_agent(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::accept_become_agent { auth_id },
),
)
}
#[doc = "Utility extrinsic to batch `create_group` and `add_auth`."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn create_group_and_add_auth(
&self,
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
target: polymesh_primitives::identity_id::IdentityId,
expiry: Option<u64>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::create_group_and_add_auth {
ticker,
perms,
target,
expiry,
},
),
)
}
#[doc = "Utility extrinsic to batch `create_group` and `change_group` for custom groups only."]
#[doc = ""]
#[doc = "# Permissions"]
#[doc = "* Asset"]
#[doc = "* Agent"]
pub fn create_and_change_custom_group(
&self,
ticker: polymesh_primitives::ticker::Ticker,
perms: polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
agent: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::ExternalAgents(
types::pallet_external_agents::Call::create_and_change_custom_group {
ticker,
perms,
agent,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The next per-`Ticker` AG ID in the sequence."]
#[doc = ""]
#[doc = " The full ID is defined as a combination of `Ticker` and a number in this sequence,"]
#[doc = " which starts from 1, rather than 0."]
pub async fn ag_id_sequence(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<polymesh_primitives::agent::AGId> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
217u8, 211u8, 240u8, 107u8, 84u8, 165u8, 3u8, 207u8, 6u8, 208u8, 45u8, 154u8, 84u8,
235u8, 102u8, 212u8, 12u8, 233u8, 200u8, 225u8, 173u8, 92u8, 11u8, 5u8, 96u8, 24u8,
174u8, 23u8, 140u8, 103u8, 130u8, 219u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<polymesh_primitives::agent::AGId>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Maps an agent (`IdentityId`) to all all `Ticker`s they belong to, if any."]
pub async fn agent_of(
&self,
key_0: polymesh_primitives::identity_id::IdentityId,
key_1: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<()> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
217u8, 211u8, 240u8, 107u8, 84u8, 165u8, 3u8, 207u8, 6u8, 208u8, 45u8, 154u8, 84u8,
235u8, 102u8, 212u8, 53u8, 162u8, 207u8, 202u8, 92u8, 195u8, 4u8, 152u8, 44u8, 119u8,
99u8, 8u8, 91u8, 94u8, 104u8, 181u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[];
<()>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " Maps agents (`IdentityId`) for a `Ticker` to what AG they belong to, if any."]
pub async fn group_of_agent(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::identity_id::IdentityId,
) -> ::polymesh_api_client::error::Result<Option<polymesh_primitives::agent::AgentGroup>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
217u8, 211u8, 240u8, 107u8, 84u8, 165u8, 3u8, 207u8, 6u8, 208u8, 45u8, 154u8, 84u8,
235u8, 102u8, 212u8, 242u8, 55u8, 209u8, 95u8, 72u8, 97u8, 175u8, 60u8, 82u8, 212u8,
93u8, 134u8, 226u8, 228u8, 249u8, 241u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Maps a `Ticker` to the number of `Full` agents for it."]
pub async fn num_full_agents(
&self,
key_0: polymesh_primitives::ticker::Ticker,
) -> ::polymesh_api_client::error::Result<u32> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
217u8, 211u8, 240u8, 107u8, 84u8, 165u8, 3u8, 207u8, 6u8, 208u8, 45u8, 154u8, 84u8,
235u8, 102u8, 212u8, 73u8, 199u8, 126u8, 22u8, 129u8, 58u8, 64u8, 117u8, 2u8, 182u8,
198u8, 217u8, 175u8, 14u8, 213u8, 191u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8];
<u32>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " For custom AGs of a `Ticker`, maps to what permissions an agent in that AG would have."]
pub async fn group_permissions(
&self,
key_0: polymesh_primitives::ticker::Ticker,
key_1: polymesh_primitives::agent::AGId,
) -> ::polymesh_api_client::error::Result<
Option<
polymesh_primitives::subset::SubsetRestriction<
polymesh_primitives::secondary_key::PalletPermissions,
>,
>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
217u8, 211u8, 240u8, 107u8, 84u8, 165u8, 3u8, 207u8, 6u8, 208u8, 45u8, 154u8, 84u8,
235u8, 102u8, 212u8, 228u8, 175u8, 240u8, 58u8, 197u8, 94u8, 151u8, 139u8, 185u8, 101u8,
37u8, 225u8, 222u8, 165u8, 102u8, 172u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = key_1.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod relayer {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Creates an authorization to allow `user_key` to accept the caller (`origin == paying_key`) as their subsidiser."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key to subsidise."]
#[doc = "- `polyx_limit` the initial POLYX limit for this subsidy."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
pub fn set_paying_key(
&self,
user_key: ::polymesh_api_client::AccountId,
polyx_limit: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::set_paying_key {
user_key,
polyx_limit,
},
))
}
#[doc = "Accepts a `paying_key` authorization."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `auth_id` the authorization id to accept a `paying_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AuthorizationError::Invalid` if `auth_id` does not exist for the given caller."]
#[doc = "- `AuthorizationError::Expired` if `auth_id` the authorization has expired."]
#[doc = "- `AuthorizationError::BadType` if `auth_id` was not a `AddRelayerPayingKey` authorization."]
#[doc = "- `NotAuthorizedForUserKey` if `origin` is not authorized to accept the authorization for the `user_key`."]
#[doc = "- `NotAuthorizedForPayingKey` if the authorization was created an identity different from the `paying_key`'s identity."]
#[doc = "- `UserKeyCddMissing` if the `user_key` is not attached to a CDD'd identity."]
#[doc = "- `PayingKeyCddMissing` if the `paying_key` is not attached to a CDD'd identity."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
pub fn accept_paying_key(
&self,
auth_id: u64,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::accept_paying_key { auth_id },
))
}
#[doc = "Removes the `paying_key` from a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key to remove the subsidy from."]
#[doc = "- `paying_key` the paying key that was subsidising the `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NotAuthorizedForUserKey` if `origin` is not authorized to remove the subsidy for the `user_key`."]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if the `paying_key` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
pub fn remove_paying_key(
&self,
user_key: ::polymesh_api_client::AccountId,
paying_key: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::remove_paying_key {
user_key,
paying_key,
},
))
}
#[doc = "Updates the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `polyx_limit` the amount of POLYX available for subsidising the `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
pub fn update_polyx_limit(
&self,
user_key: ::polymesh_api_client::AccountId,
polyx_limit: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::update_polyx_limit {
user_key,
polyx_limit,
},
))
}
#[doc = "Increase the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `amount` the amount of POLYX to add to the subsidy of `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[doc = "- `Overlow` if the subsidy's remaining POLYX would have overflowed `u128::MAX`."]
pub fn increase_polyx_limit(
&self,
user_key: ::polymesh_api_client::AccountId,
amount: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::increase_polyx_limit { user_key, amount },
))
}
#[doc = "Decrease the available POLYX for a `user_key`."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `user_key` the user key of the subsidy to update the available POLYX."]
#[doc = "- `amount` the amount of POLYX to remove from the subsidy of `user_key`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `NoPayingKey` if the `user_key` doesn't have a `paying_key`."]
#[doc = "- `NotPayingKey` if `origin` doesn't match the current `paying_key`."]
#[doc = "- `UnauthorizedCaller` if `origin` is not authorized to call this extrinsic."]
#[doc = "- `Overlow` if the subsidy has less then `amount` POLYX remaining."]
pub fn decrease_polyx_limit(
&self,
user_key: ::polymesh_api_client::AccountId,
amount: u128,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Relayer(
types::pallet_relayer::Call::decrease_polyx_limit { user_key, amount },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The subsidy for a `user_key` if they are being subsidised,"]
#[doc = " as a map `user_key` => `Subsidy`."]
#[doc = ""]
#[doc = " A key can only have one subsidy at a time. To change subsidisers"]
#[doc = " a key needs to call `remove_paying_key` to remove the current subsidy,"]
#[doc = " before they can accept a new subsidiser."]
pub async fn subsidies(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_relayer::Subsidy<::polymesh_api_client::AccountId>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
5u8, 71u8, 187u8, 31u8, 121u8, 115u8, 160u8, 127u8, 217u8, 78u8, 1u8, 160u8, 208u8,
220u8, 209u8, 106u8, 75u8, 74u8, 110u8, 95u8, 140u8, 115u8, 246u8, 81u8, 202u8, 177u8,
63u8, 253u8, 143u8, 76u8, 227u8, 53u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod rewards {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Claim an ITN reward."]
#[doc = ""]
#[doc = "## Arguments"]
#[doc = "* `itn_address` specifying the awarded address on ITN."]
#[doc = "* `signature` authenticating the claim to the reward."]
#[doc = " The signature should contain `reward_address` followed by the suffix `\"claim_itn_reward\"`,"]
#[doc = " and must have been signed by `itn_address`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "* `InsufficientBalance` - Itn rewards has insufficient funds to issue the reward."]
#[doc = "* `InvalidSignature` - `signature` had an invalid signer or invalid message."]
#[doc = "* `ItnRewardAlreadyClaimed` - Reward issued to the `itn_address` has already been claimed."]
#[doc = "* `UnknownItnAddress` - `itn_address` is not in the rewards table and has no reward to be claimed."]
pub fn claim_itn_reward(
&self,
reward_address: ::polymesh_api_client::AccountId,
itn_address: ::polymesh_api_client::AccountId,
signature: sp_runtime::MultiSignature,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Rewards(
types::pallet_rewards::Call::claim_itn_reward {
reward_address,
itn_address,
signature,
},
))
}
pub fn set_itn_reward_status(
&self,
itn_address: ::polymesh_api_client::AccountId,
status: pallet_rewards::ItnRewardStatus,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Rewards(
types::pallet_rewards::Call::set_itn_reward_status {
itn_address,
status,
},
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " Map of (Itn Address `AccountId`) -> (Reward `ItnRewardStatus`)."]
pub async fn itn_rewards(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<Option<pallet_rewards::ItnRewardStatus>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
84u8, 10u8, 79u8, 135u8, 84u8, 170u8, 82u8, 152u8, 163u8, 214u8, 233u8, 170u8, 9u8,
233u8, 63u8, 151u8, 55u8, 94u8, 14u8, 120u8, 188u8, 252u8, 178u8, 70u8, 46u8, 13u8,
134u8, 59u8, 85u8, 93u8, 105u8, 211u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::blake2_128(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod contracts {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Makes a call to an account, optionally transferring some balance."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = ""]
#[doc = "* `dest`: Address of the contract to call."]
#[doc = "* `value`: The balance to transfer from the `origin` to `dest`."]
#[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."]
#[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the"]
#[doc = " caller to pay for the storage consumed."]
#[doc = "* `data`: The input data to pass to the contract."]
#[doc = ""]
#[doc = "* If the account is a smart-contract account, the associated code will be"]
#[doc = "executed and any value will be transferred."]
#[doc = "* If the account is a regular account, any value will be transferred."]
#[doc = "* If no account exists and the call value is not less than `existential_deposit`,"]
#[doc = "a regular account will be created and any value will be transferred."]
pub fn call(
&self,
dest: ::polymesh_api_client::MultiAddress<::polymesh_api_client::AccountId, u32>,
value: u128,
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
data: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Contracts(
types::pallet_contracts::pallet::Call::call {
dest,
value,
gas_limit,
storage_deposit_limit,
data,
},
))
}
#[doc = "Instantiates a new contract from the supplied `code` optionally transferring"]
#[doc = "some balance."]
#[doc = ""]
#[doc = "This dispatchable has the same effect as calling [`Self::upload_code`] +"]
#[doc = "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please"]
#[doc = "also check the documentation of [`Self::upload_code`]."]
#[doc = ""]
#[doc = "# Parameters"]
#[doc = ""]
#[doc = "* `value`: The balance to transfer from the `origin` to the newly created contract."]
#[doc = "* `gas_limit`: The gas limit enforced when executing the constructor."]
#[doc = "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "* `code`: The contract code to deploy in raw bytes."]
#[doc = "* `data`: The input data to pass to the contract constructor."]
#[doc = "* `salt`: Used for the address derivation. See [`Pallet::contract_address`]."]
#[doc = ""]
#[doc = "Instantiation is executed as follows:"]
#[doc = ""]
#[doc = "- The supplied `code` is instrumented, deployed, and a `code_hash` is created for that"]
#[doc = " code."]
#[doc = "- If the `code_hash` already exists on the chain the underlying `code` will be shared."]
#[doc = "- The destination address is computed based on the sender, code_hash and the salt."]
#[doc = "- The smart-contract account is created at the computed address."]
#[doc = "- The `value` is transferred to the new account."]
#[doc = "- The `deploy` function is executed in the context of the newly-created account."]
pub fn instantiate_with_code(
&self,
value: u128,
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
code: Vec<u8>,
data: Vec<u8>,
salt: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Contracts(
types::pallet_contracts::pallet::Call::instantiate_with_code {
value,
gas_limit,
storage_deposit_limit,
code,
data,
salt,
},
))
}
#[doc = "Instantiates a contract from a previously deployed wasm binary."]
#[doc = ""]
#[doc = "This function is identical to [`Self::instantiate_with_code`] but without the"]
#[doc = "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary"]
#[doc = "must be supplied."]
pub fn instantiate(
&self,
value: u128,
gas_limit: u64,
storage_deposit_limit: Option<::codec::Compact<u128>>,
code_hash: primitive_types::H256,
data: Vec<u8>,
salt: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Contracts(
types::pallet_contracts::pallet::Call::instantiate {
value,
gas_limit,
storage_deposit_limit,
code_hash,
data,
salt,
},
))
}
#[doc = "Upload new `code` without instantiating a contract from it."]
#[doc = ""]
#[doc = "If the code does not already exist a deposit is reserved from the caller"]
#[doc = "and unreserved only when [`Self::remove_code`] is called. The size of the reserve"]
#[doc = "depends on the instrumented size of the the supplied `code`."]
#[doc = ""]
#[doc = "If the code already exists in storage it will still return `Ok` and upgrades"]
#[doc = "the in storage version to the current"]
#[doc = "[`InstructionWeights::version`](InstructionWeights)."]
#[doc = ""]
#[doc = "# Note"]
#[doc = ""]
#[doc = "Anyone can instantiate a contract from any uploaded code and thus prevent its removal."]
#[doc = "To avoid this situation a constructor could employ access control so that it can"]
#[doc = "only be instantiated by permissioned entities. The same is true when uploading"]
#[doc = "through [`Self::instantiate_with_code`]."]
pub fn upload_code(
&self,
code: Vec<u8>,
storage_deposit_limit: Option<::codec::Compact<u128>>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Contracts(
types::pallet_contracts::pallet::Call::upload_code {
code,
storage_deposit_limit,
},
))
}
#[doc = "Remove the code stored under `code_hash` and refund the deposit to its owner."]
#[doc = ""]
#[doc = "A code can only be removed by its original uploader (its owner) and only if it is"]
#[doc = "not used by any contract."]
pub fn remove_code(
&self,
code_hash: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Contracts(
types::pallet_contracts::pallet::Call::remove_code { code_hash },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " A mapping from an original code hash to the original code, untouched by instrumentation."]
pub async fn pristine_code(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<Vec<u8>>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 77u8, 108u8, 43u8, 3u8, 185u8, 0u8, 40u8, 243u8, 191u8, 64u8, 126u8,
180u8, 51u8, 233u8, 99u8, 137u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A mapping between an original code hash and instrumented wasm code, ready for execution."]
pub async fn code_storage(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<pallet_contracts::wasm::PrefabWasmModule>>
{
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 34u8, 252u8, 169u8, 6u8, 17u8, 186u8, 139u8, 121u8, 66u8, 248u8,
189u8, 179u8, 185u8, 127u8, 101u8, 128u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " A mapping between an original code hash and its owner information."]
pub async fn owner_info_of(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<pallet_contracts::wasm::OwnerInfo>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 83u8, 241u8, 63u8, 211u8, 25u8, 160u8, 60u8, 33u8, 19u8, 55u8, 199u8,
110u8, 15u8, 231u8, 118u8, 223u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " This is a **monotonic** counter incremented on contract instantiation."]
#[doc = ""]
#[doc = " This is used in order to generate unique trie ids for contracts."]
#[doc = " The trie id of a new contract is calculated from hash(account_id, nonce)."]
#[doc = " The nonce is required because otherwise the following sequence would lead to"]
#[doc = " a possible collision of storage:"]
#[doc = ""]
#[doc = " 1. Create a new contract."]
#[doc = " 2. Terminate the contract."]
#[doc = " 3. Immediately recreate the contract with the same account_id."]
#[doc = ""]
#[doc = " This is bad because the contents of a trie are deleted lazily and there might be"]
#[doc = " storage of the old instantiation still in it when the new contract is created. Please"]
#[doc = " note that we can't replace the counter by the block number because the sequence above"]
#[doc = " can happen in the same block. We also can't keep the account counter in memory only"]
#[doc = " because storage is the only way to communicate across different extrinsics in the"]
#[doc = " same block."]
#[doc = ""]
#[doc = " # Note"]
#[doc = ""]
#[doc = " Do not use it to determine the number of contracts. It won't be decremented if"]
#[doc = " a contract is destroyed."]
pub async fn nonce(&self) -> ::polymesh_api_client::error::Result<u64> {
let key = ::polymesh_api_client::StorageKey(vec![
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 113u8, 131u8, 104u8, 160u8, 172u8, 227u8, 110u8, 43u8, 27u8, 139u8,
109u8, 189u8, 127u8, 128u8, 147u8, 192u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8, 0u8];
<u64>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
#[doc = " The code associated with a given account."]
#[doc = ""]
#[doc = " TWOX-NOTE: SAFE since `AccountId` is a secure hash."]
pub async fn contract_info_of(
&self,
key_0: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<
Option<pallet_contracts::storage::RawContractInfo<primitive_types::H256, u128>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 6u8, 14u8, 153u8, 229u8, 55u8, 142u8, 86u8, 37u8, 55u8, 207u8, 59u8,
201u8, 131u8, 225u8, 123u8, 145u8,
]);
let key = key_0.encode();
buf.extend(::polymesh_api_client::sp_core::hashing::twox_64(&key));
buf.extend(key.into_iter());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " Evicted contracts that await child trie deletion."]
#[doc = ""]
#[doc = " Child trie deletion is a heavy operation depending on the amount of storage items"]
#[doc = " stored in said trie. Therefore this operation is performed lazily in `on_initialize`."]
pub async fn deletion_queue(
&self,
) -> ::polymesh_api_client::error::Result<Vec<pallet_contracts::storage::DeletedContract>>
{
let key = ::polymesh_api_client::StorageKey(vec![
67u8, 66u8, 25u8, 62u8, 73u8, 111u8, 171u8, 126u8, 197u8, 157u8, 97u8, 94u8, 208u8,
220u8, 85u8, 48u8, 41u8, 22u8, 33u8, 17u8, 173u8, 25u8, 239u8, 20u8, 81u8, 85u8, 238u8,
85u8, 42u8, 239u8, 45u8, 17u8,
]);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value.unwrap_or_else(|| {
use ::codec::Decode;
const DEFAULT: &'static [u8] = &[0u8];
<Vec<pallet_contracts::storage::DeletedContract>>::decode(&mut &DEFAULT[..]).unwrap()
}))
}
}
}
pub mod polymesh_contracts {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Instantiates a smart contract defining it with the given `code` and `salt`."]
#[doc = ""]
#[doc = "The contract will be attached as a secondary key,"]
#[doc = "with `perms` as its permissions, to `origin`'s identity."]
#[doc = ""]
#[doc = "The contract is transferred `endowment` amount of POLYX."]
#[doc = "This is distinct from the `gas_limit`,"]
#[doc = "which controls how much gas the deployment code may at most consume."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `endowment` amount of POLYX to transfer to the contract."]
#[doc = "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume."]
#[doc = "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "- `code` with the WASM binary defining the smart contract."]
#[doc = "- `data` The input data to pass to the contract constructor."]
#[doc = "- `salt` used for contract address derivation."]
#[doc = " By varying this, the same `code` can be used under the same identity."]
#[doc = "- `perms` that the new secondary key will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- All the errors in `pallet_contracts::Call::instantiate_with_code` can also happen here."]
#[doc = "- CDD/Permissions are checked, unlike in `pallet_contracts`."]
#[doc = "- Errors that arise when adding a new secondary key can also occur here."]
pub fn instantiate_with_code_perms(
&self,
endowment: u128,
gas_limit: u64,
storage_deposit_limit: Option<u128>,
code: Vec<u8>,
data: Vec<u8>,
salt: Vec<u8>,
perms: polymesh_primitives::secondary_key::Permissions,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshContracts(
types::polymesh_contracts::Call::instantiate_with_code_perms {
endowment,
gas_limit,
storage_deposit_limit,
code,
data,
salt,
perms,
},
),
)
}
#[doc = "Instantiates a smart contract defining using the given `code_hash` and `salt`."]
#[doc = ""]
#[doc = "Unlike `instantiate_with_code`,"]
#[doc = "this assumes that at least one contract with the same WASM code has already been uploaded."]
#[doc = ""]
#[doc = "The contract will be attached as a secondary key,"]
#[doc = "with `perms` as its permissions, to `origin`'s identity."]
#[doc = ""]
#[doc = "The contract is transferred `endowment` amount of POLYX."]
#[doc = "This is distinct from the `gas_limit`,"]
#[doc = "which controls how much gas the deployment code may at most consume."]
#[doc = ""]
#[doc = "# Arguments"]
#[doc = "- `endowment` amount of POLYX to transfer to the contract."]
#[doc = "- `gas_limit` for how much gas the `deploy` code in the contract may at most consume."]
#[doc = "- `storage_deposit_limit` The maximum amount of balance that can be charged/reserved"]
#[doc = " from the caller to pay for the storage consumed."]
#[doc = "- `code_hash` of an already uploaded WASM binary."]
#[doc = "- `data` The input data to pass to the contract constructor."]
#[doc = "- `salt` used for contract address derivation."]
#[doc = " By varying this, the same `code` can be used under the same identity."]
#[doc = "- `perms` that the new secondary key will have."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- All the errors in `pallet_contracts::Call::instantiate` can also happen here."]
#[doc = "- CDD/Permissions are checked, unlike in `pallet_contracts`."]
#[doc = "- Errors that arise when adding a new secondary key can also occur here."]
pub fn instantiate_with_hash_perms(
&self,
endowment: u128,
gas_limit: u64,
storage_deposit_limit: Option<u128>,
code_hash: primitive_types::H256,
data: Vec<u8>,
salt: Vec<u8>,
perms: polymesh_primitives::secondary_key::Permissions,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self.api.wrap_call(
types::polymesh_runtime_develop::runtime::Call::PolymeshContracts(
types::polymesh_contracts::Call::instantiate_with_hash_perms {
endowment,
gas_limit,
storage_deposit_limit,
code_hash,
data,
salt,
perms,
},
),
)
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
pub mod preimage {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Register a preimage on-chain."]
#[doc = ""]
#[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"]
#[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."]
pub fn note_preimage(
&self,
bytes: Vec<u8>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Preimage(
types::pallet_preimage::pallet::Call::note_preimage { bytes },
))
}
#[doc = "Clear an unrequested preimage from the runtime storage."]
pub fn unnote_preimage(
&self,
hash: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Preimage(
types::pallet_preimage::pallet::Call::unnote_preimage { hash },
))
}
#[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."]
#[doc = ""]
#[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"]
#[doc = "a user may have paid, and take the control of the preimage out of their hands."]
pub fn request_preimage(
&self,
hash: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Preimage(
types::pallet_preimage::pallet::Call::request_preimage { hash },
))
}
#[doc = "Clear a previously made request for a preimage."]
#[doc = ""]
#[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."]
pub fn unrequest_preimage(
&self,
hash: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::Preimage(
types::pallet_preimage::pallet::Call::unrequest_preimage { hash },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
#[doc = " The request status of a given hash."]
pub async fn status_for(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<
Option<pallet_preimage::RequestStatus<::polymesh_api_client::AccountId, u128>>,
> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
216u8, 243u8, 20u8, 183u8, 244u8, 230u8, 176u8, 149u8, 240u8, 248u8, 238u8, 70u8, 86u8,
164u8, 72u8, 37u8, 85u8, 177u8, 174u8, 142u8, 206u8, 213u8, 82u8, 47u8, 60u8, 64u8, 73u8,
188u8, 132u8, 237u8, 164u8, 168u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
#[doc = " The preimages stored by this pallet."]
pub async fn preimage_for(
&self,
key_0: primitive_types::H256,
) -> ::polymesh_api_client::error::Result<Option<Vec<u8>>> {
use ::codec::Encode;
let mut buf = Vec::with_capacity(512);
buf.extend([
216u8, 243u8, 20u8, 183u8, 244u8, 230u8, 176u8, 149u8, 240u8, 248u8, 238u8, 70u8, 86u8,
164u8, 72u8, 37u8, 124u8, 125u8, 218u8, 133u8, 201u8, 194u8, 151u8, 153u8, 159u8, 208u8,
34u8, 21u8, 232u8, 200u8, 249u8, 222u8,
]);
buf.extend(key_0.encode());
let key = ::polymesh_api_client::StorageKey(buf);
let value = self.api.client.get_storage_by_key(key, self.at).await?;
Ok(value)
}
}
}
pub mod test_utils {
use super::*;
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api super::super::Api,
}
impl<'api> CallApi<'api> {
#[doc = "Generates a new `IdentityID` for the caller, and issues a self-generated CDD claim."]
#[doc = ""]
#[doc = "The caller account will be the primary key of that identity."]
#[doc = "For each account of `secondary_keys`, a new `JoinIdentity` authorization is created, so"]
#[doc = "each of them will need to accept it before become part of this new `IdentityID`."]
#[doc = ""]
#[doc = "# Errors"]
#[doc = "- `AlreadyLinked` if the caller account or if any of the given `secondary_keys` has already linked to an `IdentityID`"]
#[doc = "- `SecondaryKeysContainPrimaryKey` if `secondary_keys` contains the caller account."]
#[doc = "- `DidAlreadyExists` if auto-generated DID already exists."]
pub fn register_did(
&self,
uid: polymesh_primitives::cdd_id::InvestorUid,
secondary_keys: Vec<
polymesh_primitives::secondary_key::SecondaryKey<::polymesh_api_client::AccountId>,
>,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::TestUtils(
types::pallet_test_utils::Call::register_did {
uid,
secondary_keys,
},
))
}
#[doc = "Registers a new Identity for the `target_account` and issues a CDD claim to it."]
#[doc = "The Investor UID is generated deterministically by the hash of the generated DID and"]
#[doc = "then we fix it to be compliant with UUID v4."]
#[doc = ""]
#[doc = "# See"]
#[doc = "- [RFC 4122: UUID](https://tools.ietf.org/html/rfc4122)"]
#[doc = ""]
#[doc = "# Failure"]
#[doc = "- `origin` has to be an active CDD provider. Inactive CDD providers cannot add new"]
#[doc = "claims."]
#[doc = "- `target_account` (primary key of the new Identity) can be linked to just one and only"]
#[doc = "one identity."]
pub fn mock_cdd_register_did(
&self,
target_account: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::TestUtils(
types::pallet_test_utils::Call::mock_cdd_register_did { target_account },
))
}
#[doc = "Emits an event with caller's identity."]
pub fn get_my_did(
&self,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::TestUtils(
types::pallet_test_utils::Call::get_my_did,
))
}
#[doc = "Emits an event with caller's identity and CDD status."]
pub fn get_cdd_of(
&self,
of: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::error::Result<super::super::WrappedCall<'api>> {
self
.api
.wrap_call(types::polymesh_runtime_develop::runtime::Call::TestUtils(
types::pallet_test_utils::Call::get_cdd_of { of },
))
}
}
impl<'api> From<&'api super::super::Api> for CallApi<'api> {
fn from(api: &'api super::super::Api) -> Self {
Self { api }
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
pub(crate) api: &'api super::super::Api,
pub(crate) at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {}
}
}
#[derive(Debug)]
pub struct Api {
client: ::polymesh_api_client::Client,
}
impl Api {
pub async fn new(url: &str) -> ::polymesh_api_client::error::Result<Self> {
Ok(Self {
client: ::polymesh_api_client::Client::new(url).await?,
})
}
pub fn call(&self) -> CallApi {
CallApi { api: self }
}
pub fn query(&self) -> QueryApi {
QueryApi {
api: self,
at: None,
}
}
pub fn query_at(&self, block: ::polymesh_api_client::BlockHash) -> QueryApi {
QueryApi {
api: self,
at: Some(block),
}
}
pub fn wrap_call(
&self,
call: types::polymesh_runtime_develop::runtime::Call,
) -> ::polymesh_api_client::Result<WrappedCall> {
Ok(WrappedCall::new(self, call))
}
}
#[async_trait::async_trait]
impl ::polymesh_api_client::ChainApi for Api {
type RuntimeCall = types::polymesh_runtime_develop::runtime::Call;
type RuntimeEvent = types::polymesh_runtime_develop::runtime::Event;
type DispatchInfo = types::frame_support::weights::DispatchInfo;
type DispatchError = types::sp_runtime::DispatchError;
async fn get_nonce(
&self,
account: ::polymesh_api_client::AccountId,
) -> ::polymesh_api_client::Result<u32> {
let info = self.query().system().account(account).await?;
Ok(info.nonce)
}
async fn block_events(
&self,
block: Option<::polymesh_api_client::BlockHash>,
) -> ::polymesh_api_client::Result<Vec<::polymesh_api_client::EventRecord<Self::RuntimeEvent>>>
{
let system = match block {
Some(block) => self.query_at(block).system(),
None => self.query().system(),
};
Ok(system.events().await?)
}
fn event_to_extrinsic_result(
event: &::polymesh_api_client::EventRecord<Self::RuntimeEvent>,
) -> Option<::polymesh_api_client::ExtrinsicResult<Self>> {
match &event.event {
types::polymesh_runtime_develop::runtime::Event::System(
types::frame_system::pallet::Event::ExtrinsicSuccess { dispatch_info },
) => Some(::polymesh_api_client::ExtrinsicResult::Success(
dispatch_info.clone(),
)),
types::polymesh_runtime_develop::runtime::Event::System(
types::frame_system::pallet::Event::ExtrinsicFailed {
dispatch_info,
dispatch_error,
},
) => Some(::polymesh_api_client::ExtrinsicResult::Failed(
dispatch_info.clone(),
dispatch_error.clone(),
)),
_ => None,
}
}
fn client(&self) -> &::polymesh_api_client::Client {
&self.client
}
}
#[derive(Clone, Debug)]
pub struct CallApi<'api> {
api: &'api Api,
}
impl<'api> CallApi<'api> {
pub fn system(&self) -> api::system::CallApi<'api> {
api::system::CallApi::from(self.api)
}
pub fn babe(&self) -> api::babe::CallApi<'api> {
api::babe::CallApi::from(self.api)
}
pub fn timestamp(&self) -> api::timestamp::CallApi<'api> {
api::timestamp::CallApi::from(self.api)
}
pub fn indices(&self) -> api::indices::CallApi<'api> {
api::indices::CallApi::from(self.api)
}
pub fn authorship(&self) -> api::authorship::CallApi<'api> {
api::authorship::CallApi::from(self.api)
}
pub fn balances(&self) -> api::balances::CallApi<'api> {
api::balances::CallApi::from(self.api)
}
pub fn transaction_payment(&self) -> api::transaction_payment::CallApi<'api> {
api::transaction_payment::CallApi::from(self.api)
}
pub fn identity(&self) -> api::identity::CallApi<'api> {
api::identity::CallApi::from(self.api)
}
pub fn cdd_service_providers(&self) -> api::cdd_service_providers::CallApi<'api> {
api::cdd_service_providers::CallApi::from(self.api)
}
pub fn polymesh_committee(&self) -> api::polymesh_committee::CallApi<'api> {
api::polymesh_committee::CallApi::from(self.api)
}
pub fn committee_membership(&self) -> api::committee_membership::CallApi<'api> {
api::committee_membership::CallApi::from(self.api)
}
pub fn technical_committee(&self) -> api::technical_committee::CallApi<'api> {
api::technical_committee::CallApi::from(self.api)
}
pub fn technical_committee_membership(
&self,
) -> api::technical_committee_membership::CallApi<'api> {
api::technical_committee_membership::CallApi::from(self.api)
}
pub fn upgrade_committee(&self) -> api::upgrade_committee::CallApi<'api> {
api::upgrade_committee::CallApi::from(self.api)
}
pub fn upgrade_committee_membership(&self) -> api::upgrade_committee_membership::CallApi<'api> {
api::upgrade_committee_membership::CallApi::from(self.api)
}
pub fn multi_sig(&self) -> api::multi_sig::CallApi<'api> {
api::multi_sig::CallApi::from(self.api)
}
pub fn bridge(&self) -> api::bridge::CallApi<'api> {
api::bridge::CallApi::from(self.api)
}
pub fn staking(&self) -> api::staking::CallApi<'api> {
api::staking::CallApi::from(self.api)
}
pub fn offences(&self) -> api::offences::CallApi<'api> {
api::offences::CallApi::from(self.api)
}
pub fn session(&self) -> api::session::CallApi<'api> {
api::session::CallApi::from(self.api)
}
pub fn authority_discovery(&self) -> api::authority_discovery::CallApi<'api> {
api::authority_discovery::CallApi::from(self.api)
}
pub fn grandpa(&self) -> api::grandpa::CallApi<'api> {
api::grandpa::CallApi::from(self.api)
}
pub fn historical(&self) -> api::historical::CallApi<'api> {
api::historical::CallApi::from(self.api)
}
pub fn im_online(&self) -> api::im_online::CallApi<'api> {
api::im_online::CallApi::from(self.api)
}
pub fn randomness_collective_flip(&self) -> api::randomness_collective_flip::CallApi<'api> {
api::randomness_collective_flip::CallApi::from(self.api)
}
pub fn sudo(&self) -> api::sudo::CallApi<'api> {
api::sudo::CallApi::from(self.api)
}
pub fn asset(&self) -> api::asset::CallApi<'api> {
api::asset::CallApi::from(self.api)
}
pub fn capital_distribution(&self) -> api::capital_distribution::CallApi<'api> {
api::capital_distribution::CallApi::from(self.api)
}
pub fn checkpoint(&self) -> api::checkpoint::CallApi<'api> {
api::checkpoint::CallApi::from(self.api)
}
pub fn compliance_manager(&self) -> api::compliance_manager::CallApi<'api> {
api::compliance_manager::CallApi::from(self.api)
}
pub fn corporate_action(&self) -> api::corporate_action::CallApi<'api> {
api::corporate_action::CallApi::from(self.api)
}
pub fn corporate_ballot(&self) -> api::corporate_ballot::CallApi<'api> {
api::corporate_ballot::CallApi::from(self.api)
}
pub fn permissions(&self) -> api::permissions::CallApi<'api> {
api::permissions::CallApi::from(self.api)
}
pub fn pips(&self) -> api::pips::CallApi<'api> {
api::pips::CallApi::from(self.api)
}
pub fn portfolio(&self) -> api::portfolio::CallApi<'api> {
api::portfolio::CallApi::from(self.api)
}
pub fn protocol_fee(&self) -> api::protocol_fee::CallApi<'api> {
api::protocol_fee::CallApi::from(self.api)
}
pub fn scheduler(&self) -> api::scheduler::CallApi<'api> {
api::scheduler::CallApi::from(self.api)
}
pub fn settlement(&self) -> api::settlement::CallApi<'api> {
api::settlement::CallApi::from(self.api)
}
pub fn statistics(&self) -> api::statistics::CallApi<'api> {
api::statistics::CallApi::from(self.api)
}
pub fn sto(&self) -> api::sto::CallApi<'api> {
api::sto::CallApi::from(self.api)
}
pub fn treasury(&self) -> api::treasury::CallApi<'api> {
api::treasury::CallApi::from(self.api)
}
pub fn utility(&self) -> api::utility::CallApi<'api> {
api::utility::CallApi::from(self.api)
}
pub fn base(&self) -> api::base::CallApi<'api> {
api::base::CallApi::from(self.api)
}
pub fn external_agents(&self) -> api::external_agents::CallApi<'api> {
api::external_agents::CallApi::from(self.api)
}
pub fn relayer(&self) -> api::relayer::CallApi<'api> {
api::relayer::CallApi::from(self.api)
}
pub fn rewards(&self) -> api::rewards::CallApi<'api> {
api::rewards::CallApi::from(self.api)
}
pub fn contracts(&self) -> api::contracts::CallApi<'api> {
api::contracts::CallApi::from(self.api)
}
pub fn polymesh_contracts(&self) -> api::polymesh_contracts::CallApi<'api> {
api::polymesh_contracts::CallApi::from(self.api)
}
pub fn preimage(&self) -> api::preimage::CallApi<'api> {
api::preimage::CallApi::from(self.api)
}
pub fn test_utils(&self) -> api::test_utils::CallApi<'api> {
api::test_utils::CallApi::from(self.api)
}
}
pub type WrappedCall<'api> = ::polymesh_api_client::Call<'api, Api>;
impl<'api> From<WrappedCall<'api>> for types::polymesh_runtime_develop::runtime::Call {
fn from(wrapped: WrappedCall<'api>) -> Self {
wrapped.into_runtime_call()
}
}
impl<'api> From<&WrappedCall<'api>> for types::polymesh_runtime_develop::runtime::Call {
fn from(wrapped: &WrappedCall<'api>) -> Self {
wrapped.runtime_call().clone()
}
}
#[derive(Clone, Debug)]
pub struct QueryApi<'api> {
api: &'api Api,
at: Option<::polymesh_api_client::BlockHash>,
}
impl<'api> QueryApi<'api> {
pub fn system(&self) -> api::system::QueryApi<'api> {
api::system::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn babe(&self) -> api::babe::QueryApi<'api> {
api::babe::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn timestamp(&self) -> api::timestamp::QueryApi<'api> {
api::timestamp::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn indices(&self) -> api::indices::QueryApi<'api> {
api::indices::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn authorship(&self) -> api::authorship::QueryApi<'api> {
api::authorship::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn balances(&self) -> api::balances::QueryApi<'api> {
api::balances::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn transaction_payment(&self) -> api::transaction_payment::QueryApi<'api> {
api::transaction_payment::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn identity(&self) -> api::identity::QueryApi<'api> {
api::identity::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn cdd_service_providers(&self) -> api::cdd_service_providers::QueryApi<'api> {
api::cdd_service_providers::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn polymesh_committee(&self) -> api::polymesh_committee::QueryApi<'api> {
api::polymesh_committee::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn committee_membership(&self) -> api::committee_membership::QueryApi<'api> {
api::committee_membership::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn technical_committee(&self) -> api::technical_committee::QueryApi<'api> {
api::technical_committee::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn technical_committee_membership(
&self,
) -> api::technical_committee_membership::QueryApi<'api> {
api::technical_committee_membership::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn upgrade_committee(&self) -> api::upgrade_committee::QueryApi<'api> {
api::upgrade_committee::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn upgrade_committee_membership(&self) -> api::upgrade_committee_membership::QueryApi<'api> {
api::upgrade_committee_membership::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn multi_sig(&self) -> api::multi_sig::QueryApi<'api> {
api::multi_sig::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn bridge(&self) -> api::bridge::QueryApi<'api> {
api::bridge::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn staking(&self) -> api::staking::QueryApi<'api> {
api::staking::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn offences(&self) -> api::offences::QueryApi<'api> {
api::offences::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn session(&self) -> api::session::QueryApi<'api> {
api::session::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn authority_discovery(&self) -> api::authority_discovery::QueryApi<'api> {
api::authority_discovery::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn grandpa(&self) -> api::grandpa::QueryApi<'api> {
api::grandpa::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn historical(&self) -> api::historical::QueryApi<'api> {
api::historical::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn im_online(&self) -> api::im_online::QueryApi<'api> {
api::im_online::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn randomness_collective_flip(&self) -> api::randomness_collective_flip::QueryApi<'api> {
api::randomness_collective_flip::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn sudo(&self) -> api::sudo::QueryApi<'api> {
api::sudo::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn asset(&self) -> api::asset::QueryApi<'api> {
api::asset::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn capital_distribution(&self) -> api::capital_distribution::QueryApi<'api> {
api::capital_distribution::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn checkpoint(&self) -> api::checkpoint::QueryApi<'api> {
api::checkpoint::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn compliance_manager(&self) -> api::compliance_manager::QueryApi<'api> {
api::compliance_manager::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn corporate_action(&self) -> api::corporate_action::QueryApi<'api> {
api::corporate_action::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn corporate_ballot(&self) -> api::corporate_ballot::QueryApi<'api> {
api::corporate_ballot::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn permissions(&self) -> api::permissions::QueryApi<'api> {
api::permissions::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn pips(&self) -> api::pips::QueryApi<'api> {
api::pips::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn portfolio(&self) -> api::portfolio::QueryApi<'api> {
api::portfolio::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn protocol_fee(&self) -> api::protocol_fee::QueryApi<'api> {
api::protocol_fee::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn scheduler(&self) -> api::scheduler::QueryApi<'api> {
api::scheduler::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn settlement(&self) -> api::settlement::QueryApi<'api> {
api::settlement::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn statistics(&self) -> api::statistics::QueryApi<'api> {
api::statistics::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn sto(&self) -> api::sto::QueryApi<'api> {
api::sto::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn treasury(&self) -> api::treasury::QueryApi<'api> {
api::treasury::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn utility(&self) -> api::utility::QueryApi<'api> {
api::utility::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn base(&self) -> api::base::QueryApi<'api> {
api::base::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn external_agents(&self) -> api::external_agents::QueryApi<'api> {
api::external_agents::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn relayer(&self) -> api::relayer::QueryApi<'api> {
api::relayer::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn rewards(&self) -> api::rewards::QueryApi<'api> {
api::rewards::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn contracts(&self) -> api::contracts::QueryApi<'api> {
api::contracts::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn polymesh_contracts(&self) -> api::polymesh_contracts::QueryApi<'api> {
api::polymesh_contracts::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn preimage(&self) -> api::preimage::QueryApi<'api> {
api::preimage::QueryApi {
api: self.api,
at: self.at,
}
}
pub fn test_utils(&self) -> api::test_utils::QueryApi<'api> {
api::test_utils::QueryApi {
api: self.api,
at: self.at,
}
}
}