Skip to main content

cuprate_wire/p2p/
protocol.rs

1// Rust Levin Library
2// Written in 2023 by
3//   Cuprate Contributors
4//
5// Permission is hereby granted, free of charge, to any person obtaining a copy
6// of this software and associated documentation files (the "Software"), to deal
7// in the Software without restriction, including without limitation the rights
8// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9// copies of the Software, and to permit persons to whom the Software is
10// furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in all
13// copies or substantial portions of the Software.
14//
15
16//! This module defines Monero protocol messages
17//!
18//! Protocol message requests don't have to be responded to in order unlike
19//! admin messages.
20
21use bytes::Bytes;
22
23use cuprate_epee_encoding::{container_as_blob::ContainerAsBlob, epee_object};
24use cuprate_fixed_bytes::{ByteArray, ByteArrayVec};
25
26use crate::p2p::common::BlockCompleteEntry;
27
28/// This is a protocol level limit on the [`GetObjectsResponse`] message.
29const MAX_BLOCKS_IN_RESPONSE: usize = 100;
30
31/// A block that SHOULD have transactions
32#[derive(Debug, Clone, PartialEq, Eq)]
33pub struct NewBlock {
34    /// Block with txs
35    pub b: BlockCompleteEntry,
36    /// The Blocks height
37    pub current_blockchain_height: u64,
38}
39
40epee_object!(
41    NewBlock,
42    b: BlockCompleteEntry,
43    current_blockchain_height: u64,
44);
45
46/// New Tx Pool Transactions
47#[derive(Debug, Clone, PartialEq, Eq)]
48pub struct NewTransactions {
49    /// Tx Blobs
50    pub txs: Vec<Bytes>,
51    /// Dandelionpp true if fluff - backwards compatible mode is fluff
52    pub dandelionpp_fluff: bool,
53    /// Padding
54    pub padding: Bytes,
55}
56
57epee_object!(
58    NewTransactions,
59    // 32 is the size of `Bytes` on the stack, no tx can be this small. We could set a limit
60    // higher than 32 but 32 gives us enough protection.
61    txs: Vec<Bytes> [min_element: 32],
62    dandelionpp_fluff: bool = true,
63    padding("_"): Bytes,
64);
65
66/// A Request For Blocks
67#[derive(Debug, Clone, PartialEq, Eq)]
68pub struct GetObjectsRequest {
69    /// Block hashes wanted.
70    pub blocks: ByteArrayVec<32>,
71    /// Pruned
72    pub pruned: bool,
73}
74
75epee_object!(
76    GetObjectsRequest,
77    blocks: ByteArrayVec<32>,
78    pruned: bool = false,
79);
80
81/// A Blocks Response
82#[derive(Debug, Clone, PartialEq, Eq)]
83pub struct GetObjectsResponse {
84    /// Blocks
85    pub blocks: Vec<BlockCompleteEntry>,
86    /// Missed IDs
87    pub missed_ids: ByteArrayVec<32>,
88    /// The height of the peers blockchain
89    pub current_blockchain_height: u64,
90}
91
92epee_object!(
93    GetObjectsResponse,
94    blocks: Vec<BlockCompleteEntry> [max_len: MAX_BLOCKS_IN_RESPONSE],
95    missed_ids: ByteArrayVec<32>,
96    current_blockchain_height: u64,
97);
98
99/// A Chain Request
100#[derive(Debug, Clone, PartialEq, Eq)]
101pub struct ChainRequest {
102    /// Block IDs
103    pub block_ids: ByteArrayVec<32>,
104    /// Prune
105    pub prune: bool,
106}
107
108epee_object!(
109    ChainRequest,
110    block_ids: ByteArrayVec<32>,
111    prune: bool = false,
112);
113
114/// A Chain Response
115#[derive(Debug, Clone, PartialEq, Eq)]
116pub struct ChainResponse {
117    /// Start Height
118    pub start_height: u64,
119    /// Total Height
120    pub total_height: u64,
121    /// Cumulative Difficulty Low
122    pub cumulative_difficulty_low64: u64,
123    /// Cumulative Difficulty High
124    pub cumulative_difficulty_top64: u64,
125    /// Block IDs
126    pub m_block_ids: ByteArrayVec<32>,
127    /// Block Weights
128    pub m_block_weights: Vec<u64>,
129    /// The first Block in the response
130    pub first_block: Bytes,
131}
132
133impl ChainResponse {
134    #[inline]
135    pub const fn cumulative_difficulty(&self) -> u128 {
136        let cumulative_difficulty = self.cumulative_difficulty_top64 as u128;
137        (cumulative_difficulty << 64) | self.cumulative_difficulty_low64 as u128
138    }
139}
140
141epee_object!(
142    ChainResponse,
143    start_height: u64,
144    total_height: u64,
145    cumulative_difficulty_low64("cumulative_difficulty"): u64,
146    cumulative_difficulty_top64: u64 = 0_u64,
147    m_block_ids: ByteArrayVec<32>,
148    m_block_weights: Vec<u64> as ContainerAsBlob<u64>,
149    first_block: Bytes,
150);
151
152/// A Block that doesn't have transactions unless requested
153#[derive(Debug, Clone, PartialEq, Eq)]
154pub struct NewFluffyBlock {
155    /// Block which might have transactions
156    pub b: BlockCompleteEntry,
157    /// The Block height
158    pub current_blockchain_height: u64,
159}
160
161epee_object!(
162    NewFluffyBlock,
163    b: BlockCompleteEntry,
164    current_blockchain_height: u64,
165);
166
167/// A request for txs we are missing from an incoming block.
168#[derive(Debug, Clone, PartialEq, Eq)]
169pub struct FluffyMissingTransactionsRequest {
170    /// The Block we are missing the Txs in
171    pub block_hash: ByteArray<32>,
172    /// The current blockchain height
173    pub current_blockchain_height: u64,
174    /// The Tx Indices
175    pub missing_tx_indices: Vec<u64>,
176}
177
178epee_object!(
179    FluffyMissingTransactionsRequest,
180    block_hash: ByteArray<32>,
181    current_blockchain_height: u64,
182    missing_tx_indices: Vec<u64> as ContainerAsBlob<u64>,
183);
184
185/// `TxPoolCompliment`
186#[derive(Debug, Clone, PartialEq, Eq)]
187pub struct GetTxPoolCompliment {
188    /// Tx Hashes
189    pub hashes: ByteArrayVec<32>,
190}
191
192epee_object!(
193    GetTxPoolCompliment,
194    hashes: ByteArrayVec<32>,
195);
196
197#[cfg(test)]
198mod tests {
199
200    use super::{NewFluffyBlock, NewTransactions};
201
202    #[test]
203    fn serde_new_transactions() {
204        let bytes = [
205            1, 17, 1, 1, 1, 1, 2, 1, 1, 8, 1, 95, 10, 0, 3, 116, 120, 115, 138, 16, 237, 23, 2, 0,
206            1, 2, 0, 16, 147, 177, 222, 29, 201, 207, 93, 150, 216, 25, 241, 102, 226, 193, 3, 138,
207            55, 145, 246, 2, 141, 137, 3, 159, 70, 177, 152, 2, 161, 64, 159, 33, 150, 86, 155,
208            159, 4, 237, 124, 146, 12, 90, 216, 224, 178, 145, 59, 110, 99, 189, 78, 14, 21, 155,
209            24, 47, 25, 96, 200, 172, 168, 21, 180, 181, 81, 99, 86, 186, 123, 99, 15, 70, 81, 2,
210            0, 3, 83, 139, 14, 66, 250, 103, 160, 182, 164, 9, 115, 93, 215, 254, 183, 198, 1, 209,
211            103, 195, 176, 180, 208, 21, 58, 136, 169, 52, 166, 38, 25, 216, 105, 0, 3, 248, 132,
212            179, 217, 15, 166, 253, 77, 217, 81, 238, 113, 251, 24, 184, 236, 94, 38, 79, 150, 72,
213            162, 192, 189, 104, 33, 144, 82, 184, 179, 46, 240, 53, 44, 1, 108, 67, 128, 106, 35,
214            254, 2, 119, 151, 11, 209, 120, 227, 170, 127, 47, 74, 159, 142, 114, 204, 249, 153,
215            164, 14, 120, 72, 41, 182, 157, 138, 155, 2, 9, 1, 232, 124, 137, 236, 83, 119, 82,
216            235, 6, 224, 242, 204, 14, 49, 220, 130, 232, 86, 91, 22, 46, 31, 177, 160, 237, 220,
217            53, 249, 68, 5, 86, 16, 219, 190, 12, 140, 157, 73, 193, 16, 70, 153, 242, 14, 37, 26,
218            193, 6, 86, 209, 44, 140, 102, 233, 70, 145, 105, 250, 135, 162, 98, 137, 87, 186, 166,
219            154, 219, 56, 247, 179, 219, 93, 108, 136, 240, 222, 181, 177, 62, 194, 158, 49, 161,
220            34, 60, 224, 147, 224, 198, 110, 19, 132, 52, 1, 211, 251, 218, 42, 134, 99, 86, 81,
221            30, 181, 160, 61, 148, 172, 91, 59, 204, 154, 33, 91, 124, 44, 5, 163, 200, 78, 177,
222            122, 87, 177, 209, 11, 107, 112, 64, 51, 131, 142, 156, 114, 201, 146, 155, 229, 185,
223            60, 162, 142, 140, 22, 210, 164, 48, 93, 182, 227, 24, 213, 64, 61, 186, 167, 253, 85,
224            0, 219, 18, 227, 11, 0, 68, 79, 87, 86, 37, 92, 11, 97, 167, 98, 50, 241, 175, 153,
225            156, 188, 133, 53, 76, 102, 81, 150, 123, 122, 23, 242, 37, 172, 169, 165, 11, 128,
226            128, 197, 185, 248, 160, 180, 72, 18, 81, 139, 162, 230, 71, 214, 204, 238, 232, 205,
227            6, 89, 52, 228, 158, 23, 90, 5, 111, 253, 22, 188, 135, 249, 166, 131, 216, 212, 116,
228            136, 217, 207, 222, 252, 77, 109, 159, 202, 164, 106, 7, 140, 202, 170, 223, 16, 118,
229            51, 205, 0, 21, 161, 241, 18, 241, 12, 56, 115, 186, 155, 30, 192, 193, 29, 250, 161,
230            181, 104, 88, 132, 111, 70, 39, 179, 166, 188, 213, 200, 113, 35, 97, 5, 7, 166, 91,
231            231, 74, 190, 207, 67, 198, 70, 68, 112, 25, 245, 17, 215, 246, 45, 75, 23, 116, 8,
232            211, 168, 230, 23, 10, 10, 152, 184, 67, 226, 188, 6, 125, 254, 166, 69, 14, 237, 99,
233            105, 25, 15, 178, 244, 129, 147, 245, 57, 93, 154, 195, 243, 134, 121, 178, 117, 158,
234            131, 136, 162, 221, 241, 20, 245, 40, 224, 115, 238, 122, 52, 143, 120, 208, 21, 147,
235            67, 173, 114, 128, 10, 98, 70, 139, 167, 67, 174, 182, 200, 225, 73, 58, 111, 34, 44,
236            26, 156, 19, 230, 106, 216, 214, 241, 136, 59, 132, 89, 22, 12, 6, 28, 69, 98, 191,
237            168, 67, 30, 248, 237, 199, 13, 173, 40, 51, 23, 232, 93, 222, 42, 63, 131, 199, 75,
238            172, 91, 157, 105, 31, 198, 226, 15, 9, 56, 127, 102, 170, 214, 68, 238, 217, 45, 89,
239            24, 118, 231, 126, 79, 127, 197, 93, 130, 136, 150, 20, 134, 163, 140, 160, 110, 134,
240            247, 60, 33, 146, 61, 103, 122, 112, 196, 168, 46, 188, 212, 183, 15, 121, 142, 186,
241            203, 138, 210, 75, 150, 82, 217, 84, 151, 238, 131, 115, 173, 27, 12, 70, 127, 3, 38,
242            143, 156, 83, 223, 101, 191, 87, 240, 101, 170, 242, 22, 95, 113, 175, 44, 131, 7, 36,
243            99, 244, 94, 113, 77, 92, 63, 134, 187, 101, 8, 136, 227, 215, 163, 193, 73, 181, 155,
244            227, 137, 186, 188, 81, 206, 131, 69, 93, 237, 128, 112, 54, 98, 232, 150, 20, 215,
245            162, 3, 138, 18, 210, 84, 120, 200, 253, 68, 60, 133, 87, 56, 216, 239, 161, 229, 220,
246            98, 179, 56, 244, 90, 23, 12, 22, 30, 185, 22, 33, 239, 89, 209, 199, 16, 93, 134, 208,
247            187, 58, 224, 92, 137, 157, 207, 198, 216, 11, 156, 5, 110, 223, 128, 245, 27, 162, 32,
248            65, 197, 35, 216, 86, 104, 61, 114, 7, 91, 31, 136, 255, 109, 43, 25, 171, 48, 212, 27,
249            141, 65, 200, 88, 42, 119, 222, 190, 236, 108, 77, 144, 17, 193, 155, 226, 230, 127,
250            29, 95, 115, 112, 185, 136, 49, 129, 4, 157, 57, 226, 131, 234, 51, 78, 136, 163, 133,
251            114, 220, 175, 19, 39, 90, 235, 166, 116, 164, 17, 3, 75, 93, 97, 154, 136, 248, 172,
252            109, 29, 54, 218, 153, 230, 73, 195, 167, 107, 182, 153, 134, 170, 223, 183, 215, 72,
253            250, 135, 85, 196, 214, 211, 88, 218, 40, 60, 126, 62, 202, 13, 130, 12, 74, 191, 120,
254            148, 222, 155, 3, 218, 254, 74, 110, 220, 119, 117, 221, 52, 221, 48, 125, 35, 167, 57,
255            114, 177, 67, 120, 227, 37, 110, 48, 93, 35, 144, 41, 55, 1, 240, 206, 57, 129, 110,
256            189, 45, 152, 20, 159, 195, 79, 93, 8, 120, 168, 24, 154, 80, 30, 245, 152, 175, 118,
257            125, 254, 153, 134, 248, 229, 62, 104, 47, 162, 238, 84, 15, 186, 177, 29, 244, 51,
258            158, 18, 164, 8, 81, 84, 14, 159, 109, 207, 199, 225, 6, 225, 217, 68, 193, 66, 217,
259            192, 62, 3, 7, 145, 107, 98, 11, 64, 227, 156, 161, 249, 180, 42, 1, 10, 46, 244, 78,
260            163, 32, 107, 229, 239, 189, 111, 29, 89, 76, 134, 51, 200, 100, 184, 248, 124, 216,
261            44, 166, 183, 241, 179, 212, 19, 185, 232, 218, 15, 242, 16, 135, 14, 131, 57, 64, 253,
262            242, 220, 217, 22, 159, 17, 4, 97, 110, 129, 159, 239, 233, 214, 209, 67, 146, 94, 58,
263            4, 86, 170, 176, 7, 150, 88, 65, 218, 35, 85, 182, 170, 161, 212, 236, 142, 121, 213,
264            199, 126, 155, 75, 132, 231, 149, 120, 20, 253, 39, 239, 144, 26, 224, 251, 180, 14, 3,
265            58, 115, 22, 250, 96, 217, 189, 39, 67, 52, 47, 137, 129, 157, 235, 251, 112, 188, 2,
266            99, 183, 58, 29, 96, 255, 128, 125, 154, 135, 82, 8, 40, 101, 113, 52, 227, 4, 86, 144,
267            169, 163, 193, 10, 148, 92, 34, 120, 88, 1, 21, 214, 172, 131, 11, 68, 214, 201, 157,
268            255, 213, 89, 116, 7, 51, 137, 122, 49, 237, 54, 66, 123, 13, 102, 116, 3, 26, 54, 123,
269            130, 31, 249, 152, 85, 213, 67, 25, 35, 117, 22, 90, 79, 181, 246, 154, 5, 192, 152,
270            89, 98, 107, 48, 138, 228, 197, 59, 216, 49, 200, 114, 183, 41, 199, 3, 75, 117, 106,
271            63, 190, 140, 129, 210, 125, 154, 241, 52, 205, 7, 150, 43, 118, 164, 138, 40, 164,
272            181, 175, 239, 17, 153, 132, 121, 130, 130, 26, 169, 199, 234, 60, 197, 173, 98, 40,
273            235, 56, 96, 68, 64, 130, 13, 77, 203, 56, 32, 74, 160, 216, 246, 218, 165, 215, 181,
274            8, 223, 16, 234, 134, 202, 111, 181, 206, 207, 11, 223, 130, 161, 34, 186, 252, 189,
275            246, 11, 114, 46, 252, 39, 40, 169, 73, 48, 20, 181, 155, 183, 60, 230, 178, 70, 58,
276            29, 35, 30, 43, 69, 160, 93, 78, 146, 32, 156, 42, 246, 69, 3, 193, 95, 177, 169, 121,
277            3, 244, 236, 24, 105, 38, 171, 118, 31, 93, 244, 64, 65, 67, 130, 107, 113, 45, 145,
278            86, 93, 163, 183, 88, 109, 44, 0, 160, 147, 198, 104, 201, 16, 44, 79, 225, 4, 43, 167,
279            112, 149, 85, 244, 196, 163, 213, 125, 220, 75, 124, 224, 71, 203, 70, 148, 112, 222,
280            72, 2, 37, 157, 207, 164, 203, 174, 13, 43, 196, 26, 167, 87, 55, 14, 161, 242, 1, 35,
281            183, 213, 179, 60, 212, 88, 227, 134, 28, 165, 60, 65, 217, 6, 27, 198, 25, 141, 229,
282            199, 37, 74, 136, 155, 205, 225, 154, 182, 159, 1, 249, 91, 211, 244, 18, 202, 230, 8,
283            37, 102, 106, 208, 73, 201, 85, 0, 245, 85, 20, 129, 173, 185, 120, 30, 61, 136, 149,
284            126, 21, 15, 60, 156, 158, 113, 174, 161, 74, 73, 73, 239, 214, 70, 52, 49, 126, 107,
285            116, 184, 87, 248, 49, 227, 55, 164, 206, 88, 124, 219, 230, 183, 223, 12, 115, 154,
286            34, 85, 121, 252, 254, 215, 169, 182, 201, 0, 246, 158, 242, 110, 3, 191, 197, 34, 2,
287            0, 2, 2, 0, 16, 152, 135, 203, 26, 230, 130, 176, 2, 248, 165, 34, 245, 147, 98, 246,
288            212, 89, 188, 252, 4, 208, 253, 1, 136, 213, 3, 181, 190, 1, 151, 62, 130, 128, 1, 222,
289            104, 227, 123, 237, 126, 162, 31, 240, 7, 250, 3, 94, 92, 123, 141, 201, 35, 196, 225,
290            45, 46, 155, 10, 249, 197, 61, 141, 198, 180, 144, 252, 205, 174, 218, 33, 249, 109,
291            244, 88, 75, 168, 2, 0, 16, 169, 188, 204, 11, 244, 244, 176, 15, 187, 130, 217, 1,
292            243, 180, 69, 161, 174, 51, 154, 196, 97, 130, 218, 37, 174, 138, 6, 233, 143, 3, 213,
293            164, 2, 227, 172, 4, 151, 137, 1, 210, 56, 234, 22, 137, 215, 1, 189, 30, 101, 8, 165,
294            81, 217, 21, 216, 73, 252, 224, 131, 90, 35, 16, 187, 149, 38, 130, 152, 101, 185, 74,
295            197, 22, 119, 66, 155, 85, 133, 73, 137, 49, 2, 0, 3, 234, 196, 86, 37, 79, 23, 112,
296            72, 124, 14, 28, 62, 226, 154, 167, 70, 62, 139, 28, 11, 219, 7, 189, 186, 172, 179, 0,
297            87, 29, 170, 108, 217, 70, 0, 3, 94, 111, 32, 85, 177, 43, 121, 159, 207, 120, 161,
298            238, 188, 15, 174, 243, 113, 211, 192, 155, 204, 34, 18, 92, 69, 40, 39, 24, 183, 88,
299            21, 188, 147, 44, 1, 66, 84, 235, 241, 48, 252, 38, 23, 247, 212, 79, 229, 82, 246, 10,
300            171, 121, 149, 141, 171, 25, 220, 157, 70, 142, 108, 156, 171, 6, 114, 255, 166, 2, 9,
301            1, 114, 186, 118, 78, 228, 29, 194, 144, 6, 160, 136, 156, 21, 247, 239, 217, 223, 235,
302            176, 160, 203, 194, 85, 177, 56, 165, 115, 3, 86, 49, 38, 46, 70, 252, 50, 34, 241,
303            187, 219, 2, 205, 152, 187, 196, 227, 31, 207, 114, 13, 192, 69, 142, 71, 176, 52, 134,
304            11, 207, 149, 228, 28, 9, 253, 8, 205, 123, 86, 233, 139, 97, 181, 200, 226, 173, 157,
305            97, 184, 65, 207, 124, 243, 26, 67, 81, 107, 127, 16, 11, 158, 235, 228, 109, 40, 1,
306            141, 174, 147, 220, 241, 131, 61, 177, 42, 28, 16, 25, 41, 139, 83, 7, 43, 86, 48, 129,
307            131, 112, 69, 119, 196, 175, 205, 190, 73, 98, 76, 167, 31, 62, 143, 157, 95, 178, 105,
308            248, 134, 9, 220, 204, 225, 225, 145, 106, 177, 91, 226, 68, 130, 119, 108, 41, 173,
309            87, 246, 50, 57, 97, 241, 19, 166, 71, 200, 68, 193, 181, 4, 130, 29, 6, 212, 2, 84,
310            219, 106, 212, 45, 144, 169, 198, 87, 194, 132, 199, 47, 99, 184, 156, 59, 70, 177, 94,
311            17, 67, 104, 151, 36, 160, 173, 211, 66, 217, 239, 99, 242, 204, 73, 103, 132, 188, 23,
312            139, 105, 111, 84, 218, 213, 179, 59, 214, 133, 95, 14, 12, 227, 30, 222, 190, 34, 220,
313            48, 39, 196, 171, 234, 33, 161, 189, 143, 27, 46, 37, 14, 3, 250, 121, 92, 98, 220, 88,
314            25, 235, 163, 114, 74, 7, 98, 224, 11, 8, 154, 89, 148, 62, 63, 8, 226, 203, 91, 75, 6,
315            186, 253, 69, 217, 98, 109, 152, 161, 68, 8, 92, 209, 154, 53, 116, 106, 10, 7, 66, 77,
316            167, 160, 78, 152, 6, 170, 96, 139, 142, 132, 63, 167, 172, 202, 206, 51, 60, 93, 240,
317            113, 45, 172, 242, 110, 11, 203, 154, 137, 202, 163, 71, 39, 133, 240, 211, 44, 199,
318            136, 205, 114, 191, 104, 57, 53, 136, 92, 210, 41, 110, 250, 45, 81, 214, 245, 157,
319            222, 66, 120, 117, 164, 117, 87, 158, 164, 252, 24, 141, 13, 1, 32, 2, 133, 130, 219,
320            149, 110, 107, 142, 237, 110, 116, 83, 231, 107, 50, 32, 62, 43, 223, 129, 114, 35, 15,
321            66, 195, 183, 148, 127, 96, 202, 22, 117, 102, 87, 121, 26, 203, 0, 183, 29, 255, 253,
322            205, 217, 36, 178, 157, 5, 126, 242, 23, 106, 146, 17, 230, 142, 58, 119, 246, 84, 207,
323            142, 49, 166, 176, 140, 117, 47, 157, 223, 245, 142, 209, 171, 33, 138, 229, 110, 208,
324            205, 162, 122, 158, 69, 224, 189, 249, 212, 180, 82, 251, 189, 55, 44, 198, 93, 11,
325            212, 223, 198, 178, 2, 26, 66, 145, 64, 155, 50, 88, 46, 99, 229, 157, 243, 21, 65,
326            152, 185, 56, 230, 234, 101, 246, 191, 139, 62, 187, 170, 132, 88, 214, 9, 175, 67, 12,
327            67, 205, 175, 185, 31, 103, 198, 3, 57, 196, 33, 23, 24, 246, 186, 179, 57, 7, 160,
328            114, 97, 160, 242, 234, 104, 54, 91, 221, 31, 140, 41, 186, 220, 221, 223, 101, 252,
329            171, 2, 251, 13, 121, 248, 234, 80, 138, 242, 195, 80, 12, 44, 216, 237, 233, 238, 248,
330            97, 43, 243, 131, 16, 69, 156, 131, 1, 254, 57, 196, 191, 27, 192, 239, 162, 217, 40,
331            237, 213, 151, 112, 107, 4, 81, 117, 34, 109, 23, 80, 99, 123, 134, 76, 84, 129, 36,
332            103, 0, 96, 77, 140, 114, 230, 153, 3, 115, 119, 39, 78, 165, 138, 219, 181, 237, 145,
333            216, 144, 107, 82, 174, 27, 68, 48, 70, 208, 66, 254, 142, 214, 22, 79, 218, 15, 4, 21,
334            250, 80, 245, 195, 23, 63, 175, 207, 176, 227, 240, 56, 60, 250, 71, 82, 9, 136, 46,
335            40, 101, 59, 89, 171, 64, 57, 183, 24, 147, 203, 204, 98, 79, 250, 77, 243, 177, 165,
336            222, 68, 245, 238, 194, 228, 102, 192, 47, 99, 194, 174, 164, 235, 179, 10, 201, 240,
337            201, 82, 13, 244, 224, 238, 201, 155, 251, 20, 13, 18, 132, 158, 56, 82, 194, 57, 69,
338            249, 142, 48, 212, 233, 214, 152, 241, 189, 193, 133, 191, 42, 21, 148, 239, 198, 86,
339            54, 194, 127, 221, 136, 28, 75, 108, 119, 175, 36, 129, 245, 68, 128, 139, 25, 51, 197,
340            15, 221, 139, 97, 227, 43, 183, 254, 143, 19, 137, 13, 1, 116, 65, 216, 58, 114, 218,
341            93, 224, 97, 8, 185, 110, 138, 228, 206, 4, 36, 78, 209, 82, 167, 251, 250, 176, 9, 70,
342            19, 211, 89, 20, 170, 208, 165, 214, 252, 159, 29, 178, 226, 64, 126, 132, 86, 15, 69,
343            19, 238, 12, 22, 176, 114, 167, 68, 166, 101, 202, 6, 215, 229, 36, 94, 163, 28, 108,
344            104, 145, 173, 164, 42, 151, 65, 186, 161, 94, 4, 244, 222, 36, 23, 15, 74, 252, 202,
345            178, 69, 217, 184, 2, 177, 235, 242, 159, 160, 76, 45, 205, 121, 19, 5, 49, 169, 178,
346            113, 69, 141, 174, 173, 231, 217, 136, 74, 7, 89, 114, 33, 173, 74, 94, 223, 159, 160,
347            0, 51, 106, 176, 104, 218, 60, 76, 178, 157, 240, 239, 247, 30, 222, 60, 246, 3, 189,
348            160, 13, 67, 9, 166, 205, 125, 71, 1, 48, 184, 114, 7, 196, 154, 210, 192, 89, 248,
349            213, 193, 187, 158, 226, 196, 247, 111, 203, 255, 131, 14, 221, 235, 68, 118, 13, 64,
350            163, 162, 178, 210, 72, 5, 218, 158, 48, 42, 143, 85, 165, 83, 244, 169, 4, 78, 109,
351            164, 240, 117, 178, 204, 113, 99, 59, 91, 177, 207, 15, 26, 247, 217, 139, 120, 196,
352            210, 110, 56, 28, 164, 73, 254, 149, 171, 19, 12, 181, 162, 55, 220, 93, 249, 115, 11,
353            9, 71, 224, 75, 70, 187, 4, 73, 136, 211, 40, 46, 42, 189, 130, 35, 54, 229, 124, 96,
354            31, 35, 195, 199, 96, 38, 3, 72, 230, 126, 189, 197, 20, 102, 60, 26, 222, 217, 12, 66,
355            22, 221, 48, 250, 134, 216, 205, 203, 229, 70, 134, 163, 182, 65, 226, 6, 139, 154,
356            170, 78, 199, 20, 156, 39, 138, 147, 118, 102, 28, 108, 1, 11, 139, 215, 250, 109, 42,
357            145, 14, 82, 76, 171, 255, 249, 11, 0, 50, 109, 31, 254, 234, 138, 83, 165, 226, 213,
358            7, 60, 167, 15, 47, 159, 0, 78, 103, 80, 238, 101, 92, 59, 75, 23, 8, 191, 186, 229,
359            126, 122, 67, 137, 179, 37, 44, 89, 125, 182, 36, 123, 119, 57, 30, 198, 128, 65, 3,
360            75, 209, 28, 198, 190, 172, 44, 245, 152, 176, 112, 114, 16, 123, 65, 193, 47, 169,
361            199, 21, 27, 21, 67, 115, 249, 52, 201, 74, 46, 64, 244, 7, 197, 217, 138, 47, 238, 57,
362            10, 41, 180, 85, 71, 154, 56, 217, 58, 180, 119, 219, 119, 224, 116, 230, 95, 202, 164,
363            149, 60, 164, 212, 65, 148, 7, 82, 50, 206, 81, 210, 194, 48, 28, 178, 88, 17, 212,
364            231, 80, 177, 151, 16, 168, 238, 2, 20, 140, 254, 98, 131, 92, 160, 56, 209, 22, 240,
365            13, 119, 216, 216, 26, 113, 215, 55, 38, 227, 52, 15, 222, 240, 98, 191, 255, 186, 28,
366            192, 193, 147, 16, 34, 111, 113, 146, 138, 165, 118, 182, 73, 9, 54, 245, 214, 136,
367            161, 237, 253, 58, 173, 81, 197, 254, 70, 89, 189, 151, 252, 194, 213, 218, 183, 28,
368            238, 128, 127, 254, 95, 83, 126, 190, 98, 14, 72, 141, 165, 95, 79, 188, 84, 138, 190,
369            144, 151, 194, 5, 69, 25, 93, 85, 136, 169, 142, 13, 44, 96, 127, 246, 129, 93, 73,
370            141, 62, 77, 129, 255, 75, 27, 183, 143, 22, 140, 170, 138, 181, 194, 237, 109, 163,
371            253, 60, 35, 84, 83, 193, 192, 67, 135, 231, 174, 134, 201, 15, 97, 11, 74, 0, 38, 140,
372            53, 69, 91, 250, 47, 242, 134, 229, 223, 158, 156, 157, 229, 228, 243, 115, 115, 25,
373            57, 72, 147, 5, 68, 32, 187, 125, 157, 171, 211, 4, 110, 22, 218, 211, 248, 109, 130,
374            118, 125, 190, 178, 30, 134, 54, 222, 38, 81, 31, 7, 13, 91, 251, 211, 223, 55, 254,
375            115, 212, 106, 75, 18, 14, 56, 44, 223, 95, 9, 53, 197, 193, 5, 247, 86, 43, 32, 222,
376            122, 133, 174, 109, 150, 225, 75, 54, 202, 224, 38, 214, 5, 164, 230, 186, 250, 1, 24,
377            40, 52, 12, 19, 79, 219, 243, 99, 199, 123, 196, 79, 24, 250, 129, 237, 244, 208, 38,
378            40, 193, 142, 135, 205, 147, 100, 90, 234, 243, 250, 4, 203, 210, 39, 109, 23, 248, 99,
379            217, 135, 115, 183, 110, 153, 85, 128, 17, 242, 82, 231, 59, 27, 68, 253, 102, 139,
380            239, 87, 25, 50, 116, 83, 14, 204, 96, 72, 36, 245, 7, 140, 84, 107, 164, 98, 173, 186,
381            142, 56, 182, 232, 7, 99, 254, 239, 254, 222, 84, 129, 6, 51, 120, 245, 200, 112, 6, 9,
382            160, 0, 121, 168, 87, 62, 77, 204, 143, 100, 178, 38, 7, 19, 190, 225, 122, 116, 33,
383            127, 143, 94, 244, 168, 35, 97, 219, 184, 207, 13, 14, 206, 103, 93, 118, 134, 137,
384            144, 196, 45, 84, 52, 229, 93, 223, 35, 250, 212, 196, 26, 151, 184, 8, 132, 196, 27,
385            144, 130, 196, 190, 247, 209, 2, 22, 145, 195, 164, 20, 55, 34, 22, 51, 229, 138, 219,
386            164, 252, 99, 54, 108, 131, 10, 44, 195, 192, 20, 2, 69, 69, 155, 96, 183, 195, 244,
387            11, 80, 224, 115, 235, 249, 171, 108, 13, 167, 214, 13, 173, 136, 173, 191, 216, 45,
388            113, 184, 230, 209, 12, 199, 43, 112, 114, 142, 34, 122, 202, 147, 6, 188, 161, 83,
389            107, 192, 232, 53, 78, 72, 90, 220, 29, 180, 72, 251, 118, 99, 166, 193, 173, 202, 236,
390            249, 150, 73, 188, 249, 29, 3, 156, 83, 2, 70, 90, 114, 213, 10, 69, 1, 29, 231, 58,
391            59, 99, 94, 4, 178, 251, 240, 66, 89, 37, 56, 157, 160, 9, 48, 77, 87, 148, 149, 43, 4,
392            1, 211, 145, 238, 121, 148, 68, 185, 232, 254, 147, 89, 126, 20, 104, 235, 255, 137,
393            235, 205, 8, 61, 165, 202, 241, 231, 200, 117, 26, 210, 224, 244, 15, 19, 79, 194, 129,
394            84, 136, 99, 90, 217, 182, 42, 241, 136, 45, 174, 11, 28, 234, 27, 144, 94, 109, 26,
395            248, 197, 84, 165, 20, 193, 123, 151, 14, 216, 164, 223, 241, 12, 96, 168, 105, 205,
396            33, 185, 25, 61, 124, 11, 43, 140, 55, 57, 109, 213, 248, 109, 164, 246, 217, 10, 110,
397            218, 16, 128, 2, 157, 243, 179, 227, 196, 137, 137, 139, 215, 105, 69, 149, 157, 191,
398            153, 23, 247, 252, 64, 152, 244, 237, 249, 60, 153, 230, 88, 26, 209, 80, 29, 11, 75,
399            5, 236, 126, 19, 167, 74, 141, 156, 159, 225, 17, 167, 71, 34, 223, 117, 83, 122, 24,
400            156, 59, 21, 96, 190, 185, 33, 224, 76, 56, 213, 131, 116, 117, 186, 64, 200, 126, 31,
401            138, 62, 211, 73, 130, 95, 90, 103, 36, 208, 134, 166, 250, 218, 3, 46, 184, 111, 149,
402            157, 212, 5, 21, 229, 64, 103, 110, 179, 153, 242, 182, 83, 108, 142, 148, 47, 104, 94,
403            229, 103, 211, 113, 58, 231, 42, 37, 63, 98, 130, 156, 56, 157, 173, 52, 192, 162, 238,
404            169, 34, 2, 0, 2, 2, 0, 16, 188, 187, 216, 28, 211, 175, 73, 254, 178, 93, 233, 234,
405            43, 169, 180, 38, 132, 232, 15, 191, 135, 4, 167, 143, 2, 247, 95, 133, 51, 143, 33,
406            206, 20, 155, 7, 154, 39, 241, 28, 181, 23, 162, 23, 238, 3, 188, 108, 61, 19, 91, 160,
407            10, 250, 18, 115, 163, 122, 199, 208, 223, 86, 139, 4, 192, 156, 134, 254, 95, 127,
408            166, 139, 0, 239, 2, 0, 16, 179, 200, 253, 27, 249, 134, 180, 1, 146, 159, 37, 227,
409            214, 10, 247, 183, 93, 251, 236, 20, 128, 78, 135, 163, 5, 181, 147, 12, 250, 241, 1,
410            198, 63, 134, 13, 252, 7, 210, 41, 181, 110, 166, 37, 118, 171, 27, 110, 50, 166, 95,
411            90, 34, 57, 7, 197, 97, 227, 47, 217, 88, 110, 184, 201, 198, 134, 36, 34, 213, 8, 148,
412            237, 78, 86, 143, 0, 2, 0, 3, 74, 88, 134, 143, 1, 211, 54, 13, 131, 155, 129, 86, 230,
413            179, 36, 21, 218, 103, 4, 241, 28, 79, 163, 33, 178, 215, 215, 92, 239, 46, 6, 147, 16,
414            0, 3, 205, 95, 122, 225, 56, 246, 26, 83, 202, 92, 95, 184, 1, 166, 128, 219, 254, 146,
415            10, 195, 174, 150, 154, 63, 178, 124, 176, 223, 233, 7, 123, 158, 25, 44, 1, 138, 21,
416            58, 186, 252, 138, 231, 73, 3, 108, 130, 120, 161, 39, 134, 253, 131, 249, 6, 131, 69,
417            70, 239, 162, 165, 25, 242, 187, 93, 0, 240, 251, 2, 9, 1, 65, 126, 216, 3, 190, 73,
418            49, 90, 6, 208, 190, 165, 163, 1, 111, 149, 230, 178, 244, 87, 228, 44, 113, 63, 218,
419            182, 218, 158, 186, 56, 167, 236, 74, 163, 5, 66, 198, 29, 200, 195, 51, 174, 57, 120,
420            179, 184, 71, 85, 88, 130, 176, 8, 3, 248, 193, 207, 197, 44, 152, 4, 149, 198, 223,
421            207, 154, 142, 103, 45, 216, 90, 239, 211, 236, 45, 127, 209, 113, 5, 14, 212, 90, 85,
422            225, 127, 15, 74, 72, 36, 108, 13, 191, 60, 82, 245, 1, 96, 155, 33, 154, 135, 139,
423            141, 66, 8, 151, 10, 145, 93, 87, 165, 106, 65, 178, 133, 1, 139, 85, 177, 82, 40, 252,
424            34, 57, 24, 94, 59, 83, 38, 201, 247, 187, 171, 200, 25, 59, 61, 40, 155, 82, 51, 139,
425            249, 61, 209, 157, 248, 8, 196, 68, 121, 160, 141, 207, 108, 12, 39, 134, 123, 151, 0,
426            185, 250, 101, 38, 207, 188, 130, 23, 182, 86, 138, 68, 135, 30, 119, 189, 167, 99,
427            135, 121, 226, 140, 56, 46, 205, 194, 80, 104, 142, 255, 3, 11, 29, 210, 127, 214, 105,
428            237, 220, 52, 248, 41, 185, 33, 198, 230, 230, 217, 228, 69, 57, 234, 219, 86, 48, 66,
429            220, 19, 149, 101, 131, 149, 15, 130, 6, 185, 6, 70, 64, 212, 241, 209, 187, 197, 48,
430            5, 164, 194, 140, 15, 92, 250, 160, 232, 241, 182, 38, 18, 104, 250, 232, 82, 108, 221,
431            0, 179, 216, 137, 117, 75, 81, 212, 239, 29, 75, 182, 158, 179, 108, 45, 156, 162, 37,
432            124, 51, 167, 153, 74, 139, 107, 181, 19, 174, 135, 173, 247, 4, 7, 3, 223, 121, 197,
433            165, 116, 55, 111, 246, 1, 147, 195, 105, 154, 102, 133, 111, 104, 249, 244, 75, 128,
434            222, 69, 107, 75, 19, 53, 34, 48, 185, 75, 114, 176, 67, 8, 174, 53, 252, 72, 205, 65,
435            106, 99, 69, 63, 177, 81, 221, 56, 163, 152, 61, 29, 16, 36, 93, 180, 13, 2, 26, 148,
436            133, 170, 203, 173, 36, 221, 93, 41, 76, 189, 225, 243, 250, 240, 232, 206, 81, 64,
437            147, 200, 132, 118, 216, 200, 211, 131, 18, 94, 157, 224, 8, 244, 59, 86, 207, 163,
438            200, 38, 183, 215, 50, 206, 40, 157, 104, 153, 191, 38, 212, 105, 251, 147, 91, 30,
439            220, 168, 68, 252, 174, 155, 138, 12, 166, 255, 208, 3, 137, 127, 106, 254, 161, 25,
440            195, 112, 197, 83, 175, 209, 179, 184, 43, 191, 125, 235, 252, 65, 18, 226, 48, 99,
441            167, 236, 242, 41, 213, 169, 62, 186, 40, 147, 26, 64, 106, 53, 236, 109, 107, 172, 88,
442            244, 154, 120, 134, 123, 245, 157, 65, 116, 210, 42, 13, 116, 3, 142, 246, 81, 165,
443            212, 227, 175, 189, 78, 21, 234, 58, 161, 187, 152, 153, 41, 0, 44, 27, 240, 171, 133,
444            157, 168, 117, 117, 11, 186, 18, 23, 44, 248, 191, 221, 121, 70, 250, 242, 7, 175, 190,
445            111, 219, 240, 196, 193, 255, 201, 22, 216, 69, 35, 39, 141, 143, 199, 205, 131, 106,
446            75, 226, 225, 81, 190, 14, 146, 46, 174, 147, 9, 128, 46, 39, 21, 141, 155, 77, 112,
447            251, 227, 232, 198, 16, 185, 67, 220, 21, 181, 128, 218, 160, 120, 201, 28, 65, 52, 64,
448            14, 58, 67, 157, 98, 7, 62, 115, 231, 36, 248, 140, 121, 29, 94, 215, 7, 240, 44, 67,
449            89, 108, 235, 243, 80, 51, 6, 114, 206, 185, 39, 10, 169, 114, 208, 201, 133, 170, 234,
450            139, 187, 45, 29, 135, 29, 245, 127, 0, 32, 157, 187, 108, 240, 58, 251, 92, 216, 216,
451            141, 207, 103, 221, 254, 13, 95, 197, 212, 227, 247, 188, 81, 119, 95, 12, 11, 103,
452            169, 40, 123, 149, 113, 99, 87, 124, 252, 215, 1, 195, 78, 210, 3, 118, 242, 153, 80,
453            91, 244, 24, 195, 199, 103, 22, 36, 210, 191, 15, 140, 16, 191, 136, 34, 228, 209, 82,
454            165, 0, 65, 54, 231, 126, 212, 121, 212, 182, 138, 254, 216, 114, 101, 6, 116, 116,
455            153, 19, 106, 128, 82, 125, 248, 25, 121, 201, 63, 81, 186, 242, 141, 25, 201, 118, 95,
456            227, 119, 40, 188, 203, 53, 95, 93, 205, 254, 172, 167, 28, 168, 27, 208, 252, 141,
457            103, 235, 72, 124, 24, 156, 177, 128, 254, 18, 242, 179, 221, 176, 118, 205, 221, 222,
458            148, 158, 26, 210, 255, 218, 165, 88, 167, 63, 3, 86, 83, 107, 151, 9, 88, 245, 18,
459            244, 99, 217, 139, 82, 127, 149, 5, 61, 112, 201, 243, 229, 9, 37, 50, 231, 187, 152,
460            19, 92, 191, 224, 1, 150, 101, 101, 249, 227, 124, 204, 33, 227, 101, 70, 176, 143, 77,
461            147, 70, 127, 225, 208, 201, 247, 121, 142, 1, 249, 83, 64, 190, 100, 234, 136, 10,
462            198, 11, 122, 206, 146, 13, 125, 84, 104, 248, 122, 61, 241, 147, 119, 175, 90, 32,
463            153, 163, 163, 202, 188, 22, 136, 79, 29, 22, 90, 193, 113, 2, 240, 6, 65, 127, 139,
464            43, 93, 53, 5, 12, 37, 172, 93, 92, 72, 143, 130, 160, 227, 25, 146, 153, 208, 213, 40,
465            33, 114, 4, 169, 86, 176, 1, 0, 56, 196, 145, 251, 72, 136, 97, 36, 23, 32, 135, 233,
466            73, 21, 131, 92, 191, 18, 3, 214, 31, 151, 12, 91, 190, 8, 82, 233, 180, 16, 6, 119,
467            216, 150, 163, 40, 54, 136, 195, 231, 173, 26, 239, 29, 141, 8, 195, 192, 52, 170, 119,
468            228, 39, 62, 141, 207, 121, 107, 4, 105, 169, 217, 14, 154, 107, 114, 248, 115, 148,
469            163, 67, 251, 86, 155, 151, 40, 204, 202, 255, 29, 161, 210, 6, 52, 100, 251, 168, 80,
470            101, 144, 176, 139, 37, 3, 12, 39, 34, 56, 102, 121, 142, 115, 170, 87, 187, 24, 46,
471            240, 69, 177, 116, 107, 59, 149, 137, 17, 159, 181, 51, 81, 203, 216, 154, 158, 157,
472            168, 14, 150, 203, 248, 49, 23, 110, 193, 29, 166, 134, 100, 28, 200, 76, 132, 157, 85,
473            182, 215, 94, 138, 139, 233, 239, 189, 106, 102, 9, 236, 198, 238, 15, 46, 161, 125,
474            209, 170, 80, 101, 85, 149, 237, 15, 183, 170, 120, 242, 204, 175, 40, 255, 173, 172,
475            67, 190, 46, 63, 141, 207, 175, 252, 156, 34, 0, 238, 194, 117, 61, 95, 76, 206, 140,
476            100, 38, 108, 5, 112, 40, 14, 180, 197, 16, 15, 43, 210, 137, 250, 79, 177, 225, 241,
477            107, 25, 182, 97, 3, 91, 50, 67, 129, 243, 181, 103, 167, 34, 239, 209, 253, 81, 165,
478            90, 235, 26, 32, 31, 98, 215, 119, 124, 93, 1, 108, 253, 232, 170, 49, 179, 5, 49, 167,
479            35, 206, 3, 218, 61, 186, 93, 57, 206, 204, 252, 35, 129, 25, 255, 71, 129, 45, 188,
480            71, 186, 137, 139, 39, 80, 76, 138, 169, 70, 11, 138, 176, 184, 22, 129, 106, 208, 204,
481            127, 11, 14, 182, 93, 107, 23, 255, 147, 120, 61, 244, 174, 1, 120, 86, 108, 228, 216,
482            44, 200, 196, 185, 12, 152, 40, 189, 231, 89, 112, 233, 219, 129, 183, 18, 102, 195,
483            248, 213, 144, 1, 5, 117, 161, 177, 218, 183, 194, 112, 222, 102, 209, 44, 92, 121, 7,
484            237, 250, 123, 72, 74, 43, 209, 28, 94, 195, 154, 129, 245, 77, 204, 164, 35, 0, 50,
485            113, 117, 184, 175, 147, 238, 232, 18, 164, 41, 151, 95, 4, 144, 191, 30, 104, 247,
486            230, 239, 195, 48, 168, 60, 92, 41, 25, 85, 15, 11, 65, 9, 135, 175, 124, 202, 232,
487            222, 145, 111, 232, 130, 145, 140, 214, 136, 171, 117, 232, 153, 57, 3, 253, 9, 167,
488            81, 13, 238, 231, 84, 18, 79, 67, 131, 163, 48, 226, 4, 13, 62, 199, 158, 113, 237,
489            127, 201, 0, 219, 190, 79, 1, 13, 37, 149, 34, 33, 86, 98, 159, 161, 162, 204, 247,
490            116, 242, 233, 151, 220, 25, 27, 158, 34, 102, 247, 92, 58, 60, 85, 1, 77, 71, 190,
491            123, 17, 219, 6, 154, 79, 244, 16, 21, 60, 221, 129, 77, 5, 131, 38, 7, 17, 35, 28,
492            252, 168, 89, 26, 197, 121, 18, 234, 8, 41, 202, 173, 54, 88, 117, 114, 179, 198, 200,
493            80, 122, 170, 182, 27, 89, 102, 37, 117, 65, 131, 159, 98, 65, 36, 123, 223, 239, 27,
494            124, 28, 11, 117, 117, 4, 230, 164, 46, 82, 90, 52, 165, 204, 215, 104, 220, 204, 197,
495            179, 12, 50, 159, 239, 196, 110, 226, 84, 104, 5, 164, 2, 44, 198, 12, 162, 123, 14,
496            230, 99, 145, 168, 62, 186, 100, 239, 9, 240, 231, 124, 29, 90, 247, 66, 165, 232, 125,
497            95, 203, 152, 123, 0, 159, 20, 145, 244, 3, 12, 245, 45, 113, 121, 220, 182, 64, 166,
498            207, 74, 27, 40, 248, 133, 13, 86, 216, 67, 249, 19, 240, 234, 33, 136, 196, 85, 201,
499            42, 85, 191, 15, 88, 108, 223, 218, 120, 226, 147, 111, 15, 70, 208, 187, 23, 10, 96,
500            93, 238, 174, 86, 117, 95, 227, 53, 112, 48, 1, 191, 236, 40, 250, 171, 3, 46, 230,
501            220, 4, 2, 21, 55, 27, 190, 13, 95, 152, 194, 8, 196, 119, 168, 236, 149, 14, 53, 34,
502            228, 85, 189, 138, 194, 184, 68, 59, 234, 14, 46, 14, 121, 32, 76, 46, 146, 38, 82,
503            154, 95, 153, 209, 99, 242, 9, 177, 238, 142, 154, 193, 59, 185, 157, 236, 238, 117,
504            64, 74, 144, 178, 10, 47, 199, 157, 220, 38, 141, 214, 135, 163, 9, 58, 119, 177, 128,
505            182, 176, 162, 196, 115, 166, 62, 75, 108, 83, 249, 91, 112, 146, 177, 76, 217, 5, 195,
506            156, 32, 88, 107, 248, 194, 97, 95, 221, 82, 149, 116, 8, 46, 212, 105, 39, 198, 165,
507            119, 134, 28, 8, 128, 235, 168, 114, 111, 141, 166, 13, 232, 14, 114, 209, 177, 59,
508            150, 133, 121, 209, 53, 182, 81, 21, 32, 160, 134, 58, 49, 121, 183, 118, 23, 255, 225,
509            87, 201, 121, 106, 28, 191, 0, 219, 126, 30, 198, 13, 7, 158, 223, 144, 30, 117, 6,
510            139, 125, 122, 26, 91, 130, 111, 239, 181, 127, 63, 12, 230, 172, 130, 234, 158, 203,
511            231, 6, 74, 190, 225, 198, 1, 57, 242, 232, 180, 167, 220, 47, 36, 83, 115, 86, 178,
512            151, 24, 52, 224, 74, 23, 103, 33, 129, 130, 159, 228, 217, 183, 13, 49, 177, 39, 58,
513            133, 198, 225, 206, 87, 174, 125, 112, 11, 53, 51, 206, 97, 100, 212, 112, 198, 177,
514            57, 217, 131, 109, 204, 252, 139, 151, 146, 13, 119, 222, 10, 206, 238, 250, 145, 203,
515            184, 102, 214, 116, 24, 247, 223, 213, 252, 67, 1, 37, 44, 215, 181, 180, 48, 210, 246,
516            82, 109, 254, 63, 1, 0, 179, 5, 36, 22, 100, 10, 249, 50, 223, 149, 246, 58, 73, 52,
517            178, 197, 26, 187, 174, 86, 107, 220, 109, 206, 66, 86, 71, 8, 48, 19, 52, 52, 97, 176,
518            185, 46, 175, 139, 216, 80, 145, 254, 137, 114, 224, 64, 89, 33, 253, 29, 50, 225, 131,
519            194, 36, 28, 111, 178, 47, 235, 131, 48, 155, 233, 198, 73, 145, 184, 20, 139, 114,
520            129, 222, 74, 62, 241, 211, 144, 185, 61, 106, 215, 11, 213, 189, 148, 84, 67, 173,
521            208, 125, 254, 220, 67, 42, 69, 56, 2, 0, 4, 2, 0, 16, 160, 214, 249, 28, 132, 158, 42,
522            198, 199, 85, 165, 153, 50, 165, 218, 42, 128, 176, 1, 160, 139, 2, 150, 241, 12, 212,
523            142, 1, 152, 56, 180, 38, 206, 47, 198, 16, 197, 2, 251, 76, 254, 25, 233, 71, 121,
524            154, 24, 236, 247, 169, 178, 140, 69, 18, 192, 10, 149, 137, 49, 81, 232, 34, 233, 72,
525            153, 131, 132, 124, 131, 86, 248, 173, 104, 220, 2, 0, 16, 129, 198, 205, 23, 219, 166,
526            224, 3, 240, 182, 202, 2, 245, 238, 63, 168, 216, 24, 164, 139, 3, 136, 27, 190, 241,
527            12, 226, 118, 194, 26, 136, 165, 4, 190, 178, 1, 242, 76, 212, 133, 1, 135, 46, 171, 6,
528            180, 88, 27, 32, 127, 27, 173, 55, 113, 159, 179, 128, 75, 32, 237, 79, 180, 58, 80,
529            218, 87, 53, 250, 168, 242, 72, 237, 14, 37, 209, 183, 27, 2, 0, 16, 131, 205, 220, 6,
530            248, 192, 217, 12, 234, 183, 136, 7, 204, 178, 253, 2, 226, 197, 122, 251, 200, 25,
531            243, 182, 1, 134, 132, 6, 205, 161, 4, 213, 220, 8, 213, 202, 2, 216, 38, 157, 7, 158,
532            134, 1, 194, 39, 227, 99, 162, 37, 185, 111, 52, 232, 229, 94, 113, 237, 208, 227, 42,
533            127, 203, 218, 103, 196, 88, 81, 251, 50, 255, 109, 151, 30, 86, 178, 192, 1, 7, 122,
534            2, 0, 16, 205, 182, 227, 8, 178, 213, 249, 12, 245, 174, 248, 5, 142, 249, 226, 2, 224,
535            237, 2, 241, 143, 12, 187, 189, 16, 238, 148, 5, 172, 180, 3, 203, 223, 6, 199, 37,
536            180, 91, 223, 152, 1, 213, 16, 153, 1, 200, 40, 66, 190, 30, 10, 167, 248, 228, 128,
537            177, 167, 158, 12, 207, 6, 221, 233, 36, 16, 224, 37, 234, 112, 122, 3, 73, 110, 28,
538            219, 146, 227, 22, 221, 2, 0, 3, 40, 22, 9, 114, 87, 70, 165, 43, 124, 234, 203, 66,
539            187, 206, 235, 90, 214, 243, 219, 140, 23, 125, 75, 12, 209, 84, 160, 109, 79, 185,
540            246, 198, 126, 0, 3, 118, 35, 47, 114, 202, 8, 242, 12, 224, 46, 58, 65, 77, 205, 74,
541            150, 170, 166, 155, 5, 203, 159, 244, 194, 242, 248, 119, 193, 210, 219, 36, 88, 214,
542            44, 1, 133, 60, 193, 177, 126, 82, 83, 208, 217, 70, 7, 191, 53, 193, 159, 211, 141,
543            18, 235, 157, 182, 94, 187, 7, 92, 88, 248, 194, 176, 99, 87, 50, 2, 9, 1, 17, 90, 103,
544            147, 170, 141, 221, 160, 6, 160, 224, 171, 34, 188, 239, 150, 143, 152, 220, 124, 199,
545            185, 86, 234, 213, 161, 169, 253, 131, 109, 179, 163, 219, 169, 250, 51, 108, 55, 92,
546            20, 111, 174, 192, 5, 208, 58, 139, 36, 116, 219, 138, 198, 226, 191, 196, 34, 66, 129,
547            130, 180, 229, 133, 25, 254, 223, 238, 203, 43, 224, 253, 159, 7, 87, 86, 255, 183,
548            102, 1, 122, 141, 109, 50, 23, 64, 22, 56, 38, 110, 22, 189, 182, 6, 97, 1, 207, 157,
549            222, 178, 195, 188, 84, 95, 243, 18, 232, 121, 64, 15, 120, 1, 174, 137, 34, 7, 128,
550            97, 31, 26, 16, 47, 163, 49, 188, 81, 172, 214, 44, 163, 45, 208, 99, 229, 166, 153,
551            198, 240, 175, 115, 50, 2, 94, 38, 242, 154, 246, 239, 57, 218, 163, 199, 10, 161, 152,
552            163, 194, 161, 70, 18, 17, 245, 79, 44, 17, 1, 6, 60, 226, 42, 71, 93, 238, 81, 172,
553            68, 118, 6, 176, 242, 222, 44, 185, 240, 163, 40, 50, 96, 116, 132, 152, 75, 202, 248,
554            131, 209, 183, 0, 62, 222, 166, 220, 161, 75, 44, 117, 234, 192, 31, 114, 216, 100,
555            120, 155, 178, 48, 184, 165, 244, 159, 52, 57, 145, 7, 206, 213, 229, 92, 236, 47, 58,
556            75, 205, 52, 40, 198, 2, 55, 15, 28, 50, 176, 98, 47, 217, 100, 48, 94, 12, 139, 32,
557            214, 218, 240, 10, 15, 11, 169, 137, 132, 23, 185, 172, 225, 16, 254, 88, 75, 240, 85,
558            137, 19, 89, 148, 57, 15, 178, 177, 187, 96, 7, 94, 235, 2, 216, 34, 128, 6, 7, 19,
559            167, 235, 97, 31, 29, 137, 64, 39, 193, 227, 222, 149, 144, 181, 26, 185, 226, 55, 121,
560            59, 142, 102, 17, 242, 227, 228, 225, 120, 140, 103, 10, 40, 6, 209, 165, 4, 35, 33,
561            178, 123, 183, 188, 250, 179, 202, 190, 44, 216, 179, 156, 52, 62, 173, 126, 178, 148,
562            128, 75, 222, 109, 140, 248, 89, 9, 176, 163, 243, 149, 211, 52, 216, 75, 162, 102,
563            189, 38, 166, 244, 96, 111, 2, 239, 176, 47, 58, 244, 6, 190, 44, 107, 252, 223, 130,
564            185, 133, 60, 186, 21, 66, 195, 22, 130, 65, 139, 243, 45, 146, 29, 37, 215, 143, 255,
565            181, 0, 156, 78, 155, 212, 146, 0, 248, 253, 151, 160, 163, 156, 186, 160, 223, 151,
566            113, 223, 128, 195, 55, 144, 43, 173, 25, 178, 37, 134, 249, 235, 36, 219, 138, 46,
567            216, 95, 54, 230, 72, 9, 245, 83, 44, 187, 214, 79, 220, 114, 217, 147, 76, 133, 190,
568            127, 227, 216, 102, 206, 3, 125, 186, 63, 101, 242, 36, 230, 208, 5, 201, 82, 80, 199,
569            220, 198, 161, 50, 146, 175, 123, 74, 239, 237, 141, 23, 190, 243, 55, 132, 160, 123,
570            70, 27, 180, 221, 28, 14, 233, 247, 52, 16, 205, 239, 169, 138, 24, 125, 228, 128, 47,
571            7, 78, 251, 60, 144, 204, 164, 39, 57, 118, 0, 213, 47, 22, 254, 34, 142, 1, 17, 107,
572            151, 203, 68, 137, 83, 145, 251, 3, 214, 243, 52, 18, 130, 17, 1, 0, 91, 245, 184, 107,
573            172, 215, 147, 215, 128, 122, 201, 238, 7, 69, 33, 245, 5, 61, 222, 87, 241, 55, 147,
574            225, 196, 67, 228, 115, 249, 211, 29, 200, 204, 10, 80, 193, 110, 7, 80, 139, 65, 120,
575            24, 47, 114, 59, 224, 240, 222, 203, 54, 244, 199, 70, 248, 66, 100, 182, 194, 191,
576            173, 116, 117, 135, 132, 250, 161, 54, 255, 28, 20, 40, 34, 174, 124, 147, 252, 196,
577            133, 97, 25, 231, 1, 76, 224, 92, 33, 206, 44, 164, 70, 132, 54, 166, 253, 170, 139,
578            186, 27, 54, 246, 45, 198, 194, 178, 96, 174, 87, 159, 124, 192, 199, 180, 10, 238,
579            129, 95, 147, 24, 188, 128, 193, 68, 101, 199, 95, 99, 245, 214, 79, 8, 133, 143, 147,
580            155, 200, 2, 174, 190, 136, 38, 76, 84, 157, 192, 207, 133, 56, 57, 66, 135, 191, 34,
581            85, 223, 63, 160, 110, 157, 120, 13, 43, 186, 6, 223, 104, 129, 18, 110, 128, 58, 255,
582            26, 14, 167, 177, 121, 5, 241, 69, 120, 68, 34, 85, 169, 35, 198, 39, 177, 211, 133, 5,
583            220, 74, 78, 249, 198, 8, 29, 83, 3, 147, 116, 145, 128, 51, 137, 201, 151, 19, 165,
584            223, 147, 160, 12, 116, 201, 69, 54, 17, 5, 74, 253, 34, 100, 127, 162, 61, 224, 157,
585            142, 65, 226, 169, 139, 48, 25, 8, 94, 141, 226, 172, 128, 17, 43, 21, 32, 23, 25, 1,
586            171, 211, 1, 155, 71, 171, 119, 24, 230, 55, 191, 182, 187, 109, 101, 151, 126, 50, 37,
587            238, 30, 45, 162, 169, 223, 78, 219, 191, 158, 199, 11, 60, 160, 200, 13, 77, 18, 169,
588            47, 65, 175, 41, 41, 39, 189, 206, 107, 43, 125, 254, 17, 118, 181, 201, 228, 171, 160,
589            205, 77, 109, 112, 12, 56, 194, 234, 219, 13, 111, 173, 38, 212, 112, 3, 91, 93, 111,
590            39, 16, 223, 21, 3, 156, 70, 8, 69, 97, 89, 68, 108, 24, 29, 142, 38, 27, 7, 120, 251,
591            132, 5, 47, 16, 240, 56, 193, 202, 122, 228, 20, 183, 179, 41, 120, 11, 224, 78, 205,
592            154, 198, 252, 118, 160, 119, 213, 168, 148, 188, 221, 168, 6, 77, 5, 240, 39, 157,
593            131, 88, 149, 226, 191, 200, 30, 156, 28, 63, 67, 137, 59, 177, 156, 200, 61, 44, 230,
594            133, 164, 250, 14, 172, 64, 236, 161, 51, 12, 175, 220, 144, 116, 26, 159, 127, 165,
595            15, 130, 192, 91, 93, 206, 251, 251, 244, 68, 167, 89, 238, 235, 164, 9, 156, 237, 131,
596            49, 77, 62, 144, 6, 82, 223, 110, 127, 29, 106, 115, 33, 66, 119, 24, 43, 199, 23, 40,
597            48, 70, 22, 114, 229, 196, 36, 217, 129, 21, 152, 239, 244, 143, 37, 192, 7, 161, 117,
598            238, 251, 227, 125, 49, 203, 166, 79, 128, 70, 225, 77, 155, 104, 101, 188, 172, 155,
599            234, 29, 61, 1, 43, 46, 145, 84, 66, 210, 188, 4, 253, 22, 47, 177, 60, 249, 21, 138,
600            18, 109, 39, 150, 224, 242, 15, 84, 49, 194, 101, 90, 250, 20, 29, 240, 99, 226, 138,
601            131, 245, 140, 185, 0, 232, 56, 121, 21, 83, 87, 171, 29, 134, 133, 82, 110, 38, 87,
602            212, 133, 193, 183, 160, 5, 209, 4, 58, 182, 46, 252, 70, 148, 17, 57, 39, 1, 4, 198,
603            23, 113, 228, 101, 35, 120, 248, 183, 7, 214, 125, 173, 210, 233, 241, 190, 102, 251,
604            185, 119, 52, 133, 12, 92, 166, 191, 35, 83, 245, 7, 41, 145, 20, 182, 81, 35, 134,
605            146, 152, 48, 69, 88, 235, 243, 26, 158, 126, 73, 15, 78, 138, 243, 25, 158, 14, 248,
606            137, 240, 128, 86, 106, 12, 121, 94, 219, 122, 82, 115, 187, 230, 4, 61, 137, 199, 206,
607            5, 245, 148, 153, 232, 181, 162, 133, 27, 64, 210, 103, 240, 245, 229, 18, 146, 93, 5,
608            142, 206, 94, 12, 54, 165, 44, 120, 250, 204, 225, 64, 171, 156, 164, 108, 31, 79, 115,
609            79, 184, 62, 243, 13, 79, 18, 78, 63, 117, 120, 208, 5, 244, 31, 117, 188, 244, 142,
610            163, 41, 161, 126, 6, 166, 182, 25, 41, 113, 196, 6, 177, 15, 245, 42, 62, 213, 179,
611            68, 200, 132, 26, 2, 71, 4, 43, 160, 130, 242, 51, 233, 178, 213, 88, 90, 246, 251,
612            182, 141, 48, 35, 29, 154, 187, 81, 99, 161, 115, 32, 100, 110, 173, 222, 150, 200, 81,
613            67, 66, 49, 58, 35, 241, 126, 138, 80, 51, 90, 146, 211, 22, 118, 57, 144, 180, 58,
614            190, 198, 120, 201, 17, 154, 42, 74, 205, 12, 47, 139, 201, 14, 77, 45, 223, 182, 210,
615            175, 66, 198, 225, 164, 69, 233, 72, 59, 153, 53, 228, 232, 70, 210, 173, 39, 14, 56,
616            249, 140, 127, 99, 15, 57, 32, 5, 136, 43, 189, 226, 120, 17, 209, 235, 206, 168, 254,
617            95, 224, 239, 39, 83, 40, 191, 103, 184, 19, 238, 132, 153, 5, 145, 196, 253, 184, 86,
618            84, 14, 44, 13, 74, 107, 87, 194, 13, 4, 38, 152, 211, 104, 198, 163, 85, 167, 129, 14,
619            93, 70, 0, 168, 104, 18, 235, 15, 229, 2, 105, 104, 69, 11, 160, 205, 80, 152, 91, 100,
620            75, 229, 229, 61, 197, 227, 68, 60, 169, 235, 159, 102, 26, 179, 198, 77, 221, 163,
621            229, 74, 81, 204, 110, 222, 210, 1, 93, 253, 163, 208, 200, 216, 122, 180, 106, 87,
622            210, 129, 215, 74, 200, 239, 2, 221, 79, 230, 132, 158, 157, 87, 112, 7, 117, 195, 232,
623            157, 71, 13, 34, 58, 204, 201, 93, 230, 45, 130, 208, 15, 251, 152, 38, 198, 81, 134,
624            100, 254, 136, 123, 204, 199, 27, 218, 16, 19, 253, 66, 84, 105, 105, 4, 224, 60, 237,
625            76, 94, 234, 4, 245, 5, 153, 20, 20, 171, 139, 82, 132, 88, 212, 79, 29, 79, 239, 10,
626            32, 11, 210, 180, 115, 253, 144, 41, 5, 241, 76, 250, 165, 126, 114, 138, 19, 3, 231,
627            137, 136, 53, 148, 214, 218, 43, 67, 1, 10, 208, 220, 55, 221, 90, 218, 55, 8, 21, 223,
628            32, 7, 143, 163, 103, 43, 164, 248, 169, 219, 131, 184, 221, 130, 154, 30, 32, 158,
629            137, 247, 182, 23, 42, 185, 49, 5, 159, 176, 255, 157, 4, 253, 239, 10, 206, 154, 12,
630            116, 141, 70, 111, 96, 143, 13, 133, 180, 215, 3, 8, 122, 149, 190, 229, 188, 194, 91,
631            87, 182, 20, 51, 106, 171, 72, 51, 209, 10, 7, 75, 197, 74, 74, 75, 237, 206, 76, 180,
632            223, 109, 134, 15, 251, 124, 121, 203, 250, 96, 155, 242, 162, 205, 171, 74, 163, 95,
633            3, 119, 114, 15, 190, 142, 187, 58, 145, 155, 52, 62, 249, 210, 33, 100, 35, 50, 82,
634            236, 29, 109, 179, 187, 221, 229, 246, 138, 38, 176, 240, 119, 230, 239, 41, 10, 182,
635            226, 6, 90, 27, 91, 28, 86, 243, 8, 98, 87, 197, 141, 19, 84, 121, 15, 210, 204, 248,
636            52, 192, 238, 229, 151, 94, 9, 73, 7, 111, 11, 122, 24, 77, 58, 219, 16, 190, 161, 36,
637            226, 140, 255, 164, 18, 63, 71, 0, 1, 177, 250, 136, 216, 116, 169, 115, 167, 212, 186,
638            111, 248, 5, 7, 50, 210, 98, 65, 144, 161, 41, 128, 178, 26, 113, 249, 37, 87, 185,
639            146, 176, 143, 177, 190, 84, 76, 181, 204, 190, 23, 126, 47, 210, 157, 190, 5, 40, 202,
640            34, 135, 216, 85, 41, 212, 185, 239, 183, 61, 183, 10, 89, 237, 103, 239, 240, 95, 69,
641            111, 213, 141, 253, 226, 224, 159, 100, 61, 150, 0, 236, 4, 27, 46, 165, 123, 21, 172,
642            135, 0, 228, 239, 191, 75, 7, 133, 12, 129, 89, 59, 221, 9, 31, 247, 90, 191, 142, 158,
643            4, 34, 60, 156, 104, 38, 16, 101, 29, 232, 98, 137, 31, 157, 212, 18, 125, 152, 49,
644            137, 115, 218, 0, 38, 179, 230, 73, 215, 58, 53, 189, 101, 16, 231, 76, 14, 90, 143,
645            185, 239, 172, 41, 211, 242, 224, 154, 215, 150, 106, 180, 23, 225, 86, 211, 27, 9, 40,
646            136, 152, 91, 116, 143, 216, 73, 27, 103, 21, 1, 13, 182, 35, 74, 21, 217, 191, 10, 87,
647            0, 243, 131, 199, 236, 166, 48, 178, 130, 232, 28, 34, 217, 164, 185, 148, 34, 169,
648            197, 158, 185, 207, 12, 235, 128, 235, 81, 206, 163, 204, 44, 100, 6, 209, 168, 243,
649            79, 83, 98, 111, 94, 208, 173, 156, 0, 40, 61, 35, 131, 202, 13, 83, 172, 153, 0, 159,
650            118, 58, 130, 82, 217, 22, 217, 159, 81, 205, 152, 180, 24, 82, 79, 77, 237, 241, 156,
651            75, 76, 22, 158, 208, 231, 128, 214, 30, 66, 88, 8, 95, 96, 198, 214, 61, 175, 185,
652            108, 180, 91, 205, 212, 64, 235, 116, 152, 238, 185, 40, 177, 235, 183, 39, 74, 22,
653            225, 161, 221, 199, 178, 134, 9, 247, 105, 229, 244, 189, 41, 195, 232, 100, 84, 123,
654            51, 248, 197, 55, 61, 208, 13, 30, 70, 43, 159, 226, 234, 31, 134, 102, 32, 189, 200,
655            168, 0, 181, 38, 241, 185, 46, 162, 22, 111, 99, 214, 84, 92, 79, 214, 159, 30, 212,
656            75, 132, 37, 163, 208, 43, 86, 226, 97, 12, 152, 79, 21, 16, 0, 90, 196, 155, 51, 41,
657            61, 120, 20, 216, 130, 86, 139, 251, 167, 9, 132, 88, 46, 215, 166, 172, 116, 124, 57,
658            178, 225, 186, 123, 231, 229, 0, 2, 17, 82, 94, 215, 153, 173, 171, 58, 159, 155, 198,
659            53, 181, 115, 255, 237, 208, 251, 111, 23, 184, 141, 84, 2, 158, 114, 233, 77, 179, 99,
660            183, 3, 180, 238, 79, 213, 151, 55, 34, 23, 196, 178, 194, 209, 228, 25, 10, 56, 10,
661            46, 68, 4, 46, 31, 116, 177, 30, 132, 223, 218, 125, 113, 40, 0, 131, 73, 204, 118, 39,
662            7, 137, 142, 181, 178, 235, 127, 36, 55, 251, 223, 174, 232, 74, 169, 134, 12, 5, 119,
663            46, 98, 39, 158, 146, 83, 118, 0, 45, 29, 117, 108, 78, 246, 32, 115, 44, 16, 180, 188,
664            174, 169, 157, 190, 229, 87, 213, 184, 246, 49, 29, 239, 135, 10, 221, 163, 150, 188,
665            42, 3, 159, 86, 4, 205, 246, 27, 204, 65, 142, 255, 161, 114, 178, 148, 54, 103, 3, 3,
666            67, 84, 63, 33, 143, 91, 149, 94, 196, 64, 137, 104, 182, 12, 174, 216, 149, 175, 250,
667            105, 203, 112, 248, 38, 0, 1, 210, 116, 172, 44, 236, 238, 165, 241, 183, 79, 121, 20,
668            140, 230, 255, 243, 174, 44, 143, 8, 16, 43, 115, 247, 196, 161, 134, 123, 127, 224,
669            120, 228, 57, 113, 216, 63, 162, 250, 198, 40, 93, 88, 71, 117, 253, 114, 115, 57, 170,
670            119, 63, 15, 98, 212, 149, 91, 27, 189, 213, 165, 199, 240, 224, 177, 94, 4, 63, 132,
671            214, 44, 29, 150, 229, 110, 25, 104, 100, 204, 140, 163, 148, 178, 229, 8, 232, 234,
672            219, 49, 104, 78, 255, 98, 254, 222, 80, 97, 224, 243, 12, 193, 6, 193, 222, 71, 21,
673            253, 52, 140, 165, 64, 161, 51, 140, 67, 150, 58, 244, 119, 165, 214, 140, 139, 229,
674            61, 155, 27, 98, 34, 107, 149, 118, 252, 149, 46, 44, 244, 187, 236, 90, 67, 61, 38,
675            46, 59, 177, 180, 43, 15, 154, 109, 220, 238, 114, 98, 60, 180, 112, 106, 228, 177, 20,
676            70, 87, 248, 194, 9, 193, 171, 183, 225, 172, 148, 69, 79, 238, 206, 115, 150, 26, 10,
677            141, 201, 201, 159, 120, 210, 148, 175, 224, 12, 119, 192, 45, 245, 188, 131, 7, 116,
678            168, 194, 220, 236, 198, 91, 100, 176, 15, 151, 227, 32, 65, 11, 102, 123, 81, 226,
679            170, 206, 203, 74, 189, 231, 93, 156, 92, 119, 239, 213, 13, 105, 233, 26, 255, 231,
680            34, 195, 153, 146, 82, 126, 86, 198, 230, 1, 189, 158, 30, 90, 82, 206, 101, 190, 234,
681            59, 25, 251, 33, 185, 82, 110, 216, 136, 212, 14, 163, 234, 1, 65, 27, 95, 14, 9, 13,
682            1, 215, 15, 148, 210, 23, 242, 66, 173, 90, 238, 8, 224, 75, 106, 57, 39, 69, 200, 61,
683            153, 228, 106, 189, 196, 16, 95, 151, 91, 115, 218, 111, 5, 133, 1, 157, 35, 193, 213,
684            165, 174, 77, 60, 40, 50, 38, 230, 234, 171, 46, 71, 127, 9, 131, 118, 156, 238, 70,
685            173, 18, 116, 50, 17, 203, 242, 58, 3, 4, 255, 80, 231, 140, 101, 43, 85, 73, 251, 194,
686            95, 252, 220, 239, 51, 218, 13, 100, 163, 4, 69, 172, 104, 31, 52, 41, 157, 218, 189,
687            232, 15, 99, 28, 203, 224, 141, 209, 24, 163, 166, 166, 141, 207, 35, 28, 90, 131, 237,
688            145, 153, 9, 230, 22, 126, 199, 8, 65, 46, 255, 55, 21, 246, 12, 93, 209, 68, 187, 255,
689            114, 154, 81, 88, 178, 253, 67, 117, 102, 19, 192, 76, 160, 227, 163, 181, 4, 198, 112,
690            15, 18, 38, 49, 139, 255, 59, 6, 188, 120, 76, 55, 87, 78, 162, 23, 71, 20, 180, 13,
691            172, 160, 93, 210, 190, 126, 100, 156, 242, 124, 209, 21, 13, 251, 105, 207, 53, 159,
692            43, 9, 83, 148, 213, 207, 223, 213, 114, 199, 243, 126, 38, 71, 2, 189, 28, 211, 19,
693            223, 37, 141, 122, 136, 41, 200, 234, 4, 23, 6, 102, 197, 83, 11, 196, 0, 89, 195, 219,
694            40, 126, 27, 26, 112, 131, 130, 34, 36, 10, 233, 93, 20, 191, 108, 108, 89, 139, 232,
695            21, 184, 28, 179, 32, 154, 64, 15, 225, 193, 44, 238, 80, 114, 230, 200, 37, 128, 98,
696            69, 133, 172, 76, 210, 197, 186, 185, 184, 56, 194, 149, 60, 201, 221, 252, 16, 249, 6,
697            249, 5, 38, 206, 223, 162, 144, 146, 134, 247, 255, 228, 10, 94, 84, 13, 133, 137, 112,
698            64, 238, 100, 186, 126, 213, 42, 66, 144, 80, 114, 174, 254, 9, 12, 37, 142, 39, 67,
699            55, 78, 209, 213, 91, 22, 205, 243, 20, 76, 182, 91, 53, 180, 71, 67, 181, 210, 179,
700            78, 109, 157, 160, 147, 77, 54, 106, 7, 195, 187, 204, 136, 216, 181, 68, 223, 227,
701            159, 58, 27, 19, 255, 163, 29, 186, 59, 219, 13, 30, 34, 126, 212, 91, 1, 192, 16, 61,
702            79, 59, 9, 178, 146, 171, 236, 190, 158, 203, 164, 162, 70, 201, 36, 11, 223, 73, 118,
703            160, 2, 100, 234, 107, 250, 156, 26, 47, 15, 247, 29, 171, 21, 121, 216, 245, 78, 8,
704            122, 191, 183, 235, 253, 227, 248, 246, 22, 93, 210, 102, 175, 191, 40, 58, 252, 241,
705            251, 27, 209, 34, 249, 42, 205, 59, 207, 46, 143, 78, 234, 230, 122, 233, 152, 236,
706            115, 166, 166, 72, 24, 141, 65, 213, 25, 88, 242, 74, 161, 229, 226, 0, 252, 128, 169,
707            83, 46, 179, 185, 8, 146, 15, 203, 9, 116, 88, 85, 200, 157, 3, 170, 108, 41, 38, 62,
708            63, 109, 184, 51, 141, 229, 113, 182, 252, 56, 113, 117, 181, 208, 41, 83, 191, 38,
709            253, 161, 8, 26, 63, 227, 242, 49, 240, 193, 59, 178, 3, 197, 245, 89, 85, 30, 161, 45,
710            248, 248, 91, 110, 107, 144, 12, 175, 253, 21, 121, 28,
711        ];
712
713        let new_transactions: NewTransactions =
714            cuprate_epee_encoding::from_bytes(&mut &bytes[..]).unwrap();
715
716        assert_eq!(4, new_transactions.txs.len());
717
718        let mut encoded_bytes = cuprate_epee_encoding::to_bytes(new_transactions.clone()).unwrap();
719        let new_transactions_2: NewTransactions =
720            cuprate_epee_encoding::from_bytes(&mut encoded_bytes).unwrap();
721
722        assert_eq!(new_transactions, new_transactions_2);
723    }
724
725    #[test]
726    fn serde_notify_new_fluffy_block() {
727        let bytes = [
728            1, 17, 1, 1, 1, 1, 2, 1, 1, 8, 1, 98, 12, 4, 5, 98, 108, 111, 99, 107, 10, 161, 98, 16,
729            16, 140, 164, 136, 156, 6, 49, 161, 93, 25, 45, 71, 46, 192, 50, 103, 189, 225, 237,
730            40, 206, 185, 185, 56, 69, 131, 250, 198, 43, 26, 0, 26, 25, 93, 75, 254, 157, 49, 31,
731            2, 3, 167, 2, 140, 220, 168, 1, 1, 255, 208, 219, 168, 1, 80, 250, 252, 242, 123, 3,
732            183, 77, 188, 253, 60, 32, 58, 245, 14, 46, 90, 54, 86, 73, 155, 24, 153, 97, 128, 135,
733            9, 232, 56, 147, 0, 204, 108, 150, 238, 213, 85, 175, 43, 158, 188, 192, 135, 4, 3,
734            204, 46, 193, 70, 141, 56, 200, 90, 47, 42, 57, 83, 39, 40, 2, 191, 68, 188, 191, 192,
735            233, 193, 170, 240, 184, 84, 158, 31, 243, 68, 239, 183, 64, 179, 242, 247, 129, 1, 3,
736            124, 131, 127, 116, 64, 62, 207, 52, 69, 7, 233, 66, 226, 232, 210, 76, 36, 22, 245,
737            157, 4, 57, 115, 88, 195, 102, 210, 213, 21, 64, 70, 144, 28, 140, 133, 178, 124, 3,
738            179, 204, 27, 119, 139, 54, 182, 214, 61, 112, 90, 25, 103, 207, 89, 254, 116, 186, 13,
739            101, 230, 209, 117, 18, 230, 202, 154, 136, 56, 82, 150, 93, 0, 199, 253, 171, 132, 2,
740            3, 81, 180, 221, 207, 120, 93, 216, 207, 155, 0, 45, 58, 113, 180, 60, 206, 24, 136,
741            77, 149, 39, 72, 235, 225, 18, 106, 50, 253, 17, 24, 167, 228, 46, 168, 166, 178, 129,
742            2, 3, 23, 81, 11, 40, 189, 214, 184, 250, 33, 50, 58, 190, 136, 142, 177, 145, 90, 124,
743            47, 220, 23, 95, 69, 72, 61, 88, 166, 124, 204, 145, 220, 158, 122, 154, 186, 180, 205,
744            105, 3, 234, 84, 218, 103, 94, 8, 198, 168, 147, 18, 73, 40, 99, 90, 87, 173, 25, 47,
745            35, 79, 157, 26, 253, 137, 66, 202, 5, 199, 240, 227, 189, 204, 229, 143, 222, 235,
746            135, 2, 3, 97, 127, 94, 65, 87, 94, 145, 40, 17, 100, 240, 213, 25, 64, 73, 243, 18,
747            221, 14, 249, 149, 237, 222, 247, 29, 14, 96, 101, 194, 25, 209, 227, 113, 250, 153,
748            219, 104, 3, 114, 241, 143, 239, 231, 225, 164, 129, 43, 111, 163, 105, 148, 35, 41,
749            214, 105, 14, 99, 230, 67, 181, 230, 105, 77, 236, 65, 16, 246, 209, 164, 71, 151, 206,
750            219, 255, 125, 3, 26, 39, 116, 90, 19, 66, 187, 32, 50, 241, 68, 29, 223, 51, 95, 123,
751            7, 189, 40, 53, 38, 114, 27, 9, 197, 206, 208, 164, 20, 193, 128, 55, 81, 197, 226,
752            239, 125, 3, 107, 10, 42, 89, 249, 149, 16, 240, 34, 208, 194, 120, 146, 4, 180, 203,
753            172, 199, 97, 74, 229, 4, 246, 175, 218, 204, 1, 158, 194, 94, 245, 248, 180, 221, 222,
754            152, 155, 3, 3, 219, 188, 131, 55, 179, 251, 91, 117, 35, 147, 127, 77, 203, 220, 148,
755            2, 200, 47, 123, 2, 6, 114, 127, 210, 170, 82, 69, 236, 196, 30, 138, 70, 7, 210, 191,
756            159, 132, 1, 3, 185, 120, 237, 163, 233, 17, 115, 83, 169, 204, 224, 213, 225, 231, 31,
757            143, 128, 121, 41, 181, 213, 12, 115, 219, 50, 220, 167, 135, 136, 180, 87, 21, 198,
758            181, 178, 227, 126, 3, 243, 27, 254, 13, 49, 23, 153, 34, 80, 180, 230, 53, 146, 115,
759            81, 94, 236, 43, 92, 167, 53, 128, 114, 216, 62, 149, 104, 178, 38, 213, 184, 84, 11,
760            241, 174, 220, 131, 1, 3, 203, 150, 158, 182, 20, 150, 123, 22, 198, 119, 74, 3, 69,
761            210, 235, 181, 205, 133, 196, 241, 14, 56, 201, 107, 127, 139, 66, 251, 147, 186, 102,
762            216, 7, 135, 204, 159, 129, 1, 3, 54, 219, 16, 212, 210, 93, 25, 230, 156, 6, 251, 100,
763            98, 7, 158, 43, 179, 121, 227, 167, 219, 9, 54, 168, 199, 251, 255, 180, 220, 189, 65,
764            36, 181, 246, 204, 160, 253, 5, 3, 132, 191, 155, 238, 225, 193, 213, 210, 189, 55,
765            254, 66, 135, 12, 145, 189, 193, 42, 57, 38, 19, 225, 81, 72, 123, 11, 205, 98, 141,
766            91, 115, 130, 128, 179, 146, 128, 166, 4, 3, 114, 158, 152, 248, 140, 133, 123, 199,
767            131, 202, 92, 113, 109, 165, 160, 20, 142, 37, 10, 212, 48, 75, 234, 62, 171, 222, 55,
768            166, 111, 117, 134, 220, 12, 248, 246, 204, 132, 1, 3, 48, 138, 156, 70, 100, 208, 124,
769            1, 93, 17, 150, 229, 127, 254, 37, 96, 178, 214, 125, 29, 104, 34, 85, 172, 166, 243,
770            35, 138, 155, 113, 76, 83, 86, 246, 214, 151, 123, 3, 21, 181, 14, 233, 205, 28, 57,
771            18, 68, 140, 197, 8, 88, 51, 197, 123, 53, 202, 231, 195, 177, 103, 82, 180, 71, 138,
772            115, 99, 204, 165, 165, 177, 106, 204, 250, 198, 131, 1, 3, 102, 225, 42, 195, 2, 104,
773            11, 179, 38, 10, 17, 192, 238, 64, 167, 231, 121, 89, 189, 185, 139, 95, 251, 108, 95,
774            183, 193, 160, 242, 42, 206, 145, 163, 237, 223, 149, 129, 1, 3, 84, 38, 34, 107, 191,
775            116, 151, 3, 124, 56, 107, 63, 159, 123, 69, 70, 218, 245, 63, 38, 206, 108, 30, 31,
776            126, 203, 214, 151, 14, 234, 232, 179, 35, 205, 188, 213, 152, 2, 3, 236, 10, 92, 66,
777            144, 31, 213, 77, 141, 110, 43, 163, 39, 38, 14, 77, 185, 208, 68, 79, 77, 119, 209, 1,
778            102, 69, 53, 7, 160, 181, 255, 137, 109, 179, 180, 245, 124, 3, 6, 85, 76, 119, 239,
779            166, 33, 206, 225, 15, 212, 183, 195, 161, 167, 19, 145, 184, 39, 220, 84, 100, 191,
780            107, 70, 127, 110, 153, 211, 1, 41, 99, 75, 240, 229, 187, 214, 191, 2, 3, 33, 102,
781            230, 92, 86, 7, 78, 170, 73, 244, 53, 90, 64, 42, 104, 246, 227, 16, 170, 251, 222, 13,
782            108, 99, 199, 144, 212, 188, 55, 252, 172, 159, 243, 150, 220, 199, 159, 173, 1, 3, 30,
783            38, 82, 146, 107, 165, 7, 121, 30, 136, 178, 168, 114, 25, 36, 13, 68, 191, 211, 119,
784            99, 6, 17, 201, 153, 204, 15, 69, 65, 182, 79, 130, 130, 214, 198, 228, 128, 1, 3, 39,
785            228, 139, 76, 120, 12, 67, 220, 189, 113, 159, 40, 191, 56, 249, 193, 94, 64, 189, 188,
786            121, 132, 242, 188, 19, 162, 136, 93, 234, 49, 22, 125, 157, 151, 172, 147, 141, 9, 3,
787            5, 110, 212, 221, 154, 156, 118, 233, 130, 237, 158, 6, 147, 220, 242, 196, 205, 89,
788            51, 26, 207, 92, 106, 153, 127, 219, 79, 241, 47, 86, 14, 34, 85, 134, 137, 128, 135,
789            5, 3, 232, 163, 75, 103, 63, 218, 176, 22, 183, 48, 231, 231, 85, 87, 156, 156, 98, 8,
790            225, 165, 57, 223, 244, 24, 136, 61, 135, 182, 214, 56, 78, 17, 89, 228, 204, 225, 255,
791            1, 3, 115, 142, 46, 163, 219, 167, 170, 21, 143, 238, 240, 240, 74, 212, 10, 93, 87,
792            91, 227, 62, 4, 17, 138, 46, 206, 41, 41, 183, 28, 218, 129, 203, 143, 219, 143, 199,
793            157, 5, 3, 52, 201, 61, 12, 18, 127, 26, 91, 223, 29, 25, 84, 109, 125, 249, 195, 223,
794            9, 40, 46, 36, 227, 168, 136, 26, 154, 209, 213, 95, 182, 138, 138, 171, 233, 240, 192,
795            131, 1, 3, 184, 21, 99, 38, 144, 184, 67, 98, 72, 124, 169, 189, 188, 217, 192, 5, 224,
796            206, 132, 213, 35, 193, 88, 214, 78, 188, 240, 104, 233, 9, 51, 76, 192, 143, 147, 172,
797            240, 3, 3, 112, 45, 221, 240, 56, 59, 36, 186, 181, 165, 140, 68, 188, 23, 37, 211, 22,
798            24, 86, 87, 14, 198, 33, 69, 28, 249, 3, 160, 20, 186, 165, 143, 116, 238, 194, 178,
799            131, 1, 3, 23, 170, 112, 78, 7, 204, 227, 211, 93, 245, 61, 124, 142, 26, 239, 49, 30,
800            213, 119, 169, 236, 9, 246, 175, 134, 56, 108, 110, 106, 214, 239, 86, 135, 191, 210,
801            232, 205, 210, 6, 3, 12, 255, 192, 121, 194, 237, 19, 17, 151, 102, 108, 103, 204, 174,
802            146, 108, 97, 20, 88, 107, 113, 22, 68, 50, 90, 106, 135, 220, 150, 82, 145, 42, 174,
803            238, 156, 242, 128, 1, 3, 187, 56, 99, 196, 229, 246, 146, 90, 202, 43, 147, 152, 60,
804            63, 125, 222, 23, 217, 109, 85, 161, 94, 225, 112, 249, 147, 231, 186, 96, 104, 45,
805            248, 30, 212, 205, 235, 129, 2, 3, 19, 135, 245, 245, 214, 149, 29, 182, 1, 116, 87,
806            157, 57, 87, 69, 255, 108, 156, 242, 41, 59, 65, 73, 4, 200, 40, 189, 35, 166, 157,
807            239, 175, 214, 247, 196, 161, 141, 7, 3, 26, 230, 214, 237, 51, 7, 174, 242, 206, 189,
808            151, 17, 215, 29, 1, 6, 97, 21, 85, 169, 214, 0, 113, 34, 245, 247, 185, 103, 1, 55,
809            122, 170, 234, 175, 246, 223, 176, 23, 3, 64, 195, 103, 77, 197, 94, 161, 86, 77, 199,
810            86, 23, 144, 27, 148, 121, 191, 134, 88, 238, 249, 213, 145, 249, 98, 247, 194, 52,
811            202, 153, 252, 47, 125, 236, 206, 158, 126, 3, 238, 72, 213, 179, 131, 246, 255, 97,
812            203, 80, 143, 166, 57, 110, 163, 198, 100, 245, 28, 163, 160, 94, 69, 248, 60, 152,
813            209, 166, 6, 185, 71, 167, 163, 145, 155, 238, 128, 1, 3, 138, 41, 107, 125, 76, 12,
814            54, 116, 85, 193, 151, 253, 111, 71, 29, 148, 126, 74, 90, 99, 73, 37, 118, 181, 23, 5,
815            115, 43, 238, 100, 20, 183, 104, 168, 140, 168, 132, 2, 3, 171, 116, 186, 72, 217, 51,
816            62, 209, 131, 23, 86, 231, 52, 169, 209, 1, 173, 39, 238, 159, 234, 147, 177, 153, 212,
817            211, 135, 202, 155, 184, 253, 109, 134, 168, 234, 181, 104, 3, 165, 207, 136, 198, 142,
818            86, 253, 241, 180, 198, 94, 57, 233, 18, 155, 199, 139, 233, 174, 215, 142, 143, 84,
819            170, 156, 99, 225, 145, 47, 243, 162, 38, 231, 186, 249, 149, 158, 8, 3, 226, 205, 107,
820            138, 214, 189, 1, 8, 18, 120, 81, 4, 31, 146, 164, 87, 88, 152, 66, 40, 44, 180, 110,
821            233, 42, 41, 130, 85, 20, 41, 143, 129, 87, 213, 222, 227, 124, 3, 174, 12, 43, 177,
822            211, 82, 109, 153, 156, 122, 151, 229, 124, 63, 18, 214, 149, 12, 234, 134, 24, 115,
823            147, 214, 42, 134, 140, 147, 228, 148, 135, 219, 138, 146, 239, 211, 130, 1, 3, 254,
824            86, 147, 9, 140, 98, 168, 180, 174, 50, 251, 115, 190, 215, 194, 228, 253, 192, 162,
825            90, 85, 10, 249, 24, 62, 211, 67, 99, 22, 146, 230, 109, 137, 230, 252, 188, 129, 1, 3,
826            19, 197, 43, 33, 160, 131, 20, 30, 178, 208, 73, 139, 19, 6, 112, 57, 162, 237, 150,
827            15, 141, 167, 160, 93, 100, 180, 170, 96, 175, 131, 75, 150, 127, 254, 237, 183, 127,
828            3, 157, 181, 20, 71, 187, 159, 94, 134, 128, 17, 22, 250, 171, 34, 11, 251, 17, 153,
829            237, 237, 46, 229, 112, 156, 19, 75, 252, 95, 241, 237, 203, 169, 70, 242, 246, 138,
830            129, 1, 3, 130, 39, 111, 240, 80, 68, 64, 218, 144, 198, 5, 120, 141, 175, 42, 78, 191,
831            42, 132, 2, 240, 89, 244, 96, 124, 77, 30, 144, 153, 66, 32, 136, 224, 190, 138, 138,
832            157, 58, 3, 20, 85, 185, 66, 53, 81, 47, 213, 134, 231, 94, 229, 87, 93, 44, 225, 124,
833            153, 41, 214, 222, 220, 7, 152, 117, 71, 246, 229, 90, 173, 104, 163, 171, 193, 246,
834            154, 129, 1, 3, 112, 228, 238, 195, 117, 225, 164, 240, 35, 173, 171, 41, 246, 112,
835            116, 7, 160, 32, 23, 142, 177, 62, 149, 116, 248, 26, 111, 237, 66, 192, 199, 238, 251,
836            172, 187, 128, 132, 1, 3, 66, 240, 108, 170, 188, 246, 244, 59, 39, 46, 163, 64, 40,
837            133, 105, 251, 240, 203, 30, 173, 87, 9, 68, 156, 123, 118, 120, 215, 35, 192, 168, 91,
838            115, 239, 168, 152, 239, 5, 3, 234, 161, 19, 160, 80, 117, 105, 142, 139, 2, 250, 191,
839            30, 209, 120, 238, 69, 116, 106, 33, 43, 204, 37, 174, 62, 12, 125, 112, 152, 165, 153,
840            108, 14, 215, 149, 235, 127, 3, 218, 207, 61, 96, 63, 169, 207, 116, 134, 184, 9, 9,
841            195, 119, 15, 7, 48, 140, 179, 250, 116, 163, 17, 249, 35, 98, 111, 9, 234, 222, 237,
842            199, 41, 167, 169, 178, 129, 4, 3, 193, 88, 180, 154, 187, 167, 55, 244, 142, 135, 28,
843            59, 120, 254, 125, 227, 222, 63, 217, 180, 227, 183, 68, 56, 81, 117, 85, 80, 27, 43,
844            171, 117, 169, 231, 191, 136, 255, 1, 3, 221, 225, 184, 20, 58, 162, 35, 190, 129, 242,
845            121, 155, 83, 87, 29, 66, 119, 156, 136, 62, 161, 194, 57, 176, 210, 164, 29, 194, 85,
846            59, 101, 83, 248, 132, 203, 156, 143, 2, 3, 115, 92, 232, 127, 54, 72, 152, 95, 8, 52,
847            233, 251, 230, 187, 214, 29, 140, 194, 36, 202, 194, 248, 41, 109, 36, 4, 91, 161, 205,
848            21, 132, 221, 137, 191, 138, 213, 130, 1, 3, 93, 198, 84, 162, 44, 171, 107, 150, 227,
849            134, 4, 244, 129, 24, 18, 44, 238, 152, 90, 200, 178, 39, 180, 252, 20, 226, 118, 100,
850            201, 75, 192, 87, 147, 244, 173, 245, 129, 2, 3, 141, 107, 166, 116, 191, 106, 19, 178,
851            108, 124, 117, 48, 196, 182, 178, 179, 30, 192, 160, 230, 171, 52, 191, 205, 153, 239,
852            228, 220, 93, 190, 44, 171, 30, 220, 154, 212, 128, 1, 3, 126, 51, 135, 155, 51, 43,
853            83, 134, 135, 116, 93, 95, 15, 138, 121, 84, 6, 231, 202, 125, 43, 146, 219, 75, 107,
854            21, 229, 33, 46, 183, 32, 178, 196, 150, 248, 140, 129, 1, 3, 252, 191, 53, 103, 190,
855            239, 10, 45, 166, 108, 202, 167, 130, 221, 101, 122, 89, 34, 127, 130, 84, 199, 47,
856            231, 40, 166, 54, 123, 244, 218, 163, 141, 255, 152, 135, 220, 151, 60, 3, 35, 9, 209,
857            159, 224, 165, 170, 87, 151, 210, 238, 176, 159, 167, 144, 139, 91, 57, 93, 181, 166,
858            41, 249, 70, 125, 160, 199, 87, 103, 127, 207, 128, 130, 205, 232, 252, 232, 4, 3, 81,
859            79, 136, 56, 29, 96, 84, 45, 7, 149, 21, 14, 46, 116, 24, 90, 132, 219, 9, 41, 189,
860            247, 217, 132, 105, 117, 202, 97, 55, 211, 91, 183, 58, 247, 198, 159, 125, 3, 219, 71,
861            45, 240, 184, 98, 2, 93, 11, 134, 118, 64, 133, 249, 172, 240, 195, 36, 148, 4, 129,
862            53, 93, 66, 51, 202, 95, 34, 254, 90, 236, 119, 168, 185, 251, 161, 131, 1, 3, 67, 116,
863            151, 6, 88, 238, 134, 253, 132, 111, 168, 46, 159, 138, 185, 66, 238, 57, 136, 9, 218,
864            120, 153, 117, 105, 241, 111, 128, 44, 199, 181, 125, 252, 244, 236, 236, 152, 4, 3,
865            70, 113, 123, 8, 203, 96, 249, 238, 140, 63, 52, 102, 105, 3, 26, 133, 251, 222, 30,
866            250, 190, 81, 49, 58, 5, 63, 85, 223, 61, 112, 164, 241, 207, 168, 156, 181, 131, 6, 3,
867            107, 72, 13, 16, 24, 51, 79, 160, 255, 17, 145, 125, 170, 224, 159, 209, 181, 1, 67,
868            175, 215, 28, 204, 100, 186, 8, 165, 98, 133, 253, 10, 73, 116, 139, 245, 202, 151,
869            139, 4, 3, 253, 58, 194, 0, 47, 244, 117, 150, 68, 156, 46, 78, 42, 20, 14, 104, 122,
870            159, 114, 241, 184, 225, 140, 122, 165, 156, 25, 195, 47, 81, 79, 144, 210, 168, 242,
871            245, 212, 10, 3, 235, 84, 46, 107, 209, 155, 64, 137, 11, 238, 31, 103, 76, 26, 221,
872            78, 5, 1, 63, 219, 143, 229, 178, 220, 173, 192, 219, 214, 59, 219, 223, 239, 208, 239,
873            165, 229, 128, 1, 3, 166, 165, 45, 105, 184, 38, 228, 214, 202, 119, 173, 150, 254,
874            219, 10, 24, 241, 239, 155, 254, 59, 40, 240, 118, 238, 213, 106, 161, 16, 16, 61, 50,
875            237, 185, 165, 226, 132, 2, 3, 1, 97, 94, 41, 143, 250, 229, 96, 95, 45, 52, 213, 11,
876            6, 27, 192, 125, 195, 29, 192, 158, 164, 57, 169, 79, 87, 68, 7, 131, 197, 68, 230,
877            231, 235, 190, 191, 123, 3, 189, 74, 195, 239, 42, 45, 188, 17, 22, 206, 243, 222, 241,
878            201, 40, 17, 159, 17, 127, 236, 161, 75, 198, 235, 190, 115, 132, 69, 237, 244, 184, 8,
879            27, 141, 192, 192, 129, 1, 3, 37, 103, 171, 180, 254, 123, 176, 191, 82, 161, 189, 42,
880            193, 50, 241, 120, 22, 140, 62, 98, 143, 92, 209, 61, 36, 47, 233, 234, 140, 32, 18,
881            34, 41, 177, 247, 150, 209, 20, 3, 198, 7, 153, 138, 157, 60, 105, 172, 208, 188, 119,
882            183, 134, 190, 64, 162, 88, 21, 190, 97, 80, 173, 91, 59, 128, 66, 4, 110, 99, 31, 203,
883            222, 104, 132, 176, 145, 131, 1, 3, 52, 188, 19, 32, 43, 137, 136, 134, 216, 13, 166,
884            144, 89, 165, 67, 127, 124, 13, 128, 187, 25, 151, 17, 64, 120, 232, 154, 196, 218,
885            121, 27, 232, 122, 176, 237, 147, 129, 1, 3, 93, 81, 215, 108, 40, 1, 121, 45, 180,
886            241, 112, 157, 47, 9, 175, 106, 34, 240, 76, 97, 87, 217, 125, 140, 134, 163, 213, 116,
887            106, 7, 74, 7, 16, 249, 249, 249, 132, 2, 3, 147, 248, 217, 118, 172, 12, 60, 87, 211,
888            132, 235, 251, 196, 8, 138, 244, 86, 11, 188, 11, 173, 213, 131, 141, 242, 226, 27,
889            226, 209, 165, 191, 4, 203, 228, 206, 156, 131, 2, 3, 96, 135, 31, 118, 16, 175, 51,
890            232, 182, 57, 175, 113, 199, 58, 200, 42, 87, 205, 106, 56, 114, 247, 203, 57, 187,
891            210, 64, 229, 240, 21, 15, 89, 155, 206, 224, 227, 185, 15, 3, 213, 174, 237, 38, 137,
892            161, 166, 22, 250, 190, 38, 53, 162, 72, 61, 104, 76, 251, 178, 113, 243, 195, 212,
893            140, 75, 33, 146, 234, 240, 92, 230, 166, 134, 211, 154, 194, 138, 7, 3, 209, 234, 31,
894            70, 188, 125, 63, 140, 207, 214, 237, 237, 251, 194, 19, 215, 102, 233, 242, 86, 151,
895            186, 132, 112, 149, 6, 35, 131, 251, 5, 239, 190, 157, 73, 1, 190, 47, 58, 49, 109,
896            223, 242, 235, 155, 152, 255, 65, 116, 25, 24, 149, 146, 144, 30, 8, 150, 106, 129,
897            241, 77, 167, 210, 126, 43, 11, 247, 150, 2, 4, 243, 221, 94, 176, 3, 32, 230, 222,
898            234, 62, 23, 138, 112, 133, 94, 48, 17, 141, 27, 248, 89, 154, 154, 237, 224, 70, 6,
899            216, 88, 134, 42, 43, 78, 99, 127, 116, 178, 62, 0, 96, 78, 174, 240, 87, 120, 243, 39,
900            191, 99, 150, 206, 105, 9, 176, 171, 113, 205, 150, 153, 243, 103, 229, 22, 164, 15,
901            241, 245, 119, 20, 113, 29, 194, 183, 171, 171, 230, 143, 216, 240, 106, 137, 113, 157,
902            187, 24, 69, 233, 136, 159, 128, 193, 208, 149, 79, 199, 15, 241, 106, 199, 116, 102,
903            78, 40, 133, 42, 238, 155, 237, 231, 104, 162, 14, 153, 171, 96, 132, 60, 234, 88, 34,
904            26, 231, 71, 23, 118, 237, 107, 77, 76, 141, 79, 137, 77, 129, 254, 141, 90, 143, 115,
905            225, 207, 6, 187, 236, 203, 129, 158, 2, 252, 150, 200, 63, 166, 12, 81, 165, 197, 202,
906            218, 179, 71, 128, 93, 81, 181, 73, 5, 6, 0, 251, 202, 10, 108, 235, 123, 59, 32, 46,
907            118, 90, 167, 210, 95, 17, 30, 4, 170, 1, 21, 93, 28, 108, 241, 254, 22, 240, 14, 131,
908            132, 64, 15, 43, 230, 81, 18, 77, 27, 189, 97, 245, 117, 60, 140, 133, 197, 194, 110,
909            237, 56, 135, 255, 82, 194, 125, 27, 124, 207, 187, 68, 194, 89, 70, 42, 148, 202, 178,
910            138, 154, 139, 246, 25, 252, 13, 223, 37, 167, 150, 244, 109, 154, 152, 89, 16, 179,
911            253, 75, 0, 29, 115, 31, 54, 43, 219, 204, 45, 49, 174, 8, 135, 134, 168, 107, 105, 31,
912            47, 120, 55, 180, 61, 223, 161, 1, 143, 111, 239, 209, 232, 50, 74, 73, 63, 78, 109,
913            23, 97, 221, 4, 212, 180, 55, 8, 221, 141, 146, 145, 175, 116, 248, 32, 240, 189, 124,
914            16, 30, 66, 206, 5, 72, 216, 167, 255, 11, 201, 105, 129, 151, 143, 26, 245, 149, 34,
915            86, 127, 184, 221, 219, 137, 234, 152, 126, 10, 116, 60, 203, 94, 28, 96, 110, 59, 172,
916            252, 112, 230, 140, 42, 152, 179, 226, 34, 164, 120, 221, 31, 36, 24, 160, 100, 44,
917            253, 4, 174, 17, 231, 1, 117, 184, 169, 97, 69, 123, 172, 68, 12, 150, 168, 117, 39,
918            194, 241, 13, 103, 114, 18, 253, 140, 214, 15, 17, 7, 133, 9, 177, 134, 210, 20, 167,
919            20, 95, 163, 187, 193, 113, 190, 219, 213, 56, 20, 235, 6, 153, 246, 59, 76, 125, 111,
920            122, 198, 181, 121, 44, 21, 36, 158, 108, 86, 94, 64, 194, 234, 33, 231, 60, 23, 158,
921            78, 200, 91, 8, 52, 179, 86, 12, 237, 195, 108, 222, 166, 102, 180, 168, 78, 95, 218,
922            56, 131, 177, 100, 244, 131, 243, 247, 144, 220, 62, 231, 244, 184, 67, 71, 122, 8,
923            252, 210, 191, 99, 81, 130, 113, 48, 46, 194, 3, 21, 108, 243, 22, 201, 193, 160, 94,
924            148, 63, 67, 18, 249, 108, 40, 70, 87, 10, 74, 62, 191, 176, 218, 196, 41, 199, 11,
925            235, 85, 163, 38, 148, 25, 110, 34, 158, 186, 207, 24, 100, 122, 11, 60, 221, 18, 131,
926            10, 217, 57, 171, 47, 244, 29, 251, 187, 27, 241, 169, 79, 184, 178, 51, 251, 120, 52,
927            229, 119, 242, 173, 68, 222, 135, 119, 79, 111, 89, 4, 23, 17, 169, 37, 9, 37, 166,
928            167, 60, 229, 147, 158, 237, 171, 62, 106, 126, 48, 46, 130, 72, 167, 156, 140, 220,
929            229, 100, 136, 136, 70, 212, 104, 52, 0, 143, 217, 31, 193, 158, 189, 218, 73, 54, 137,
930            11, 108, 61, 225, 138, 190, 143, 95, 135, 226, 168, 55, 71, 111, 48, 61, 90, 104, 254,
931            188, 152, 42, 5, 95, 241, 162, 6, 78, 195, 211, 251, 128, 207, 37, 214, 204, 234, 140,
932            36, 205, 155, 244, 131, 14, 175, 193, 43, 42, 19, 140, 231, 163, 234, 244, 24, 28, 194,
933            210, 51, 193, 22, 129, 135, 56, 155, 73, 61, 107, 41, 81, 204, 0, 118, 99, 25, 85, 132,
934            66, 163, 189, 90, 48, 148, 28, 221, 2, 63, 243, 132, 79, 35, 17, 137, 3, 19, 107, 57,
935            12, 28, 84, 199, 152, 237, 187, 37, 48, 131, 85, 30, 222, 7, 15, 152, 75, 10, 74, 82,
936            188, 178, 122, 57, 99, 252, 10, 220, 105, 60, 63, 108, 181, 41, 61, 242, 161, 40, 81,
937            25, 125, 139, 2, 125, 19, 99, 239, 190, 117, 5, 224, 148, 162, 248, 188, 70, 198, 216,
938            147, 184, 115, 58, 188, 57, 130, 120, 72, 107, 190, 155, 73, 238, 6, 220, 138, 29, 23,
939            93, 129, 113, 122, 63, 218, 150, 112, 45, 74, 117, 63, 7, 133, 251, 169, 228, 21, 242,
940            118, 175, 213, 24, 237, 112, 140, 85, 44, 196, 194, 126, 72, 235, 56, 33, 94, 164, 90,
941            154, 24, 205, 97, 226, 31, 155, 23, 16, 246, 37, 165, 117, 16, 38, 54, 153, 179, 206,
942            237, 113, 219, 167, 179, 151, 100, 131, 157, 104, 216, 47, 22, 18, 91, 151, 27, 190,
943            135, 208, 82, 192, 231, 74, 226, 187, 15, 192, 112, 239, 132, 214, 253, 36, 79, 104,
944            241, 142, 45, 53, 45, 190, 189, 195, 242, 90, 29, 165, 76, 36, 208, 1, 224, 23, 229,
945            109, 130, 117, 50, 74, 142, 49, 161, 143, 165, 87, 67, 241, 83, 52, 52, 250, 12, 160,
946            228, 100, 122, 32, 4, 12, 250, 13, 2, 182, 236, 130, 127, 166, 245, 218, 107, 41, 145,
947            168, 62, 196, 188, 223, 35, 136, 72, 90, 152, 37, 22, 133, 107, 197, 79, 131, 8, 52,
948            108, 229, 230, 89, 103, 45, 106, 110, 226, 117, 175, 99, 226, 64, 151, 179, 82, 220,
949            159, 199, 217, 6, 104, 29, 84, 73, 178, 98, 55, 95, 22, 230, 16, 34, 13, 52, 57, 79,
950            100, 139, 32, 119, 153, 154, 131, 16, 64, 70, 85, 27, 160, 202, 25, 207, 78, 39, 72,
951            49, 71, 144, 221, 208, 144, 95, 162, 49, 133, 130, 15, 140, 197, 182, 18, 128, 182,
952            219, 115, 71, 179, 82, 40, 119, 39, 229, 90, 54, 221, 70, 205, 24, 17, 2, 22, 231, 12,
953            10, 226, 110, 171, 214, 22, 132, 32, 71, 173, 108, 44, 233, 209, 55, 176, 88, 169, 112,
954            215, 84, 22, 56, 134, 90, 25, 67, 6, 166, 61, 87, 2, 191, 13, 111, 208, 218, 236, 197,
955            201, 70, 248, 92, 190, 239, 123, 215, 10, 10, 19, 255, 248, 21, 105, 164, 73, 183, 88,
956            216, 53, 128, 1, 55, 245, 210, 12, 65, 80, 102, 19, 227, 36, 207, 82, 234, 51, 64, 31,
957            202, 71, 23, 97, 183, 169, 176, 69, 126, 103, 43, 160, 115, 50, 174, 84, 38, 34, 253,
958            172, 48, 217, 182, 139, 88, 175, 246, 161, 222, 71, 133, 25, 235, 38, 222, 26, 35, 16,
959            181, 59, 161, 192, 231, 125, 232, 30, 155, 189, 17, 31, 168, 103, 51, 137, 137, 18,
960            232, 196, 116, 93, 23, 179, 238, 181, 225, 188, 14, 183, 73, 202, 167, 238, 217, 139,
961            37, 39, 190, 75, 213, 94, 170, 153, 149, 71, 77, 180, 182, 21, 181, 159, 214, 218, 107,
962            247, 132, 80, 53, 23, 135, 114, 190, 168, 76, 82, 97, 115, 58, 169, 247, 92, 217, 36,
963            247, 228, 166, 106, 248, 4, 228, 152, 89, 60, 44, 201, 201, 119, 80, 239, 201, 17, 12,
964            67, 104, 95, 119, 20, 79, 55, 108, 132, 221, 18, 87, 185, 175, 110, 238, 89, 54, 73,
965            177, 190, 237, 60, 217, 151, 72, 43, 157, 216, 92, 60, 172, 255, 79, 210, 112, 203,
966            115, 33, 36, 197, 133, 178, 218, 139, 84, 59, 102, 97, 86, 231, 149, 224, 23, 16, 225,
967            31, 179, 56, 72, 198, 205, 249, 163, 165, 37, 91, 181, 5, 177, 3, 13, 128, 30, 173, 15,
968            223, 194, 36, 108, 57, 181, 122, 43, 7, 163, 135, 43, 32, 194, 122, 32, 58, 61, 211,
969            40, 70, 70, 11, 69, 196, 195, 178, 46, 87, 243, 193, 251, 235, 37, 101, 48, 151, 83,
970            170, 22, 68, 8, 7, 81, 243, 205, 149, 89, 198, 253, 112, 85, 211, 203, 39, 29, 69, 212,
971            152, 48, 126, 19, 178, 45, 232, 171, 104, 63, 122, 31, 143, 219, 98, 174, 173, 89, 5,
972            16, 79, 72, 128, 192, 103, 212, 122, 199, 220, 57, 149, 27, 173, 184, 215, 93, 76, 123,
973            225, 31, 90, 142, 69, 9, 102, 179, 109, 204, 197, 245, 24, 248, 4, 190, 243, 117, 23,
974            127, 192, 119, 234, 37, 36, 10, 42, 177, 57, 135, 100, 229, 88, 43, 125, 51, 136, 227,
975            161, 178, 85, 29, 44, 198, 167, 154, 24, 228, 65, 72, 3, 108, 206, 207, 131, 177, 228,
976            171, 170, 10, 51, 177, 186, 212, 9, 178, 97, 67, 102, 48, 137, 177, 160, 240, 221, 126,
977            4, 12, 80, 220, 181, 45, 30, 78, 33, 204, 167, 27, 242, 91, 125, 172, 90, 146, 114, 70,
978            231, 24, 153, 170, 74, 222, 77, 218, 46, 32, 97, 64, 140, 159, 241, 203, 118, 90, 106,
979            148, 23, 161, 78, 216, 55, 49, 61, 93, 103, 66, 237, 106, 64, 251, 15, 228, 223, 176,
980            254, 212, 15, 181, 53, 60, 243, 60, 87, 226, 186, 12, 99, 43, 205, 10, 183, 139, 249,
981            182, 131, 232, 99, 83, 77, 141, 176, 133, 13, 33, 68, 87, 31, 169, 101, 53, 114, 47,
982            23, 61, 14, 188, 152, 85, 119, 111, 173, 34, 128, 22, 190, 54, 51, 114, 165, 32, 139,
983            208, 188, 12, 22, 230, 254, 115, 150, 100, 23, 64, 100, 212, 6, 90, 84, 204, 19, 117,
984            161, 17, 27, 142, 61, 102, 42, 62, 11, 146, 22, 222, 58, 81, 224, 113, 214, 215, 243,
985            32, 153, 132, 157, 2, 178, 188, 243, 131, 140, 67, 236, 32, 153, 117, 46, 109, 94, 135,
986            127, 203, 201, 83, 100, 100, 122, 176, 219, 178, 172, 40, 196, 208, 184, 215, 57, 145,
987            68, 130, 100, 105, 146, 194, 182, 214, 92, 246, 168, 73, 28, 131, 227, 85, 216, 92,
988            221, 193, 19, 232, 23, 16, 247, 199, 233, 192, 37, 215, 198, 43, 235, 69, 68, 20, 238,
989            73, 188, 74, 103, 154, 111, 141, 170, 33, 230, 251, 73, 156, 240, 197, 227, 20, 47,
990            167, 129, 149, 103, 216, 11, 207, 124, 66, 253, 73, 138, 166, 21, 68, 167, 151, 87, 12,
991            53, 88, 89, 168, 51, 51, 95, 7, 131, 225, 146, 149, 129, 30, 140, 111, 181, 70, 8, 228,
992            168, 171, 231, 37, 3, 237, 169, 87, 79, 239, 203, 156, 45, 100, 85, 201, 95, 60, 174,
993            15, 209, 116, 25, 78, 157, 248, 205, 152, 52, 220, 167, 121, 92, 236, 107, 232, 196,
994            30, 48, 184, 181, 48, 137, 63, 198, 163, 8, 25, 62, 230, 169, 110, 96, 2, 169, 232, 64,
995            146, 125, 90, 201, 183, 128, 97, 70, 176, 83, 156, 252, 37, 128, 120, 160, 227, 62,
996            209, 98, 5, 211, 18, 37, 177, 65, 182, 177, 161, 60, 222, 61, 217, 247, 98, 216, 28,
997            132, 45, 94, 204, 183, 147, 215, 158, 148, 119, 150, 20, 206, 120, 209, 88, 227, 177,
998            117, 7, 155, 233, 125, 80, 70, 243, 244, 116, 157, 159, 145, 220, 17, 124, 128, 5, 253,
999            69, 126, 146, 105, 91, 171, 65, 229, 159, 116, 185, 133, 136, 14, 130, 25, 98, 175,
1000            244, 209, 117, 131, 188, 56, 230, 163, 176, 210, 88, 190, 171, 139, 1, 162, 137, 195,
1001            177, 87, 226, 71, 49, 214, 131, 214, 27, 177, 235, 185, 166, 121, 57, 47, 231, 236,
1002            137, 76, 193, 9, 92, 146, 130, 238, 141, 38, 36, 187, 3, 105, 14, 182, 207, 29, 79, 62,
1003            106, 52, 218, 20, 74, 206, 4, 123, 12, 247, 59, 35, 2, 140, 206, 81, 0, 229, 50, 232,
1004            205, 156, 41, 220, 54, 39, 199, 174, 199, 176, 57, 24, 201, 248, 216, 142, 138, 144,
1005            54, 105, 75, 234, 134, 83, 41, 9, 107, 25, 254, 162, 47, 241, 189, 130, 229, 101, 56,
1006            127, 214, 225, 61, 29, 18, 79, 105, 150, 161, 46, 90, 253, 217, 148, 110, 176, 155,
1007            226, 167, 212, 18, 201, 201, 200, 41, 111, 253, 37, 98, 243, 29, 112, 14, 249, 251,
1008            102, 66, 63, 183, 103, 120, 138, 60, 163, 200, 251, 196, 62, 67, 171, 91, 151, 160, 4,
1009            88, 182, 27, 18, 176, 200, 131, 120, 48, 181, 114, 184, 168, 143, 139, 233, 110, 145,
1010            226, 32, 168, 210, 81, 97, 146, 121, 170, 59, 204, 140, 62, 29, 9, 216, 86, 253, 232,
1011            78, 218, 137, 18, 148, 16, 217, 231, 206, 244, 149, 220, 56, 63, 22, 54, 43, 71, 115,
1012            52, 138, 51, 91, 173, 204, 131, 96, 199, 168, 200, 164, 208, 40, 116, 238, 147, 171,
1013            240, 57, 203, 115, 37, 131, 154, 60, 52, 153, 23, 27, 199, 40, 207, 255, 204, 208, 81,
1014            171, 103, 68, 157, 130, 52, 73, 137, 175, 114, 130, 201, 153, 188, 223, 23, 67, 185,
1015            99, 231, 117, 148, 44, 73, 220, 157, 52, 20, 209, 145, 96, 162, 240, 40, 83, 30, 167,
1016            111, 199, 139, 51, 92, 198, 182, 183, 236, 182, 63, 189, 242, 73, 228, 215, 186, 192,
1017            224, 22, 166, 242, 39, 149, 127, 56, 212, 159, 114, 111, 156, 98, 191, 147, 83, 168,
1018            134, 96, 214, 147, 137, 254, 45, 104, 225, 149, 128, 85, 30, 213, 113, 91, 39, 142,
1019            151, 179, 109, 104, 228, 143, 197, 13, 20, 210, 240, 44, 12, 218, 10, 134, 205, 41, 94,
1020            106, 207, 104, 130, 24, 30, 198, 111, 226, 147, 118, 43, 253, 35, 198, 122, 138, 202,
1021            71, 233, 19, 170, 200, 72, 205, 14, 121, 59, 79, 194, 110, 55, 146, 163, 0, 223, 194,
1022            135, 151, 140, 142, 212, 195, 33, 50, 227, 225, 128, 231, 66, 28, 176, 37, 208, 51,
1023            221, 231, 249, 251, 187, 252, 215, 169, 42, 172, 160, 149, 4, 145, 220, 143, 205, 150,
1024            30, 23, 234, 1, 104, 200, 79, 122, 137, 245, 167, 71, 76, 77, 176, 78, 34, 236, 102,
1025            233, 212, 223, 244, 3, 242, 113, 12, 105, 80, 94, 56, 68, 210, 186, 66, 122, 181, 181,
1026            40, 100, 57, 7, 74, 208, 147, 74, 123, 71, 115, 29, 225, 241, 24, 144, 150, 216, 37,
1027            56, 205, 168, 115, 252, 218, 41, 19, 60, 166, 140, 227, 129, 75, 162, 109, 133, 235,
1028            14, 91, 62, 39, 102, 156, 203, 21, 147, 103, 252, 13, 1, 106, 125, 211, 136, 212, 89,
1029            16, 5, 191, 34, 99, 47, 151, 219, 64, 151, 233, 96, 47, 152, 237, 141, 88, 89, 21, 42,
1030            245, 247, 95, 250, 254, 227, 136, 7, 175, 64, 7, 164, 72, 244, 16, 17, 17, 91, 120,
1031            179, 33, 240, 116, 159, 90, 69, 168, 120, 59, 62, 5, 209, 134, 182, 86, 94, 62, 48,
1032            101, 46, 224, 142, 230, 13, 32, 135, 150, 144, 128, 238, 220, 155, 137, 4, 95, 90, 57,
1033            122, 111, 80, 172, 35, 69, 250, 162, 3, 56, 255, 152, 58, 253, 32, 121, 90, 99, 53,
1034            155, 21, 185, 93, 144, 64, 110, 109, 33, 188, 75, 169, 229, 104, 237, 193, 105, 222,
1035            250, 250, 230, 90, 54, 179, 235, 149, 34, 37, 51, 108, 66, 76, 115, 212, 120, 223, 207,
1036            111, 209, 204, 113, 206, 12, 29, 248, 206, 160, 234, 100, 190, 13, 155, 34, 122, 172,
1037            84, 157, 236, 111, 206, 175, 233, 52, 40, 9, 235, 65, 250, 51, 52, 83, 97, 100, 237,
1038            118, 26, 240, 219, 52, 142, 82, 149, 79, 178, 240, 99, 117, 23, 105, 62, 150, 0, 115,
1039            162, 103, 221, 38, 101, 247, 213, 252, 51, 109, 179, 212, 63, 182, 140, 37, 251, 104,
1040            234, 120, 171, 31, 188, 160, 92, 32, 31, 236, 147, 173, 146, 89, 177, 43, 206, 99, 0,
1041            62, 116, 148, 199, 152, 140, 191, 254, 163, 174, 119, 79, 114, 172, 168, 5, 104, 208,
1042            122, 236, 83, 138, 21, 102, 218, 133, 5, 162, 254, 58, 190, 162, 87, 6, 37, 221, 85,
1043            128, 249, 113, 204, 59, 176, 121, 76, 224, 248, 77, 7, 194, 199, 182, 74, 25, 81, 244,
1044            1, 21, 103, 127, 242, 0, 188, 225, 67, 192, 81, 248, 173, 123, 79, 185, 88, 246, 79,
1045            177, 111, 174, 2, 196, 165, 166, 83, 48, 41, 194, 37, 95, 187, 130, 99, 75, 48, 164,
1046            23, 251, 194, 246, 161, 229, 194, 210, 53, 38, 86, 118, 214, 167, 16, 164, 61, 109,
1047            132, 104, 98, 193, 178, 117, 135, 205, 193, 135, 220, 118, 128, 171, 203, 34, 152, 220,
1048            162, 227, 92, 204, 216, 125, 111, 102, 250, 47, 102, 251, 207, 189, 80, 228, 91, 71,
1049            82, 98, 67, 200, 198, 156, 57, 150, 114, 102, 192, 49, 131, 43, 27, 95, 228, 241, 1,
1050            121, 207, 55, 6, 7, 244, 173, 7, 155, 79, 109, 218, 71, 95, 219, 198, 161, 249, 170,
1051            81, 185, 36, 28, 210, 184, 55, 173, 202, 122, 42, 178, 101, 41, 4, 110, 186, 233, 210,
1052            182, 154, 75, 8, 239, 104, 108, 128, 217, 83, 235, 106, 155, 9, 60, 217, 30, 12, 48,
1053            122, 180, 19, 64, 43, 203, 209, 156, 48, 246, 68, 59, 197, 176, 62, 158, 210, 137, 247,
1054            74, 88, 249, 245, 19, 82, 62, 135, 226, 71, 141, 151, 179, 184, 232, 229, 196, 9, 207,
1055            228, 211, 27, 87, 228, 252, 191, 242, 30, 15, 99, 53, 93, 233, 37, 96, 94, 11, 17, 58,
1056            1, 239, 236, 44, 2, 12, 85, 87, 248, 98, 199, 243, 26, 71, 129, 47, 13, 52, 184, 218,
1057            58, 170, 47, 242, 87, 139, 42, 173, 237, 131, 151, 221, 51, 214, 224, 180, 207, 219,
1058            71, 152, 163, 228, 14, 5, 144, 245, 121, 232, 178, 247, 22, 193, 165, 27, 118, 239,
1059            121, 49, 216, 40, 215, 186, 159, 112, 185, 136, 153, 103, 165, 6, 147, 238, 150, 174,
1060            117, 76, 152, 104, 49, 156, 133, 35, 133, 128, 18, 142, 127, 158, 60, 119, 16, 48, 242,
1061            37, 73, 209, 238, 166, 125, 126, 170, 31, 164, 173, 134, 167, 212, 188, 59, 59, 215,
1062            197, 208, 100, 8, 3, 73, 43, 62, 121, 95, 215, 152, 164, 27, 25, 99, 117, 114, 114,
1063            101, 110, 116, 95, 98, 108, 111, 99, 107, 99, 104, 97, 105, 110, 95, 104, 101, 105,
1064            103, 104, 116, 5, 209, 45, 42, 0, 0, 0, 0, 0,
1065        ];
1066        let fluffy_block: NewFluffyBlock =
1067            cuprate_epee_encoding::from_bytes(&mut &bytes[..]).unwrap();
1068
1069        let mut encoded_bytes = cuprate_epee_encoding::to_bytes(fluffy_block.clone()).unwrap();
1070        let fluffy_block_2: NewFluffyBlock =
1071            cuprate_epee_encoding::from_bytes(&mut encoded_bytes).unwrap();
1072
1073        assert_eq!(fluffy_block, fluffy_block_2);
1074    }
1075}