brotli_decompressor/huffman/
tests.rs

1#[cfg(test)]
2
3use super::*;
4#[test]
5fn code_length_ht() {
6  let code_lengths: [u8; 19] = [0, 2, 3, 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
7  let count: [u16; 6] = [0, 0, 3, 2, 0, 0];
8  let mut table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] =
9    [HuffmanCode {
10      value: 0,
11      bits: 0,
12    }; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH];
13  BrotliBuildCodeLengthsHuffmanTable(&mut table, &code_lengths, &count);
14  let end_table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] = [HuffmanCode {
15                                                                                     bits: 2,
16                                                                                     value: 1,
17                                                                                   },
18                                                                                   HuffmanCode {
19                                                                                     bits: 2,
20                                                                                     value: 6,
21                                                                                   },
22                                                                                   HuffmanCode {
23                                                                                     bits: 2,
24                                                                                     value: 4,
25                                                                                   },
26                                                                                   HuffmanCode {
27                                                                                     bits: 3,
28                                                                                     value: 2,
29                                                                                   },
30                                                                                   HuffmanCode {
31                                                                                     bits: 2,
32                                                                                     value: 1,
33                                                                                   },
34                                                                                   HuffmanCode {
35                                                                                     bits: 2,
36                                                                                     value: 6,
37                                                                                   },
38                                                                                   HuffmanCode {
39                                                                                     bits: 2,
40                                                                                     value: 4,
41                                                                                   },
42                                                                                   HuffmanCode {
43                                                                                     bits: 3,
44                                                                                     value: 5,
45                                                                                   },
46                                                                                   HuffmanCode {
47                                                                                     bits: 2,
48                                                                                     value: 1,
49                                                                                   },
50                                                                                   HuffmanCode {
51                                                                                     bits: 2,
52                                                                                     value: 6,
53                                                                                   },
54                                                                                   HuffmanCode {
55                                                                                     bits: 2,
56                                                                                     value: 4,
57                                                                                   },
58                                                                                   HuffmanCode {
59                                                                                     bits: 3,
60                                                                                     value: 2,
61                                                                                   },
62                                                                                   HuffmanCode {
63                                                                                     bits: 2,
64                                                                                     value: 1,
65                                                                                   },
66                                                                                   HuffmanCode {
67                                                                                     bits: 2,
68                                                                                     value: 6,
69                                                                                   },
70                                                                                   HuffmanCode {
71                                                                                     bits: 2,
72                                                                                     value: 4,
73                                                                                   },
74                                                                                   HuffmanCode {
75                                                                                     bits: 3,
76                                                                                     value: 5,
77                                                                                   },
78                                                                                   HuffmanCode {
79                                                                                     bits: 2,
80                                                                                     value: 1,
81                                                                                   },
82                                                                                   HuffmanCode {
83                                                                                     bits: 2,
84                                                                                     value: 6,
85                                                                                   },
86                                                                                   HuffmanCode {
87                                                                                     bits: 2,
88                                                                                     value: 4,
89                                                                                   },
90                                                                                   HuffmanCode {
91                                                                                     bits: 3,
92                                                                                     value: 2,
93                                                                                   },
94                                                                                   HuffmanCode {
95                                                                                     bits: 2,
96                                                                                     value: 1,
97                                                                                   },
98                                                                                   HuffmanCode {
99                                                                                     bits: 2,
100                                                                                     value: 6,
101                                                                                   },
102                                                                                   HuffmanCode {
103                                                                                     bits: 2,
104                                                                                     value: 4,
105                                                                                   },
106                                                                                   HuffmanCode {
107                                                                                     bits: 3,
108                                                                                     value: 5,
109                                                                                   },
110                                                                                   HuffmanCode {
111                                                                                     bits: 2,
112                                                                                     value: 1,
113                                                                                   },
114                                                                                   HuffmanCode {
115                                                                                     bits: 2,
116                                                                                     value: 6,
117                                                                                   },
118                                                                                   HuffmanCode {
119                                                                                     bits: 2,
120                                                                                     value: 4,
121                                                                                   },
122                                                                                   HuffmanCode {
123                                                                                     bits: 3,
124                                                                                     value: 2,
125                                                                                   },
126                                                                                   HuffmanCode {
127                                                                                     bits: 2,
128                                                                                     value: 1,
129                                                                                   },
130                                                                                   HuffmanCode {
131                                                                                     bits: 2,
132                                                                                     value: 6,
133                                                                                   },
134                                                                                   HuffmanCode {
135                                                                                     bits: 2,
136                                                                                     value: 4,
137                                                                                   },
138                                                                                   HuffmanCode {
139                                                                                     bits: 3,
140                                                                                     value: 5,
141                                                                                   }];
142  for index in 0..end_table.len() {
143    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
144               [index, end_table[index].bits as usize, end_table[index].value as usize]);
145    assert!(table[index] == end_table[index]);
146  }
147}
148#[test]
149fn code_length_stringy_ht() {
150  let code_lengths: [u8; 19] = [1, 0, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
151  let count: [u16; 6] = [0, 1, 1, 2, 0, 0];
152  let mut table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] =
153    [HuffmanCode {
154      value: 0,
155      bits: 0,
156    }; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH];
157  BrotliBuildCodeLengthsHuffmanTable(&mut table, &code_lengths, &count);
158  let end_table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] = [HuffmanCode {
159                                                                                     bits: 1,
160                                                                                     value: 0,
161                                                                                   },
162                                                                                   HuffmanCode {
163                                                                                     bits: 2,
164                                                                                     value: 4,
165                                                                                   },
166                                                                                   HuffmanCode {
167                                                                                     bits: 1,
168                                                                                     value: 0,
169                                                                                   },
170                                                                                   HuffmanCode {
171                                                                                     bits: 3,
172                                                                                     value: 2,
173                                                                                   },
174                                                                                   HuffmanCode {
175                                                                                     bits: 1,
176                                                                                     value: 0,
177                                                                                   },
178                                                                                   HuffmanCode {
179                                                                                     bits: 2,
180                                                                                     value: 4,
181                                                                                   },
182                                                                                   HuffmanCode {
183                                                                                     bits: 1,
184                                                                                     value: 0,
185                                                                                   },
186                                                                                   HuffmanCode {
187                                                                                     bits: 3,
188                                                                                     value: 3,
189                                                                                   },
190                                                                                   HuffmanCode {
191                                                                                     bits: 1,
192                                                                                     value: 0,
193                                                                                   },
194                                                                                   HuffmanCode {
195                                                                                     bits: 2,
196                                                                                     value: 4,
197                                                                                   },
198                                                                                   HuffmanCode {
199                                                                                     bits: 1,
200                                                                                     value: 0,
201                                                                                   },
202                                                                                   HuffmanCode {
203                                                                                     bits: 3,
204                                                                                     value: 2,
205                                                                                   },
206                                                                                   HuffmanCode {
207                                                                                     bits: 1,
208                                                                                     value: 0,
209                                                                                   },
210                                                                                   HuffmanCode {
211                                                                                     bits: 2,
212                                                                                     value: 4,
213                                                                                   },
214                                                                                   HuffmanCode {
215                                                                                     bits: 1,
216                                                                                     value: 0,
217                                                                                   },
218                                                                                   HuffmanCode {
219                                                                                     bits: 3,
220                                                                                     value: 3,
221                                                                                   },
222                                                                                   HuffmanCode {
223                                                                                     bits: 1,
224                                                                                     value: 0,
225                                                                                   },
226                                                                                   HuffmanCode {
227                                                                                     bits: 2,
228                                                                                     value: 4,
229                                                                                   },
230                                                                                   HuffmanCode {
231                                                                                     bits: 1,
232                                                                                     value: 0,
233                                                                                   },
234                                                                                   HuffmanCode {
235                                                                                     bits: 3,
236                                                                                     value: 2,
237                                                                                   },
238                                                                                   HuffmanCode {
239                                                                                     bits: 1,
240                                                                                     value: 0,
241                                                                                   },
242                                                                                   HuffmanCode {
243                                                                                     bits: 2,
244                                                                                     value: 4,
245                                                                                   },
246                                                                                   HuffmanCode {
247                                                                                     bits: 1,
248                                                                                     value: 0,
249                                                                                   },
250                                                                                   HuffmanCode {
251                                                                                     bits: 3,
252                                                                                     value: 3,
253                                                                                   },
254                                                                                   HuffmanCode {
255                                                                                     bits: 1,
256                                                                                     value: 0,
257                                                                                   },
258                                                                                   HuffmanCode {
259                                                                                     bits: 2,
260                                                                                     value: 4,
261                                                                                   },
262                                                                                   HuffmanCode {
263                                                                                     bits: 1,
264                                                                                     value: 0,
265                                                                                   },
266                                                                                   HuffmanCode {
267                                                                                     bits: 3,
268                                                                                     value: 2,
269                                                                                   },
270                                                                                   HuffmanCode {
271                                                                                     bits: 1,
272                                                                                     value: 0,
273                                                                                   },
274                                                                                   HuffmanCode {
275                                                                                     bits: 2,
276                                                                                     value: 4,
277                                                                                   },
278                                                                                   HuffmanCode {
279                                                                                     bits: 1,
280                                                                                     value: 0,
281                                                                                   },
282                                                                                   HuffmanCode {
283                                                                                     bits: 3,
284                                                                                     value: 3,
285                                                                                   }];
286  for index in 0..end_table.len() {
287    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
288               [index, end_table[index].bits as usize, end_table[index].value as usize]);
289    assert!(table[index] == end_table[index]);
290  }
291}
292#[test]
293fn code_length_single_value_ht() {
294  let code_lengths: [u8; 19] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0];
295  let count: [u16; 6] = [0, 1, 0, 0, 0, 0];
296  let mut table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] =
297    [HuffmanCode {
298      value: 0,
299      bits: 0,
300    }; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH];
301  BrotliBuildCodeLengthsHuffmanTable(&mut table, &code_lengths, &count);
302  let end_table: [HuffmanCode; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH] =
303    [HuffmanCode {
304      bits: 0,
305      value: 9,
306    }; 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH];
307  for index in 0..end_table.len() {
308    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
309               [index, end_table[index].bits as usize, end_table[index].value as usize]);
310    assert!(table[index] == end_table[index]);
311  }
312}
313
314#[test]
315fn complex() {
316  let symbol_array: [u16; BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 +
317                          BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE] =
318    [65535, 65535, 65535, 72, 15, 0, 65, 5, 6, 66, 19, 65535, 65535, 65535, 65535, 65535, 1, 2, 3,
319     4, 57, 16, 7, 8, 9, 10, 11, 12, 13, 14, 17, 73, 69, 18, 64, 20, 21, 22, 23, 24, 25, 26, 27,
320     28, 37, 31, 47, 34, 36, 103, 37, 36, 44, 38, 39, 40, 41, 49, 43, 46, 48, 50, 51, 50, 49, 138,
321     55, 58, 68, 61, 56, 57, 62, 77, 88, 66, 76, 71, 63, 64, 67, 68, 127, 71, 117, 114, 73, 74,
322     77, 76, 102, 86, 116, 255, 79, 80, 84, 82, 83, 87, 92, 93, 94, 95, 89, 90, 91, 96, 109, 117,
323     102, 110, 97, 98, 99, 100, 122, 149, 115, 104, 105, 106, 107, 108, 167, 116, 111, 112, 113,
324     114, 128, 118, 232, 254, 119, 120, 121, 127, 123, 142, 132, 133, 129, 129, 136, 130, 131,
325     132, 133, 134, 135, 137, 224, 233, 139, 140, 141, 142, 143, 144, 162, 146, 147, 148, 169,
326     157, 151, 152, 153, 154, 155, 156, 158, 181, 159, 160, 161, 162, 184, 164, 174, 180, 167,
327     182, 212, 170, 171, 172, 190, 201, 175, 176, 177, 178, 179, 180, 188, 194, 183, 184, 185,
328     186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
329     236, 207, 221, 216, 208, 209, 210, 211, 214, 213, 220, 215, 218, 217, 219, 222, 223, 234,
330     227, 229, 224, 235, 226, 231, 228, 244, 230, 233, 232, 255, 253, 237, 251, 237, 238, 239,
331     240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 252, 252, 253, 254, 255, 0, 23040,
332     3500, 1, 0, 0, 0, 0, 0, 8192, 3500, 1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 38400, 3500, 1, 0, 61712,
333     21033, 32767, 0, 60189, 35058, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
334     51712, 3501, 1, 0, 15360, 0, 0, 0, 1536, 3502, 1, 0, 8192, 3500, 1, 0, 61792, 21033, 32767,
335     0, 61458, 35058, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4102, 0, 0, 0, 38400, 3500, 1, 0, 0, 0, 0,
336     0, 256, 0, 0, 0, 0, 0, 0, 0, 8192, 3500, 1, 0, 61792, 21033, 32767, 0, 18208, 35059, 32767,
337     0, 4102, 0, 0, 65408, 65535, 0, 0, 0, 0, 0, 0, 0, 4102, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
338     32768, 54143, 32705, 0, 0, 54016, 32705, 0, 0, 54016, 32705, 0, 3584, 0, 0, 0, 6, 0, 0,
339     65408, 7, 3502, 32767, 0, 8192, 3500, 1, 0, 0, 54016, 32705, 0, 1, 0, 0, 0, 8192, 3500, 1, 0,
340     12288, 54016, 32705, 0, 8192, 54016, 32705, 0, 61888, 21033, 32767, 0, 14237, 35059, 32767,
341     0, 88, 53952, 32705, 0, 4607, 0, 0, 0, 8, 0, 0, 0, 4608, 54016, 32705, 0, 8192, 3500, 1, 0,
342     8192, 3500, 1, 0, 62016, 21033, 32767, 0, 16544, 35059, 32767, 0, 4096, 0, 0, 0, 8192, 3500,
343     1, 0, 61936, 21033, 32767, 0, 12502, 35059, 32767, 0, 0, 0, 0, 0, 43957, 36820, 32767, 0, 0,
344     0, 0, 0, 44144, 37434, 32767, 0, 19984, 53952, 32705, 0, 0, 0, 0, 0, 62076, 21033, 32767, 0,
345     62080, 21033, 32767, 0, 62084, 21033, 32767, 0, 64, 53952, 32705, 0, 65535, 65535, 65535,
346     65535, 64, 0, 8296, 1, 62032, 21033, 32767, 0, 16900, 27601, 32767, 0, 18096, 27604, 32767,
347     0, 0, 0, 0, 0, 62080, 21033, 32767, 0, 17447, 27601, 32767, 0, 62080, 21033, 32767, 0, 17246,
348     27601, 32767, 0, 0, 0, 0, 0, 62784, 36821, 32767, 0, 62144, 21033, 32767, 0, 4085, 27601,
349     32767, 0, 44624, 27603, 32767, 0, 62784, 36821, 32767, 0, 10112, 30246, 32767, 0, 46488,
350     27603, 32767, 0, 18096, 27604, 32767, 0, 0, 0, 0, 0, 62256, 21033, 32767, 0, 23819, 27601,
351     32767, 0, 62288, 21033, 32767, 0, 20326, 27600, 32767, 0, 15584, 36820, 32767, 0, 15096,
352     36820, 32767, 0, 12288, 36820, 32767, 0, 15120, 36820, 32767, 0, 42681, 21547, 0, 0, 18096,
353     27604, 32767, 0, 62400, 21033, 32767, 0, 1299, 0, 0, 0, 51315, 34237, 23510, 56320, 18096,
354     27604, 32767, 0, 62400, 21033, 32767, 0, 11120, 27601, 32767, 0, 13272, 27604, 32767, 0, 28,
355     0, 0, 0, 62384, 21033, 32767, 0, 10134, 27601, 32767, 0, 11072, 30235, 32767, 0, 0, 0, 50, 0];
356  let mut counts: [u16; 11] = [0, 0, 0, 1, 6, 7, 4, 9, 17, 12, 60];
357  let end_counts: [u16; 11] = [0, 0, 0, 1, 6, 7, 4, 9, 17, 0, 0];
358  let mut table: [HuffmanCode; 328] = [HuffmanCode {
359    bits: 0,
360    value: 0,
361  }; 328];
362  let size = BrotliBuildHuffmanTable(&mut table, 8, &symbol_array, 16, &mut counts);
363  assert_eq!(size, 328);
364  assert_eq!(counts, end_counts);
365  let end_table: [HuffmanCode; 328] = [HuffmanCode {
366                                         bits: 3,
367                                         value: 72,
368                                       },
369                                       HuffmanCode {
370                                         bits: 5,
371                                         value: 0,
372                                       },
373                                       HuffmanCode {
374                                         bits: 4,
375                                         value: 76,
376                                       },
377                                       HuffmanCode {
378                                         bits: 6,
379                                         value: 117,
380                                       },
381                                       HuffmanCode {
382                                         bits: 4,
383                                         value: 15,
384                                       },
385                                       HuffmanCode {
386                                         bits: 5,
387                                         value: 4,
388                                       },
389                                       HuffmanCode {
390                                         bits: 4,
391                                         value: 232,
392                                       },
393                                       HuffmanCode {
394                                         bits: 8,
395                                         value: 12,
396                                       },
397                                       HuffmanCode {
398                                         bits: 3,
399                                         value: 72,
400                                       },
401                                       HuffmanCode {
402                                         bits: 5,
403                                         value: 2,
404                                       },
405                                       HuffmanCode {
406                                         bits: 4,
407                                         value: 116,
408                                       },
409                                       HuffmanCode {
410                                         bits: 7,
411                                         value: 128,
412                                       },
413                                       HuffmanCode {
414                                         bits: 4,
415                                         value: 73,
416                                       },
417                                       HuffmanCode {
418                                         bits: 5,
419                                         value: 77,
420                                       },
421                                       HuffmanCode {
422                                         bits: 4,
423                                         value: 255,
424                                       },
425                                       HuffmanCode {
426                                         bits: 9,
427                                         value: 251,
428                                       },
429                                       HuffmanCode {
430                                         bits: 3,
431                                         value: 72,
432                                       },
433                                       HuffmanCode {
434                                         bits: 5,
435                                         value: 1,
436                                       },
437                                       HuffmanCode {
438                                         bits: 4,
439                                         value: 76,
440                                       },
441                                       HuffmanCode {
442                                         bits: 7,
443                                         value: 5,
444                                       },
445                                       HuffmanCode {
446                                         bits: 4,
447                                         value: 15,
448                                       },
449                                       HuffmanCode {
450                                         bits: 5,
451                                         value: 57,
452                                       },
453                                       HuffmanCode {
454                                         bits: 4,
455                                         value: 232,
456                                       },
457                                       HuffmanCode {
458                                         bits: 8,
459                                         value: 74,
460                                       },
461                                       HuffmanCode {
462                                         bits: 3,
463                                         value: 72,
464                                       },
465                                       HuffmanCode {
466                                         bits: 5,
467                                         value: 3,
468                                       },
469                                       HuffmanCode {
470                                         bits: 4,
471                                         value: 116,
472                                       },
473                                       HuffmanCode {
474                                         bits: 7,
475                                         value: 251,
476                                       },
477                                       HuffmanCode {
478                                         bits: 4,
479                                         value: 73,
480                                       },
481                                       HuffmanCode {
482                                         bits: 6,
483                                         value: 65,
484                                       },
485                                       HuffmanCode {
486                                         bits: 4,
487                                         value: 255,
488                                       },
489                                       HuffmanCode {
490                                         bits: 10,
491                                         value: 265,
492                                       },
493                                       HuffmanCode {
494                                         bits: 3,
495                                         value: 72,
496                                       },
497                                       HuffmanCode {
498                                         bits: 5,
499                                         value: 0,
500                                       },
501                                       HuffmanCode {
502                                         bits: 4,
503                                         value: 76,
504                                       },
505                                       HuffmanCode {
506                                         bits: 6,
507                                         value: 254,
508                                       },
509                                       HuffmanCode {
510                                         bits: 4,
511                                         value: 15,
512                                       },
513                                       HuffmanCode {
514                                         bits: 5,
515                                         value: 4,
516                                       },
517                                       HuffmanCode {
518                                         bits: 4,
519                                         value: 232,
520                                       },
521                                       HuffmanCode {
522                                         bits: 8,
523                                         value: 18,
524                                       },
525                                       HuffmanCode {
526                                         bits: 3,
527                                         value: 72,
528                                       },
529                                       HuffmanCode {
530                                         bits: 5,
531                                         value: 2,
532                                       },
533                                       HuffmanCode {
534                                         bits: 4,
535                                         value: 116,
536                                       },
537                                       HuffmanCode {
538                                         bits: 7,
539                                         value: 224,
540                                       },
541                                       HuffmanCode {
542                                         bits: 4,
543                                         value: 73,
544                                       },
545                                       HuffmanCode {
546                                         bits: 5,
547                                         value: 77,
548                                       },
549                                       HuffmanCode {
550                                         bits: 4,
551                                         value: 255,
552                                       },
553                                       HuffmanCode {
554                                         bits: 10,
555                                         value: 233,
556                                       },
557                                       HuffmanCode {
558                                         bits: 3,
559                                         value: 72,
560                                       },
561                                       HuffmanCode {
562                                         bits: 5,
563                                         value: 1,
564                                       },
565                                       HuffmanCode {
566                                         bits: 4,
567                                         value: 76,
568                                       },
569                                       HuffmanCode {
570                                         bits: 7,
571                                         value: 69,
572                                       },
573                                       HuffmanCode {
574                                         bits: 4,
575                                         value: 15,
576                                       },
577                                       HuffmanCode {
578                                         bits: 5,
579                                         value: 57,
580                                       },
581                                       HuffmanCode {
582                                         bits: 4,
583                                         value: 232,
584                                       },
585                                       HuffmanCode {
586                                         bits: 9,
587                                         value: 203,
588                                       },
589                                       HuffmanCode {
590                                         bits: 3,
591                                         value: 72,
592                                       },
593                                       HuffmanCode {
594                                         bits: 5,
595                                         value: 3,
596                                       },
597                                       HuffmanCode {
598                                         bits: 4,
599                                         value: 116,
600                                       },
601                                       HuffmanCode {
602                                         bits: 8,
603                                         value: 8,
604                                       },
605                                       HuffmanCode {
606                                         bits: 4,
607                                         value: 73,
608                                       },
609                                       HuffmanCode {
610                                         bits: 6,
611                                         value: 68,
612                                       },
613                                       HuffmanCode {
614                                         bits: 4,
615                                         value: 255,
616                                       },
617                                       HuffmanCode {
618                                         bits: 10,
619                                         value: 249,
620                                       },
621                                       HuffmanCode {
622                                         bits: 3,
623                                         value: 72,
624                                       },
625                                       HuffmanCode {
626                                         bits: 5,
627                                         value: 0,
628                                       },
629                                       HuffmanCode {
630                                         bits: 4,
631                                         value: 76,
632                                       },
633                                       HuffmanCode {
634                                         bits: 6,
635                                         value: 117,
636                                       },
637                                       HuffmanCode {
638                                         bits: 4,
639                                         value: 15,
640                                       },
641                                       HuffmanCode {
642                                         bits: 5,
643                                         value: 4,
644                                       },
645                                       HuffmanCode {
646                                         bits: 4,
647                                         value: 232,
648                                       },
649                                       HuffmanCode {
650                                         bits: 8,
651                                         value: 14,
652                                       },
653                                       HuffmanCode {
654                                         bits: 3,
655                                         value: 72,
656                                       },
657                                       HuffmanCode {
658                                         bits: 5,
659                                         value: 2,
660                                       },
661                                       HuffmanCode {
662                                         bits: 4,
663                                         value: 116,
664                                       },
665                                       HuffmanCode {
666                                         bits: 7,
667                                         value: 136,
668                                       },
669                                       HuffmanCode {
670                                         bits: 4,
671                                         value: 73,
672                                       },
673                                       HuffmanCode {
674                                         bits: 5,
675                                         value: 77,
676                                       },
677                                       HuffmanCode {
678                                         bits: 4,
679                                         value: 255,
680                                       },
681                                       HuffmanCode {
682                                         bits: 10,
683                                         value: 193,
684                                       },
685                                       HuffmanCode {
686                                         bits: 3,
687                                         value: 72,
688                                       },
689                                       HuffmanCode {
690                                         bits: 5,
691                                         value: 1,
692                                       },
693                                       HuffmanCode {
694                                         bits: 4,
695                                         value: 76,
696                                       },
697                                       HuffmanCode {
698                                         bits: 7,
699                                         value: 16,
700                                       },
701                                       HuffmanCode {
702                                         bits: 4,
703                                         value: 15,
704                                       },
705                                       HuffmanCode {
706                                         bits: 5,
707                                         value: 57,
708                                       },
709                                       HuffmanCode {
710                                         bits: 4,
711                                         value: 232,
712                                       },
713                                       HuffmanCode {
714                                         bits: 8,
715                                         value: 115,
716                                       },
717                                       HuffmanCode {
718                                         bits: 3,
719                                         value: 72,
720                                       },
721                                       HuffmanCode {
722                                         bits: 5,
723                                         value: 3,
724                                       },
725                                       HuffmanCode {
726                                         bits: 4,
727                                         value: 116,
728                                       },
729                                       HuffmanCode {
730                                         bits: 8,
731                                         value: 6,
732                                       },
733                                       HuffmanCode {
734                                         bits: 4,
735                                         value: 73,
736                                       },
737                                       HuffmanCode {
738                                         bits: 6,
739                                         value: 65,
740                                       },
741                                       HuffmanCode {
742                                         bits: 4,
743                                         value: 255,
744                                       },
745                                       HuffmanCode {
746                                         bits: 10,
747                                         value: 209,
748                                       },
749                                       HuffmanCode {
750                                         bits: 3,
751                                         value: 72,
752                                       },
753                                       HuffmanCode {
754                                         bits: 5,
755                                         value: 0,
756                                       },
757                                       HuffmanCode {
758                                         bits: 4,
759                                         value: 76,
760                                       },
761                                       HuffmanCode {
762                                         bits: 6,
763                                         value: 254,
764                                       },
765                                       HuffmanCode {
766                                         bits: 4,
767                                         value: 15,
768                                       },
769                                       HuffmanCode {
770                                         bits: 5,
771                                         value: 4,
772                                       },
773                                       HuffmanCode {
774                                         bits: 4,
775                                         value: 232,
776                                       },
777                                       HuffmanCode {
778                                         bits: 8,
779                                         value: 67,
780                                       },
781                                       HuffmanCode {
782                                         bits: 3,
783                                         value: 72,
784                                       },
785                                       HuffmanCode {
786                                         bits: 5,
787                                         value: 2,
788                                       },
789                                       HuffmanCode {
790                                         bits: 4,
791                                         value: 116,
792                                       },
793                                       HuffmanCode {
794                                         bits: 7,
795                                         value: 235,
796                                       },
797                                       HuffmanCode {
798                                         bits: 4,
799                                         value: 73,
800                                       },
801                                       HuffmanCode {
802                                         bits: 5,
803                                         value: 77,
804                                       },
805                                       HuffmanCode {
806                                         bits: 4,
807                                         value: 255,
808                                       },
809                                       HuffmanCode {
810                                         bits: 10,
811                                         value: 177,
812                                       },
813                                       HuffmanCode {
814                                         bits: 3,
815                                         value: 72,
816                                       },
817                                       HuffmanCode {
818                                         bits: 5,
819                                         value: 1,
820                                       },
821                                       HuffmanCode {
822                                         bits: 4,
823                                         value: 76,
824                                       },
825                                       HuffmanCode {
826                                         bits: 7,
827                                         value: 114,
828                                       },
829                                       HuffmanCode {
830                                         bits: 4,
831                                         value: 15,
832                                       },
833                                       HuffmanCode {
834                                         bits: 5,
835                                         value: 57,
836                                       },
837                                       HuffmanCode {
838                                         bits: 4,
839                                         value: 232,
840                                       },
841                                       HuffmanCode {
842                                         bits: 9,
843                                         value: 143,
844                                       },
845                                       HuffmanCode {
846                                         bits: 3,
847                                         value: 72,
848                                       },
849                                       HuffmanCode {
850                                         bits: 5,
851                                         value: 3,
852                                       },
853                                       HuffmanCode {
854                                         bits: 4,
855                                         value: 116,
856                                       },
857                                       HuffmanCode {
858                                         bits: 8,
859                                         value: 10,
860                                       },
861                                       HuffmanCode {
862                                         bits: 4,
863                                         value: 73,
864                                       },
865                                       HuffmanCode {
866                                         bits: 6,
867                                         value: 68,
868                                       },
869                                       HuffmanCode {
870                                         bits: 4,
871                                         value: 255,
872                                       },
873                                       HuffmanCode {
874                                         bits: 10,
875                                         value: 193,
876                                       },
877                                       HuffmanCode {
878                                         bits: 3,
879                                         value: 72,
880                                       },
881                                       HuffmanCode {
882                                         bits: 5,
883                                         value: 0,
884                                       },
885                                       HuffmanCode {
886                                         bits: 4,
887                                         value: 76,
888                                       },
889                                       HuffmanCode {
890                                         bits: 6,
891                                         value: 117,
892                                       },
893                                       HuffmanCode {
894                                         bits: 4,
895                                         value: 15,
896                                       },
897                                       HuffmanCode {
898                                         bits: 5,
899                                         value: 4,
900                                       },
901                                       HuffmanCode {
902                                         bits: 4,
903                                         value: 232,
904                                       },
905                                       HuffmanCode {
906                                         bits: 8,
907                                         value: 13,
908                                       },
909                                       HuffmanCode {
910                                         bits: 3,
911                                         value: 72,
912                                       },
913                                       HuffmanCode {
914                                         bits: 5,
915                                         value: 2,
916                                       },
917                                       HuffmanCode {
918                                         bits: 4,
919                                         value: 116,
920                                       },
921                                       HuffmanCode {
922                                         bits: 7,
923                                         value: 128,
924                                       },
925                                       HuffmanCode {
926                                         bits: 4,
927                                         value: 73,
928                                       },
929                                       HuffmanCode {
930                                         bits: 5,
931                                         value: 77,
932                                       },
933                                       HuffmanCode {
934                                         bits: 4,
935                                         value: 255,
936                                       },
937                                       HuffmanCode {
938                                         bits: 10,
939                                         value: 125,
940                                       },
941                                       HuffmanCode {
942                                         bits: 3,
943                                         value: 72,
944                                       },
945                                       HuffmanCode {
946                                         bits: 5,
947                                         value: 1,
948                                       },
949                                       HuffmanCode {
950                                         bits: 4,
951                                         value: 76,
952                                       },
953                                       HuffmanCode {
954                                         bits: 7,
955                                         value: 5,
956                                       },
957                                       HuffmanCode {
958                                         bits: 4,
959                                         value: 15,
960                                       },
961                                       HuffmanCode {
962                                         bits: 5,
963                                         value: 57,
964                                       },
965                                       HuffmanCode {
966                                         bits: 4,
967                                         value: 232,
968                                       },
969                                       HuffmanCode {
970                                         bits: 8,
971                                         value: 102,
972                                       },
973                                       HuffmanCode {
974                                         bits: 3,
975                                         value: 72,
976                                       },
977                                       HuffmanCode {
978                                         bits: 5,
979                                         value: 3,
980                                       },
981                                       HuffmanCode {
982                                         bits: 4,
983                                         value: 116,
984                                       },
985                                       HuffmanCode {
986                                         bits: 7,
987                                         value: 251,
988                                       },
989                                       HuffmanCode {
990                                         bits: 4,
991                                         value: 73,
992                                       },
993                                       HuffmanCode {
994                                         bits: 6,
995                                         value: 65,
996                                       },
997                                       HuffmanCode {
998                                         bits: 4,
999                                         value: 255,
1000                                       },
1001                                       HuffmanCode {
1002                                         bits: 10,
1003                                         value: 141,
1004                                       },
1005                                       HuffmanCode {
1006                                         bits: 3,
1007                                         value: 72,
1008                                       },
1009                                       HuffmanCode {
1010                                         bits: 5,
1011                                         value: 0,
1012                                       },
1013                                       HuffmanCode {
1014                                         bits: 4,
1015                                         value: 76,
1016                                       },
1017                                       HuffmanCode {
1018                                         bits: 6,
1019                                         value: 254,
1020                                       },
1021                                       HuffmanCode {
1022                                         bits: 4,
1023                                         value: 15,
1024                                       },
1025                                       HuffmanCode {
1026                                         bits: 5,
1027                                         value: 4,
1028                                       },
1029                                       HuffmanCode {
1030                                         bits: 4,
1031                                         value: 232,
1032                                       },
1033                                       HuffmanCode {
1034                                         bits: 8,
1035                                         value: 64,
1036                                       },
1037                                       HuffmanCode {
1038                                         bits: 3,
1039                                         value: 72,
1040                                       },
1041                                       HuffmanCode {
1042                                         bits: 5,
1043                                         value: 2,
1044                                       },
1045                                       HuffmanCode {
1046                                         bits: 4,
1047                                         value: 116,
1048                                       },
1049                                       HuffmanCode {
1050                                         bits: 7,
1051                                         value: 224,
1052                                       },
1053                                       HuffmanCode {
1054                                         bits: 4,
1055                                         value: 73,
1056                                       },
1057                                       HuffmanCode {
1058                                         bits: 5,
1059                                         value: 77,
1060                                       },
1061                                       HuffmanCode {
1062                                         bits: 4,
1063                                         value: 255,
1064                                       },
1065                                       HuffmanCode {
1066                                         bits: 10,
1067                                         value: 109,
1068                                       },
1069                                       HuffmanCode {
1070                                         bits: 3,
1071                                         value: 72,
1072                                       },
1073                                       HuffmanCode {
1074                                         bits: 5,
1075                                         value: 1,
1076                                       },
1077                                       HuffmanCode {
1078                                         bits: 4,
1079                                         value: 76,
1080                                       },
1081                                       HuffmanCode {
1082                                         bits: 7,
1083                                         value: 69,
1084                                       },
1085                                       HuffmanCode {
1086                                         bits: 4,
1087                                         value: 15,
1088                                       },
1089                                       HuffmanCode {
1090                                         bits: 5,
1091                                         value: 57,
1092                                       },
1093                                       HuffmanCode {
1094                                         bits: 4,
1095                                         value: 232,
1096                                       },
1097                                       HuffmanCode {
1098                                         bits: 9,
1099                                         value: 77,
1100                                       },
1101                                       HuffmanCode {
1102                                         bits: 3,
1103                                         value: 72,
1104                                       },
1105                                       HuffmanCode {
1106                                         bits: 5,
1107                                         value: 3,
1108                                       },
1109                                       HuffmanCode {
1110                                         bits: 4,
1111                                         value: 116,
1112                                       },
1113                                       HuffmanCode {
1114                                         bits: 8,
1115                                         value: 9,
1116                                       },
1117                                       HuffmanCode {
1118                                         bits: 4,
1119                                         value: 73,
1120                                       },
1121                                       HuffmanCode {
1122                                         bits: 6,
1123                                         value: 68,
1124                                       },
1125                                       HuffmanCode {
1126                                         bits: 4,
1127                                         value: 255,
1128                                       },
1129                                       HuffmanCode {
1130                                         bits: 10,
1131                                         value: 125,
1132                                       },
1133                                       HuffmanCode {
1134                                         bits: 3,
1135                                         value: 72,
1136                                       },
1137                                       HuffmanCode {
1138                                         bits: 5,
1139                                         value: 0,
1140                                       },
1141                                       HuffmanCode {
1142                                         bits: 4,
1143                                         value: 76,
1144                                       },
1145                                       HuffmanCode {
1146                                         bits: 6,
1147                                         value: 117,
1148                                       },
1149                                       HuffmanCode {
1150                                         bits: 4,
1151                                         value: 15,
1152                                       },
1153                                       HuffmanCode {
1154                                         bits: 5,
1155                                         value: 4,
1156                                       },
1157                                       HuffmanCode {
1158                                         bits: 4,
1159                                         value: 232,
1160                                       },
1161                                       HuffmanCode {
1162                                         bits: 8,
1163                                         value: 17,
1164                                       },
1165                                       HuffmanCode {
1166                                         bits: 3,
1167                                         value: 72,
1168                                       },
1169                                       HuffmanCode {
1170                                         bits: 5,
1171                                         value: 2,
1172                                       },
1173                                       HuffmanCode {
1174                                         bits: 4,
1175                                         value: 116,
1176                                       },
1177                                       HuffmanCode {
1178                                         bits: 7,
1179                                         value: 136,
1180                                       },
1181                                       HuffmanCode {
1182                                         bits: 4,
1183                                         value: 73,
1184                                       },
1185                                       HuffmanCode {
1186                                         bits: 5,
1187                                         value: 77,
1188                                       },
1189                                       HuffmanCode {
1190                                         bits: 4,
1191                                         value: 255,
1192                                       },
1193                                       HuffmanCode {
1194                                         bits: 10,
1195                                         value: 69,
1196                                       },
1197                                       HuffmanCode {
1198                                         bits: 3,
1199                                         value: 72,
1200                                       },
1201                                       HuffmanCode {
1202                                         bits: 5,
1203                                         value: 1,
1204                                       },
1205                                       HuffmanCode {
1206                                         bits: 4,
1207                                         value: 76,
1208                                       },
1209                                       HuffmanCode {
1210                                         bits: 7,
1211                                         value: 16,
1212                                       },
1213                                       HuffmanCode {
1214                                         bits: 4,
1215                                         value: 15,
1216                                       },
1217                                       HuffmanCode {
1218                                         bits: 5,
1219                                         value: 57,
1220                                       },
1221                                       HuffmanCode {
1222                                         bits: 4,
1223                                         value: 232,
1224                                       },
1225                                       HuffmanCode {
1226                                         bits: 9,
1227                                         value: 41,
1228                                       },
1229                                       HuffmanCode {
1230                                         bits: 3,
1231                                         value: 72,
1232                                       },
1233                                       HuffmanCode {
1234                                         bits: 5,
1235                                         value: 3,
1236                                       },
1237                                       HuffmanCode {
1238                                         bits: 4,
1239                                         value: 116,
1240                                       },
1241                                       HuffmanCode {
1242                                         bits: 8,
1243                                         value: 7,
1244                                       },
1245                                       HuffmanCode {
1246                                         bits: 4,
1247                                         value: 73,
1248                                       },
1249                                       HuffmanCode {
1250                                         bits: 6,
1251                                         value: 65,
1252                                       },
1253                                       HuffmanCode {
1254                                         bits: 4,
1255                                         value: 255,
1256                                       },
1257                                       HuffmanCode {
1258                                         bits: 10,
1259                                         value: 85,
1260                                       },
1261                                       HuffmanCode {
1262                                         bits: 3,
1263                                         value: 72,
1264                                       },
1265                                       HuffmanCode {
1266                                         bits: 5,
1267                                         value: 0,
1268                                       },
1269                                       HuffmanCode {
1270                                         bits: 4,
1271                                         value: 76,
1272                                       },
1273                                       HuffmanCode {
1274                                         bits: 6,
1275                                         value: 254,
1276                                       },
1277                                       HuffmanCode {
1278                                         bits: 4,
1279                                         value: 15,
1280                                       },
1281                                       HuffmanCode {
1282                                         bits: 5,
1283                                         value: 4,
1284                                       },
1285                                       HuffmanCode {
1286                                         bits: 4,
1287                                         value: 232,
1288                                       },
1289                                       HuffmanCode {
1290                                         bits: 8,
1291                                         value: 71,
1292                                       },
1293                                       HuffmanCode {
1294                                         bits: 3,
1295                                         value: 72,
1296                                       },
1297                                       HuffmanCode {
1298                                         bits: 5,
1299                                         value: 2,
1300                                       },
1301                                       HuffmanCode {
1302                                         bits: 4,
1303                                         value: 116,
1304                                       },
1305                                       HuffmanCode {
1306                                         bits: 7,
1307                                         value: 235,
1308                                       },
1309                                       HuffmanCode {
1310                                         bits: 4,
1311                                         value: 73,
1312                                       },
1313                                       HuffmanCode {
1314                                         bits: 5,
1315                                         value: 77,
1316                                       },
1317                                       HuffmanCode {
1318                                         bits: 4,
1319                                         value: 255,
1320                                       },
1321                                       HuffmanCode {
1322                                         bits: 10,
1323                                         value: 53,
1324                                       },
1325                                       HuffmanCode {
1326                                         bits: 3,
1327                                         value: 72,
1328                                       },
1329                                       HuffmanCode {
1330                                         bits: 5,
1331                                         value: 1,
1332                                       },
1333                                       HuffmanCode {
1334                                         bits: 4,
1335                                         value: 76,
1336                                       },
1337                                       HuffmanCode {
1338                                         bits: 7,
1339                                         value: 114,
1340                                       },
1341                                       HuffmanCode {
1342                                         bits: 4,
1343                                         value: 15,
1344                                       },
1345                                       HuffmanCode {
1346                                         bits: 5,
1347                                         value: 57,
1348                                       },
1349                                       HuffmanCode {
1350                                         bits: 4,
1351                                         value: 232,
1352                                       },
1353                                       HuffmanCode {
1354                                         bits: 9,
1355                                         value: 17,
1356                                       },
1357                                       HuffmanCode {
1358                                         bits: 3,
1359                                         value: 72,
1360                                       },
1361                                       HuffmanCode {
1362                                         bits: 5,
1363                                         value: 3,
1364                                       },
1365                                       HuffmanCode {
1366                                         bits: 4,
1367                                         value: 116,
1368                                       },
1369                                       HuffmanCode {
1370                                         bits: 8,
1371                                         value: 11,
1372                                       },
1373                                       HuffmanCode {
1374                                         bits: 4,
1375                                         value: 73,
1376                                       },
1377                                       HuffmanCode {
1378                                         bits: 6,
1379                                         value: 68,
1380                                       },
1381                                       HuffmanCode {
1382                                         bits: 4,
1383                                         value: 255,
1384                                       },
1385                                       HuffmanCode {
1386                                         bits: 10,
1387                                         value: 69,
1388                                       },
1389                                       HuffmanCode {
1390                                         bits: 1,
1391                                         value: 66,
1392                                       },
1393                                       HuffmanCode {
1394                                         bits: 1,
1395                                         value: 127,
1396                                       },
1397                                       HuffmanCode {
1398                                         bits: 1,
1399                                         value: 129,
1400                                       },
1401                                       HuffmanCode {
1402                                         bits: 1,
1403                                         value: 130,
1404                                       },
1405                                       HuffmanCode {
1406                                         bits: 1,
1407                                         value: 131,
1408                                       },
1409                                       HuffmanCode {
1410                                         bits: 1,
1411                                         value: 132,
1412                                       },
1413                                       HuffmanCode {
1414                                         bits: 1,
1415                                         value: 133,
1416                                       },
1417                                       HuffmanCode {
1418                                         bits: 1,
1419                                         value: 134,
1420                                       },
1421                                       HuffmanCode {
1422                                         bits: 1,
1423                                         value: 135,
1424                                       },
1425                                       HuffmanCode {
1426                                         bits: 1,
1427                                         value: 137,
1428                                       },
1429                                       HuffmanCode {
1430                                         bits: 1,
1431                                         value: 233,
1432                                       },
1433                                       HuffmanCode {
1434                                         bits: 1,
1435                                         value: 253,
1436                                       },
1437                                       HuffmanCode {
1438                                         bits: 2,
1439                                         value: 19,
1440                                       },
1441                                       HuffmanCode {
1442                                         bits: 2,
1443                                         value: 21,
1444                                       },
1445                                       HuffmanCode {
1446                                         bits: 2,
1447                                         value: 20,
1448                                       },
1449                                       HuffmanCode {
1450                                         bits: 2,
1451                                         value: 22,
1452                                       },
1453                                       HuffmanCode {
1454                                         bits: 2,
1455                                         value: 23,
1456                                       },
1457                                       HuffmanCode {
1458                                         bits: 2,
1459                                         value: 25,
1460                                       },
1461                                       HuffmanCode {
1462                                         bits: 2,
1463                                         value: 24,
1464                                       },
1465                                       HuffmanCode {
1466                                         bits: 2,
1467                                         value: 26,
1468                                       },
1469                                       HuffmanCode {
1470                                         bits: 2,
1471                                         value: 27,
1472                                       },
1473                                       HuffmanCode {
1474                                         bits: 2,
1475                                         value: 37,
1476                                       },
1477                                       HuffmanCode {
1478                                         bits: 2,
1479                                         value: 28,
1480                                       },
1481                                       HuffmanCode {
1482                                         bits: 2,
1483                                         value: 38,
1484                                       },
1485                                       HuffmanCode {
1486                                         bits: 2,
1487                                         value: 39,
1488                                       },
1489                                       HuffmanCode {
1490                                         bits: 2,
1491                                         value: 41,
1492                                       },
1493                                       HuffmanCode {
1494                                         bits: 2,
1495                                         value: 40,
1496                                       },
1497                                       HuffmanCode {
1498                                         bits: 2,
1499                                         value: 49,
1500                                       },
1501                                       HuffmanCode {
1502                                         bits: 2,
1503                                         value: 138,
1504                                       },
1505                                       HuffmanCode {
1506                                         bits: 2,
1507                                         value: 140,
1508                                       },
1509                                       HuffmanCode {
1510                                         bits: 2,
1511                                         value: 139,
1512                                       },
1513                                       HuffmanCode {
1514                                         bits: 2,
1515                                         value: 141,
1516                                       },
1517                                       HuffmanCode {
1518                                         bits: 2,
1519                                         value: 142,
1520                                       },
1521                                       HuffmanCode {
1522                                         bits: 2,
1523                                         value: 144,
1524                                       },
1525                                       HuffmanCode {
1526                                         bits: 2,
1527                                         value: 143,
1528                                       },
1529                                       HuffmanCode {
1530                                         bits: 2,
1531                                         value: 162,
1532                                       },
1533                                       HuffmanCode {
1534                                         bits: 2,
1535                                         value: 184,
1536                                       },
1537                                       HuffmanCode {
1538                                         bits: 2,
1539                                         value: 186,
1540                                       },
1541                                       HuffmanCode {
1542                                         bits: 2,
1543                                         value: 185,
1544                                       },
1545                                       HuffmanCode {
1546                                         bits: 2,
1547                                         value: 187,
1548                                       },
1549                                       HuffmanCode {
1550                                         bits: 2,
1551                                         value: 188,
1552                                       },
1553                                       HuffmanCode {
1554                                         bits: 2,
1555                                         value: 190,
1556                                       },
1557                                       HuffmanCode {
1558                                         bits: 2,
1559                                         value: 189,
1560                                       },
1561                                       HuffmanCode {
1562                                         bits: 2,
1563                                         value: 191,
1564                                       },
1565                                       HuffmanCode {
1566                                         bits: 2,
1567                                         value: 192,
1568                                       },
1569                                       HuffmanCode {
1570                                         bits: 2,
1571                                         value: 194,
1572                                       },
1573                                       HuffmanCode {
1574                                         bits: 2,
1575                                         value: 193,
1576                                       },
1577                                       HuffmanCode {
1578                                         bits: 2,
1579                                         value: 195,
1580                                       },
1581                                       HuffmanCode {
1582                                         bits: 2,
1583                                         value: 196,
1584                                       },
1585                                       HuffmanCode {
1586                                         bits: 2,
1587                                         value: 198,
1588                                       },
1589                                       HuffmanCode {
1590                                         bits: 2,
1591                                         value: 197,
1592                                       },
1593                                       HuffmanCode {
1594                                         bits: 2,
1595                                         value: 199,
1596                                       },
1597                                       HuffmanCode {
1598                                         bits: 2,
1599                                         value: 200,
1600                                       },
1601                                       HuffmanCode {
1602                                         bits: 2,
1603                                         value: 202,
1604                                       },
1605                                       HuffmanCode {
1606                                         bits: 2,
1607                                         value: 201,
1608                                       },
1609                                       HuffmanCode {
1610                                         bits: 2,
1611                                         value: 203,
1612                                       },
1613                                       HuffmanCode {
1614                                         bits: 2,
1615                                         value: 236,
1616                                       },
1617                                       HuffmanCode {
1618                                         bits: 2,
1619                                         value: 238,
1620                                       },
1621                                       HuffmanCode {
1622                                         bits: 2,
1623                                         value: 237,
1624                                       },
1625                                       HuffmanCode {
1626                                         bits: 2,
1627                                         value: 239,
1628                                       },
1629                                       HuffmanCode {
1630                                         bits: 2,
1631                                         value: 240,
1632                                       },
1633                                       HuffmanCode {
1634                                         bits: 2,
1635                                         value: 242,
1636                                       },
1637                                       HuffmanCode {
1638                                         bits: 2,
1639                                         value: 241,
1640                                       },
1641                                       HuffmanCode {
1642                                         bits: 2,
1643                                         value: 243,
1644                                       },
1645                                       HuffmanCode {
1646                                         bits: 2,
1647                                         value: 244,
1648                                       },
1649                                       HuffmanCode {
1650                                         bits: 2,
1651                                         value: 246,
1652                                       },
1653                                       HuffmanCode {
1654                                         bits: 2,
1655                                         value: 245,
1656                                       },
1657                                       HuffmanCode {
1658                                         bits: 2,
1659                                         value: 247,
1660                                       },
1661                                       HuffmanCode {
1662                                         bits: 2,
1663                                         value: 248,
1664                                       },
1665                                       HuffmanCode {
1666                                         bits: 2,
1667                                         value: 250,
1668                                       },
1669                                       HuffmanCode {
1670                                         bits: 2,
1671                                         value: 249,
1672                                       },
1673                                       HuffmanCode {
1674                                         bits: 2,
1675                                         value: 252,
1676                                       }];
1677  for index in 0..end_table.len() {
1678    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
1679               [index, end_table[index].bits as usize, end_table[index].value as usize]);
1680    assert!(table[index] == end_table[index]);
1681  }
1682}
1683#[test]
1684fn multilevel() {
1685  let symbol_array: [u16; BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 +
1686                          BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE] =
1687    [65535, 65535, 65535, 65535, 0, 1, 3, 2, 6, 14, 17, 21, 65535, 65535, 65535, 65535, 72, 48, 4,
1688     8, 5, 73, 7, 9, 16, 10, 11, 12, 13, 20, 15, 47, 24, 22, 19, 21, 77, 41, 25, 24, 32, 26, 27,
1689     28, 29, 30, 31, 33, 40, 34, 35, 36, 37, 38, 39, 49, 56, 42, 43, 44, 45, 46, 57, 65, 64, 50,
1690     51, 52, 53, 54, 55, 71, 76, 58, 59, 60, 61, 62, 63, 97, 80, 66, 67, 68, 69, 78, 82, 75, 73,
1691     137, 75, 81, 96, 102, 138, 80, 88, 82, 83, 84, 85, 86, 87, 89, 112, 90, 91, 92, 93, 94, 95,
1692     117, 104, 98, 99, 100, 101, 105, 116, 109, 120, 106, 107, 108, 109, 110, 111, 118, 114, 122,
1693     115, 116, 170, 129, 121, 120, 128, 122, 123, 124, 125, 126, 127, 145, 136, 130, 131, 132,
1694     133, 134, 135, 140, 144, 139, 191, 216, 141, 142, 143, 169, 152, 146, 147, 148, 149, 150,
1695     151, 153, 160, 154, 155, 156, 157, 158, 159, 161, 168, 162, 163, 164, 165, 166, 167, 171,
1696     176, 193, 225, 177, 0, 0, 0, 0, 184, 178, 179, 180, 181, 182, 183, 185, 192, 186, 187, 188,
1697     189, 190, 209, 251, 200, 194, 195, 196, 197, 198, 199, 201, 208, 202, 203, 204, 205, 206,
1698     207, 217, 232, 210, 211, 212, 213, 214, 215, 226, 224, 218, 219, 220, 221, 222, 223, 241,
1699     248, 233, 227, 228, 229, 230, 231, 234, 240, 247, 235, 236, 237, 238, 239, 0, 255, 242, 243,
1700     244, 245, 246, 250, 0, 252, 0, 0, 0, 253, 254, 0, 0, 27136, 22, 1, 0, 0, 0, 0, 0, 12288, 22,
1701     1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 42496, 22, 1, 0, 57680, 24511, 32767, 0, 60189, 35058, 32767,
1702     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 55808, 23, 1, 0, 15360, 0, 0, 0, 5632,
1703     24, 1, 0, 12288, 22, 1, 0, 57760, 24511, 32767, 0, 61458, 35058, 32767, 0, 0, 0, 0, 0, 0, 0,
1704     0, 0, 4102, 0, 0, 0, 42496, 22, 1, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 12288, 22, 1, 0,
1705     57760, 24511, 32767, 0, 18208, 35059, 32767, 0, 4102, 0, 0, 65408, 65535, 0, 0, 0, 0, 0, 0,
1706     0, 4102, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 32768, 255, 1, 0, 0, 128, 1, 0, 0, 128, 1, 0,
1707     3584, 0, 0, 0, 6, 0, 0, 65408, 7, 24, 32767, 0, 12288, 22, 1, 0, 0, 128, 1, 0, 1, 0, 0, 0,
1708     12288, 22, 1, 0, 12288, 128, 1, 0, 8192, 128, 1, 0, 57856, 24511, 32767, 0, 14237, 35059,
1709     32767, 0, 88, 32, 1, 0, 4607, 0, 0, 0, 8, 0, 0, 0, 4608, 128, 1, 0, 12288, 22, 1, 0, 12288,
1710     22, 1, 0, 57984, 24511, 32767, 0, 16544, 35059, 32767, 0, 4096, 0, 0, 0, 12288, 22, 1, 0,
1711     57904, 24511, 32767, 0, 12502, 35059, 32767, 0, 0, 0, 0, 0, 43957, 36820, 32767, 0, 0, 0, 0,
1712     0, 44144, 37434, 32767, 0, 19984, 32, 1, 0, 0, 0, 0, 0, 58044, 24511, 32767, 0, 58048, 24511,
1713     32767, 0, 58052, 24511, 32767, 0, 64, 32, 1, 0, 65535, 65535, 65535, 65535, 64, 0, 8296, 1,
1714     58000, 24511, 32767, 0, 4612, 24513, 32767, 0, 5784, 24516, 32767, 0, 0, 0, 0, 0, 58048,
1715     24511, 32767, 0, 5159, 24513, 32767, 0, 58048, 24511, 32767, 0, 4958, 24513, 32767, 0, 0, 0,
1716     0, 0, 62784, 36821, 32767, 0, 58112, 24511, 32767, 0, 57333, 24512, 32767, 0, 32336, 24515,
1717     32767, 0, 62784, 36821, 32767, 0, 10112, 30246, 32767, 0, 34200, 24515, 32767, 0, 5784,
1718     24516, 32767, 0, 0, 0, 0, 0, 58224, 24511, 32767, 0, 11531, 24513, 32767, 0, 58256, 24511,
1719     32767, 0, 8038, 24512, 32767, 0, 15584, 36820, 32767, 0, 15096, 36820, 32767, 0, 12288,
1720     36820, 32767, 0, 15120, 36820, 32767, 0, 42681, 21547, 0, 0, 5784, 24516, 32767, 0, 58368,
1721     24511, 32767, 0, 779, 0, 0, 0, 48416, 65151, 25138, 5632, 5784, 24516, 32767, 0, 58368,
1722     24511, 32767, 0, 64368, 24512, 32767, 0, 960, 24516, 32767, 0, 28, 0, 0, 0, 58352, 24511,
1723     32767, 0, 63382, 24512, 32767, 0, 11072, 30235, 32767, 0, 0, 0, 50, 0];
1724  let mut counts: [u16; 12] = [0, 0, 0, 0, 2, 6, 25, 12, 15, 12, 80, 88];
1725  let end_counts: [u16; 12] = [0, 0, 0, 0, 2, 6, 25, 12, 15, 0, 0, 0];
1726  let mut table: [HuffmanCode; 436] = [HuffmanCode {
1727    bits: 0,
1728    value: 0,
1729  }; 436];
1730  let size = BrotliBuildHuffmanTable(&mut table, 8, &symbol_array, 16, &mut counts);
1731  assert_eq!(size, 436);
1732  assert_eq!(counts, end_counts);
1733  let end_table: [HuffmanCode; 436] = [HuffmanCode {
1734                                         bits: 4,
1735                                         value: 0,
1736                                       },
1737                                       HuffmanCode {
1738                                         bits: 6,
1739                                         value: 136,
1740                                       },
1741                                       HuffmanCode {
1742                                         bits: 5,
1743                                         value: 88,
1744                                       },
1745                                       HuffmanCode {
1746                                         bits: 7,
1747                                         value: 216,
1748                                       },
1749                                       HuffmanCode {
1750                                         bits: 5,
1751                                         value: 1,
1752                                       },
1753                                       HuffmanCode {
1754                                         bits: 6,
1755                                         value: 200,
1756                                       },
1757                                       HuffmanCode {
1758                                         bits: 6,
1759                                         value: 32,
1760                                       },
1761                                       HuffmanCode {
1762                                         bits: 9,
1763                                         value: 259,
1764                                       },
1765                                       HuffmanCode {
1766                                         bits: 4,
1767                                         value: 72,
1768                                       },
1769                                       HuffmanCode {
1770                                         bits: 6,
1771                                         value: 168,
1772                                       },
1773                                       HuffmanCode {
1774                                         bits: 6,
1775                                         value: 3,
1776                                       },
1777                                       HuffmanCode {
1778                                         bits: 8,
1779                                         value: 11,
1780                                       },
1781                                       HuffmanCode {
1782                                         bits: 5,
1783                                         value: 64,
1784                                       },
1785                                       HuffmanCode {
1786                                         bits: 6,
1787                                         value: 255,
1788                                       },
1789                                       HuffmanCode {
1790                                         bits: 6,
1791                                         value: 96,
1792                                       },
1793                                       HuffmanCode {
1794                                         bits: 10,
1795                                         value: 313,
1796                                       },
1797                                       HuffmanCode {
1798                                         bits: 4,
1799                                         value: 0,
1800                                       },
1801                                       HuffmanCode {
1802                                         bits: 6,
1803                                         value: 152,
1804                                       },
1805                                       HuffmanCode {
1806                                         bits: 5,
1807                                         value: 112,
1808                                       },
1809                                       HuffmanCode {
1810                                         bits: 7,
1811                                         value: 253,
1812                                       },
1813                                       HuffmanCode {
1814                                         bits: 5,
1815                                         value: 48,
1816                                       },
1817                                       HuffmanCode {
1818                                         bits: 6,
1819                                         value: 232,
1820                                       },
1821                                       HuffmanCode {
1822                                         bits: 6,
1823                                         value: 56,
1824                                       },
1825                                       HuffmanCode {
1826                                         bits: 10,
1827                                         value: 273,
1828                                       },
1829                                       HuffmanCode {
1830                                         bits: 4,
1831                                         value: 72,
1832                                       },
1833                                       HuffmanCode {
1834                                         bits: 6,
1835                                         value: 184,
1836                                       },
1837                                       HuffmanCode {
1838                                         bits: 6,
1839                                         value: 16,
1840                                       },
1841                                       HuffmanCode {
1842                                         bits: 8,
1843                                         value: 225,
1844                                       },
1845                                       HuffmanCode {
1846                                         bits: 5,
1847                                         value: 80,
1848                                       },
1849                                       HuffmanCode {
1850                                         bits: 7,
1851                                         value: 5,
1852                                       },
1853                                       HuffmanCode {
1854                                         bits: 6,
1855                                         value: 120,
1856                                       },
1857                                       HuffmanCode {
1858                                         bits: 11,
1859                                         value: 341,
1860                                       },
1861                                       HuffmanCode {
1862                                         bits: 4,
1863                                         value: 0,
1864                                       },
1865                                       HuffmanCode {
1866                                         bits: 6,
1867                                         value: 144,
1868                                       },
1869                                       HuffmanCode {
1870                                         bits: 5,
1871                                         value: 88,
1872                                       },
1873                                       HuffmanCode {
1874                                         bits: 7,
1875                                         value: 248,
1876                                       },
1877                                       HuffmanCode {
1878                                         bits: 5,
1879                                         value: 1,
1880                                       },
1881                                       HuffmanCode {
1882                                         bits: 6,
1883                                         value: 208,
1884                                       },
1885                                       HuffmanCode {
1886                                         bits: 6,
1887                                         value: 40,
1888                                       },
1889                                       HuffmanCode {
1890                                         bits: 10,
1891                                         value: 241,
1892                                       },
1893                                       HuffmanCode {
1894                                         bits: 4,
1895                                         value: 72,
1896                                       },
1897                                       HuffmanCode {
1898                                         bits: 6,
1899                                         value: 176,
1900                                       },
1901                                       HuffmanCode {
1902                                         bits: 6,
1903                                         value: 8,
1904                                       },
1905                                       HuffmanCode {
1906                                         bits: 8,
1907                                         value: 77,
1908                                       },
1909                                       HuffmanCode {
1910                                         bits: 5,
1911                                         value: 64,
1912                                       },
1913                                       HuffmanCode {
1914                                         bits: 7,
1915                                         value: 2,
1916                                       },
1917                                       HuffmanCode {
1918                                         bits: 6,
1919                                         value: 104,
1920                                       },
1921                                       HuffmanCode {
1922                                         bits: 10,
1923                                         value: 297,
1924                                       },
1925                                       HuffmanCode {
1926                                         bits: 4,
1927                                         value: 0,
1928                                       },
1929                                       HuffmanCode {
1930                                         bits: 6,
1931                                         value: 160,
1932                                       },
1933                                       HuffmanCode {
1934                                         bits: 5,
1935                                         value: 112,
1936                                       },
1937                                       HuffmanCode {
1938                                         bits: 8,
1939                                         value: 6,
1940                                       },
1941                                       HuffmanCode {
1942                                         bits: 5,
1943                                         value: 48,
1944                                       },
1945                                       HuffmanCode {
1946                                         bits: 6,
1947                                         value: 240,
1948                                       },
1949                                       HuffmanCode {
1950                                         bits: 6,
1951                                         value: 76,
1952                                       },
1953                                       HuffmanCode {
1954                                         bits: 10,
1955                                         value: 257,
1956                                       },
1957                                       HuffmanCode {
1958                                         bits: 4,
1959                                         value: 72,
1960                                       },
1961                                       HuffmanCode {
1962                                         bits: 6,
1963                                         value: 192,
1964                                       },
1965                                       HuffmanCode {
1966                                         bits: 6,
1967                                         value: 24,
1968                                       },
1969                                       HuffmanCode {
1970                                         bits: 9,
1971                                         value: 199,
1972                                       },
1973                                       HuffmanCode {
1974                                         bits: 5,
1975                                         value: 80,
1976                                       },
1977                                       HuffmanCode {
1978                                         bits: 7,
1979                                         value: 137,
1980                                       },
1981                                       HuffmanCode {
1982                                         bits: 6,
1983                                         value: 128,
1984                                       },
1985                                       HuffmanCode {
1986                                         bits: 11,
1987                                         value: 341,
1988                                       },
1989                                       HuffmanCode {
1990                                         bits: 4,
1991                                         value: 0,
1992                                       },
1993                                       HuffmanCode {
1994                                         bits: 6,
1995                                         value: 136,
1996                                       },
1997                                       HuffmanCode {
1998                                         bits: 5,
1999                                         value: 88,
2000                                       },
2001                                       HuffmanCode {
2002                                         bits: 7,
2003                                         value: 224,
2004                                       },
2005                                       HuffmanCode {
2006                                         bits: 5,
2007                                         value: 1,
2008                                       },
2009                                       HuffmanCode {
2010                                         bits: 6,
2011                                         value: 200,
2012                                       },
2013                                       HuffmanCode {
2014                                         bits: 6,
2015                                         value: 32,
2016                                       },
2017                                       HuffmanCode {
2018                                         bits: 10,
2019                                         value: 201,
2020                                       },
2021                                       HuffmanCode {
2022                                         bits: 4,
2023                                         value: 72,
2024                                       },
2025                                       HuffmanCode {
2026                                         bits: 6,
2027                                         value: 168,
2028                                       },
2029                                       HuffmanCode {
2030                                         bits: 6,
2031                                         value: 3,
2032                                       },
2033                                       HuffmanCode {
2034                                         bits: 8,
2035                                         value: 13,
2036                                       },
2037                                       HuffmanCode {
2038                                         bits: 5,
2039                                         value: 64,
2040                                       },
2041                                       HuffmanCode {
2042                                         bits: 6,
2043                                         value: 255,
2044                                       },
2045                                       HuffmanCode {
2046                                         bits: 6,
2047                                         value: 96,
2048                                       },
2049                                       HuffmanCode {
2050                                         bits: 10,
2051                                         value: 257,
2052                                       },
2053                                       HuffmanCode {
2054                                         bits: 4,
2055                                         value: 0,
2056                                       },
2057                                       HuffmanCode {
2058                                         bits: 6,
2059                                         value: 152,
2060                                       },
2061                                       HuffmanCode {
2062                                         bits: 5,
2063                                         value: 112,
2064                                       },
2065                                       HuffmanCode {
2066                                         bits: 7,
2067                                         value: 254,
2068                                       },
2069                                       HuffmanCode {
2070                                         bits: 5,
2071                                         value: 48,
2072                                       },
2073                                       HuffmanCode {
2074                                         bits: 6,
2075                                         value: 232,
2076                                       },
2077                                       HuffmanCode {
2078                                         bits: 6,
2079                                         value: 56,
2080                                       },
2081                                       HuffmanCode {
2082                                         bits: 10,
2083                                         value: 217,
2084                                       },
2085                                       HuffmanCode {
2086                                         bits: 4,
2087                                         value: 72,
2088                                       },
2089                                       HuffmanCode {
2090                                         bits: 6,
2091                                         value: 184,
2092                                       },
2093                                       HuffmanCode {
2094                                         bits: 6,
2095                                         value: 16,
2096                                       },
2097                                       HuffmanCode {
2098                                         bits: 8,
2099                                         value: 247,
2100                                       },
2101                                       HuffmanCode {
2102                                         bits: 5,
2103                                         value: 80,
2104                                       },
2105                                       HuffmanCode {
2106                                         bits: 7,
2107                                         value: 73,
2108                                       },
2109                                       HuffmanCode {
2110                                         bits: 6,
2111                                         value: 120,
2112                                       },
2113                                       HuffmanCode {
2114                                         bits: 11,
2115                                         value: 293,
2116                                       },
2117                                       HuffmanCode {
2118                                         bits: 4,
2119                                         value: 0,
2120                                       },
2121                                       HuffmanCode {
2122                                         bits: 6,
2123                                         value: 144,
2124                                       },
2125                                       HuffmanCode {
2126                                         bits: 5,
2127                                         value: 88,
2128                                       },
2129                                       HuffmanCode {
2130                                         bits: 7,
2131                                         value: 252,
2132                                       },
2133                                       HuffmanCode {
2134                                         bits: 5,
2135                                         value: 1,
2136                                       },
2137                                       HuffmanCode {
2138                                         bits: 6,
2139                                         value: 208,
2140                                       },
2141                                       HuffmanCode {
2142                                         bits: 6,
2143                                         value: 40,
2144                                       },
2145                                       HuffmanCode {
2146                                         bits: 10,
2147                                         value: 185,
2148                                       },
2149                                       HuffmanCode {
2150                                         bits: 4,
2151                                         value: 72,
2152                                       },
2153                                       HuffmanCode {
2154                                         bits: 6,
2155                                         value: 176,
2156                                       },
2157                                       HuffmanCode {
2158                                         bits: 6,
2159                                         value: 8,
2160                                       },
2161                                       HuffmanCode {
2162                                         bits: 8,
2163                                         value: 116,
2164                                       },
2165                                       HuffmanCode {
2166                                         bits: 5,
2167                                         value: 64,
2168                                       },
2169                                       HuffmanCode {
2170                                         bits: 7,
2171                                         value: 4,
2172                                       },
2173                                       HuffmanCode {
2174                                         bits: 6,
2175                                         value: 104,
2176                                       },
2177                                       HuffmanCode {
2178                                         bits: 11,
2179                                         value: 245,
2180                                       },
2181                                       HuffmanCode {
2182                                         bits: 4,
2183                                         value: 0,
2184                                       },
2185                                       HuffmanCode {
2186                                         bits: 6,
2187                                         value: 160,
2188                                       },
2189                                       HuffmanCode {
2190                                         bits: 5,
2191                                         value: 112,
2192                                       },
2193                                       HuffmanCode {
2194                                         bits: 8,
2195                                         value: 9,
2196                                       },
2197                                       HuffmanCode {
2198                                         bits: 5,
2199                                         value: 48,
2200                                       },
2201                                       HuffmanCode {
2202                                         bits: 6,
2203                                         value: 240,
2204                                       },
2205                                       HuffmanCode {
2206                                         bits: 6,
2207                                         value: 76,
2208                                       },
2209                                       HuffmanCode {
2210                                         bits: 10,
2211                                         value: 201,
2212                                       },
2213                                       HuffmanCode {
2214                                         bits: 4,
2215                                         value: 72,
2216                                       },
2217                                       HuffmanCode {
2218                                         bits: 6,
2219                                         value: 192,
2220                                       },
2221                                       HuffmanCode {
2222                                         bits: 6,
2223                                         value: 24,
2224                                       },
2225                                       HuffmanCode {
2226                                         bits: 9,
2227                                         value: 139,
2228                                       },
2229                                       HuffmanCode {
2230                                         bits: 5,
2231                                         value: 80,
2232                                       },
2233                                       HuffmanCode {
2234                                         bits: 7,
2235                                         value: 139,
2236                                       },
2237                                       HuffmanCode {
2238                                         bits: 6,
2239                                         value: 128,
2240                                       },
2241                                       HuffmanCode {
2242                                         bits: 11,
2243                                         value: 293,
2244                                       },
2245                                       HuffmanCode {
2246                                         bits: 4,
2247                                         value: 0,
2248                                       },
2249                                       HuffmanCode {
2250                                         bits: 6,
2251                                         value: 136,
2252                                       },
2253                                       HuffmanCode {
2254                                         bits: 5,
2255                                         value: 88,
2256                                       },
2257                                       HuffmanCode {
2258                                         bits: 7,
2259                                         value: 216,
2260                                       },
2261                                       HuffmanCode {
2262                                         bits: 5,
2263                                         value: 1,
2264                                       },
2265                                       HuffmanCode {
2266                                         bits: 6,
2267                                         value: 200,
2268                                       },
2269                                       HuffmanCode {
2270                                         bits: 6,
2271                                         value: 32,
2272                                       },
2273                                       HuffmanCode {
2274                                         bits: 10,
2275                                         value: 133,
2276                                       },
2277                                       HuffmanCode {
2278                                         bits: 4,
2279                                         value: 72,
2280                                       },
2281                                       HuffmanCode {
2282                                         bits: 6,
2283                                         value: 168,
2284                                       },
2285                                       HuffmanCode {
2286                                         bits: 6,
2287                                         value: 3,
2288                                       },
2289                                       HuffmanCode {
2290                                         bits: 8,
2291                                         value: 12,
2292                                       },
2293                                       HuffmanCode {
2294                                         bits: 5,
2295                                         value: 64,
2296                                       },
2297                                       HuffmanCode {
2298                                         bits: 6,
2299                                         value: 255,
2300                                       },
2301                                       HuffmanCode {
2302                                         bits: 6,
2303                                         value: 96,
2304                                       },
2305                                       HuffmanCode {
2306                                         bits: 10,
2307                                         value: 189,
2308                                       },
2309                                       HuffmanCode {
2310                                         bits: 4,
2311                                         value: 0,
2312                                       },
2313                                       HuffmanCode {
2314                                         bits: 6,
2315                                         value: 152,
2316                                       },
2317                                       HuffmanCode {
2318                                         bits: 5,
2319                                         value: 112,
2320                                       },
2321                                       HuffmanCode {
2322                                         bits: 7,
2323                                         value: 253,
2324                                       },
2325                                       HuffmanCode {
2326                                         bits: 5,
2327                                         value: 48,
2328                                       },
2329                                       HuffmanCode {
2330                                         bits: 6,
2331                                         value: 232,
2332                                       },
2333                                       HuffmanCode {
2334                                         bits: 6,
2335                                         value: 56,
2336                                       },
2337                                       HuffmanCode {
2338                                         bits: 10,
2339                                         value: 149,
2340                                       },
2341                                       HuffmanCode {
2342                                         bits: 4,
2343                                         value: 72,
2344                                       },
2345                                       HuffmanCode {
2346                                         bits: 6,
2347                                         value: 184,
2348                                       },
2349                                       HuffmanCode {
2350                                         bits: 6,
2351                                         value: 16,
2352                                       },
2353                                       HuffmanCode {
2354                                         bits: 8,
2355                                         value: 233,
2356                                       },
2357                                       HuffmanCode {
2358                                         bits: 5,
2359                                         value: 80,
2360                                       },
2361                                       HuffmanCode {
2362                                         bits: 7,
2363                                         value: 5,
2364                                       },
2365                                       HuffmanCode {
2366                                         bits: 6,
2367                                         value: 120,
2368                                       },
2369                                       HuffmanCode {
2370                                         bits: 11,
2371                                         value: 221,
2372                                       },
2373                                       HuffmanCode {
2374                                         bits: 4,
2375                                         value: 0,
2376                                       },
2377                                       HuffmanCode {
2378                                         bits: 6,
2379                                         value: 144,
2380                                       },
2381                                       HuffmanCode {
2382                                         bits: 5,
2383                                         value: 88,
2384                                       },
2385                                       HuffmanCode {
2386                                         bits: 7,
2387                                         value: 248,
2388                                       },
2389                                       HuffmanCode {
2390                                         bits: 5,
2391                                         value: 1,
2392                                       },
2393                                       HuffmanCode {
2394                                         bits: 6,
2395                                         value: 208,
2396                                       },
2397                                       HuffmanCode {
2398                                         bits: 6,
2399                                         value: 40,
2400                                       },
2401                                       HuffmanCode {
2402                                         bits: 10,
2403                                         value: 117,
2404                                       },
2405                                       HuffmanCode {
2406                                         bits: 4,
2407                                         value: 72,
2408                                       },
2409                                       HuffmanCode {
2410                                         bits: 6,
2411                                         value: 176,
2412                                       },
2413                                       HuffmanCode {
2414                                         bits: 6,
2415                                         value: 8,
2416                                       },
2417                                       HuffmanCode {
2418                                         bits: 8,
2419                                         value: 102,
2420                                       },
2421                                       HuffmanCode {
2422                                         bits: 5,
2423                                         value: 64,
2424                                       },
2425                                       HuffmanCode {
2426                                         bits: 7,
2427                                         value: 2,
2428                                       },
2429                                       HuffmanCode {
2430                                         bits: 6,
2431                                         value: 104,
2432                                       },
2433                                       HuffmanCode {
2434                                         bits: 11,
2435                                         value: 173,
2436                                       },
2437                                       HuffmanCode {
2438                                         bits: 4,
2439                                         value: 0,
2440                                       },
2441                                       HuffmanCode {
2442                                         bits: 6,
2443                                         value: 160,
2444                                       },
2445                                       HuffmanCode {
2446                                         bits: 5,
2447                                         value: 112,
2448                                       },
2449                                       HuffmanCode {
2450                                         bits: 8,
2451                                         value: 7,
2452                                       },
2453                                       HuffmanCode {
2454                                         bits: 5,
2455                                         value: 48,
2456                                       },
2457                                       HuffmanCode {
2458                                         bits: 6,
2459                                         value: 240,
2460                                       },
2461                                       HuffmanCode {
2462                                         bits: 6,
2463                                         value: 76,
2464                                       },
2465                                       HuffmanCode {
2466                                         bits: 10,
2467                                         value: 133,
2468                                       },
2469                                       HuffmanCode {
2470                                         bits: 4,
2471                                         value: 72,
2472                                       },
2473                                       HuffmanCode {
2474                                         bits: 6,
2475                                         value: 192,
2476                                       },
2477                                       HuffmanCode {
2478                                         bits: 6,
2479                                         value: 24,
2480                                       },
2481                                       HuffmanCode {
2482                                         bits: 9,
2483                                         value: 73,
2484                                       },
2485                                       HuffmanCode {
2486                                         bits: 5,
2487                                         value: 80,
2488                                       },
2489                                       HuffmanCode {
2490                                         bits: 7,
2491                                         value: 137,
2492                                       },
2493                                       HuffmanCode {
2494                                         bits: 6,
2495                                         value: 128,
2496                                       },
2497                                       HuffmanCode {
2498                                         bits: 11,
2499                                         value: 221,
2500                                       },
2501                                       HuffmanCode {
2502                                         bits: 4,
2503                                         value: 0,
2504                                       },
2505                                       HuffmanCode {
2506                                         bits: 6,
2507                                         value: 136,
2508                                       },
2509                                       HuffmanCode {
2510                                         bits: 5,
2511                                         value: 88,
2512                                       },
2513                                       HuffmanCode {
2514                                         bits: 7,
2515                                         value: 224,
2516                                       },
2517                                       HuffmanCode {
2518                                         bits: 5,
2519                                         value: 1,
2520                                       },
2521                                       HuffmanCode {
2522                                         bits: 6,
2523                                         value: 200,
2524                                       },
2525                                       HuffmanCode {
2526                                         bits: 6,
2527                                         value: 32,
2528                                       },
2529                                       HuffmanCode {
2530                                         bits: 10,
2531                                         value: 77,
2532                                       },
2533                                       HuffmanCode {
2534                                         bits: 4,
2535                                         value: 72,
2536                                       },
2537                                       HuffmanCode {
2538                                         bits: 6,
2539                                         value: 168,
2540                                       },
2541                                       HuffmanCode {
2542                                         bits: 6,
2543                                         value: 3,
2544                                       },
2545                                       HuffmanCode {
2546                                         bits: 8,
2547                                         value: 20,
2548                                       },
2549                                       HuffmanCode {
2550                                         bits: 5,
2551                                         value: 64,
2552                                       },
2553                                       HuffmanCode {
2554                                         bits: 6,
2555                                         value: 255,
2556                                       },
2557                                       HuffmanCode {
2558                                         bits: 6,
2559                                         value: 96,
2560                                       },
2561                                       HuffmanCode {
2562                                         bits: 10,
2563                                         value: 133,
2564                                       },
2565                                       HuffmanCode {
2566                                         bits: 4,
2567                                         value: 0,
2568                                       },
2569                                       HuffmanCode {
2570                                         bits: 6,
2571                                         value: 152,
2572                                       },
2573                                       HuffmanCode {
2574                                         bits: 5,
2575                                         value: 112,
2576                                       },
2577                                       HuffmanCode {
2578                                         bits: 7,
2579                                         value: 254,
2580                                       },
2581                                       HuffmanCode {
2582                                         bits: 5,
2583                                         value: 48,
2584                                       },
2585                                       HuffmanCode {
2586                                         bits: 6,
2587                                         value: 232,
2588                                       },
2589                                       HuffmanCode {
2590                                         bits: 6,
2591                                         value: 56,
2592                                       },
2593                                       HuffmanCode {
2594                                         bits: 10,
2595                                         value: 93,
2596                                       },
2597                                       HuffmanCode {
2598                                         bits: 4,
2599                                         value: 72,
2600                                       },
2601                                       HuffmanCode {
2602                                         bits: 6,
2603                                         value: 184,
2604                                       },
2605                                       HuffmanCode {
2606                                         bits: 6,
2607                                         value: 16,
2608                                       },
2609                                       HuffmanCode {
2610                                         bits: 9,
2611                                         value: 37,
2612                                       },
2613                                       HuffmanCode {
2614                                         bits: 5,
2615                                         value: 80,
2616                                       },
2617                                       HuffmanCode {
2618                                         bits: 7,
2619                                         value: 73,
2620                                       },
2621                                       HuffmanCode {
2622                                         bits: 6,
2623                                         value: 120,
2624                                       },
2625                                       HuffmanCode {
2626                                         bits: 11,
2627                                         value: 173,
2628                                       },
2629                                       HuffmanCode {
2630                                         bits: 4,
2631                                         value: 0,
2632                                       },
2633                                       HuffmanCode {
2634                                         bits: 6,
2635                                         value: 144,
2636                                       },
2637                                       HuffmanCode {
2638                                         bits: 5,
2639                                         value: 88,
2640                                       },
2641                                       HuffmanCode {
2642                                         bits: 7,
2643                                         value: 252,
2644                                       },
2645                                       HuffmanCode {
2646                                         bits: 5,
2647                                         value: 1,
2648                                       },
2649                                       HuffmanCode {
2650                                         bits: 6,
2651                                         value: 208,
2652                                       },
2653                                       HuffmanCode {
2654                                         bits: 6,
2655                                         value: 40,
2656                                       },
2657                                       HuffmanCode {
2658                                         bits: 10,
2659                                         value: 61,
2660                                       },
2661                                       HuffmanCode {
2662                                         bits: 4,
2663                                         value: 72,
2664                                       },
2665                                       HuffmanCode {
2666                                         bits: 6,
2667                                         value: 176,
2668                                       },
2669                                       HuffmanCode {
2670                                         bits: 6,
2671                                         value: 8,
2672                                       },
2673                                       HuffmanCode {
2674                                         bits: 8,
2675                                         value: 170,
2676                                       },
2677                                       HuffmanCode {
2678                                         bits: 5,
2679                                         value: 64,
2680                                       },
2681                                       HuffmanCode {
2682                                         bits: 7,
2683                                         value: 4,
2684                                       },
2685                                       HuffmanCode {
2686                                         bits: 6,
2687                                         value: 104,
2688                                       },
2689                                       HuffmanCode {
2690                                         bits: 11,
2691                                         value: 125,
2692                                       },
2693                                       HuffmanCode {
2694                                         bits: 4,
2695                                         value: 0,
2696                                       },
2697                                       HuffmanCode {
2698                                         bits: 6,
2699                                         value: 160,
2700                                       },
2701                                       HuffmanCode {
2702                                         bits: 5,
2703                                         value: 112,
2704                                       },
2705                                       HuffmanCode {
2706                                         bits: 8,
2707                                         value: 10,
2708                                       },
2709                                       HuffmanCode {
2710                                         bits: 5,
2711                                         value: 48,
2712                                       },
2713                                       HuffmanCode {
2714                                         bits: 6,
2715                                         value: 240,
2716                                       },
2717                                       HuffmanCode {
2718                                         bits: 6,
2719                                         value: 76,
2720                                       },
2721                                       HuffmanCode {
2722                                         bits: 10,
2723                                         value: 77,
2724                                       },
2725                                       HuffmanCode {
2726                                         bits: 4,
2727                                         value: 72,
2728                                       },
2729                                       HuffmanCode {
2730                                         bits: 6,
2731                                         value: 192,
2732                                       },
2733                                       HuffmanCode {
2734                                         bits: 6,
2735                                         value: 24,
2736                                       },
2737                                       HuffmanCode {
2738                                         bits: 9,
2739                                         value: 13,
2740                                       },
2741                                       HuffmanCode {
2742                                         bits: 5,
2743                                         value: 80,
2744                                       },
2745                                       HuffmanCode {
2746                                         bits: 7,
2747                                         value: 139,
2748                                       },
2749                                       HuffmanCode {
2750                                         bits: 6,
2751                                         value: 128,
2752                                       },
2753                                       HuffmanCode {
2754                                         bits: 11,
2755                                         value: 173,
2756                                       },
2757                                       HuffmanCode {
2758                                         bits: 1,
2759                                         value: 14,
2760                                       },
2761                                       HuffmanCode {
2762                                         bits: 1,
2763                                         value: 15,
2764                                       },
2765                                       HuffmanCode {
2766                                         bits: 1,
2767                                         value: 47,
2768                                       },
2769                                       HuffmanCode {
2770                                         bits: 1,
2771                                         value: 65,
2772                                       },
2773                                       HuffmanCode {
2774                                         bits: 1,
2775                                         value: 66,
2776                                       },
2777                                       HuffmanCode {
2778                                         bits: 1,
2779                                         value: 67,
2780                                       },
2781                                       HuffmanCode {
2782                                         bits: 1,
2783                                         value: 68,
2784                                       },
2785                                       HuffmanCode {
2786                                         bits: 1,
2787                                         value: 69,
2788                                       },
2789                                       HuffmanCode {
2790                                         bits: 1,
2791                                         value: 78,
2792                                       },
2793                                       HuffmanCode {
2794                                         bits: 1,
2795                                         value: 138,
2796                                       },
2797                                       HuffmanCode {
2798                                         bits: 1,
2799                                         value: 191,
2800                                       },
2801                                       HuffmanCode {
2802                                         bits: 1,
2803                                         value: 251,
2804                                       },
2805                                       HuffmanCode {
2806                                         bits: 2,
2807                                         value: 17,
2808                                       },
2809                                       HuffmanCode {
2810                                         bits: 2,
2811                                         value: 25,
2812                                       },
2813                                       HuffmanCode {
2814                                         bits: 2,
2815                                         value: 22,
2816                                       },
2817                                       HuffmanCode {
2818                                         bits: 2,
2819                                         value: 26,
2820                                       },
2821                                       HuffmanCode {
2822                                         bits: 2,
2823                                         value: 27,
2824                                       },
2825                                       HuffmanCode {
2826                                         bits: 2,
2827                                         value: 29,
2828                                       },
2829                                       HuffmanCode {
2830                                         bits: 2,
2831                                         value: 28,
2832                                       },
2833                                       HuffmanCode {
2834                                         bits: 2,
2835                                         value: 30,
2836                                       },
2837                                       HuffmanCode {
2838                                         bits: 2,
2839                                         value: 31,
2840                                       },
2841                                       HuffmanCode {
2842                                         bits: 2,
2843                                         value: 34,
2844                                       },
2845                                       HuffmanCode {
2846                                         bits: 2,
2847                                         value: 33,
2848                                       },
2849                                       HuffmanCode {
2850                                         bits: 2,
2851                                         value: 35,
2852                                       },
2853                                       HuffmanCode {
2854                                         bits: 2,
2855                                         value: 36,
2856                                       },
2857                                       HuffmanCode {
2858                                         bits: 2,
2859                                         value: 38,
2860                                       },
2861                                       HuffmanCode {
2862                                         bits: 2,
2863                                         value: 37,
2864                                       },
2865                                       HuffmanCode {
2866                                         bits: 2,
2867                                         value: 39,
2868                                       },
2869                                       HuffmanCode {
2870                                         bits: 2,
2871                                         value: 49,
2872                                       },
2873                                       HuffmanCode {
2874                                         bits: 2,
2875                                         value: 51,
2876                                       },
2877                                       HuffmanCode {
2878                                         bits: 2,
2879                                         value: 50,
2880                                       },
2881                                       HuffmanCode {
2882                                         bits: 2,
2883                                         value: 52,
2884                                       },
2885                                       HuffmanCode {
2886                                         bits: 2,
2887                                         value: 53,
2888                                       },
2889                                       HuffmanCode {
2890                                         bits: 2,
2891                                         value: 55,
2892                                       },
2893                                       HuffmanCode {
2894                                         bits: 2,
2895                                         value: 54,
2896                                       },
2897                                       HuffmanCode {
2898                                         bits: 2,
2899                                         value: 71,
2900                                       },
2901                                       HuffmanCode {
2902                                         bits: 2,
2903                                         value: 75,
2904                                       },
2905                                       HuffmanCode {
2906                                         bits: 2,
2907                                         value: 82,
2908                                       },
2909                                       HuffmanCode {
2910                                         bits: 2,
2911                                         value: 81,
2912                                       },
2913                                       HuffmanCode {
2914                                         bits: 2,
2915                                         value: 83,
2916                                       },
2917                                       HuffmanCode {
2918                                         bits: 2,
2919                                         value: 84,
2920                                       },
2921                                       HuffmanCode {
2922                                         bits: 2,
2923                                         value: 86,
2924                                       },
2925                                       HuffmanCode {
2926                                         bits: 2,
2927                                         value: 85,
2928                                       },
2929                                       HuffmanCode {
2930                                         bits: 2,
2931                                         value: 87,
2932                                       },
2933                                       HuffmanCode {
2934                                         bits: 2,
2935                                         value: 89,
2936                                       },
2937                                       HuffmanCode {
2938                                         bits: 2,
2939                                         value: 91,
2940                                       },
2941                                       HuffmanCode {
2942                                         bits: 2,
2943                                         value: 90,
2944                                       },
2945                                       HuffmanCode {
2946                                         bits: 2,
2947                                         value: 92,
2948                                       },
2949                                       HuffmanCode {
2950                                         bits: 2,
2951                                         value: 93,
2952                                       },
2953                                       HuffmanCode {
2954                                         bits: 2,
2955                                         value: 95,
2956                                       },
2957                                       HuffmanCode {
2958                                         bits: 2,
2959                                         value: 94,
2960                                       },
2961                                       HuffmanCode {
2962                                         bits: 2,
2963                                         value: 117,
2964                                       },
2965                                       HuffmanCode {
2966                                         bits: 2,
2967                                         value: 129,
2968                                       },
2969                                       HuffmanCode {
2970                                         bits: 2,
2971                                         value: 131,
2972                                       },
2973                                       HuffmanCode {
2974                                         bits: 2,
2975                                         value: 130,
2976                                       },
2977                                       HuffmanCode {
2978                                         bits: 2,
2979                                         value: 132,
2980                                       },
2981                                       HuffmanCode {
2982                                         bits: 2,
2983                                         value: 133,
2984                                       },
2985                                       HuffmanCode {
2986                                         bits: 2,
2987                                         value: 135,
2988                                       },
2989                                       HuffmanCode {
2990                                         bits: 2,
2991                                         value: 134,
2992                                       },
2993                                       HuffmanCode {
2994                                         bits: 2,
2995                                         value: 140,
2996                                       },
2997                                       HuffmanCode {
2998                                         bits: 2,
2999                                         value: 141,
3000                                       },
3001                                       HuffmanCode {
3002                                         bits: 2,
3003                                         value: 143,
3004                                       },
3005                                       HuffmanCode {
3006                                         bits: 2,
3007                                         value: 142,
3008                                       },
3009                                       HuffmanCode {
3010                                         bits: 2,
3011                                         value: 169,
3012                                       },
3013                                       HuffmanCode {
3014                                         bits: 2,
3015                                         value: 193,
3016                                       },
3017                                       HuffmanCode {
3018                                         bits: 2,
3019                                         value: 195,
3020                                       },
3021                                       HuffmanCode {
3022                                         bits: 2,
3023                                         value: 194,
3024                                       },
3025                                       HuffmanCode {
3026                                         bits: 2,
3027                                         value: 196,
3028                                       },
3029                                       HuffmanCode {
3030                                         bits: 2,
3031                                         value: 197,
3032                                       },
3033                                       HuffmanCode {
3034                                         bits: 2,
3035                                         value: 199,
3036                                       },
3037                                       HuffmanCode {
3038                                         bits: 2,
3039                                         value: 198,
3040                                       },
3041                                       HuffmanCode {
3042                                         bits: 2,
3043                                         value: 201,
3044                                       },
3045                                       HuffmanCode {
3046                                         bits: 2,
3047                                         value: 202,
3048                                       },
3049                                       HuffmanCode {
3050                                         bits: 2,
3051                                         value: 204,
3052                                       },
3053                                       HuffmanCode {
3054                                         bits: 2,
3055                                         value: 203,
3056                                       },
3057                                       HuffmanCode {
3058                                         bits: 2,
3059                                         value: 205,
3060                                       },
3061                                       HuffmanCode {
3062                                         bits: 2,
3063                                         value: 206,
3064                                       },
3065                                       HuffmanCode {
3066                                         bits: 2,
3067                                         value: 217,
3068                                       },
3069                                       HuffmanCode {
3070                                         bits: 2,
3071                                         value: 207,
3072                                       },
3073                                       HuffmanCode {
3074                                         bits: 2,
3075                                         value: 218,
3076                                       },
3077                                       HuffmanCode {
3078                                         bits: 2,
3079                                         value: 219,
3080                                       },
3081                                       HuffmanCode {
3082                                         bits: 2,
3083                                         value: 221,
3084                                       },
3085                                       HuffmanCode {
3086                                         bits: 2,
3087                                         value: 220,
3088                                       },
3089                                       HuffmanCode {
3090                                         bits: 2,
3091                                         value: 222,
3092                                       },
3093                                       HuffmanCode {
3094                                         bits: 2,
3095                                         value: 223,
3096                                       },
3097                                       HuffmanCode {
3098                                         bits: 2,
3099                                         value: 242,
3100                                       },
3101                                       HuffmanCode {
3102                                         bits: 2,
3103                                         value: 241,
3104                                       },
3105                                       HuffmanCode {
3106                                         bits: 2,
3107                                         value: 243,
3108                                       },
3109                                       HuffmanCode {
3110                                         bits: 2,
3111                                         value: 244,
3112                                       },
3113                                       HuffmanCode {
3114                                         bits: 2,
3115                                         value: 246,
3116                                       },
3117                                       HuffmanCode {
3118                                         bits: 2,
3119                                         value: 245,
3120                                       },
3121                                       HuffmanCode {
3122                                         bits: 2,
3123                                         value: 250,
3124                                       },
3125                                       HuffmanCode {
3126                                         bits: 3,
3127                                         value: 21,
3128                                       },
3129                                       HuffmanCode {
3130                                         bits: 3,
3131                                         value: 44,
3132                                       },
3133                                       HuffmanCode {
3134                                         bits: 3,
3135                                         value: 42,
3136                                       },
3137                                       HuffmanCode {
3138                                         bits: 3,
3139                                         value: 46,
3140                                       },
3141                                       HuffmanCode {
3142                                         bits: 3,
3143                                         value: 41,
3144                                       },
3145                                       HuffmanCode {
3146                                         bits: 3,
3147                                         value: 45,
3148                                       },
3149                                       HuffmanCode {
3150                                         bits: 3,
3151                                         value: 43,
3152                                       },
3153                                       HuffmanCode {
3154                                         bits: 3,
3155                                         value: 57,
3156                                       },
3157                                       HuffmanCode {
3158                                         bits: 3,
3159                                         value: 58,
3160                                       },
3161                                       HuffmanCode {
3162                                         bits: 3,
3163                                         value: 62,
3164                                       },
3165                                       HuffmanCode {
3166                                         bits: 3,
3167                                         value: 60,
3168                                       },
3169                                       HuffmanCode {
3170                                         bits: 3,
3171                                         value: 97,
3172                                       },
3173                                       HuffmanCode {
3174                                         bits: 3,
3175                                         value: 59,
3176                                       },
3177                                       HuffmanCode {
3178                                         bits: 3,
3179                                         value: 63,
3180                                       },
3181                                       HuffmanCode {
3182                                         bits: 3,
3183                                         value: 61,
3184                                       },
3185                                       HuffmanCode {
3186                                         bits: 3,
3187                                         value: 98,
3188                                       },
3189                                       HuffmanCode {
3190                                         bits: 3,
3191                                         value: 99,
3192                                       },
3193                                       HuffmanCode {
3194                                         bits: 3,
3195                                         value: 106,
3196                                       },
3197                                       HuffmanCode {
3198                                         bits: 3,
3199                                         value: 101,
3200                                       },
3201                                       HuffmanCode {
3202                                         bits: 3,
3203                                         value: 108,
3204                                       },
3205                                       HuffmanCode {
3206                                         bits: 3,
3207                                         value: 100,
3208                                       },
3209                                       HuffmanCode {
3210                                         bits: 3,
3211                                         value: 107,
3212                                       },
3213                                       HuffmanCode {
3214                                         bits: 3,
3215                                         value: 105,
3216                                       },
3217                                       HuffmanCode {
3218                                         bits: 3,
3219                                         value: 109,
3220                                       },
3221                                       HuffmanCode {
3222                                         bits: 3,
3223                                         value: 110,
3224                                       },
3225                                       HuffmanCode {
3226                                         bits: 3,
3227                                         value: 122,
3228                                       },
3229                                       HuffmanCode {
3230                                         bits: 3,
3231                                         value: 118,
3232                                       },
3233                                       HuffmanCode {
3234                                         bits: 3,
3235                                         value: 124,
3236                                       },
3237                                       HuffmanCode {
3238                                         bits: 3,
3239                                         value: 111,
3240                                       },
3241                                       HuffmanCode {
3242                                         bits: 3,
3243                                         value: 123,
3244                                       },
3245                                       HuffmanCode {
3246                                         bits: 3,
3247                                         value: 121,
3248                                       },
3249                                       HuffmanCode {
3250                                         bits: 3,
3251                                         value: 125,
3252                                       },
3253                                       HuffmanCode {
3254                                         bits: 3,
3255                                         value: 126,
3256                                       },
3257                                       HuffmanCode {
3258                                         bits: 3,
3259                                         value: 147,
3260                                       },
3261                                       HuffmanCode {
3262                                         bits: 3,
3263                                         value: 145,
3264                                       },
3265                                       HuffmanCode {
3266                                         bits: 3,
3267                                         value: 149,
3268                                       },
3269                                       HuffmanCode {
3270                                         bits: 3,
3271                                         value: 127,
3272                                       },
3273                                       HuffmanCode {
3274                                         bits: 3,
3275                                         value: 148,
3276                                       },
3277                                       HuffmanCode {
3278                                         bits: 3,
3279                                         value: 146,
3280                                       },
3281                                       HuffmanCode {
3282                                         bits: 3,
3283                                         value: 150,
3284                                       },
3285                                       HuffmanCode {
3286                                         bits: 3,
3287                                         value: 151,
3288                                       },
3289                                       HuffmanCode {
3290                                         bits: 3,
3291                                         value: 156,
3292                                       },
3293                                       HuffmanCode {
3294                                         bits: 3,
3295                                         value: 154,
3296                                       },
3297                                       HuffmanCode {
3298                                         bits: 3,
3299                                         value: 158,
3300                                       },
3301                                       HuffmanCode {
3302                                         bits: 3,
3303                                         value: 153,
3304                                       },
3305                                       HuffmanCode {
3306                                         bits: 3,
3307                                         value: 157,
3308                                       },
3309                                       HuffmanCode {
3310                                         bits: 3,
3311                                         value: 155,
3312                                       },
3313                                       HuffmanCode {
3314                                         bits: 3,
3315                                         value: 159,
3316                                       },
3317                                       HuffmanCode {
3318                                         bits: 3,
3319                                         value: 161,
3320                                       },
3321                                       HuffmanCode {
3322                                         bits: 3,
3323                                         value: 165,
3324                                       },
3325                                       HuffmanCode {
3326                                         bits: 3,
3327                                         value: 163,
3328                                       },
3329                                       HuffmanCode {
3330                                         bits: 3,
3331                                         value: 167,
3332                                       },
3333                                       HuffmanCode {
3334                                         bits: 3,
3335                                         value: 162,
3336                                       },
3337                                       HuffmanCode {
3338                                         bits: 3,
3339                                         value: 166,
3340                                       },
3341                                       HuffmanCode {
3342                                         bits: 3,
3343                                         value: 164,
3344                                       },
3345                                       HuffmanCode {
3346                                         bits: 3,
3347                                         value: 171,
3348                                       },
3349                                       HuffmanCode {
3350                                         bits: 3,
3351                                         value: 177,
3352                                       },
3353                                       HuffmanCode {
3354                                         bits: 3,
3355                                         value: 181,
3356                                       },
3357                                       HuffmanCode {
3358                                         bits: 3,
3359                                         value: 179,
3360                                       },
3361                                       HuffmanCode {
3362                                         bits: 3,
3363                                         value: 183,
3364                                       },
3365                                       HuffmanCode {
3366                                         bits: 3,
3367                                         value: 178,
3368                                       },
3369                                       HuffmanCode {
3370                                         bits: 3,
3371                                         value: 182,
3372                                       },
3373                                       HuffmanCode {
3374                                         bits: 3,
3375                                         value: 180,
3376                                       },
3377                                       HuffmanCode {
3378                                         bits: 3,
3379                                         value: 185,
3380                                       },
3381                                       HuffmanCode {
3382                                         bits: 3,
3383                                         value: 186,
3384                                       },
3385                                       HuffmanCode {
3386                                         bits: 3,
3387                                         value: 190,
3388                                       },
3389                                       HuffmanCode {
3390                                         bits: 3,
3391                                         value: 188,
3392                                       },
3393                                       HuffmanCode {
3394                                         bits: 3,
3395                                         value: 210,
3396                                       },
3397                                       HuffmanCode {
3398                                         bits: 3,
3399                                         value: 187,
3400                                       },
3401                                       HuffmanCode {
3402                                         bits: 3,
3403                                         value: 209,
3404                                       },
3405                                       HuffmanCode {
3406                                         bits: 3,
3407                                         value: 189,
3408                                       },
3409                                       HuffmanCode {
3410                                         bits: 3,
3411                                         value: 211,
3412                                       },
3413                                       HuffmanCode {
3414                                         bits: 3,
3415                                         value: 212,
3416                                       },
3417                                       HuffmanCode {
3418                                         bits: 3,
3419                                         value: 226,
3420                                       },
3421                                       HuffmanCode {
3422                                         bits: 3,
3423                                         value: 214,
3424                                       },
3425                                       HuffmanCode {
3426                                         bits: 3,
3427                                         value: 228,
3428                                       },
3429                                       HuffmanCode {
3430                                         bits: 3,
3431                                         value: 213,
3432                                       },
3433                                       HuffmanCode {
3434                                         bits: 3,
3435                                         value: 227,
3436                                       },
3437                                       HuffmanCode {
3438                                         bits: 3,
3439                                         value: 215,
3440                                       },
3441                                       HuffmanCode {
3442                                         bits: 3,
3443                                         value: 229,
3444                                       },
3445                                       HuffmanCode {
3446                                         bits: 3,
3447                                         value: 230,
3448                                       },
3449                                       HuffmanCode {
3450                                         bits: 3,
3451                                         value: 236,
3452                                       },
3453                                       HuffmanCode {
3454                                         bits: 3,
3455                                         value: 234,
3456                                       },
3457                                       HuffmanCode {
3458                                         bits: 3,
3459                                         value: 238,
3460                                       },
3461                                       HuffmanCode {
3462                                         bits: 3,
3463                                         value: 231,
3464                                       },
3465                                       HuffmanCode {
3466                                         bits: 3,
3467                                         value: 237,
3468                                       },
3469                                       HuffmanCode {
3470                                         bits: 3,
3471                                         value: 235,
3472                                       },
3473                                       HuffmanCode {
3474                                         bits: 3,
3475                                         value: 239,
3476                                       }];
3477  for index in 0..end_table.len() {
3478    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
3479               [index, end_table[index].bits as usize, end_table[index].value as usize]);
3480    assert!(table[index] == end_table[index]);
3481  }
3482
3483}
3484#[test]
3485fn singlelevel() {
3486  let symbol_array: [u16; BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 +
3487                          BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE] =
3488    [65535, 65535, 65535, 137, 0, 16, 2, 17, 33, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
3489     1, 253, 3, 4, 5, 6, 7, 8, 9, 10, 65, 12, 13, 14, 24, 72, 32, 31, 19, 20, 21, 22, 23, 57, 26,
3490     26, 32, 28, 29, 30, 31, 249, 184, 34, 35, 36, 37, 38, 39, 40, 48, 42, 43, 44, 45, 46, 47, 58,
3491     49, 50, 51, 52, 53, 54, 55, 56, 72, 58, 59, 60, 61, 62, 63, 64, 65, 130, 67, 68, 69, 70, 71,
3492     77, 129, 76, 193, 192, 200, 78, 79, 80, 81, 82, 83, 84, 90, 86, 87, 88, 89, 90, 102, 92, 118,
3493     94, 95, 96, 97, 98, 99, 100, 101, 103, 103, 104, 105, 106, 107, 108, 115, 110, 111, 112, 113,
3494     114, 115, 127, 117, 253, 119, 120, 121, 122, 123, 124, 140, 204, 127, 128, 129, 131, 156,
3495     138, 133, 134, 135, 136, 137, 255, 139, 140, 141, 150, 143, 144, 145, 146, 147, 148, 149,
3496     150, 152, 152, 159, 154, 155, 156, 208, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
3497     168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 192,
3498     194, 187, 188, 213, 190, 197, 196, 200, 195, 195, 196, 197, 198, 199, 200, 235, 202, 203,
3499     204, 205, 206, 207, 208, 209, 224, 212, 222, 218, 236, 215, 216, 217, 240, 219, 220, 221,
3500     225, 223, 224, 225, 226, 227, 228, 236, 230, 231, 232, 233, 234, 241, 254, 237, 238, 239,
3501     240, 248, 244, 243, 246, 250, 246, 247, 251, 249, 250, 251, 252, 253, 254, 255, 0, 23040,
3502     3500, 1, 0, 0, 0, 0, 0, 8192, 3500, 1, 0, 0, 0, 0, 0, 16, 0, 0, 0, 38400, 3500, 1, 0, 61712,
3503     21033, 32767, 0, 60189, 35058, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
3504     51712, 3501, 1, 0, 15360, 0, 0, 0, 1536, 3502, 1, 0, 8192, 3500, 1, 0, 61792, 21033, 32767,
3505     0, 61458, 35058, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4102, 0, 0, 0, 38400, 3500, 1, 0, 0, 0, 0,
3506     0, 256, 0, 0, 0, 0, 0, 0, 0, 8192, 3500, 1, 0, 61792, 21033, 32767, 0, 18208, 35059, 32767,
3507     0, 4102, 0, 0, 65408, 65535, 0, 0, 0, 0, 0, 0, 0, 4102, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
3508     32768, 54143, 32705, 0, 0, 54016, 32705, 0, 0, 54016, 32705, 0, 3584, 0, 0, 0, 6, 0, 0,
3509     65408, 7, 3502, 32767, 0, 8192, 3500, 1, 0, 0, 54016, 32705, 0, 1, 0, 0, 0, 8192, 3500, 1, 0,
3510     12288, 54016, 32705, 0, 8192, 54016, 32705, 0, 61888, 21033, 32767, 0, 14237, 35059, 32767,
3511     0, 88, 53952, 32705, 0, 4607, 0, 0, 0, 8, 0, 0, 0, 4608, 54016, 32705, 0, 8192, 3500, 1, 0,
3512     8192, 3500, 1, 0, 62016, 21033, 32767, 0, 16544, 35059, 32767, 0, 4096, 0, 0, 0, 8192, 3500,
3513     1, 0, 61936, 21033, 32767, 0, 12502, 35059, 32767, 0, 0, 0, 0, 0, 43957, 36820, 32767, 0, 0,
3514     0, 0, 0, 44144, 37434, 32767, 0, 19984, 53952, 32705, 0, 0, 0, 0, 0, 62076, 21033, 32767, 0,
3515     62080, 21033, 32767, 0, 62084, 21033, 32767, 0, 64, 53952, 32705, 0, 65535, 65535, 65535,
3516     65535, 64, 0, 8296, 1, 62032, 21033, 32767, 0, 16900, 27601, 32767, 0, 18096, 27604, 32767,
3517     0, 0, 0, 0, 0, 62080, 21033, 32767, 0, 17447, 27601, 32767, 0, 62080, 21033, 32767, 0, 17246,
3518     27601, 32767, 0, 0, 0, 0, 0, 62784, 36821, 32767, 0, 62144, 21033, 32767, 0, 4085, 27601,
3519     32767, 0, 44624, 27603, 32767, 0, 62784, 36821, 32767, 0, 10112, 30246, 32767, 0, 46488,
3520     27603, 32767, 0, 18096, 27604, 32767, 0, 0, 0, 0, 0, 62256, 21033, 32767, 0, 23819, 27601,
3521     32767, 0, 62288, 21033, 32767, 0, 20326, 27600, 32767, 0, 15584, 36820, 32767, 0, 15096,
3522     36820, 32767, 0, 12288, 36820, 32767, 0, 15120, 36820, 32767, 0, 42681, 21547, 0, 0, 18096,
3523     27604, 32767, 0, 62400, 21033, 32767, 0, 1299, 0, 0, 0, 51315, 34237, 23510, 56320, 18096,
3524     27604, 32767, 0, 62400, 21033, 32767, 0, 11120, 27601, 32767, 0, 13272, 27604, 32767, 0, 28,
3525     0, 0, 0, 62384, 21033, 32767, 0, 10134, 27601, 32767, 0, 11072, 30235, 32767, 0, 0, 0, 50, 0];
3526  let mut counts: [u16; 9] = [0, 0, 0, 2, 3, 7, 13, 6, 24];
3527  let end_counts: [u16; 9] = [0, 0, 0, 2, 3, 7, 13, 6, 24];
3528  let mut table: [HuffmanCode; 260] = [HuffmanCode {
3529    bits: 0,
3530    value: 0,
3531  }; 260];
3532  let size = BrotliBuildHuffmanTable(&mut table, 8, &symbol_array, 16, &mut counts);
3533  assert_eq!(size, 256);
3534  assert_eq!(counts, end_counts);
3535  let end_table: [HuffmanCode; 260] = [HuffmanCode {
3536                                         bits: 3,
3537                                         value: 137,
3538                                       },
3539                                       HuffmanCode {
3540                                         bits: 5,
3541                                         value: 184,
3542                                       },
3543                                       HuffmanCode {
3544                                         bits: 4,
3545                                         value: 0,
3546                                       },
3547                                       HuffmanCode {
3548                                         bits: 6,
3549                                         value: 8,
3550                                       },
3551                                       HuffmanCode {
3552                                         bits: 3,
3553                                         value: 255,
3554                                       },
3555                                       HuffmanCode {
3556                                         bits: 5,
3557                                         value: 254,
3558                                       },
3559                                       HuffmanCode {
3560                                         bits: 4,
3561                                         value: 253,
3562                                       },
3563                                       HuffmanCode {
3564                                         bits: 7,
3565                                         value: 249,
3566                                       },
3567                                       HuffmanCode {
3568                                         bits: 3,
3569                                         value: 137,
3570                                       },
3571                                       HuffmanCode {
3572                                         bits: 5,
3573                                         value: 200,
3574                                       },
3575                                       HuffmanCode {
3576                                         bits: 4,
3577                                         value: 1,
3578                                       },
3579                                       HuffmanCode {
3580                                         bits: 6,
3581                                         value: 130,
3582                                       },
3583                                       HuffmanCode {
3584                                         bits: 3,
3585                                         value: 255,
3586                                       },
3587                                       HuffmanCode {
3588                                         bits: 6,
3589                                         value: 4,
3590                                       },
3591                                       HuffmanCode {
3592                                         bits: 5,
3593                                         value: 16,
3594                                       },
3595                                       HuffmanCode {
3596                                         bits: 8,
3597                                         value: 48,
3598                                       },
3599                                       HuffmanCode {
3600                                         bits: 3,
3601                                         value: 137,
3602                                       },
3603                                       HuffmanCode {
3604                                         bits: 5,
3605                                         value: 192,
3606                                       },
3607                                       HuffmanCode {
3608                                         bits: 4,
3609                                         value: 0,
3610                                       },
3611                                       HuffmanCode {
3612                                         bits: 6,
3613                                         value: 10,
3614                                       },
3615                                       HuffmanCode {
3616                                         bits: 3,
3617                                         value: 255,
3618                                       },
3619                                       HuffmanCode {
3620                                         bits: 6,
3621                                         value: 2,
3622                                       },
3623                                       HuffmanCode {
3624                                         bits: 4,
3625                                         value: 253,
3626                                       },
3627                                       HuffmanCode {
3628                                         bits: 8,
3629                                         value: 33,
3630                                       },
3631                                       HuffmanCode {
3632                                         bits: 3,
3633                                         value: 137,
3634                                       },
3635                                       HuffmanCode {
3636                                         bits: 5,
3637                                         value: 235,
3638                                       },
3639                                       HuffmanCode {
3640                                         bits: 4,
3641                                         value: 1,
3642                                       },
3643                                       HuffmanCode {
3644                                         bits: 6,
3645                                         value: 208,
3646                                       },
3647                                       HuffmanCode {
3648                                         bits: 3,
3649                                         value: 255,
3650                                       },
3651                                       HuffmanCode {
3652                                         bits: 6,
3653                                         value: 6,
3654                                       },
3655                                       HuffmanCode {
3656                                         bits: 5,
3657                                         value: 32,
3658                                       },
3659                                       HuffmanCode {
3660                                         bits: 8,
3661                                         value: 56,
3662                                       },
3663                                       HuffmanCode {
3664                                         bits: 3,
3665                                         value: 137,
3666                                       },
3667                                       HuffmanCode {
3668                                         bits: 5,
3669                                         value: 184,
3670                                       },
3671                                       HuffmanCode {
3672                                         bits: 4,
3673                                         value: 0,
3674                                       },
3675                                       HuffmanCode {
3676                                         bits: 6,
3677                                         value: 9,
3678                                       },
3679                                       HuffmanCode {
3680                                         bits: 3,
3681                                         value: 255,
3682                                       },
3683                                       HuffmanCode {
3684                                         bits: 5,
3685                                         value: 254,
3686                                       },
3687                                       HuffmanCode {
3688                                         bits: 4,
3689                                         value: 253,
3690                                       },
3691                                       HuffmanCode {
3692                                         bits: 7,
3693                                         value: 251,
3694                                       },
3695                                       HuffmanCode {
3696                                         bits: 3,
3697                                         value: 137,
3698                                       },
3699                                       HuffmanCode {
3700                                         bits: 5,
3701                                         value: 200,
3702                                       },
3703                                       HuffmanCode {
3704                                         bits: 4,
3705                                         value: 1,
3706                                       },
3707                                       HuffmanCode {
3708                                         bits: 6,
3709                                         value: 156,
3710                                       },
3711                                       HuffmanCode {
3712                                         bits: 3,
3713                                         value: 255,
3714                                       },
3715                                       HuffmanCode {
3716                                         bits: 6,
3717                                         value: 5,
3718                                       },
3719                                       HuffmanCode {
3720                                         bits: 5,
3721                                         value: 16,
3722                                       },
3723                                       HuffmanCode {
3724                                         bits: 8,
3725                                         value: 52,
3726                                       },
3727                                       HuffmanCode {
3728                                         bits: 3,
3729                                         value: 137,
3730                                       },
3731                                       HuffmanCode {
3732                                         bits: 5,
3733                                         value: 192,
3734                                       },
3735                                       HuffmanCode {
3736                                         bits: 4,
3737                                         value: 0,
3738                                       },
3739                                       HuffmanCode {
3740                                         bits: 6,
3741                                         value: 65,
3742                                       },
3743                                       HuffmanCode {
3744                                         bits: 3,
3745                                         value: 255,
3746                                       },
3747                                       HuffmanCode {
3748                                         bits: 6,
3749                                         value: 3,
3750                                       },
3751                                       HuffmanCode {
3752                                         bits: 4,
3753                                         value: 253,
3754                                       },
3755                                       HuffmanCode {
3756                                         bits: 8,
3757                                         value: 37,
3758                                       },
3759                                       HuffmanCode {
3760                                         bits: 3,
3761                                         value: 137,
3762                                       },
3763                                       HuffmanCode {
3764                                         bits: 5,
3765                                         value: 235,
3766                                       },
3767                                       HuffmanCode {
3768                                         bits: 4,
3769                                         value: 1,
3770                                       },
3771                                       HuffmanCode {
3772                                         bits: 7,
3773                                         value: 17,
3774                                       },
3775                                       HuffmanCode {
3776                                         bits: 3,
3777                                         value: 255,
3778                                       },
3779                                       HuffmanCode {
3780                                         bits: 6,
3781                                         value: 7,
3782                                       },
3783                                       HuffmanCode {
3784                                         bits: 5,
3785                                         value: 32,
3786                                       },
3787                                       HuffmanCode {
3788                                         bits: 8,
3789                                         value: 138,
3790                                       },
3791                                       HuffmanCode {
3792                                         bits: 3,
3793                                         value: 137,
3794                                       },
3795                                       HuffmanCode {
3796                                         bits: 5,
3797                                         value: 184,
3798                                       },
3799                                       HuffmanCode {
3800                                         bits: 4,
3801                                         value: 0,
3802                                       },
3803                                       HuffmanCode {
3804                                         bits: 6,
3805                                         value: 8,
3806                                       },
3807                                       HuffmanCode {
3808                                         bits: 3,
3809                                         value: 255,
3810                                       },
3811                                       HuffmanCode {
3812                                         bits: 5,
3813                                         value: 254,
3814                                       },
3815                                       HuffmanCode {
3816                                         bits: 4,
3817                                         value: 253,
3818                                       },
3819                                       HuffmanCode {
3820                                         bits: 7,
3821                                         value: 250,
3822                                       },
3823                                       HuffmanCode {
3824                                         bits: 3,
3825                                         value: 137,
3826                                       },
3827                                       HuffmanCode {
3828                                         bits: 5,
3829                                         value: 200,
3830                                       },
3831                                       HuffmanCode {
3832                                         bits: 4,
3833                                         value: 1,
3834                                       },
3835                                       HuffmanCode {
3836                                         bits: 6,
3837                                         value: 130,
3838                                       },
3839                                       HuffmanCode {
3840                                         bits: 3,
3841                                         value: 255,
3842                                       },
3843                                       HuffmanCode {
3844                                         bits: 6,
3845                                         value: 4,
3846                                       },
3847                                       HuffmanCode {
3848                                         bits: 5,
3849                                         value: 16,
3850                                       },
3851                                       HuffmanCode {
3852                                         bits: 8,
3853                                         value: 50,
3854                                       },
3855                                       HuffmanCode {
3856                                         bits: 3,
3857                                         value: 137,
3858                                       },
3859                                       HuffmanCode {
3860                                         bits: 5,
3861                                         value: 192,
3862                                       },
3863                                       HuffmanCode {
3864                                         bits: 4,
3865                                         value: 0,
3866                                       },
3867                                       HuffmanCode {
3868                                         bits: 6,
3869                                         value: 10,
3870                                       },
3871                                       HuffmanCode {
3872                                         bits: 3,
3873                                         value: 255,
3874                                       },
3875                                       HuffmanCode {
3876                                         bits: 6,
3877                                         value: 2,
3878                                       },
3879                                       HuffmanCode {
3880                                         bits: 4,
3881                                         value: 253,
3882                                       },
3883                                       HuffmanCode {
3884                                         bits: 8,
3885                                         value: 35,
3886                                       },
3887                                       HuffmanCode {
3888                                         bits: 3,
3889                                         value: 137,
3890                                       },
3891                                       HuffmanCode {
3892                                         bits: 5,
3893                                         value: 235,
3894                                       },
3895                                       HuffmanCode {
3896                                         bits: 4,
3897                                         value: 1,
3898                                       },
3899                                       HuffmanCode {
3900                                         bits: 6,
3901                                         value: 208,
3902                                       },
3903                                       HuffmanCode {
3904                                         bits: 3,
3905                                         value: 255,
3906                                       },
3907                                       HuffmanCode {
3908                                         bits: 6,
3909                                         value: 6,
3910                                       },
3911                                       HuffmanCode {
3912                                         bits: 5,
3913                                         value: 32,
3914                                       },
3915                                       HuffmanCode {
3916                                         bits: 8,
3917                                         value: 129,
3918                                       },
3919                                       HuffmanCode {
3920                                         bits: 3,
3921                                         value: 137,
3922                                       },
3923                                       HuffmanCode {
3924                                         bits: 5,
3925                                         value: 184,
3926                                       },
3927                                       HuffmanCode {
3928                                         bits: 4,
3929                                         value: 0,
3930                                       },
3931                                       HuffmanCode {
3932                                         bits: 6,
3933                                         value: 9,
3934                                       },
3935                                       HuffmanCode {
3936                                         bits: 3,
3937                                         value: 255,
3938                                       },
3939                                       HuffmanCode {
3940                                         bits: 5,
3941                                         value: 254,
3942                                       },
3943                                       HuffmanCode {
3944                                         bits: 4,
3945                                         value: 253,
3946                                       },
3947                                       HuffmanCode {
3948                                         bits: 7,
3949                                         value: 252,
3950                                       },
3951                                       HuffmanCode {
3952                                         bits: 3,
3953                                         value: 137,
3954                                       },
3955                                       HuffmanCode {
3956                                         bits: 5,
3957                                         value: 200,
3958                                       },
3959                                       HuffmanCode {
3960                                         bits: 4,
3961                                         value: 1,
3962                                       },
3963                                       HuffmanCode {
3964                                         bits: 6,
3965                                         value: 156,
3966                                       },
3967                                       HuffmanCode {
3968                                         bits: 3,
3969                                         value: 255,
3970                                       },
3971                                       HuffmanCode {
3972                                         bits: 6,
3973                                         value: 5,
3974                                       },
3975                                       HuffmanCode {
3976                                         bits: 5,
3977                                         value: 16,
3978                                       },
3979                                       HuffmanCode {
3980                                         bits: 8,
3981                                         value: 54,
3982                                       },
3983                                       HuffmanCode {
3984                                         bits: 3,
3985                                         value: 137,
3986                                       },
3987                                       HuffmanCode {
3988                                         bits: 5,
3989                                         value: 192,
3990                                       },
3991                                       HuffmanCode {
3992                                         bits: 4,
3993                                         value: 0,
3994                                       },
3995                                       HuffmanCode {
3996                                         bits: 6,
3997                                         value: 65,
3998                                       },
3999                                       HuffmanCode {
4000                                         bits: 3,
4001                                         value: 255,
4002                                       },
4003                                       HuffmanCode {
4004                                         bits: 6,
4005                                         value: 3,
4006                                       },
4007                                       HuffmanCode {
4008                                         bits: 4,
4009                                         value: 253,
4010                                       },
4011                                       HuffmanCode {
4012                                         bits: 8,
4013                                         value: 39,
4014                                       },
4015                                       HuffmanCode {
4016                                         bits: 3,
4017                                         value: 137,
4018                                       },
4019                                       HuffmanCode {
4020                                         bits: 5,
4021                                         value: 235,
4022                                       },
4023                                       HuffmanCode {
4024                                         bits: 4,
4025                                         value: 1,
4026                                       },
4027                                       HuffmanCode {
4028                                         bits: 7,
4029                                         value: 31,
4030                                       },
4031                                       HuffmanCode {
4032                                         bits: 3,
4033                                         value: 255,
4034                                       },
4035                                       HuffmanCode {
4036                                         bits: 6,
4037                                         value: 7,
4038                                       },
4039                                       HuffmanCode {
4040                                         bits: 5,
4041                                         value: 32,
4042                                       },
4043                                       HuffmanCode {
4044                                         bits: 8,
4045                                         value: 140,
4046                                       },
4047                                       HuffmanCode {
4048                                         bits: 3,
4049                                         value: 137,
4050                                       },
4051                                       HuffmanCode {
4052                                         bits: 5,
4053                                         value: 184,
4054                                       },
4055                                       HuffmanCode {
4056                                         bits: 4,
4057                                         value: 0,
4058                                       },
4059                                       HuffmanCode {
4060                                         bits: 6,
4061                                         value: 8,
4062                                       },
4063                                       HuffmanCode {
4064                                         bits: 3,
4065                                         value: 255,
4066                                       },
4067                                       HuffmanCode {
4068                                         bits: 5,
4069                                         value: 254,
4070                                       },
4071                                       HuffmanCode {
4072                                         bits: 4,
4073                                         value: 253,
4074                                       },
4075                                       HuffmanCode {
4076                                         bits: 7,
4077                                         value: 249,
4078                                       },
4079                                       HuffmanCode {
4080                                         bits: 3,
4081                                         value: 137,
4082                                       },
4083                                       HuffmanCode {
4084                                         bits: 5,
4085                                         value: 200,
4086                                       },
4087                                       HuffmanCode {
4088                                         bits: 4,
4089                                         value: 1,
4090                                       },
4091                                       HuffmanCode {
4092                                         bits: 6,
4093                                         value: 130,
4094                                       },
4095                                       HuffmanCode {
4096                                         bits: 3,
4097                                         value: 255,
4098                                       },
4099                                       HuffmanCode {
4100                                         bits: 6,
4101                                         value: 4,
4102                                       },
4103                                       HuffmanCode {
4104                                         bits: 5,
4105                                         value: 16,
4106                                       },
4107                                       HuffmanCode {
4108                                         bits: 8,
4109                                         value: 49,
4110                                       },
4111                                       HuffmanCode {
4112                                         bits: 3,
4113                                         value: 137,
4114                                       },
4115                                       HuffmanCode {
4116                                         bits: 5,
4117                                         value: 192,
4118                                       },
4119                                       HuffmanCode {
4120                                         bits: 4,
4121                                         value: 0,
4122                                       },
4123                                       HuffmanCode {
4124                                         bits: 6,
4125                                         value: 10,
4126                                       },
4127                                       HuffmanCode {
4128                                         bits: 3,
4129                                         value: 255,
4130                                       },
4131                                       HuffmanCode {
4132                                         bits: 6,
4133                                         value: 2,
4134                                       },
4135                                       HuffmanCode {
4136                                         bits: 4,
4137                                         value: 253,
4138                                       },
4139                                       HuffmanCode {
4140                                         bits: 8,
4141                                         value: 34,
4142                                       },
4143                                       HuffmanCode {
4144                                         bits: 3,
4145                                         value: 137,
4146                                       },
4147                                       HuffmanCode {
4148                                         bits: 5,
4149                                         value: 235,
4150                                       },
4151                                       HuffmanCode {
4152                                         bits: 4,
4153                                         value: 1,
4154                                       },
4155                                       HuffmanCode {
4156                                         bits: 6,
4157                                         value: 208,
4158                                       },
4159                                       HuffmanCode {
4160                                         bits: 3,
4161                                         value: 255,
4162                                       },
4163                                       HuffmanCode {
4164                                         bits: 6,
4165                                         value: 6,
4166                                       },
4167                                       HuffmanCode {
4168                                         bits: 5,
4169                                         value: 32,
4170                                       },
4171                                       HuffmanCode {
4172                                         bits: 8,
4173                                         value: 72,
4174                                       },
4175                                       HuffmanCode {
4176                                         bits: 3,
4177                                         value: 137,
4178                                       },
4179                                       HuffmanCode {
4180                                         bits: 5,
4181                                         value: 184,
4182                                       },
4183                                       HuffmanCode {
4184                                         bits: 4,
4185                                         value: 0,
4186                                       },
4187                                       HuffmanCode {
4188                                         bits: 6,
4189                                         value: 9,
4190                                       },
4191                                       HuffmanCode {
4192                                         bits: 3,
4193                                         value: 255,
4194                                       },
4195                                       HuffmanCode {
4196                                         bits: 5,
4197                                         value: 254,
4198                                       },
4199                                       HuffmanCode {
4200                                         bits: 4,
4201                                         value: 253,
4202                                       },
4203                                       HuffmanCode {
4204                                         bits: 7,
4205                                         value: 251,
4206                                       },
4207                                       HuffmanCode {
4208                                         bits: 3,
4209                                         value: 137,
4210                                       },
4211                                       HuffmanCode {
4212                                         bits: 5,
4213                                         value: 200,
4214                                       },
4215                                       HuffmanCode {
4216                                         bits: 4,
4217                                         value: 1,
4218                                       },
4219                                       HuffmanCode {
4220                                         bits: 6,
4221                                         value: 156,
4222                                       },
4223                                       HuffmanCode {
4224                                         bits: 3,
4225                                         value: 255,
4226                                       },
4227                                       HuffmanCode {
4228                                         bits: 6,
4229                                         value: 5,
4230                                       },
4231                                       HuffmanCode {
4232                                         bits: 5,
4233                                         value: 16,
4234                                       },
4235                                       HuffmanCode {
4236                                         bits: 8,
4237                                         value: 53,
4238                                       },
4239                                       HuffmanCode {
4240                                         bits: 3,
4241                                         value: 137,
4242                                       },
4243                                       HuffmanCode {
4244                                         bits: 5,
4245                                         value: 192,
4246                                       },
4247                                       HuffmanCode {
4248                                         bits: 4,
4249                                         value: 0,
4250                                       },
4251                                       HuffmanCode {
4252                                         bits: 6,
4253                                         value: 65,
4254                                       },
4255                                       HuffmanCode {
4256                                         bits: 3,
4257                                         value: 255,
4258                                       },
4259                                       HuffmanCode {
4260                                         bits: 6,
4261                                         value: 3,
4262                                       },
4263                                       HuffmanCode {
4264                                         bits: 4,
4265                                         value: 253,
4266                                       },
4267                                       HuffmanCode {
4268                                         bits: 8,
4269                                         value: 38,
4270                                       },
4271                                       HuffmanCode {
4272                                         bits: 3,
4273                                         value: 137,
4274                                       },
4275                                       HuffmanCode {
4276                                         bits: 5,
4277                                         value: 235,
4278                                       },
4279                                       HuffmanCode {
4280                                         bits: 4,
4281                                         value: 1,
4282                                       },
4283                                       HuffmanCode {
4284                                         bits: 7,
4285                                         value: 17,
4286                                       },
4287                                       HuffmanCode {
4288                                         bits: 3,
4289                                         value: 255,
4290                                       },
4291                                       HuffmanCode {
4292                                         bits: 6,
4293                                         value: 7,
4294                                       },
4295                                       HuffmanCode {
4296                                         bits: 5,
4297                                         value: 32,
4298                                       },
4299                                       HuffmanCode {
4300                                         bits: 8,
4301                                         value: 139,
4302                                       },
4303                                       HuffmanCode {
4304                                         bits: 3,
4305                                         value: 137,
4306                                       },
4307                                       HuffmanCode {
4308                                         bits: 5,
4309                                         value: 184,
4310                                       },
4311                                       HuffmanCode {
4312                                         bits: 4,
4313                                         value: 0,
4314                                       },
4315                                       HuffmanCode {
4316                                         bits: 6,
4317                                         value: 8,
4318                                       },
4319                                       HuffmanCode {
4320                                         bits: 3,
4321                                         value: 255,
4322                                       },
4323                                       HuffmanCode {
4324                                         bits: 5,
4325                                         value: 254,
4326                                       },
4327                                       HuffmanCode {
4328                                         bits: 4,
4329                                         value: 253,
4330                                       },
4331                                       HuffmanCode {
4332                                         bits: 7,
4333                                         value: 250,
4334                                       },
4335                                       HuffmanCode {
4336                                         bits: 3,
4337                                         value: 137,
4338                                       },
4339                                       HuffmanCode {
4340                                         bits: 5,
4341                                         value: 200,
4342                                       },
4343                                       HuffmanCode {
4344                                         bits: 4,
4345                                         value: 1,
4346                                       },
4347                                       HuffmanCode {
4348                                         bits: 6,
4349                                         value: 130,
4350                                       },
4351                                       HuffmanCode {
4352                                         bits: 3,
4353                                         value: 255,
4354                                       },
4355                                       HuffmanCode {
4356                                         bits: 6,
4357                                         value: 4,
4358                                       },
4359                                       HuffmanCode {
4360                                         bits: 5,
4361                                         value: 16,
4362                                       },
4363                                       HuffmanCode {
4364                                         bits: 8,
4365                                         value: 51,
4366                                       },
4367                                       HuffmanCode {
4368                                         bits: 3,
4369                                         value: 137,
4370                                       },
4371                                       HuffmanCode {
4372                                         bits: 5,
4373                                         value: 192,
4374                                       },
4375                                       HuffmanCode {
4376                                         bits: 4,
4377                                         value: 0,
4378                                       },
4379                                       HuffmanCode {
4380                                         bits: 6,
4381                                         value: 10,
4382                                       },
4383                                       HuffmanCode {
4384                                         bits: 3,
4385                                         value: 255,
4386                                       },
4387                                       HuffmanCode {
4388                                         bits: 6,
4389                                         value: 2,
4390                                       },
4391                                       HuffmanCode {
4392                                         bits: 4,
4393                                         value: 253,
4394                                       },
4395                                       HuffmanCode {
4396                                         bits: 8,
4397                                         value: 36,
4398                                       },
4399                                       HuffmanCode {
4400                                         bits: 3,
4401                                         value: 137,
4402                                       },
4403                                       HuffmanCode {
4404                                         bits: 5,
4405                                         value: 235,
4406                                       },
4407                                       HuffmanCode {
4408                                         bits: 4,
4409                                         value: 1,
4410                                       },
4411                                       HuffmanCode {
4412                                         bits: 6,
4413                                         value: 208,
4414                                       },
4415                                       HuffmanCode {
4416                                         bits: 3,
4417                                         value: 255,
4418                                       },
4419                                       HuffmanCode {
4420                                         bits: 6,
4421                                         value: 6,
4422                                       },
4423                                       HuffmanCode {
4424                                         bits: 5,
4425                                         value: 32,
4426                                       },
4427                                       HuffmanCode {
4428                                         bits: 8,
4429                                         value: 131,
4430                                       },
4431                                       HuffmanCode {
4432                                         bits: 3,
4433                                         value: 137,
4434                                       },
4435                                       HuffmanCode {
4436                                         bits: 5,
4437                                         value: 184,
4438                                       },
4439                                       HuffmanCode {
4440                                         bits: 4,
4441                                         value: 0,
4442                                       },
4443                                       HuffmanCode {
4444                                         bits: 6,
4445                                         value: 9,
4446                                       },
4447                                       HuffmanCode {
4448                                         bits: 3,
4449                                         value: 255,
4450                                       },
4451                                       HuffmanCode {
4452                                         bits: 5,
4453                                         value: 254,
4454                                       },
4455                                       HuffmanCode {
4456                                         bits: 4,
4457                                         value: 253,
4458                                       },
4459                                       HuffmanCode {
4460                                         bits: 7,
4461                                         value: 252,
4462                                       },
4463                                       HuffmanCode {
4464                                         bits: 3,
4465                                         value: 137,
4466                                       },
4467                                       HuffmanCode {
4468                                         bits: 5,
4469                                         value: 200,
4470                                       },
4471                                       HuffmanCode {
4472                                         bits: 4,
4473                                         value: 1,
4474                                       },
4475                                       HuffmanCode {
4476                                         bits: 6,
4477                                         value: 156,
4478                                       },
4479                                       HuffmanCode {
4480                                         bits: 3,
4481                                         value: 255,
4482                                       },
4483                                       HuffmanCode {
4484                                         bits: 6,
4485                                         value: 5,
4486                                       },
4487                                       HuffmanCode {
4488                                         bits: 5,
4489                                         value: 16,
4490                                       },
4491                                       HuffmanCode {
4492                                         bits: 8,
4493                                         value: 55,
4494                                       },
4495                                       HuffmanCode {
4496                                         bits: 3,
4497                                         value: 137,
4498                                       },
4499                                       HuffmanCode {
4500                                         bits: 5,
4501                                         value: 192,
4502                                       },
4503                                       HuffmanCode {
4504                                         bits: 4,
4505                                         value: 0,
4506                                       },
4507                                       HuffmanCode {
4508                                         bits: 6,
4509                                         value: 65,
4510                                       },
4511                                       HuffmanCode {
4512                                         bits: 3,
4513                                         value: 255,
4514                                       },
4515                                       HuffmanCode {
4516                                         bits: 6,
4517                                         value: 3,
4518                                       },
4519                                       HuffmanCode {
4520                                         bits: 4,
4521                                         value: 253,
4522                                       },
4523                                       HuffmanCode {
4524                                         bits: 8,
4525                                         value: 40,
4526                                       },
4527                                       HuffmanCode {
4528                                         bits: 3,
4529                                         value: 137,
4530                                       },
4531                                       HuffmanCode {
4532                                         bits: 5,
4533                                         value: 235,
4534                                       },
4535                                       HuffmanCode {
4536                                         bits: 4,
4537                                         value: 1,
4538                                       },
4539                                       HuffmanCode {
4540                                         bits: 7,
4541                                         value: 31,
4542                                       },
4543                                       HuffmanCode {
4544                                         bits: 3,
4545                                         value: 255,
4546                                       },
4547                                       HuffmanCode {
4548                                         bits: 6,
4549                                         value: 7,
4550                                       },
4551                                       HuffmanCode {
4552                                         bits: 5,
4553                                         value: 32,
4554                                       },
4555                                       HuffmanCode {
4556                                         bits: 8,
4557                                         value: 141,
4558                                       },
4559                                       HuffmanCode {
4560                                         bits: 0,
4561                                         value: 0,
4562                                       },
4563                                       HuffmanCode {
4564                                         bits: 0,
4565                                         value: 0,
4566                                       },
4567                                       HuffmanCode {
4568                                         bits: 0,
4569                                         value: 0,
4570                                       },
4571                                       HuffmanCode {
4572                                         bits: 0,
4573                                         value: 0,
4574                                       }];
4575  for index in 0..end_table.len() {
4576    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
4577               [index, end_table[index].bits as usize, end_table[index].value as usize]);
4578    assert!(table[index] == end_table[index]);
4579  }
4580}
4581#[test]
4582fn simple_0() {
4583  let mut table: [HuffmanCode; 256] = [HuffmanCode {
4584    bits: 0,
4585    value: 0,
4586  }; 256];
4587  let end_table: [HuffmanCode; 256] = [HuffmanCode {
4588    bits: 0,
4589    value: 32,
4590  }; 256];
4591  let mut val: [u16; 1] = [32];
4592  let goal_size = BrotliBuildSimpleHuffmanTable(&mut table, 8, &mut val, 0);
4593  assert_eq!(goal_size, 256);
4594  for index in 0..end_table.len() {
4595    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
4596               [index, end_table[index].bits as usize, end_table[index].value as usize]);
4597    assert!(table[index] == end_table[index]);
4598  }
4599}
4600#[test]
4601fn simple_1() {
4602  let mut table: [HuffmanCode; 256] = [HuffmanCode {
4603    bits: 0,
4604    value: 0,
4605  }; 256];
4606  let end_table: [HuffmanCode; 256] = [HuffmanCode {
4607                                         bits: 1,
4608                                         value: 146,
4609                                       },
4610                                       HuffmanCode {
4611                                         bits: 1,
4612                                         value: 192,
4613                                       },
4614                                       HuffmanCode {
4615                                         bits: 1,
4616                                         value: 146,
4617                                       },
4618                                       HuffmanCode {
4619                                         bits: 1,
4620                                         value: 192,
4621                                       },
4622                                       HuffmanCode {
4623                                         bits: 1,
4624                                         value: 146,
4625                                       },
4626                                       HuffmanCode {
4627                                         bits: 1,
4628                                         value: 192,
4629                                       },
4630                                       HuffmanCode {
4631                                         bits: 1,
4632                                         value: 146,
4633                                       },
4634                                       HuffmanCode {
4635                                         bits: 1,
4636                                         value: 192,
4637                                       },
4638                                       HuffmanCode {
4639                                         bits: 1,
4640                                         value: 146,
4641                                       },
4642                                       HuffmanCode {
4643                                         bits: 1,
4644                                         value: 192,
4645                                       },
4646                                       HuffmanCode {
4647                                         bits: 1,
4648                                         value: 146,
4649                                       },
4650                                       HuffmanCode {
4651                                         bits: 1,
4652                                         value: 192,
4653                                       },
4654                                       HuffmanCode {
4655                                         bits: 1,
4656                                         value: 146,
4657                                       },
4658                                       HuffmanCode {
4659                                         bits: 1,
4660                                         value: 192,
4661                                       },
4662                                       HuffmanCode {
4663                                         bits: 1,
4664                                         value: 146,
4665                                       },
4666                                       HuffmanCode {
4667                                         bits: 1,
4668                                         value: 192,
4669                                       },
4670                                       HuffmanCode {
4671                                         bits: 1,
4672                                         value: 146,
4673                                       },
4674                                       HuffmanCode {
4675                                         bits: 1,
4676                                         value: 192,
4677                                       },
4678                                       HuffmanCode {
4679                                         bits: 1,
4680                                         value: 146,
4681                                       },
4682                                       HuffmanCode {
4683                                         bits: 1,
4684                                         value: 192,
4685                                       },
4686                                       HuffmanCode {
4687                                         bits: 1,
4688                                         value: 146,
4689                                       },
4690                                       HuffmanCode {
4691                                         bits: 1,
4692                                         value: 192,
4693                                       },
4694                                       HuffmanCode {
4695                                         bits: 1,
4696                                         value: 146,
4697                                       },
4698                                       HuffmanCode {
4699                                         bits: 1,
4700                                         value: 192,
4701                                       },
4702                                       HuffmanCode {
4703                                         bits: 1,
4704                                         value: 146,
4705                                       },
4706                                       HuffmanCode {
4707                                         bits: 1,
4708                                         value: 192,
4709                                       },
4710                                       HuffmanCode {
4711                                         bits: 1,
4712                                         value: 146,
4713                                       },
4714                                       HuffmanCode {
4715                                         bits: 1,
4716                                         value: 192,
4717                                       },
4718                                       HuffmanCode {
4719                                         bits: 1,
4720                                         value: 146,
4721                                       },
4722                                       HuffmanCode {
4723                                         bits: 1,
4724                                         value: 192,
4725                                       },
4726                                       HuffmanCode {
4727                                         bits: 1,
4728                                         value: 146,
4729                                       },
4730                                       HuffmanCode {
4731                                         bits: 1,
4732                                         value: 192,
4733                                       },
4734                                       HuffmanCode {
4735                                         bits: 1,
4736                                         value: 146,
4737                                       },
4738                                       HuffmanCode {
4739                                         bits: 1,
4740                                         value: 192,
4741                                       },
4742                                       HuffmanCode {
4743                                         bits: 1,
4744                                         value: 146,
4745                                       },
4746                                       HuffmanCode {
4747                                         bits: 1,
4748                                         value: 192,
4749                                       },
4750                                       HuffmanCode {
4751                                         bits: 1,
4752                                         value: 146,
4753                                       },
4754                                       HuffmanCode {
4755                                         bits: 1,
4756                                         value: 192,
4757                                       },
4758                                       HuffmanCode {
4759                                         bits: 1,
4760                                         value: 146,
4761                                       },
4762                                       HuffmanCode {
4763                                         bits: 1,
4764                                         value: 192,
4765                                       },
4766                                       HuffmanCode {
4767                                         bits: 1,
4768                                         value: 146,
4769                                       },
4770                                       HuffmanCode {
4771                                         bits: 1,
4772                                         value: 192,
4773                                       },
4774                                       HuffmanCode {
4775                                         bits: 1,
4776                                         value: 146,
4777                                       },
4778                                       HuffmanCode {
4779                                         bits: 1,
4780                                         value: 192,
4781                                       },
4782                                       HuffmanCode {
4783                                         bits: 1,
4784                                         value: 146,
4785                                       },
4786                                       HuffmanCode {
4787                                         bits: 1,
4788                                         value: 192,
4789                                       },
4790                                       HuffmanCode {
4791                                         bits: 1,
4792                                         value: 146,
4793                                       },
4794                                       HuffmanCode {
4795                                         bits: 1,
4796                                         value: 192,
4797                                       },
4798                                       HuffmanCode {
4799                                         bits: 1,
4800                                         value: 146,
4801                                       },
4802                                       HuffmanCode {
4803                                         bits: 1,
4804                                         value: 192,
4805                                       },
4806                                       HuffmanCode {
4807                                         bits: 1,
4808                                         value: 146,
4809                                       },
4810                                       HuffmanCode {
4811                                         bits: 1,
4812                                         value: 192,
4813                                       },
4814                                       HuffmanCode {
4815                                         bits: 1,
4816                                         value: 146,
4817                                       },
4818                                       HuffmanCode {
4819                                         bits: 1,
4820                                         value: 192,
4821                                       },
4822                                       HuffmanCode {
4823                                         bits: 1,
4824                                         value: 146,
4825                                       },
4826                                       HuffmanCode {
4827                                         bits: 1,
4828                                         value: 192,
4829                                       },
4830                                       HuffmanCode {
4831                                         bits: 1,
4832                                         value: 146,
4833                                       },
4834                                       HuffmanCode {
4835                                         bits: 1,
4836                                         value: 192,
4837                                       },
4838                                       HuffmanCode {
4839                                         bits: 1,
4840                                         value: 146,
4841                                       },
4842                                       HuffmanCode {
4843                                         bits: 1,
4844                                         value: 192,
4845                                       },
4846                                       HuffmanCode {
4847                                         bits: 1,
4848                                         value: 146,
4849                                       },
4850                                       HuffmanCode {
4851                                         bits: 1,
4852                                         value: 192,
4853                                       },
4854                                       HuffmanCode {
4855                                         bits: 1,
4856                                         value: 146,
4857                                       },
4858                                       HuffmanCode {
4859                                         bits: 1,
4860                                         value: 192,
4861                                       },
4862                                       HuffmanCode {
4863                                         bits: 1,
4864                                         value: 146,
4865                                       },
4866                                       HuffmanCode {
4867                                         bits: 1,
4868                                         value: 192,
4869                                       },
4870                                       HuffmanCode {
4871                                         bits: 1,
4872                                         value: 146,
4873                                       },
4874                                       HuffmanCode {
4875                                         bits: 1,
4876                                         value: 192,
4877                                       },
4878                                       HuffmanCode {
4879                                         bits: 1,
4880                                         value: 146,
4881                                       },
4882                                       HuffmanCode {
4883                                         bits: 1,
4884                                         value: 192,
4885                                       },
4886                                       HuffmanCode {
4887                                         bits: 1,
4888                                         value: 146,
4889                                       },
4890                                       HuffmanCode {
4891                                         bits: 1,
4892                                         value: 192,
4893                                       },
4894                                       HuffmanCode {
4895                                         bits: 1,
4896                                         value: 146,
4897                                       },
4898                                       HuffmanCode {
4899                                         bits: 1,
4900                                         value: 192,
4901                                       },
4902                                       HuffmanCode {
4903                                         bits: 1,
4904                                         value: 146,
4905                                       },
4906                                       HuffmanCode {
4907                                         bits: 1,
4908                                         value: 192,
4909                                       },
4910                                       HuffmanCode {
4911                                         bits: 1,
4912                                         value: 146,
4913                                       },
4914                                       HuffmanCode {
4915                                         bits: 1,
4916                                         value: 192,
4917                                       },
4918                                       HuffmanCode {
4919                                         bits: 1,
4920                                         value: 146,
4921                                       },
4922                                       HuffmanCode {
4923                                         bits: 1,
4924                                         value: 192,
4925                                       },
4926                                       HuffmanCode {
4927                                         bits: 1,
4928                                         value: 146,
4929                                       },
4930                                       HuffmanCode {
4931                                         bits: 1,
4932                                         value: 192,
4933                                       },
4934                                       HuffmanCode {
4935                                         bits: 1,
4936                                         value: 146,
4937                                       },
4938                                       HuffmanCode {
4939                                         bits: 1,
4940                                         value: 192,
4941                                       },
4942                                       HuffmanCode {
4943                                         bits: 1,
4944                                         value: 146,
4945                                       },
4946                                       HuffmanCode {
4947                                         bits: 1,
4948                                         value: 192,
4949                                       },
4950                                       HuffmanCode {
4951                                         bits: 1,
4952                                         value: 146,
4953                                       },
4954                                       HuffmanCode {
4955                                         bits: 1,
4956                                         value: 192,
4957                                       },
4958                                       HuffmanCode {
4959                                         bits: 1,
4960                                         value: 146,
4961                                       },
4962                                       HuffmanCode {
4963                                         bits: 1,
4964                                         value: 192,
4965                                       },
4966                                       HuffmanCode {
4967                                         bits: 1,
4968                                         value: 146,
4969                                       },
4970                                       HuffmanCode {
4971                                         bits: 1,
4972                                         value: 192,
4973                                       },
4974                                       HuffmanCode {
4975                                         bits: 1,
4976                                         value: 146,
4977                                       },
4978                                       HuffmanCode {
4979                                         bits: 1,
4980                                         value: 192,
4981                                       },
4982                                       HuffmanCode {
4983                                         bits: 1,
4984                                         value: 146,
4985                                       },
4986                                       HuffmanCode {
4987                                         bits: 1,
4988                                         value: 192,
4989                                       },
4990                                       HuffmanCode {
4991                                         bits: 1,
4992                                         value: 146,
4993                                       },
4994                                       HuffmanCode {
4995                                         bits: 1,
4996                                         value: 192,
4997                                       },
4998                                       HuffmanCode {
4999                                         bits: 1,
5000                                         value: 146,
5001                                       },
5002                                       HuffmanCode {
5003                                         bits: 1,
5004                                         value: 192,
5005                                       },
5006                                       HuffmanCode {
5007                                         bits: 1,
5008                                         value: 146,
5009                                       },
5010                                       HuffmanCode {
5011                                         bits: 1,
5012                                         value: 192,
5013                                       },
5014                                       HuffmanCode {
5015                                         bits: 1,
5016                                         value: 146,
5017                                       },
5018                                       HuffmanCode {
5019                                         bits: 1,
5020                                         value: 192,
5021                                       },
5022                                       HuffmanCode {
5023                                         bits: 1,
5024                                         value: 146,
5025                                       },
5026                                       HuffmanCode {
5027                                         bits: 1,
5028                                         value: 192,
5029                                       },
5030                                       HuffmanCode {
5031                                         bits: 1,
5032                                         value: 146,
5033                                       },
5034                                       HuffmanCode {
5035                                         bits: 1,
5036                                         value: 192,
5037                                       },
5038                                       HuffmanCode {
5039                                         bits: 1,
5040                                         value: 146,
5041                                       },
5042                                       HuffmanCode {
5043                                         bits: 1,
5044                                         value: 192,
5045                                       },
5046                                       HuffmanCode {
5047                                         bits: 1,
5048                                         value: 146,
5049                                       },
5050                                       HuffmanCode {
5051                                         bits: 1,
5052                                         value: 192,
5053                                       },
5054                                       HuffmanCode {
5055                                         bits: 1,
5056                                         value: 146,
5057                                       },
5058                                       HuffmanCode {
5059                                         bits: 1,
5060                                         value: 192,
5061                                       },
5062                                       HuffmanCode {
5063                                         bits: 1,
5064                                         value: 146,
5065                                       },
5066                                       HuffmanCode {
5067                                         bits: 1,
5068                                         value: 192,
5069                                       },
5070                                       HuffmanCode {
5071                                         bits: 1,
5072                                         value: 146,
5073                                       },
5074                                       HuffmanCode {
5075                                         bits: 1,
5076                                         value: 192,
5077                                       },
5078                                       HuffmanCode {
5079                                         bits: 1,
5080                                         value: 146,
5081                                       },
5082                                       HuffmanCode {
5083                                         bits: 1,
5084                                         value: 192,
5085                                       },
5086                                       HuffmanCode {
5087                                         bits: 1,
5088                                         value: 146,
5089                                       },
5090                                       HuffmanCode {
5091                                         bits: 1,
5092                                         value: 192,
5093                                       },
5094                                       HuffmanCode {
5095                                         bits: 1,
5096                                         value: 146,
5097                                       },
5098                                       HuffmanCode {
5099                                         bits: 1,
5100                                         value: 192,
5101                                       },
5102                                       HuffmanCode {
5103                                         bits: 1,
5104                                         value: 146,
5105                                       },
5106                                       HuffmanCode {
5107                                         bits: 1,
5108                                         value: 192,
5109                                       },
5110                                       HuffmanCode {
5111                                         bits: 1,
5112                                         value: 146,
5113                                       },
5114                                       HuffmanCode {
5115                                         bits: 1,
5116                                         value: 192,
5117                                       },
5118                                       HuffmanCode {
5119                                         bits: 1,
5120                                         value: 146,
5121                                       },
5122                                       HuffmanCode {
5123                                         bits: 1,
5124                                         value: 192,
5125                                       },
5126                                       HuffmanCode {
5127                                         bits: 1,
5128                                         value: 146,
5129                                       },
5130                                       HuffmanCode {
5131                                         bits: 1,
5132                                         value: 192,
5133                                       },
5134                                       HuffmanCode {
5135                                         bits: 1,
5136                                         value: 146,
5137                                       },
5138                                       HuffmanCode {
5139                                         bits: 1,
5140                                         value: 192,
5141                                       },
5142                                       HuffmanCode {
5143                                         bits: 1,
5144                                         value: 146,
5145                                       },
5146                                       HuffmanCode {
5147                                         bits: 1,
5148                                         value: 192,
5149                                       },
5150                                       HuffmanCode {
5151                                         bits: 1,
5152                                         value: 146,
5153                                       },
5154                                       HuffmanCode {
5155                                         bits: 1,
5156                                         value: 192,
5157                                       },
5158                                       HuffmanCode {
5159                                         bits: 1,
5160                                         value: 146,
5161                                       },
5162                                       HuffmanCode {
5163                                         bits: 1,
5164                                         value: 192,
5165                                       },
5166                                       HuffmanCode {
5167                                         bits: 1,
5168                                         value: 146,
5169                                       },
5170                                       HuffmanCode {
5171                                         bits: 1,
5172                                         value: 192,
5173                                       },
5174                                       HuffmanCode {
5175                                         bits: 1,
5176                                         value: 146,
5177                                       },
5178                                       HuffmanCode {
5179                                         bits: 1,
5180                                         value: 192,
5181                                       },
5182                                       HuffmanCode {
5183                                         bits: 1,
5184                                         value: 146,
5185                                       },
5186                                       HuffmanCode {
5187                                         bits: 1,
5188                                         value: 192,
5189                                       },
5190                                       HuffmanCode {
5191                                         bits: 1,
5192                                         value: 146,
5193                                       },
5194                                       HuffmanCode {
5195                                         bits: 1,
5196                                         value: 192,
5197                                       },
5198                                       HuffmanCode {
5199                                         bits: 1,
5200                                         value: 146,
5201                                       },
5202                                       HuffmanCode {
5203                                         bits: 1,
5204                                         value: 192,
5205                                       },
5206                                       HuffmanCode {
5207                                         bits: 1,
5208                                         value: 146,
5209                                       },
5210                                       HuffmanCode {
5211                                         bits: 1,
5212                                         value: 192,
5213                                       },
5214                                       HuffmanCode {
5215                                         bits: 1,
5216                                         value: 146,
5217                                       },
5218                                       HuffmanCode {
5219                                         bits: 1,
5220                                         value: 192,
5221                                       },
5222                                       HuffmanCode {
5223                                         bits: 1,
5224                                         value: 146,
5225                                       },
5226                                       HuffmanCode {
5227                                         bits: 1,
5228                                         value: 192,
5229                                       },
5230                                       HuffmanCode {
5231                                         bits: 1,
5232                                         value: 146,
5233                                       },
5234                                       HuffmanCode {
5235                                         bits: 1,
5236                                         value: 192,
5237                                       },
5238                                       HuffmanCode {
5239                                         bits: 1,
5240                                         value: 146,
5241                                       },
5242                                       HuffmanCode {
5243                                         bits: 1,
5244                                         value: 192,
5245                                       },
5246                                       HuffmanCode {
5247                                         bits: 1,
5248                                         value: 146,
5249                                       },
5250                                       HuffmanCode {
5251                                         bits: 1,
5252                                         value: 192,
5253                                       },
5254                                       HuffmanCode {
5255                                         bits: 1,
5256                                         value: 146,
5257                                       },
5258                                       HuffmanCode {
5259                                         bits: 1,
5260                                         value: 192,
5261                                       },
5262                                       HuffmanCode {
5263                                         bits: 1,
5264                                         value: 146,
5265                                       },
5266                                       HuffmanCode {
5267                                         bits: 1,
5268                                         value: 192,
5269                                       },
5270                                       HuffmanCode {
5271                                         bits: 1,
5272                                         value: 146,
5273                                       },
5274                                       HuffmanCode {
5275                                         bits: 1,
5276                                         value: 192,
5277                                       },
5278                                       HuffmanCode {
5279                                         bits: 1,
5280                                         value: 146,
5281                                       },
5282                                       HuffmanCode {
5283                                         bits: 1,
5284                                         value: 192,
5285                                       },
5286                                       HuffmanCode {
5287                                         bits: 1,
5288                                         value: 146,
5289                                       },
5290                                       HuffmanCode {
5291                                         bits: 1,
5292                                         value: 192,
5293                                       },
5294                                       HuffmanCode {
5295                                         bits: 1,
5296                                         value: 146,
5297                                       },
5298                                       HuffmanCode {
5299                                         bits: 1,
5300                                         value: 192,
5301                                       },
5302                                       HuffmanCode {
5303                                         bits: 1,
5304                                         value: 146,
5305                                       },
5306                                       HuffmanCode {
5307                                         bits: 1,
5308                                         value: 192,
5309                                       },
5310                                       HuffmanCode {
5311                                         bits: 1,
5312                                         value: 146,
5313                                       },
5314                                       HuffmanCode {
5315                                         bits: 1,
5316                                         value: 192,
5317                                       },
5318                                       HuffmanCode {
5319                                         bits: 1,
5320                                         value: 146,
5321                                       },
5322                                       HuffmanCode {
5323                                         bits: 1,
5324                                         value: 192,
5325                                       },
5326                                       HuffmanCode {
5327                                         bits: 1,
5328                                         value: 146,
5329                                       },
5330                                       HuffmanCode {
5331                                         bits: 1,
5332                                         value: 192,
5333                                       },
5334                                       HuffmanCode {
5335                                         bits: 1,
5336                                         value: 146,
5337                                       },
5338                                       HuffmanCode {
5339                                         bits: 1,
5340                                         value: 192,
5341                                       },
5342                                       HuffmanCode {
5343                                         bits: 1,
5344                                         value: 146,
5345                                       },
5346                                       HuffmanCode {
5347                                         bits: 1,
5348                                         value: 192,
5349                                       },
5350                                       HuffmanCode {
5351                                         bits: 1,
5352                                         value: 146,
5353                                       },
5354                                       HuffmanCode {
5355                                         bits: 1,
5356                                         value: 192,
5357                                       },
5358                                       HuffmanCode {
5359                                         bits: 1,
5360                                         value: 146,
5361                                       },
5362                                       HuffmanCode {
5363                                         bits: 1,
5364                                         value: 192,
5365                                       },
5366                                       HuffmanCode {
5367                                         bits: 1,
5368                                         value: 146,
5369                                       },
5370                                       HuffmanCode {
5371                                         bits: 1,
5372                                         value: 192,
5373                                       },
5374                                       HuffmanCode {
5375                                         bits: 1,
5376                                         value: 146,
5377                                       },
5378                                       HuffmanCode {
5379                                         bits: 1,
5380                                         value: 192,
5381                                       },
5382                                       HuffmanCode {
5383                                         bits: 1,
5384                                         value: 146,
5385                                       },
5386                                       HuffmanCode {
5387                                         bits: 1,
5388                                         value: 192,
5389                                       },
5390                                       HuffmanCode {
5391                                         bits: 1,
5392                                         value: 146,
5393                                       },
5394                                       HuffmanCode {
5395                                         bits: 1,
5396                                         value: 192,
5397                                       },
5398                                       HuffmanCode {
5399                                         bits: 1,
5400                                         value: 146,
5401                                       },
5402                                       HuffmanCode {
5403                                         bits: 1,
5404                                         value: 192,
5405                                       },
5406                                       HuffmanCode {
5407                                         bits: 1,
5408                                         value: 146,
5409                                       },
5410                                       HuffmanCode {
5411                                         bits: 1,
5412                                         value: 192,
5413                                       },
5414                                       HuffmanCode {
5415                                         bits: 1,
5416                                         value: 146,
5417                                       },
5418                                       HuffmanCode {
5419                                         bits: 1,
5420                                         value: 192,
5421                                       },
5422                                       HuffmanCode {
5423                                         bits: 1,
5424                                         value: 146,
5425                                       },
5426                                       HuffmanCode {
5427                                         bits: 1,
5428                                         value: 192,
5429                                       },
5430                                       HuffmanCode {
5431                                         bits: 1,
5432                                         value: 146,
5433                                       },
5434                                       HuffmanCode {
5435                                         bits: 1,
5436                                         value: 192,
5437                                       },
5438                                       HuffmanCode {
5439                                         bits: 1,
5440                                         value: 146,
5441                                       },
5442                                       HuffmanCode {
5443                                         bits: 1,
5444                                         value: 192,
5445                                       },
5446                                       HuffmanCode {
5447                                         bits: 1,
5448                                         value: 146,
5449                                       },
5450                                       HuffmanCode {
5451                                         bits: 1,
5452                                         value: 192,
5453                                       },
5454                                       HuffmanCode {
5455                                         bits: 1,
5456                                         value: 146,
5457                                       },
5458                                       HuffmanCode {
5459                                         bits: 1,
5460                                         value: 192,
5461                                       },
5462                                       HuffmanCode {
5463                                         bits: 1,
5464                                         value: 146,
5465                                       },
5466                                       HuffmanCode {
5467                                         bits: 1,
5468                                         value: 192,
5469                                       },
5470                                       HuffmanCode {
5471                                         bits: 1,
5472                                         value: 146,
5473                                       },
5474                                       HuffmanCode {
5475                                         bits: 1,
5476                                         value: 192,
5477                                       },
5478                                       HuffmanCode {
5479                                         bits: 1,
5480                                         value: 146,
5481                                       },
5482                                       HuffmanCode {
5483                                         bits: 1,
5484                                         value: 192,
5485                                       },
5486                                       HuffmanCode {
5487                                         bits: 1,
5488                                         value: 146,
5489                                       },
5490                                       HuffmanCode {
5491                                         bits: 1,
5492                                         value: 192,
5493                                       },
5494                                       HuffmanCode {
5495                                         bits: 1,
5496                                         value: 146,
5497                                       },
5498                                       HuffmanCode {
5499                                         bits: 1,
5500                                         value: 192,
5501                                       },
5502                                       HuffmanCode {
5503                                         bits: 1,
5504                                         value: 146,
5505                                       },
5506                                       HuffmanCode {
5507                                         bits: 1,
5508                                         value: 192,
5509                                       },
5510                                       HuffmanCode {
5511                                         bits: 1,
5512                                         value: 146,
5513                                       },
5514                                       HuffmanCode {
5515                                         bits: 1,
5516                                         value: 192,
5517                                       },
5518                                       HuffmanCode {
5519                                         bits: 1,
5520                                         value: 146,
5521                                       },
5522                                       HuffmanCode {
5523                                         bits: 1,
5524                                         value: 192,
5525                                       },
5526                                       HuffmanCode {
5527                                         bits: 1,
5528                                         value: 146,
5529                                       },
5530                                       HuffmanCode {
5531                                         bits: 1,
5532                                         value: 192,
5533                                       },
5534                                       HuffmanCode {
5535                                         bits: 1,
5536                                         value: 146,
5537                                       },
5538                                       HuffmanCode {
5539                                         bits: 1,
5540                                         value: 192,
5541                                       },
5542                                       HuffmanCode {
5543                                         bits: 1,
5544                                         value: 146,
5545                                       },
5546                                       HuffmanCode {
5547                                         bits: 1,
5548                                         value: 192,
5549                                       },
5550                                       HuffmanCode {
5551                                         bits: 1,
5552                                         value: 146,
5553                                       },
5554                                       HuffmanCode {
5555                                         bits: 1,
5556                                         value: 192,
5557                                       },
5558                                       HuffmanCode {
5559                                         bits: 1,
5560                                         value: 146,
5561                                       },
5562                                       HuffmanCode {
5563                                         bits: 1,
5564                                         value: 192,
5565                                       },
5566                                       HuffmanCode {
5567                                         bits: 1,
5568                                         value: 146,
5569                                       },
5570                                       HuffmanCode {
5571                                         bits: 1,
5572                                         value: 192,
5573                                       },
5574                                       HuffmanCode {
5575                                         bits: 1,
5576                                         value: 146,
5577                                       },
5578                                       HuffmanCode {
5579                                         bits: 1,
5580                                         value: 192,
5581                                       },
5582                                       HuffmanCode {
5583                                         bits: 1,
5584                                         value: 146,
5585                                       },
5586                                       HuffmanCode {
5587                                         bits: 1,
5588                                         value: 192,
5589                                       },
5590                                       HuffmanCode {
5591                                         bits: 1,
5592                                         value: 146,
5593                                       },
5594                                       HuffmanCode {
5595                                         bits: 1,
5596                                         value: 192,
5597                                       },
5598                                       HuffmanCode {
5599                                         bits: 1,
5600                                         value: 146,
5601                                       },
5602                                       HuffmanCode {
5603                                         bits: 1,
5604                                         value: 192,
5605                                       },
5606                                       HuffmanCode {
5607                                         bits: 1,
5608                                         value: 146,
5609                                       },
5610                                       HuffmanCode {
5611                                         bits: 1,
5612                                         value: 192,
5613                                       },
5614                                       HuffmanCode {
5615                                         bits: 1,
5616                                         value: 146,
5617                                       },
5618                                       HuffmanCode {
5619                                         bits: 1,
5620                                         value: 192,
5621                                       },
5622                                       HuffmanCode {
5623                                         bits: 1,
5624                                         value: 146,
5625                                       },
5626                                       HuffmanCode {
5627                                         bits: 1,
5628                                         value: 192,
5629                                       }];
5630  let mut val: [u16; 2] = [146, 192];
5631  let goal_size = BrotliBuildSimpleHuffmanTable(&mut table, 8, &mut val, 1);
5632  assert_eq!(goal_size, 256);
5633  for index in 0..end_table.len() {
5634    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
5635               [index, end_table[index].bits as usize, end_table[index].value as usize]);
5636    assert!(table[index] == end_table[index]);
5637  }
5638}
5639
5640
5641
5642
5643#[test]
5644fn simple_2() {
5645  let mut table: [HuffmanCode; 256] = [HuffmanCode {
5646    bits: 0,
5647    value: 0,
5648  }; 256];
5649  let end_table: [HuffmanCode; 256] = [HuffmanCode {
5650                                         bits: 1,
5651                                         value: 32,
5652                                       },
5653                                       HuffmanCode {
5654                                         bits: 2,
5655                                         value: 28,
5656                                       },
5657                                       HuffmanCode {
5658                                         bits: 1,
5659                                         value: 32,
5660                                       },
5661                                       HuffmanCode {
5662                                         bits: 2,
5663                                         value: 33,
5664                                       },
5665                                       HuffmanCode {
5666                                         bits: 1,
5667                                         value: 32,
5668                                       },
5669                                       HuffmanCode {
5670                                         bits: 2,
5671                                         value: 28,
5672                                       },
5673                                       HuffmanCode {
5674                                         bits: 1,
5675                                         value: 32,
5676                                       },
5677                                       HuffmanCode {
5678                                         bits: 2,
5679                                         value: 33,
5680                                       },
5681                                       HuffmanCode {
5682                                         bits: 1,
5683                                         value: 32,
5684                                       },
5685                                       HuffmanCode {
5686                                         bits: 2,
5687                                         value: 28,
5688                                       },
5689                                       HuffmanCode {
5690                                         bits: 1,
5691                                         value: 32,
5692                                       },
5693                                       HuffmanCode {
5694                                         bits: 2,
5695                                         value: 33,
5696                                       },
5697                                       HuffmanCode {
5698                                         bits: 1,
5699                                         value: 32,
5700                                       },
5701                                       HuffmanCode {
5702                                         bits: 2,
5703                                         value: 28,
5704                                       },
5705                                       HuffmanCode {
5706                                         bits: 1,
5707                                         value: 32,
5708                                       },
5709                                       HuffmanCode {
5710                                         bits: 2,
5711                                         value: 33,
5712                                       },
5713                                       HuffmanCode {
5714                                         bits: 1,
5715                                         value: 32,
5716                                       },
5717                                       HuffmanCode {
5718                                         bits: 2,
5719                                         value: 28,
5720                                       },
5721                                       HuffmanCode {
5722                                         bits: 1,
5723                                         value: 32,
5724                                       },
5725                                       HuffmanCode {
5726                                         bits: 2,
5727                                         value: 33,
5728                                       },
5729                                       HuffmanCode {
5730                                         bits: 1,
5731                                         value: 32,
5732                                       },
5733                                       HuffmanCode {
5734                                         bits: 2,
5735                                         value: 28,
5736                                       },
5737                                       HuffmanCode {
5738                                         bits: 1,
5739                                         value: 32,
5740                                       },
5741                                       HuffmanCode {
5742                                         bits: 2,
5743                                         value: 33,
5744                                       },
5745                                       HuffmanCode {
5746                                         bits: 1,
5747                                         value: 32,
5748                                       },
5749                                       HuffmanCode {
5750                                         bits: 2,
5751                                         value: 28,
5752                                       },
5753                                       HuffmanCode {
5754                                         bits: 1,
5755                                         value: 32,
5756                                       },
5757                                       HuffmanCode {
5758                                         bits: 2,
5759                                         value: 33,
5760                                       },
5761                                       HuffmanCode {
5762                                         bits: 1,
5763                                         value: 32,
5764                                       },
5765                                       HuffmanCode {
5766                                         bits: 2,
5767                                         value: 28,
5768                                       },
5769                                       HuffmanCode {
5770                                         bits: 1,
5771                                         value: 32,
5772                                       },
5773                                       HuffmanCode {
5774                                         bits: 2,
5775                                         value: 33,
5776                                       },
5777                                       HuffmanCode {
5778                                         bits: 1,
5779                                         value: 32,
5780                                       },
5781                                       HuffmanCode {
5782                                         bits: 2,
5783                                         value: 28,
5784                                       },
5785                                       HuffmanCode {
5786                                         bits: 1,
5787                                         value: 32,
5788                                       },
5789                                       HuffmanCode {
5790                                         bits: 2,
5791                                         value: 33,
5792                                       },
5793                                       HuffmanCode {
5794                                         bits: 1,
5795                                         value: 32,
5796                                       },
5797                                       HuffmanCode {
5798                                         bits: 2,
5799                                         value: 28,
5800                                       },
5801                                       HuffmanCode {
5802                                         bits: 1,
5803                                         value: 32,
5804                                       },
5805                                       HuffmanCode {
5806                                         bits: 2,
5807                                         value: 33,
5808                                       },
5809                                       HuffmanCode {
5810                                         bits: 1,
5811                                         value: 32,
5812                                       },
5813                                       HuffmanCode {
5814                                         bits: 2,
5815                                         value: 28,
5816                                       },
5817                                       HuffmanCode {
5818                                         bits: 1,
5819                                         value: 32,
5820                                       },
5821                                       HuffmanCode {
5822                                         bits: 2,
5823                                         value: 33,
5824                                       },
5825                                       HuffmanCode {
5826                                         bits: 1,
5827                                         value: 32,
5828                                       },
5829                                       HuffmanCode {
5830                                         bits: 2,
5831                                         value: 28,
5832                                       },
5833                                       HuffmanCode {
5834                                         bits: 1,
5835                                         value: 32,
5836                                       },
5837                                       HuffmanCode {
5838                                         bits: 2,
5839                                         value: 33,
5840                                       },
5841                                       HuffmanCode {
5842                                         bits: 1,
5843                                         value: 32,
5844                                       },
5845                                       HuffmanCode {
5846                                         bits: 2,
5847                                         value: 28,
5848                                       },
5849                                       HuffmanCode {
5850                                         bits: 1,
5851                                         value: 32,
5852                                       },
5853                                       HuffmanCode {
5854                                         bits: 2,
5855                                         value: 33,
5856                                       },
5857                                       HuffmanCode {
5858                                         bits: 1,
5859                                         value: 32,
5860                                       },
5861                                       HuffmanCode {
5862                                         bits: 2,
5863                                         value: 28,
5864                                       },
5865                                       HuffmanCode {
5866                                         bits: 1,
5867                                         value: 32,
5868                                       },
5869                                       HuffmanCode {
5870                                         bits: 2,
5871                                         value: 33,
5872                                       },
5873                                       HuffmanCode {
5874                                         bits: 1,
5875                                         value: 32,
5876                                       },
5877                                       HuffmanCode {
5878                                         bits: 2,
5879                                         value: 28,
5880                                       },
5881                                       HuffmanCode {
5882                                         bits: 1,
5883                                         value: 32,
5884                                       },
5885                                       HuffmanCode {
5886                                         bits: 2,
5887                                         value: 33,
5888                                       },
5889                                       HuffmanCode {
5890                                         bits: 1,
5891                                         value: 32,
5892                                       },
5893                                       HuffmanCode {
5894                                         bits: 2,
5895                                         value: 28,
5896                                       },
5897                                       HuffmanCode {
5898                                         bits: 1,
5899                                         value: 32,
5900                                       },
5901                                       HuffmanCode {
5902                                         bits: 2,
5903                                         value: 33,
5904                                       },
5905                                       HuffmanCode {
5906                                         bits: 1,
5907                                         value: 32,
5908                                       },
5909                                       HuffmanCode {
5910                                         bits: 2,
5911                                         value: 28,
5912                                       },
5913                                       HuffmanCode {
5914                                         bits: 1,
5915                                         value: 32,
5916                                       },
5917                                       HuffmanCode {
5918                                         bits: 2,
5919                                         value: 33,
5920                                       },
5921                                       HuffmanCode {
5922                                         bits: 1,
5923                                         value: 32,
5924                                       },
5925                                       HuffmanCode {
5926                                         bits: 2,
5927                                         value: 28,
5928                                       },
5929                                       HuffmanCode {
5930                                         bits: 1,
5931                                         value: 32,
5932                                       },
5933                                       HuffmanCode {
5934                                         bits: 2,
5935                                         value: 33,
5936                                       },
5937                                       HuffmanCode {
5938                                         bits: 1,
5939                                         value: 32,
5940                                       },
5941                                       HuffmanCode {
5942                                         bits: 2,
5943                                         value: 28,
5944                                       },
5945                                       HuffmanCode {
5946                                         bits: 1,
5947                                         value: 32,
5948                                       },
5949                                       HuffmanCode {
5950                                         bits: 2,
5951                                         value: 33,
5952                                       },
5953                                       HuffmanCode {
5954                                         bits: 1,
5955                                         value: 32,
5956                                       },
5957                                       HuffmanCode {
5958                                         bits: 2,
5959                                         value: 28,
5960                                       },
5961                                       HuffmanCode {
5962                                         bits: 1,
5963                                         value: 32,
5964                                       },
5965                                       HuffmanCode {
5966                                         bits: 2,
5967                                         value: 33,
5968                                       },
5969                                       HuffmanCode {
5970                                         bits: 1,
5971                                         value: 32,
5972                                       },
5973                                       HuffmanCode {
5974                                         bits: 2,
5975                                         value: 28,
5976                                       },
5977                                       HuffmanCode {
5978                                         bits: 1,
5979                                         value: 32,
5980                                       },
5981                                       HuffmanCode {
5982                                         bits: 2,
5983                                         value: 33,
5984                                       },
5985                                       HuffmanCode {
5986                                         bits: 1,
5987                                         value: 32,
5988                                       },
5989                                       HuffmanCode {
5990                                         bits: 2,
5991                                         value: 28,
5992                                       },
5993                                       HuffmanCode {
5994                                         bits: 1,
5995                                         value: 32,
5996                                       },
5997                                       HuffmanCode {
5998                                         bits: 2,
5999                                         value: 33,
6000                                       },
6001                                       HuffmanCode {
6002                                         bits: 1,
6003                                         value: 32,
6004                                       },
6005                                       HuffmanCode {
6006                                         bits: 2,
6007                                         value: 28,
6008                                       },
6009                                       HuffmanCode {
6010                                         bits: 1,
6011                                         value: 32,
6012                                       },
6013                                       HuffmanCode {
6014                                         bits: 2,
6015                                         value: 33,
6016                                       },
6017                                       HuffmanCode {
6018                                         bits: 1,
6019                                         value: 32,
6020                                       },
6021                                       HuffmanCode {
6022                                         bits: 2,
6023                                         value: 28,
6024                                       },
6025                                       HuffmanCode {
6026                                         bits: 1,
6027                                         value: 32,
6028                                       },
6029                                       HuffmanCode {
6030                                         bits: 2,
6031                                         value: 33,
6032                                       },
6033                                       HuffmanCode {
6034                                         bits: 1,
6035                                         value: 32,
6036                                       },
6037                                       HuffmanCode {
6038                                         bits: 2,
6039                                         value: 28,
6040                                       },
6041                                       HuffmanCode {
6042                                         bits: 1,
6043                                         value: 32,
6044                                       },
6045                                       HuffmanCode {
6046                                         bits: 2,
6047                                         value: 33,
6048                                       },
6049                                       HuffmanCode {
6050                                         bits: 1,
6051                                         value: 32,
6052                                       },
6053                                       HuffmanCode {
6054                                         bits: 2,
6055                                         value: 28,
6056                                       },
6057                                       HuffmanCode {
6058                                         bits: 1,
6059                                         value: 32,
6060                                       },
6061                                       HuffmanCode {
6062                                         bits: 2,
6063                                         value: 33,
6064                                       },
6065                                       HuffmanCode {
6066                                         bits: 1,
6067                                         value: 32,
6068                                       },
6069                                       HuffmanCode {
6070                                         bits: 2,
6071                                         value: 28,
6072                                       },
6073                                       HuffmanCode {
6074                                         bits: 1,
6075                                         value: 32,
6076                                       },
6077                                       HuffmanCode {
6078                                         bits: 2,
6079                                         value: 33,
6080                                       },
6081                                       HuffmanCode {
6082                                         bits: 1,
6083                                         value: 32,
6084                                       },
6085                                       HuffmanCode {
6086                                         bits: 2,
6087                                         value: 28,
6088                                       },
6089                                       HuffmanCode {
6090                                         bits: 1,
6091                                         value: 32,
6092                                       },
6093                                       HuffmanCode {
6094                                         bits: 2,
6095                                         value: 33,
6096                                       },
6097                                       HuffmanCode {
6098                                         bits: 1,
6099                                         value: 32,
6100                                       },
6101                                       HuffmanCode {
6102                                         bits: 2,
6103                                         value: 28,
6104                                       },
6105                                       HuffmanCode {
6106                                         bits: 1,
6107                                         value: 32,
6108                                       },
6109                                       HuffmanCode {
6110                                         bits: 2,
6111                                         value: 33,
6112                                       },
6113                                       HuffmanCode {
6114                                         bits: 1,
6115                                         value: 32,
6116                                       },
6117                                       HuffmanCode {
6118                                         bits: 2,
6119                                         value: 28,
6120                                       },
6121                                       HuffmanCode {
6122                                         bits: 1,
6123                                         value: 32,
6124                                       },
6125                                       HuffmanCode {
6126                                         bits: 2,
6127                                         value: 33,
6128                                       },
6129                                       HuffmanCode {
6130                                         bits: 1,
6131                                         value: 32,
6132                                       },
6133                                       HuffmanCode {
6134                                         bits: 2,
6135                                         value: 28,
6136                                       },
6137                                       HuffmanCode {
6138                                         bits: 1,
6139                                         value: 32,
6140                                       },
6141                                       HuffmanCode {
6142                                         bits: 2,
6143                                         value: 33,
6144                                       },
6145                                       HuffmanCode {
6146                                         bits: 1,
6147                                         value: 32,
6148                                       },
6149                                       HuffmanCode {
6150                                         bits: 2,
6151                                         value: 28,
6152                                       },
6153                                       HuffmanCode {
6154                                         bits: 1,
6155                                         value: 32,
6156                                       },
6157                                       HuffmanCode {
6158                                         bits: 2,
6159                                         value: 33,
6160                                       },
6161                                       HuffmanCode {
6162                                         bits: 1,
6163                                         value: 32,
6164                                       },
6165                                       HuffmanCode {
6166                                         bits: 2,
6167                                         value: 28,
6168                                       },
6169                                       HuffmanCode {
6170                                         bits: 1,
6171                                         value: 32,
6172                                       },
6173                                       HuffmanCode {
6174                                         bits: 2,
6175                                         value: 33,
6176                                       },
6177                                       HuffmanCode {
6178                                         bits: 1,
6179                                         value: 32,
6180                                       },
6181                                       HuffmanCode {
6182                                         bits: 2,
6183                                         value: 28,
6184                                       },
6185                                       HuffmanCode {
6186                                         bits: 1,
6187                                         value: 32,
6188                                       },
6189                                       HuffmanCode {
6190                                         bits: 2,
6191                                         value: 33,
6192                                       },
6193                                       HuffmanCode {
6194                                         bits: 1,
6195                                         value: 32,
6196                                       },
6197                                       HuffmanCode {
6198                                         bits: 2,
6199                                         value: 28,
6200                                       },
6201                                       HuffmanCode {
6202                                         bits: 1,
6203                                         value: 32,
6204                                       },
6205                                       HuffmanCode {
6206                                         bits: 2,
6207                                         value: 33,
6208                                       },
6209                                       HuffmanCode {
6210                                         bits: 1,
6211                                         value: 32,
6212                                       },
6213                                       HuffmanCode {
6214                                         bits: 2,
6215                                         value: 28,
6216                                       },
6217                                       HuffmanCode {
6218                                         bits: 1,
6219                                         value: 32,
6220                                       },
6221                                       HuffmanCode {
6222                                         bits: 2,
6223                                         value: 33,
6224                                       },
6225                                       HuffmanCode {
6226                                         bits: 1,
6227                                         value: 32,
6228                                       },
6229                                       HuffmanCode {
6230                                         bits: 2,
6231                                         value: 28,
6232                                       },
6233                                       HuffmanCode {
6234                                         bits: 1,
6235                                         value: 32,
6236                                       },
6237                                       HuffmanCode {
6238                                         bits: 2,
6239                                         value: 33,
6240                                       },
6241                                       HuffmanCode {
6242                                         bits: 1,
6243                                         value: 32,
6244                                       },
6245                                       HuffmanCode {
6246                                         bits: 2,
6247                                         value: 28,
6248                                       },
6249                                       HuffmanCode {
6250                                         bits: 1,
6251                                         value: 32,
6252                                       },
6253                                       HuffmanCode {
6254                                         bits: 2,
6255                                         value: 33,
6256                                       },
6257                                       HuffmanCode {
6258                                         bits: 1,
6259                                         value: 32,
6260                                       },
6261                                       HuffmanCode {
6262                                         bits: 2,
6263                                         value: 28,
6264                                       },
6265                                       HuffmanCode {
6266                                         bits: 1,
6267                                         value: 32,
6268                                       },
6269                                       HuffmanCode {
6270                                         bits: 2,
6271                                         value: 33,
6272                                       },
6273                                       HuffmanCode {
6274                                         bits: 1,
6275                                         value: 32,
6276                                       },
6277                                       HuffmanCode {
6278                                         bits: 2,
6279                                         value: 28,
6280                                       },
6281                                       HuffmanCode {
6282                                         bits: 1,
6283                                         value: 32,
6284                                       },
6285                                       HuffmanCode {
6286                                         bits: 2,
6287                                         value: 33,
6288                                       },
6289                                       HuffmanCode {
6290                                         bits: 1,
6291                                         value: 32,
6292                                       },
6293                                       HuffmanCode {
6294                                         bits: 2,
6295                                         value: 28,
6296                                       },
6297                                       HuffmanCode {
6298                                         bits: 1,
6299                                         value: 32,
6300                                       },
6301                                       HuffmanCode {
6302                                         bits: 2,
6303                                         value: 33,
6304                                       },
6305                                       HuffmanCode {
6306                                         bits: 1,
6307                                         value: 32,
6308                                       },
6309                                       HuffmanCode {
6310                                         bits: 2,
6311                                         value: 28,
6312                                       },
6313                                       HuffmanCode {
6314                                         bits: 1,
6315                                         value: 32,
6316                                       },
6317                                       HuffmanCode {
6318                                         bits: 2,
6319                                         value: 33,
6320                                       },
6321                                       HuffmanCode {
6322                                         bits: 1,
6323                                         value: 32,
6324                                       },
6325                                       HuffmanCode {
6326                                         bits: 2,
6327                                         value: 28,
6328                                       },
6329                                       HuffmanCode {
6330                                         bits: 1,
6331                                         value: 32,
6332                                       },
6333                                       HuffmanCode {
6334                                         bits: 2,
6335                                         value: 33,
6336                                       },
6337                                       HuffmanCode {
6338                                         bits: 1,
6339                                         value: 32,
6340                                       },
6341                                       HuffmanCode {
6342                                         bits: 2,
6343                                         value: 28,
6344                                       },
6345                                       HuffmanCode {
6346                                         bits: 1,
6347                                         value: 32,
6348                                       },
6349                                       HuffmanCode {
6350                                         bits: 2,
6351                                         value: 33,
6352                                       },
6353                                       HuffmanCode {
6354                                         bits: 1,
6355                                         value: 32,
6356                                       },
6357                                       HuffmanCode {
6358                                         bits: 2,
6359                                         value: 28,
6360                                       },
6361                                       HuffmanCode {
6362                                         bits: 1,
6363                                         value: 32,
6364                                       },
6365                                       HuffmanCode {
6366                                         bits: 2,
6367                                         value: 33,
6368                                       },
6369                                       HuffmanCode {
6370                                         bits: 1,
6371                                         value: 32,
6372                                       },
6373                                       HuffmanCode {
6374                                         bits: 2,
6375                                         value: 28,
6376                                       },
6377                                       HuffmanCode {
6378                                         bits: 1,
6379                                         value: 32,
6380                                       },
6381                                       HuffmanCode {
6382                                         bits: 2,
6383                                         value: 33,
6384                                       },
6385                                       HuffmanCode {
6386                                         bits: 1,
6387                                         value: 32,
6388                                       },
6389                                       HuffmanCode {
6390                                         bits: 2,
6391                                         value: 28,
6392                                       },
6393                                       HuffmanCode {
6394                                         bits: 1,
6395                                         value: 32,
6396                                       },
6397                                       HuffmanCode {
6398                                         bits: 2,
6399                                         value: 33,
6400                                       },
6401                                       HuffmanCode {
6402                                         bits: 1,
6403                                         value: 32,
6404                                       },
6405                                       HuffmanCode {
6406                                         bits: 2,
6407                                         value: 28,
6408                                       },
6409                                       HuffmanCode {
6410                                         bits: 1,
6411                                         value: 32,
6412                                       },
6413                                       HuffmanCode {
6414                                         bits: 2,
6415                                         value: 33,
6416                                       },
6417                                       HuffmanCode {
6418                                         bits: 1,
6419                                         value: 32,
6420                                       },
6421                                       HuffmanCode {
6422                                         bits: 2,
6423                                         value: 28,
6424                                       },
6425                                       HuffmanCode {
6426                                         bits: 1,
6427                                         value: 32,
6428                                       },
6429                                       HuffmanCode {
6430                                         bits: 2,
6431                                         value: 33,
6432                                       },
6433                                       HuffmanCode {
6434                                         bits: 1,
6435                                         value: 32,
6436                                       },
6437                                       HuffmanCode {
6438                                         bits: 2,
6439                                         value: 28,
6440                                       },
6441                                       HuffmanCode {
6442                                         bits: 1,
6443                                         value: 32,
6444                                       },
6445                                       HuffmanCode {
6446                                         bits: 2,
6447                                         value: 33,
6448                                       },
6449                                       HuffmanCode {
6450                                         bits: 1,
6451                                         value: 32,
6452                                       },
6453                                       HuffmanCode {
6454                                         bits: 2,
6455                                         value: 28,
6456                                       },
6457                                       HuffmanCode {
6458                                         bits: 1,
6459                                         value: 32,
6460                                       },
6461                                       HuffmanCode {
6462                                         bits: 2,
6463                                         value: 33,
6464                                       },
6465                                       HuffmanCode {
6466                                         bits: 1,
6467                                         value: 32,
6468                                       },
6469                                       HuffmanCode {
6470                                         bits: 2,
6471                                         value: 28,
6472                                       },
6473                                       HuffmanCode {
6474                                         bits: 1,
6475                                         value: 32,
6476                                       },
6477                                       HuffmanCode {
6478                                         bits: 2,
6479                                         value: 33,
6480                                       },
6481                                       HuffmanCode {
6482                                         bits: 1,
6483                                         value: 32,
6484                                       },
6485                                       HuffmanCode {
6486                                         bits: 2,
6487                                         value: 28,
6488                                       },
6489                                       HuffmanCode {
6490                                         bits: 1,
6491                                         value: 32,
6492                                       },
6493                                       HuffmanCode {
6494                                         bits: 2,
6495                                         value: 33,
6496                                       },
6497                                       HuffmanCode {
6498                                         bits: 1,
6499                                         value: 32,
6500                                       },
6501                                       HuffmanCode {
6502                                         bits: 2,
6503                                         value: 28,
6504                                       },
6505                                       HuffmanCode {
6506                                         bits: 1,
6507                                         value: 32,
6508                                       },
6509                                       HuffmanCode {
6510                                         bits: 2,
6511                                         value: 33,
6512                                       },
6513                                       HuffmanCode {
6514                                         bits: 1,
6515                                         value: 32,
6516                                       },
6517                                       HuffmanCode {
6518                                         bits: 2,
6519                                         value: 28,
6520                                       },
6521                                       HuffmanCode {
6522                                         bits: 1,
6523                                         value: 32,
6524                                       },
6525                                       HuffmanCode {
6526                                         bits: 2,
6527                                         value: 33,
6528                                       },
6529                                       HuffmanCode {
6530                                         bits: 1,
6531                                         value: 32,
6532                                       },
6533                                       HuffmanCode {
6534                                         bits: 2,
6535                                         value: 28,
6536                                       },
6537                                       HuffmanCode {
6538                                         bits: 1,
6539                                         value: 32,
6540                                       },
6541                                       HuffmanCode {
6542                                         bits: 2,
6543                                         value: 33,
6544                                       },
6545                                       HuffmanCode {
6546                                         bits: 1,
6547                                         value: 32,
6548                                       },
6549                                       HuffmanCode {
6550                                         bits: 2,
6551                                         value: 28,
6552                                       },
6553                                       HuffmanCode {
6554                                         bits: 1,
6555                                         value: 32,
6556                                       },
6557                                       HuffmanCode {
6558                                         bits: 2,
6559                                         value: 33,
6560                                       },
6561                                       HuffmanCode {
6562                                         bits: 1,
6563                                         value: 32,
6564                                       },
6565                                       HuffmanCode {
6566                                         bits: 2,
6567                                         value: 28,
6568                                       },
6569                                       HuffmanCode {
6570                                         bits: 1,
6571                                         value: 32,
6572                                       },
6573                                       HuffmanCode {
6574                                         bits: 2,
6575                                         value: 33,
6576                                       },
6577                                       HuffmanCode {
6578                                         bits: 1,
6579                                         value: 32,
6580                                       },
6581                                       HuffmanCode {
6582                                         bits: 2,
6583                                         value: 28,
6584                                       },
6585                                       HuffmanCode {
6586                                         bits: 1,
6587                                         value: 32,
6588                                       },
6589                                       HuffmanCode {
6590                                         bits: 2,
6591                                         value: 33,
6592                                       },
6593                                       HuffmanCode {
6594                                         bits: 1,
6595                                         value: 32,
6596                                       },
6597                                       HuffmanCode {
6598                                         bits: 2,
6599                                         value: 28,
6600                                       },
6601                                       HuffmanCode {
6602                                         bits: 1,
6603                                         value: 32,
6604                                       },
6605                                       HuffmanCode {
6606                                         bits: 2,
6607                                         value: 33,
6608                                       },
6609                                       HuffmanCode {
6610                                         bits: 1,
6611                                         value: 32,
6612                                       },
6613                                       HuffmanCode {
6614                                         bits: 2,
6615                                         value: 28,
6616                                       },
6617                                       HuffmanCode {
6618                                         bits: 1,
6619                                         value: 32,
6620                                       },
6621                                       HuffmanCode {
6622                                         bits: 2,
6623                                         value: 33,
6624                                       },
6625                                       HuffmanCode {
6626                                         bits: 1,
6627                                         value: 32,
6628                                       },
6629                                       HuffmanCode {
6630                                         bits: 2,
6631                                         value: 28,
6632                                       },
6633                                       HuffmanCode {
6634                                         bits: 1,
6635                                         value: 32,
6636                                       },
6637                                       HuffmanCode {
6638                                         bits: 2,
6639                                         value: 33,
6640                                       },
6641                                       HuffmanCode {
6642                                         bits: 1,
6643                                         value: 32,
6644                                       },
6645                                       HuffmanCode {
6646                                         bits: 2,
6647                                         value: 28,
6648                                       },
6649                                       HuffmanCode {
6650                                         bits: 1,
6651                                         value: 32,
6652                                       },
6653                                       HuffmanCode {
6654                                         bits: 2,
6655                                         value: 33,
6656                                       },
6657                                       HuffmanCode {
6658                                         bits: 1,
6659                                         value: 32,
6660                                       },
6661                                       HuffmanCode {
6662                                         bits: 2,
6663                                         value: 28,
6664                                       },
6665                                       HuffmanCode {
6666                                         bits: 1,
6667                                         value: 32,
6668                                       },
6669                                       HuffmanCode {
6670                                         bits: 2,
6671                                         value: 33,
6672                                       }];
6673  let mut val: [u16; 3] = [32, 28, 33];
6674  let goal_size = BrotliBuildSimpleHuffmanTable(&mut table, 8, &mut val, 2);
6675  assert_eq!(goal_size, 256);
6676  for index in 0..end_table.len() {
6677    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
6678               [index, end_table[index].bits as usize, end_table[index].value as usize]);
6679    assert!(table[index] == end_table[index]);
6680  }
6681}
6682#[test]
6683fn simple_3() {
6684  let mut table: [HuffmanCode; 256] = [HuffmanCode {
6685    bits: 0,
6686    value: 0,
6687  }; 256];
6688  let end_table: [HuffmanCode; 256] = [HuffmanCode {
6689                                         bits: 2,
6690                                         value: 6,
6691                                       },
6692                                       HuffmanCode {
6693                                         bits: 2,
6694                                         value: 59,
6695                                       },
6696                                       HuffmanCode {
6697                                         bits: 2,
6698                                         value: 51,
6699                                       },
6700                                       HuffmanCode {
6701                                         bits: 2,
6702                                         value: 219,
6703                                       },
6704                                       HuffmanCode {
6705                                         bits: 2,
6706                                         value: 6,
6707                                       },
6708                                       HuffmanCode {
6709                                         bits: 2,
6710                                         value: 59,
6711                                       },
6712                                       HuffmanCode {
6713                                         bits: 2,
6714                                         value: 51,
6715                                       },
6716                                       HuffmanCode {
6717                                         bits: 2,
6718                                         value: 219,
6719                                       },
6720                                       HuffmanCode {
6721                                         bits: 2,
6722                                         value: 6,
6723                                       },
6724                                       HuffmanCode {
6725                                         bits: 2,
6726                                         value: 59,
6727                                       },
6728                                       HuffmanCode {
6729                                         bits: 2,
6730                                         value: 51,
6731                                       },
6732                                       HuffmanCode {
6733                                         bits: 2,
6734                                         value: 219,
6735                                       },
6736                                       HuffmanCode {
6737                                         bits: 2,
6738                                         value: 6,
6739                                       },
6740                                       HuffmanCode {
6741                                         bits: 2,
6742                                         value: 59,
6743                                       },
6744                                       HuffmanCode {
6745                                         bits: 2,
6746                                         value: 51,
6747                                       },
6748                                       HuffmanCode {
6749                                         bits: 2,
6750                                         value: 219,
6751                                       },
6752                                       HuffmanCode {
6753                                         bits: 2,
6754                                         value: 6,
6755                                       },
6756                                       HuffmanCode {
6757                                         bits: 2,
6758                                         value: 59,
6759                                       },
6760                                       HuffmanCode {
6761                                         bits: 2,
6762                                         value: 51,
6763                                       },
6764                                       HuffmanCode {
6765                                         bits: 2,
6766                                         value: 219,
6767                                       },
6768                                       HuffmanCode {
6769                                         bits: 2,
6770                                         value: 6,
6771                                       },
6772                                       HuffmanCode {
6773                                         bits: 2,
6774                                         value: 59,
6775                                       },
6776                                       HuffmanCode {
6777                                         bits: 2,
6778                                         value: 51,
6779                                       },
6780                                       HuffmanCode {
6781                                         bits: 2,
6782                                         value: 219,
6783                                       },
6784                                       HuffmanCode {
6785                                         bits: 2,
6786                                         value: 6,
6787                                       },
6788                                       HuffmanCode {
6789                                         bits: 2,
6790                                         value: 59,
6791                                       },
6792                                       HuffmanCode {
6793                                         bits: 2,
6794                                         value: 51,
6795                                       },
6796                                       HuffmanCode {
6797                                         bits: 2,
6798                                         value: 219,
6799                                       },
6800                                       HuffmanCode {
6801                                         bits: 2,
6802                                         value: 6,
6803                                       },
6804                                       HuffmanCode {
6805                                         bits: 2,
6806                                         value: 59,
6807                                       },
6808                                       HuffmanCode {
6809                                         bits: 2,
6810                                         value: 51,
6811                                       },
6812                                       HuffmanCode {
6813                                         bits: 2,
6814                                         value: 219,
6815                                       },
6816                                       HuffmanCode {
6817                                         bits: 2,
6818                                         value: 6,
6819                                       },
6820                                       HuffmanCode {
6821                                         bits: 2,
6822                                         value: 59,
6823                                       },
6824                                       HuffmanCode {
6825                                         bits: 2,
6826                                         value: 51,
6827                                       },
6828                                       HuffmanCode {
6829                                         bits: 2,
6830                                         value: 219,
6831                                       },
6832                                       HuffmanCode {
6833                                         bits: 2,
6834                                         value: 6,
6835                                       },
6836                                       HuffmanCode {
6837                                         bits: 2,
6838                                         value: 59,
6839                                       },
6840                                       HuffmanCode {
6841                                         bits: 2,
6842                                         value: 51,
6843                                       },
6844                                       HuffmanCode {
6845                                         bits: 2,
6846                                         value: 219,
6847                                       },
6848                                       HuffmanCode {
6849                                         bits: 2,
6850                                         value: 6,
6851                                       },
6852                                       HuffmanCode {
6853                                         bits: 2,
6854                                         value: 59,
6855                                       },
6856                                       HuffmanCode {
6857                                         bits: 2,
6858                                         value: 51,
6859                                       },
6860                                       HuffmanCode {
6861                                         bits: 2,
6862                                         value: 219,
6863                                       },
6864                                       HuffmanCode {
6865                                         bits: 2,
6866                                         value: 6,
6867                                       },
6868                                       HuffmanCode {
6869                                         bits: 2,
6870                                         value: 59,
6871                                       },
6872                                       HuffmanCode {
6873                                         bits: 2,
6874                                         value: 51,
6875                                       },
6876                                       HuffmanCode {
6877                                         bits: 2,
6878                                         value: 219,
6879                                       },
6880                                       HuffmanCode {
6881                                         bits: 2,
6882                                         value: 6,
6883                                       },
6884                                       HuffmanCode {
6885                                         bits: 2,
6886                                         value: 59,
6887                                       },
6888                                       HuffmanCode {
6889                                         bits: 2,
6890                                         value: 51,
6891                                       },
6892                                       HuffmanCode {
6893                                         bits: 2,
6894                                         value: 219,
6895                                       },
6896                                       HuffmanCode {
6897                                         bits: 2,
6898                                         value: 6,
6899                                       },
6900                                       HuffmanCode {
6901                                         bits: 2,
6902                                         value: 59,
6903                                       },
6904                                       HuffmanCode {
6905                                         bits: 2,
6906                                         value: 51,
6907                                       },
6908                                       HuffmanCode {
6909                                         bits: 2,
6910                                         value: 219,
6911                                       },
6912                                       HuffmanCode {
6913                                         bits: 2,
6914                                         value: 6,
6915                                       },
6916                                       HuffmanCode {
6917                                         bits: 2,
6918                                         value: 59,
6919                                       },
6920                                       HuffmanCode {
6921                                         bits: 2,
6922                                         value: 51,
6923                                       },
6924                                       HuffmanCode {
6925                                         bits: 2,
6926                                         value: 219,
6927                                       },
6928                                       HuffmanCode {
6929                                         bits: 2,
6930                                         value: 6,
6931                                       },
6932                                       HuffmanCode {
6933                                         bits: 2,
6934                                         value: 59,
6935                                       },
6936                                       HuffmanCode {
6937                                         bits: 2,
6938                                         value: 51,
6939                                       },
6940                                       HuffmanCode {
6941                                         bits: 2,
6942                                         value: 219,
6943                                       },
6944                                       HuffmanCode {
6945                                         bits: 2,
6946                                         value: 6,
6947                                       },
6948                                       HuffmanCode {
6949                                         bits: 2,
6950                                         value: 59,
6951                                       },
6952                                       HuffmanCode {
6953                                         bits: 2,
6954                                         value: 51,
6955                                       },
6956                                       HuffmanCode {
6957                                         bits: 2,
6958                                         value: 219,
6959                                       },
6960                                       HuffmanCode {
6961                                         bits: 2,
6962                                         value: 6,
6963                                       },
6964                                       HuffmanCode {
6965                                         bits: 2,
6966                                         value: 59,
6967                                       },
6968                                       HuffmanCode {
6969                                         bits: 2,
6970                                         value: 51,
6971                                       },
6972                                       HuffmanCode {
6973                                         bits: 2,
6974                                         value: 219,
6975                                       },
6976                                       HuffmanCode {
6977                                         bits: 2,
6978                                         value: 6,
6979                                       },
6980                                       HuffmanCode {
6981                                         bits: 2,
6982                                         value: 59,
6983                                       },
6984                                       HuffmanCode {
6985                                         bits: 2,
6986                                         value: 51,
6987                                       },
6988                                       HuffmanCode {
6989                                         bits: 2,
6990                                         value: 219,
6991                                       },
6992                                       HuffmanCode {
6993                                         bits: 2,
6994                                         value: 6,
6995                                       },
6996                                       HuffmanCode {
6997                                         bits: 2,
6998                                         value: 59,
6999                                       },
7000                                       HuffmanCode {
7001                                         bits: 2,
7002                                         value: 51,
7003                                       },
7004                                       HuffmanCode {
7005                                         bits: 2,
7006                                         value: 219,
7007                                       },
7008                                       HuffmanCode {
7009                                         bits: 2,
7010                                         value: 6,
7011                                       },
7012                                       HuffmanCode {
7013                                         bits: 2,
7014                                         value: 59,
7015                                       },
7016                                       HuffmanCode {
7017                                         bits: 2,
7018                                         value: 51,
7019                                       },
7020                                       HuffmanCode {
7021                                         bits: 2,
7022                                         value: 219,
7023                                       },
7024                                       HuffmanCode {
7025                                         bits: 2,
7026                                         value: 6,
7027                                       },
7028                                       HuffmanCode {
7029                                         bits: 2,
7030                                         value: 59,
7031                                       },
7032                                       HuffmanCode {
7033                                         bits: 2,
7034                                         value: 51,
7035                                       },
7036                                       HuffmanCode {
7037                                         bits: 2,
7038                                         value: 219,
7039                                       },
7040                                       HuffmanCode {
7041                                         bits: 2,
7042                                         value: 6,
7043                                       },
7044                                       HuffmanCode {
7045                                         bits: 2,
7046                                         value: 59,
7047                                       },
7048                                       HuffmanCode {
7049                                         bits: 2,
7050                                         value: 51,
7051                                       },
7052                                       HuffmanCode {
7053                                         bits: 2,
7054                                         value: 219,
7055                                       },
7056                                       HuffmanCode {
7057                                         bits: 2,
7058                                         value: 6,
7059                                       },
7060                                       HuffmanCode {
7061                                         bits: 2,
7062                                         value: 59,
7063                                       },
7064                                       HuffmanCode {
7065                                         bits: 2,
7066                                         value: 51,
7067                                       },
7068                                       HuffmanCode {
7069                                         bits: 2,
7070                                         value: 219,
7071                                       },
7072                                       HuffmanCode {
7073                                         bits: 2,
7074                                         value: 6,
7075                                       },
7076                                       HuffmanCode {
7077                                         bits: 2,
7078                                         value: 59,
7079                                       },
7080                                       HuffmanCode {
7081                                         bits: 2,
7082                                         value: 51,
7083                                       },
7084                                       HuffmanCode {
7085                                         bits: 2,
7086                                         value: 219,
7087                                       },
7088                                       HuffmanCode {
7089                                         bits: 2,
7090                                         value: 6,
7091                                       },
7092                                       HuffmanCode {
7093                                         bits: 2,
7094                                         value: 59,
7095                                       },
7096                                       HuffmanCode {
7097                                         bits: 2,
7098                                         value: 51,
7099                                       },
7100                                       HuffmanCode {
7101                                         bits: 2,
7102                                         value: 219,
7103                                       },
7104                                       HuffmanCode {
7105                                         bits: 2,
7106                                         value: 6,
7107                                       },
7108                                       HuffmanCode {
7109                                         bits: 2,
7110                                         value: 59,
7111                                       },
7112                                       HuffmanCode {
7113                                         bits: 2,
7114                                         value: 51,
7115                                       },
7116                                       HuffmanCode {
7117                                         bits: 2,
7118                                         value: 219,
7119                                       },
7120                                       HuffmanCode {
7121                                         bits: 2,
7122                                         value: 6,
7123                                       },
7124                                       HuffmanCode {
7125                                         bits: 2,
7126                                         value: 59,
7127                                       },
7128                                       HuffmanCode {
7129                                         bits: 2,
7130                                         value: 51,
7131                                       },
7132                                       HuffmanCode {
7133                                         bits: 2,
7134                                         value: 219,
7135                                       },
7136                                       HuffmanCode {
7137                                         bits: 2,
7138                                         value: 6,
7139                                       },
7140                                       HuffmanCode {
7141                                         bits: 2,
7142                                         value: 59,
7143                                       },
7144                                       HuffmanCode {
7145                                         bits: 2,
7146                                         value: 51,
7147                                       },
7148                                       HuffmanCode {
7149                                         bits: 2,
7150                                         value: 219,
7151                                       },
7152                                       HuffmanCode {
7153                                         bits: 2,
7154                                         value: 6,
7155                                       },
7156                                       HuffmanCode {
7157                                         bits: 2,
7158                                         value: 59,
7159                                       },
7160                                       HuffmanCode {
7161                                         bits: 2,
7162                                         value: 51,
7163                                       },
7164                                       HuffmanCode {
7165                                         bits: 2,
7166                                         value: 219,
7167                                       },
7168                                       HuffmanCode {
7169                                         bits: 2,
7170                                         value: 6,
7171                                       },
7172                                       HuffmanCode {
7173                                         bits: 2,
7174                                         value: 59,
7175                                       },
7176                                       HuffmanCode {
7177                                         bits: 2,
7178                                         value: 51,
7179                                       },
7180                                       HuffmanCode {
7181                                         bits: 2,
7182                                         value: 219,
7183                                       },
7184                                       HuffmanCode {
7185                                         bits: 2,
7186                                         value: 6,
7187                                       },
7188                                       HuffmanCode {
7189                                         bits: 2,
7190                                         value: 59,
7191                                       },
7192                                       HuffmanCode {
7193                                         bits: 2,
7194                                         value: 51,
7195                                       },
7196                                       HuffmanCode {
7197                                         bits: 2,
7198                                         value: 219,
7199                                       },
7200                                       HuffmanCode {
7201                                         bits: 2,
7202                                         value: 6,
7203                                       },
7204                                       HuffmanCode {
7205                                         bits: 2,
7206                                         value: 59,
7207                                       },
7208                                       HuffmanCode {
7209                                         bits: 2,
7210                                         value: 51,
7211                                       },
7212                                       HuffmanCode {
7213                                         bits: 2,
7214                                         value: 219,
7215                                       },
7216                                       HuffmanCode {
7217                                         bits: 2,
7218                                         value: 6,
7219                                       },
7220                                       HuffmanCode {
7221                                         bits: 2,
7222                                         value: 59,
7223                                       },
7224                                       HuffmanCode {
7225                                         bits: 2,
7226                                         value: 51,
7227                                       },
7228                                       HuffmanCode {
7229                                         bits: 2,
7230                                         value: 219,
7231                                       },
7232                                       HuffmanCode {
7233                                         bits: 2,
7234                                         value: 6,
7235                                       },
7236                                       HuffmanCode {
7237                                         bits: 2,
7238                                         value: 59,
7239                                       },
7240                                       HuffmanCode {
7241                                         bits: 2,
7242                                         value: 51,
7243                                       },
7244                                       HuffmanCode {
7245                                         bits: 2,
7246                                         value: 219,
7247                                       },
7248                                       HuffmanCode {
7249                                         bits: 2,
7250                                         value: 6,
7251                                       },
7252                                       HuffmanCode {
7253                                         bits: 2,
7254                                         value: 59,
7255                                       },
7256                                       HuffmanCode {
7257                                         bits: 2,
7258                                         value: 51,
7259                                       },
7260                                       HuffmanCode {
7261                                         bits: 2,
7262                                         value: 219,
7263                                       },
7264                                       HuffmanCode {
7265                                         bits: 2,
7266                                         value: 6,
7267                                       },
7268                                       HuffmanCode {
7269                                         bits: 2,
7270                                         value: 59,
7271                                       },
7272                                       HuffmanCode {
7273                                         bits: 2,
7274                                         value: 51,
7275                                       },
7276                                       HuffmanCode {
7277                                         bits: 2,
7278                                         value: 219,
7279                                       },
7280                                       HuffmanCode {
7281                                         bits: 2,
7282                                         value: 6,
7283                                       },
7284                                       HuffmanCode {
7285                                         bits: 2,
7286                                         value: 59,
7287                                       },
7288                                       HuffmanCode {
7289                                         bits: 2,
7290                                         value: 51,
7291                                       },
7292                                       HuffmanCode {
7293                                         bits: 2,
7294                                         value: 219,
7295                                       },
7296                                       HuffmanCode {
7297                                         bits: 2,
7298                                         value: 6,
7299                                       },
7300                                       HuffmanCode {
7301                                         bits: 2,
7302                                         value: 59,
7303                                       },
7304                                       HuffmanCode {
7305                                         bits: 2,
7306                                         value: 51,
7307                                       },
7308                                       HuffmanCode {
7309                                         bits: 2,
7310                                         value: 219,
7311                                       },
7312                                       HuffmanCode {
7313                                         bits: 2,
7314                                         value: 6,
7315                                       },
7316                                       HuffmanCode {
7317                                         bits: 2,
7318                                         value: 59,
7319                                       },
7320                                       HuffmanCode {
7321                                         bits: 2,
7322                                         value: 51,
7323                                       },
7324                                       HuffmanCode {
7325                                         bits: 2,
7326                                         value: 219,
7327                                       },
7328                                       HuffmanCode {
7329                                         bits: 2,
7330                                         value: 6,
7331                                       },
7332                                       HuffmanCode {
7333                                         bits: 2,
7334                                         value: 59,
7335                                       },
7336                                       HuffmanCode {
7337                                         bits: 2,
7338                                         value: 51,
7339                                       },
7340                                       HuffmanCode {
7341                                         bits: 2,
7342                                         value: 219,
7343                                       },
7344                                       HuffmanCode {
7345                                         bits: 2,
7346                                         value: 6,
7347                                       },
7348                                       HuffmanCode {
7349                                         bits: 2,
7350                                         value: 59,
7351                                       },
7352                                       HuffmanCode {
7353                                         bits: 2,
7354                                         value: 51,
7355                                       },
7356                                       HuffmanCode {
7357                                         bits: 2,
7358                                         value: 219,
7359                                       },
7360                                       HuffmanCode {
7361                                         bits: 2,
7362                                         value: 6,
7363                                       },
7364                                       HuffmanCode {
7365                                         bits: 2,
7366                                         value: 59,
7367                                       },
7368                                       HuffmanCode {
7369                                         bits: 2,
7370                                         value: 51,
7371                                       },
7372                                       HuffmanCode {
7373                                         bits: 2,
7374                                         value: 219,
7375                                       },
7376                                       HuffmanCode {
7377                                         bits: 2,
7378                                         value: 6,
7379                                       },
7380                                       HuffmanCode {
7381                                         bits: 2,
7382                                         value: 59,
7383                                       },
7384                                       HuffmanCode {
7385                                         bits: 2,
7386                                         value: 51,
7387                                       },
7388                                       HuffmanCode {
7389                                         bits: 2,
7390                                         value: 219,
7391                                       },
7392                                       HuffmanCode {
7393                                         bits: 2,
7394                                         value: 6,
7395                                       },
7396                                       HuffmanCode {
7397                                         bits: 2,
7398                                         value: 59,
7399                                       },
7400                                       HuffmanCode {
7401                                         bits: 2,
7402                                         value: 51,
7403                                       },
7404                                       HuffmanCode {
7405                                         bits: 2,
7406                                         value: 219,
7407                                       },
7408                                       HuffmanCode {
7409                                         bits: 2,
7410                                         value: 6,
7411                                       },
7412                                       HuffmanCode {
7413                                         bits: 2,
7414                                         value: 59,
7415                                       },
7416                                       HuffmanCode {
7417                                         bits: 2,
7418                                         value: 51,
7419                                       },
7420                                       HuffmanCode {
7421                                         bits: 2,
7422                                         value: 219,
7423                                       },
7424                                       HuffmanCode {
7425                                         bits: 2,
7426                                         value: 6,
7427                                       },
7428                                       HuffmanCode {
7429                                         bits: 2,
7430                                         value: 59,
7431                                       },
7432                                       HuffmanCode {
7433                                         bits: 2,
7434                                         value: 51,
7435                                       },
7436                                       HuffmanCode {
7437                                         bits: 2,
7438                                         value: 219,
7439                                       },
7440                                       HuffmanCode {
7441                                         bits: 2,
7442                                         value: 6,
7443                                       },
7444                                       HuffmanCode {
7445                                         bits: 2,
7446                                         value: 59,
7447                                       },
7448                                       HuffmanCode {
7449                                         bits: 2,
7450                                         value: 51,
7451                                       },
7452                                       HuffmanCode {
7453                                         bits: 2,
7454                                         value: 219,
7455                                       },
7456                                       HuffmanCode {
7457                                         bits: 2,
7458                                         value: 6,
7459                                       },
7460                                       HuffmanCode {
7461                                         bits: 2,
7462                                         value: 59,
7463                                       },
7464                                       HuffmanCode {
7465                                         bits: 2,
7466                                         value: 51,
7467                                       },
7468                                       HuffmanCode {
7469                                         bits: 2,
7470                                         value: 219,
7471                                       },
7472                                       HuffmanCode {
7473                                         bits: 2,
7474                                         value: 6,
7475                                       },
7476                                       HuffmanCode {
7477                                         bits: 2,
7478                                         value: 59,
7479                                       },
7480                                       HuffmanCode {
7481                                         bits: 2,
7482                                         value: 51,
7483                                       },
7484                                       HuffmanCode {
7485                                         bits: 2,
7486                                         value: 219,
7487                                       },
7488                                       HuffmanCode {
7489                                         bits: 2,
7490                                         value: 6,
7491                                       },
7492                                       HuffmanCode {
7493                                         bits: 2,
7494                                         value: 59,
7495                                       },
7496                                       HuffmanCode {
7497                                         bits: 2,
7498                                         value: 51,
7499                                       },
7500                                       HuffmanCode {
7501                                         bits: 2,
7502                                         value: 219,
7503                                       },
7504                                       HuffmanCode {
7505                                         bits: 2,
7506                                         value: 6,
7507                                       },
7508                                       HuffmanCode {
7509                                         bits: 2,
7510                                         value: 59,
7511                                       },
7512                                       HuffmanCode {
7513                                         bits: 2,
7514                                         value: 51,
7515                                       },
7516                                       HuffmanCode {
7517                                         bits: 2,
7518                                         value: 219,
7519                                       },
7520                                       HuffmanCode {
7521                                         bits: 2,
7522                                         value: 6,
7523                                       },
7524                                       HuffmanCode {
7525                                         bits: 2,
7526                                         value: 59,
7527                                       },
7528                                       HuffmanCode {
7529                                         bits: 2,
7530                                         value: 51,
7531                                       },
7532                                       HuffmanCode {
7533                                         bits: 2,
7534                                         value: 219,
7535                                       },
7536                                       HuffmanCode {
7537                                         bits: 2,
7538                                         value: 6,
7539                                       },
7540                                       HuffmanCode {
7541                                         bits: 2,
7542                                         value: 59,
7543                                       },
7544                                       HuffmanCode {
7545                                         bits: 2,
7546                                         value: 51,
7547                                       },
7548                                       HuffmanCode {
7549                                         bits: 2,
7550                                         value: 219,
7551                                       },
7552                                       HuffmanCode {
7553                                         bits: 2,
7554                                         value: 6,
7555                                       },
7556                                       HuffmanCode {
7557                                         bits: 2,
7558                                         value: 59,
7559                                       },
7560                                       HuffmanCode {
7561                                         bits: 2,
7562                                         value: 51,
7563                                       },
7564                                       HuffmanCode {
7565                                         bits: 2,
7566                                         value: 219,
7567                                       },
7568                                       HuffmanCode {
7569                                         bits: 2,
7570                                         value: 6,
7571                                       },
7572                                       HuffmanCode {
7573                                         bits: 2,
7574                                         value: 59,
7575                                       },
7576                                       HuffmanCode {
7577                                         bits: 2,
7578                                         value: 51,
7579                                       },
7580                                       HuffmanCode {
7581                                         bits: 2,
7582                                         value: 219,
7583                                       },
7584                                       HuffmanCode {
7585                                         bits: 2,
7586                                         value: 6,
7587                                       },
7588                                       HuffmanCode {
7589                                         bits: 2,
7590                                         value: 59,
7591                                       },
7592                                       HuffmanCode {
7593                                         bits: 2,
7594                                         value: 51,
7595                                       },
7596                                       HuffmanCode {
7597                                         bits: 2,
7598                                         value: 219,
7599                                       },
7600                                       HuffmanCode {
7601                                         bits: 2,
7602                                         value: 6,
7603                                       },
7604                                       HuffmanCode {
7605                                         bits: 2,
7606                                         value: 59,
7607                                       },
7608                                       HuffmanCode {
7609                                         bits: 2,
7610                                         value: 51,
7611                                       },
7612                                       HuffmanCode {
7613                                         bits: 2,
7614                                         value: 219,
7615                                       },
7616                                       HuffmanCode {
7617                                         bits: 2,
7618                                         value: 6,
7619                                       },
7620                                       HuffmanCode {
7621                                         bits: 2,
7622                                         value: 59,
7623                                       },
7624                                       HuffmanCode {
7625                                         bits: 2,
7626                                         value: 51,
7627                                       },
7628                                       HuffmanCode {
7629                                         bits: 2,
7630                                         value: 219,
7631                                       },
7632                                       HuffmanCode {
7633                                         bits: 2,
7634                                         value: 6,
7635                                       },
7636                                       HuffmanCode {
7637                                         bits: 2,
7638                                         value: 59,
7639                                       },
7640                                       HuffmanCode {
7641                                         bits: 2,
7642                                         value: 51,
7643                                       },
7644                                       HuffmanCode {
7645                                         bits: 2,
7646                                         value: 219,
7647                                       },
7648                                       HuffmanCode {
7649                                         bits: 2,
7650                                         value: 6,
7651                                       },
7652                                       HuffmanCode {
7653                                         bits: 2,
7654                                         value: 59,
7655                                       },
7656                                       HuffmanCode {
7657                                         bits: 2,
7658                                         value: 51,
7659                                       },
7660                                       HuffmanCode {
7661                                         bits: 2,
7662                                         value: 219,
7663                                       },
7664                                       HuffmanCode {
7665                                         bits: 2,
7666                                         value: 6,
7667                                       },
7668                                       HuffmanCode {
7669                                         bits: 2,
7670                                         value: 59,
7671                                       },
7672                                       HuffmanCode {
7673                                         bits: 2,
7674                                         value: 51,
7675                                       },
7676                                       HuffmanCode {
7677                                         bits: 2,
7678                                         value: 219,
7679                                       },
7680                                       HuffmanCode {
7681                                         bits: 2,
7682                                         value: 6,
7683                                       },
7684                                       HuffmanCode {
7685                                         bits: 2,
7686                                         value: 59,
7687                                       },
7688                                       HuffmanCode {
7689                                         bits: 2,
7690                                         value: 51,
7691                                       },
7692                                       HuffmanCode {
7693                                         bits: 2,
7694                                         value: 219,
7695                                       },
7696                                       HuffmanCode {
7697                                         bits: 2,
7698                                         value: 6,
7699                                       },
7700                                       HuffmanCode {
7701                                         bits: 2,
7702                                         value: 59,
7703                                       },
7704                                       HuffmanCode {
7705                                         bits: 2,
7706                                         value: 51,
7707                                       },
7708                                       HuffmanCode {
7709                                         bits: 2,
7710                                         value: 219,
7711                                       }];
7712  let mut val: [u16; 4] = [51, 6, 59, 219];
7713  let goal_size = BrotliBuildSimpleHuffmanTable(&mut table, 8, &mut val, 3);
7714  assert_eq!(goal_size, 256);
7715  for index in 0..end_table.len() {
7716    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
7717               [index, end_table[index].bits as usize, end_table[index].value as usize]);
7718    assert!(table[index] == end_table[index]);
7719  }
7720}
7721
7722
7723#[test]
7724fn simple_4() {
7725  let mut table: [HuffmanCode; 256] = [HuffmanCode {
7726    bits: 0,
7727    value: 0,
7728  }; 256];
7729  let end_table: [HuffmanCode; 256] = [HuffmanCode {
7730                                         bits: 1,
7731                                         value: 6,
7732                                       },
7733                                       HuffmanCode {
7734                                         bits: 2,
7735                                         value: 118,
7736                                       },
7737                                       HuffmanCode {
7738                                         bits: 1,
7739                                         value: 6,
7740                                       },
7741                                       HuffmanCode {
7742                                         bits: 3,
7743                                         value: 10,
7744                                       },
7745                                       HuffmanCode {
7746                                         bits: 1,
7747                                         value: 6,
7748                                       },
7749                                       HuffmanCode {
7750                                         bits: 2,
7751                                         value: 118,
7752                                       },
7753                                       HuffmanCode {
7754                                         bits: 1,
7755                                         value: 6,
7756                                       },
7757                                       HuffmanCode {
7758                                         bits: 3,
7759                                         value: 15,
7760                                       },
7761                                       HuffmanCode {
7762                                         bits: 1,
7763                                         value: 6,
7764                                       },
7765                                       HuffmanCode {
7766                                         bits: 2,
7767                                         value: 118,
7768                                       },
7769                                       HuffmanCode {
7770                                         bits: 1,
7771                                         value: 6,
7772                                       },
7773                                       HuffmanCode {
7774                                         bits: 3,
7775                                         value: 10,
7776                                       },
7777                                       HuffmanCode {
7778                                         bits: 1,
7779                                         value: 6,
7780                                       },
7781                                       HuffmanCode {
7782                                         bits: 2,
7783                                         value: 118,
7784                                       },
7785                                       HuffmanCode {
7786                                         bits: 1,
7787                                         value: 6,
7788                                       },
7789                                       HuffmanCode {
7790                                         bits: 3,
7791                                         value: 15,
7792                                       },
7793                                       HuffmanCode {
7794                                         bits: 1,
7795                                         value: 6,
7796                                       },
7797                                       HuffmanCode {
7798                                         bits: 2,
7799                                         value: 118,
7800                                       },
7801                                       HuffmanCode {
7802                                         bits: 1,
7803                                         value: 6,
7804                                       },
7805                                       HuffmanCode {
7806                                         bits: 3,
7807                                         value: 10,
7808                                       },
7809                                       HuffmanCode {
7810                                         bits: 1,
7811                                         value: 6,
7812                                       },
7813                                       HuffmanCode {
7814                                         bits: 2,
7815                                         value: 118,
7816                                       },
7817                                       HuffmanCode {
7818                                         bits: 1,
7819                                         value: 6,
7820                                       },
7821                                       HuffmanCode {
7822                                         bits: 3,
7823                                         value: 15,
7824                                       },
7825                                       HuffmanCode {
7826                                         bits: 1,
7827                                         value: 6,
7828                                       },
7829                                       HuffmanCode {
7830                                         bits: 2,
7831                                         value: 118,
7832                                       },
7833                                       HuffmanCode {
7834                                         bits: 1,
7835                                         value: 6,
7836                                       },
7837                                       HuffmanCode {
7838                                         bits: 3,
7839                                         value: 10,
7840                                       },
7841                                       HuffmanCode {
7842                                         bits: 1,
7843                                         value: 6,
7844                                       },
7845                                       HuffmanCode {
7846                                         bits: 2,
7847                                         value: 118,
7848                                       },
7849                                       HuffmanCode {
7850                                         bits: 1,
7851                                         value: 6,
7852                                       },
7853                                       HuffmanCode {
7854                                         bits: 3,
7855                                         value: 15,
7856                                       },
7857                                       HuffmanCode {
7858                                         bits: 1,
7859                                         value: 6,
7860                                       },
7861                                       HuffmanCode {
7862                                         bits: 2,
7863                                         value: 118,
7864                                       },
7865                                       HuffmanCode {
7866                                         bits: 1,
7867                                         value: 6,
7868                                       },
7869                                       HuffmanCode {
7870                                         bits: 3,
7871                                         value: 10,
7872                                       },
7873                                       HuffmanCode {
7874                                         bits: 1,
7875                                         value: 6,
7876                                       },
7877                                       HuffmanCode {
7878                                         bits: 2,
7879                                         value: 118,
7880                                       },
7881                                       HuffmanCode {
7882                                         bits: 1,
7883                                         value: 6,
7884                                       },
7885                                       HuffmanCode {
7886                                         bits: 3,
7887                                         value: 15,
7888                                       },
7889                                       HuffmanCode {
7890                                         bits: 1,
7891                                         value: 6,
7892                                       },
7893                                       HuffmanCode {
7894                                         bits: 2,
7895                                         value: 118,
7896                                       },
7897                                       HuffmanCode {
7898                                         bits: 1,
7899                                         value: 6,
7900                                       },
7901                                       HuffmanCode {
7902                                         bits: 3,
7903                                         value: 10,
7904                                       },
7905                                       HuffmanCode {
7906                                         bits: 1,
7907                                         value: 6,
7908                                       },
7909                                       HuffmanCode {
7910                                         bits: 2,
7911                                         value: 118,
7912                                       },
7913                                       HuffmanCode {
7914                                         bits: 1,
7915                                         value: 6,
7916                                       },
7917                                       HuffmanCode {
7918                                         bits: 3,
7919                                         value: 15,
7920                                       },
7921                                       HuffmanCode {
7922                                         bits: 1,
7923                                         value: 6,
7924                                       },
7925                                       HuffmanCode {
7926                                         bits: 2,
7927                                         value: 118,
7928                                       },
7929                                       HuffmanCode {
7930                                         bits: 1,
7931                                         value: 6,
7932                                       },
7933                                       HuffmanCode {
7934                                         bits: 3,
7935                                         value: 10,
7936                                       },
7937                                       HuffmanCode {
7938                                         bits: 1,
7939                                         value: 6,
7940                                       },
7941                                       HuffmanCode {
7942                                         bits: 2,
7943                                         value: 118,
7944                                       },
7945                                       HuffmanCode {
7946                                         bits: 1,
7947                                         value: 6,
7948                                       },
7949                                       HuffmanCode {
7950                                         bits: 3,
7951                                         value: 15,
7952                                       },
7953                                       HuffmanCode {
7954                                         bits: 1,
7955                                         value: 6,
7956                                       },
7957                                       HuffmanCode {
7958                                         bits: 2,
7959                                         value: 118,
7960                                       },
7961                                       HuffmanCode {
7962                                         bits: 1,
7963                                         value: 6,
7964                                       },
7965                                       HuffmanCode {
7966                                         bits: 3,
7967                                         value: 10,
7968                                       },
7969                                       HuffmanCode {
7970                                         bits: 1,
7971                                         value: 6,
7972                                       },
7973                                       HuffmanCode {
7974                                         bits: 2,
7975                                         value: 118,
7976                                       },
7977                                       HuffmanCode {
7978                                         bits: 1,
7979                                         value: 6,
7980                                       },
7981                                       HuffmanCode {
7982                                         bits: 3,
7983                                         value: 15,
7984                                       },
7985                                       HuffmanCode {
7986                                         bits: 1,
7987                                         value: 6,
7988                                       },
7989                                       HuffmanCode {
7990                                         bits: 2,
7991                                         value: 118,
7992                                       },
7993                                       HuffmanCode {
7994                                         bits: 1,
7995                                         value: 6,
7996                                       },
7997                                       HuffmanCode {
7998                                         bits: 3,
7999                                         value: 10,
8000                                       },
8001                                       HuffmanCode {
8002                                         bits: 1,
8003                                         value: 6,
8004                                       },
8005                                       HuffmanCode {
8006                                         bits: 2,
8007                                         value: 118,
8008                                       },
8009                                       HuffmanCode {
8010                                         bits: 1,
8011                                         value: 6,
8012                                       },
8013                                       HuffmanCode {
8014                                         bits: 3,
8015                                         value: 15,
8016                                       },
8017                                       HuffmanCode {
8018                                         bits: 1,
8019                                         value: 6,
8020                                       },
8021                                       HuffmanCode {
8022                                         bits: 2,
8023                                         value: 118,
8024                                       },
8025                                       HuffmanCode {
8026                                         bits: 1,
8027                                         value: 6,
8028                                       },
8029                                       HuffmanCode {
8030                                         bits: 3,
8031                                         value: 10,
8032                                       },
8033                                       HuffmanCode {
8034                                         bits: 1,
8035                                         value: 6,
8036                                       },
8037                                       HuffmanCode {
8038                                         bits: 2,
8039                                         value: 118,
8040                                       },
8041                                       HuffmanCode {
8042                                         bits: 1,
8043                                         value: 6,
8044                                       },
8045                                       HuffmanCode {
8046                                         bits: 3,
8047                                         value: 15,
8048                                       },
8049                                       HuffmanCode {
8050                                         bits: 1,
8051                                         value: 6,
8052                                       },
8053                                       HuffmanCode {
8054                                         bits: 2,
8055                                         value: 118,
8056                                       },
8057                                       HuffmanCode {
8058                                         bits: 1,
8059                                         value: 6,
8060                                       },
8061                                       HuffmanCode {
8062                                         bits: 3,
8063                                         value: 10,
8064                                       },
8065                                       HuffmanCode {
8066                                         bits: 1,
8067                                         value: 6,
8068                                       },
8069                                       HuffmanCode {
8070                                         bits: 2,
8071                                         value: 118,
8072                                       },
8073                                       HuffmanCode {
8074                                         bits: 1,
8075                                         value: 6,
8076                                       },
8077                                       HuffmanCode {
8078                                         bits: 3,
8079                                         value: 15,
8080                                       },
8081                                       HuffmanCode {
8082                                         bits: 1,
8083                                         value: 6,
8084                                       },
8085                                       HuffmanCode {
8086                                         bits: 2,
8087                                         value: 118,
8088                                       },
8089                                       HuffmanCode {
8090                                         bits: 1,
8091                                         value: 6,
8092                                       },
8093                                       HuffmanCode {
8094                                         bits: 3,
8095                                         value: 10,
8096                                       },
8097                                       HuffmanCode {
8098                                         bits: 1,
8099                                         value: 6,
8100                                       },
8101                                       HuffmanCode {
8102                                         bits: 2,
8103                                         value: 118,
8104                                       },
8105                                       HuffmanCode {
8106                                         bits: 1,
8107                                         value: 6,
8108                                       },
8109                                       HuffmanCode {
8110                                         bits: 3,
8111                                         value: 15,
8112                                       },
8113                                       HuffmanCode {
8114                                         bits: 1,
8115                                         value: 6,
8116                                       },
8117                                       HuffmanCode {
8118                                         bits: 2,
8119                                         value: 118,
8120                                       },
8121                                       HuffmanCode {
8122                                         bits: 1,
8123                                         value: 6,
8124                                       },
8125                                       HuffmanCode {
8126                                         bits: 3,
8127                                         value: 10,
8128                                       },
8129                                       HuffmanCode {
8130                                         bits: 1,
8131                                         value: 6,
8132                                       },
8133                                       HuffmanCode {
8134                                         bits: 2,
8135                                         value: 118,
8136                                       },
8137                                       HuffmanCode {
8138                                         bits: 1,
8139                                         value: 6,
8140                                       },
8141                                       HuffmanCode {
8142                                         bits: 3,
8143                                         value: 15,
8144                                       },
8145                                       HuffmanCode {
8146                                         bits: 1,
8147                                         value: 6,
8148                                       },
8149                                       HuffmanCode {
8150                                         bits: 2,
8151                                         value: 118,
8152                                       },
8153                                       HuffmanCode {
8154                                         bits: 1,
8155                                         value: 6,
8156                                       },
8157                                       HuffmanCode {
8158                                         bits: 3,
8159                                         value: 10,
8160                                       },
8161                                       HuffmanCode {
8162                                         bits: 1,
8163                                         value: 6,
8164                                       },
8165                                       HuffmanCode {
8166                                         bits: 2,
8167                                         value: 118,
8168                                       },
8169                                       HuffmanCode {
8170                                         bits: 1,
8171                                         value: 6,
8172                                       },
8173                                       HuffmanCode {
8174                                         bits: 3,
8175                                         value: 15,
8176                                       },
8177                                       HuffmanCode {
8178                                         bits: 1,
8179                                         value: 6,
8180                                       },
8181                                       HuffmanCode {
8182                                         bits: 2,
8183                                         value: 118,
8184                                       },
8185                                       HuffmanCode {
8186                                         bits: 1,
8187                                         value: 6,
8188                                       },
8189                                       HuffmanCode {
8190                                         bits: 3,
8191                                         value: 10,
8192                                       },
8193                                       HuffmanCode {
8194                                         bits: 1,
8195                                         value: 6,
8196                                       },
8197                                       HuffmanCode {
8198                                         bits: 2,
8199                                         value: 118,
8200                                       },
8201                                       HuffmanCode {
8202                                         bits: 1,
8203                                         value: 6,
8204                                       },
8205                                       HuffmanCode {
8206                                         bits: 3,
8207                                         value: 15,
8208                                       },
8209                                       HuffmanCode {
8210                                         bits: 1,
8211                                         value: 6,
8212                                       },
8213                                       HuffmanCode {
8214                                         bits: 2,
8215                                         value: 118,
8216                                       },
8217                                       HuffmanCode {
8218                                         bits: 1,
8219                                         value: 6,
8220                                       },
8221                                       HuffmanCode {
8222                                         bits: 3,
8223                                         value: 10,
8224                                       },
8225                                       HuffmanCode {
8226                                         bits: 1,
8227                                         value: 6,
8228                                       },
8229                                       HuffmanCode {
8230                                         bits: 2,
8231                                         value: 118,
8232                                       },
8233                                       HuffmanCode {
8234                                         bits: 1,
8235                                         value: 6,
8236                                       },
8237                                       HuffmanCode {
8238                                         bits: 3,
8239                                         value: 15,
8240                                       },
8241                                       HuffmanCode {
8242                                         bits: 1,
8243                                         value: 6,
8244                                       },
8245                                       HuffmanCode {
8246                                         bits: 2,
8247                                         value: 118,
8248                                       },
8249                                       HuffmanCode {
8250                                         bits: 1,
8251                                         value: 6,
8252                                       },
8253                                       HuffmanCode {
8254                                         bits: 3,
8255                                         value: 10,
8256                                       },
8257                                       HuffmanCode {
8258                                         bits: 1,
8259                                         value: 6,
8260                                       },
8261                                       HuffmanCode {
8262                                         bits: 2,
8263                                         value: 118,
8264                                       },
8265                                       HuffmanCode {
8266                                         bits: 1,
8267                                         value: 6,
8268                                       },
8269                                       HuffmanCode {
8270                                         bits: 3,
8271                                         value: 15,
8272                                       },
8273                                       HuffmanCode {
8274                                         bits: 1,
8275                                         value: 6,
8276                                       },
8277                                       HuffmanCode {
8278                                         bits: 2,
8279                                         value: 118,
8280                                       },
8281                                       HuffmanCode {
8282                                         bits: 1,
8283                                         value: 6,
8284                                       },
8285                                       HuffmanCode {
8286                                         bits: 3,
8287                                         value: 10,
8288                                       },
8289                                       HuffmanCode {
8290                                         bits: 1,
8291                                         value: 6,
8292                                       },
8293                                       HuffmanCode {
8294                                         bits: 2,
8295                                         value: 118,
8296                                       },
8297                                       HuffmanCode {
8298                                         bits: 1,
8299                                         value: 6,
8300                                       },
8301                                       HuffmanCode {
8302                                         bits: 3,
8303                                         value: 15,
8304                                       },
8305                                       HuffmanCode {
8306                                         bits: 1,
8307                                         value: 6,
8308                                       },
8309                                       HuffmanCode {
8310                                         bits: 2,
8311                                         value: 118,
8312                                       },
8313                                       HuffmanCode {
8314                                         bits: 1,
8315                                         value: 6,
8316                                       },
8317                                       HuffmanCode {
8318                                         bits: 3,
8319                                         value: 10,
8320                                       },
8321                                       HuffmanCode {
8322                                         bits: 1,
8323                                         value: 6,
8324                                       },
8325                                       HuffmanCode {
8326                                         bits: 2,
8327                                         value: 118,
8328                                       },
8329                                       HuffmanCode {
8330                                         bits: 1,
8331                                         value: 6,
8332                                       },
8333                                       HuffmanCode {
8334                                         bits: 3,
8335                                         value: 15,
8336                                       },
8337                                       HuffmanCode {
8338                                         bits: 1,
8339                                         value: 6,
8340                                       },
8341                                       HuffmanCode {
8342                                         bits: 2,
8343                                         value: 118,
8344                                       },
8345                                       HuffmanCode {
8346                                         bits: 1,
8347                                         value: 6,
8348                                       },
8349                                       HuffmanCode {
8350                                         bits: 3,
8351                                         value: 10,
8352                                       },
8353                                       HuffmanCode {
8354                                         bits: 1,
8355                                         value: 6,
8356                                       },
8357                                       HuffmanCode {
8358                                         bits: 2,
8359                                         value: 118,
8360                                       },
8361                                       HuffmanCode {
8362                                         bits: 1,
8363                                         value: 6,
8364                                       },
8365                                       HuffmanCode {
8366                                         bits: 3,
8367                                         value: 15,
8368                                       },
8369                                       HuffmanCode {
8370                                         bits: 1,
8371                                         value: 6,
8372                                       },
8373                                       HuffmanCode {
8374                                         bits: 2,
8375                                         value: 118,
8376                                       },
8377                                       HuffmanCode {
8378                                         bits: 1,
8379                                         value: 6,
8380                                       },
8381                                       HuffmanCode {
8382                                         bits: 3,
8383                                         value: 10,
8384                                       },
8385                                       HuffmanCode {
8386                                         bits: 1,
8387                                         value: 6,
8388                                       },
8389                                       HuffmanCode {
8390                                         bits: 2,
8391                                         value: 118,
8392                                       },
8393                                       HuffmanCode {
8394                                         bits: 1,
8395                                         value: 6,
8396                                       },
8397                                       HuffmanCode {
8398                                         bits: 3,
8399                                         value: 15,
8400                                       },
8401                                       HuffmanCode {
8402                                         bits: 1,
8403                                         value: 6,
8404                                       },
8405                                       HuffmanCode {
8406                                         bits: 2,
8407                                         value: 118,
8408                                       },
8409                                       HuffmanCode {
8410                                         bits: 1,
8411                                         value: 6,
8412                                       },
8413                                       HuffmanCode {
8414                                         bits: 3,
8415                                         value: 10,
8416                                       },
8417                                       HuffmanCode {
8418                                         bits: 1,
8419                                         value: 6,
8420                                       },
8421                                       HuffmanCode {
8422                                         bits: 2,
8423                                         value: 118,
8424                                       },
8425                                       HuffmanCode {
8426                                         bits: 1,
8427                                         value: 6,
8428                                       },
8429                                       HuffmanCode {
8430                                         bits: 3,
8431                                         value: 15,
8432                                       },
8433                                       HuffmanCode {
8434                                         bits: 1,
8435                                         value: 6,
8436                                       },
8437                                       HuffmanCode {
8438                                         bits: 2,
8439                                         value: 118,
8440                                       },
8441                                       HuffmanCode {
8442                                         bits: 1,
8443                                         value: 6,
8444                                       },
8445                                       HuffmanCode {
8446                                         bits: 3,
8447                                         value: 10,
8448                                       },
8449                                       HuffmanCode {
8450                                         bits: 1,
8451                                         value: 6,
8452                                       },
8453                                       HuffmanCode {
8454                                         bits: 2,
8455                                         value: 118,
8456                                       },
8457                                       HuffmanCode {
8458                                         bits: 1,
8459                                         value: 6,
8460                                       },
8461                                       HuffmanCode {
8462                                         bits: 3,
8463                                         value: 15,
8464                                       },
8465                                       HuffmanCode {
8466                                         bits: 1,
8467                                         value: 6,
8468                                       },
8469                                       HuffmanCode {
8470                                         bits: 2,
8471                                         value: 118,
8472                                       },
8473                                       HuffmanCode {
8474                                         bits: 1,
8475                                         value: 6,
8476                                       },
8477                                       HuffmanCode {
8478                                         bits: 3,
8479                                         value: 10,
8480                                       },
8481                                       HuffmanCode {
8482                                         bits: 1,
8483                                         value: 6,
8484                                       },
8485                                       HuffmanCode {
8486                                         bits: 2,
8487                                         value: 118,
8488                                       },
8489                                       HuffmanCode {
8490                                         bits: 1,
8491                                         value: 6,
8492                                       },
8493                                       HuffmanCode {
8494                                         bits: 3,
8495                                         value: 15,
8496                                       },
8497                                       HuffmanCode {
8498                                         bits: 1,
8499                                         value: 6,
8500                                       },
8501                                       HuffmanCode {
8502                                         bits: 2,
8503                                         value: 118,
8504                                       },
8505                                       HuffmanCode {
8506                                         bits: 1,
8507                                         value: 6,
8508                                       },
8509                                       HuffmanCode {
8510                                         bits: 3,
8511                                         value: 10,
8512                                       },
8513                                       HuffmanCode {
8514                                         bits: 1,
8515                                         value: 6,
8516                                       },
8517                                       HuffmanCode {
8518                                         bits: 2,
8519                                         value: 118,
8520                                       },
8521                                       HuffmanCode {
8522                                         bits: 1,
8523                                         value: 6,
8524                                       },
8525                                       HuffmanCode {
8526                                         bits: 3,
8527                                         value: 15,
8528                                       },
8529                                       HuffmanCode {
8530                                         bits: 1,
8531                                         value: 6,
8532                                       },
8533                                       HuffmanCode {
8534                                         bits: 2,
8535                                         value: 118,
8536                                       },
8537                                       HuffmanCode {
8538                                         bits: 1,
8539                                         value: 6,
8540                                       },
8541                                       HuffmanCode {
8542                                         bits: 3,
8543                                         value: 10,
8544                                       },
8545                                       HuffmanCode {
8546                                         bits: 1,
8547                                         value: 6,
8548                                       },
8549                                       HuffmanCode {
8550                                         bits: 2,
8551                                         value: 118,
8552                                       },
8553                                       HuffmanCode {
8554                                         bits: 1,
8555                                         value: 6,
8556                                       },
8557                                       HuffmanCode {
8558                                         bits: 3,
8559                                         value: 15,
8560                                       },
8561                                       HuffmanCode {
8562                                         bits: 1,
8563                                         value: 6,
8564                                       },
8565                                       HuffmanCode {
8566                                         bits: 2,
8567                                         value: 118,
8568                                       },
8569                                       HuffmanCode {
8570                                         bits: 1,
8571                                         value: 6,
8572                                       },
8573                                       HuffmanCode {
8574                                         bits: 3,
8575                                         value: 10,
8576                                       },
8577                                       HuffmanCode {
8578                                         bits: 1,
8579                                         value: 6,
8580                                       },
8581                                       HuffmanCode {
8582                                         bits: 2,
8583                                         value: 118,
8584                                       },
8585                                       HuffmanCode {
8586                                         bits: 1,
8587                                         value: 6,
8588                                       },
8589                                       HuffmanCode {
8590                                         bits: 3,
8591                                         value: 15,
8592                                       },
8593                                       HuffmanCode {
8594                                         bits: 1,
8595                                         value: 6,
8596                                       },
8597                                       HuffmanCode {
8598                                         bits: 2,
8599                                         value: 118,
8600                                       },
8601                                       HuffmanCode {
8602                                         bits: 1,
8603                                         value: 6,
8604                                       },
8605                                       HuffmanCode {
8606                                         bits: 3,
8607                                         value: 10,
8608                                       },
8609                                       HuffmanCode {
8610                                         bits: 1,
8611                                         value: 6,
8612                                       },
8613                                       HuffmanCode {
8614                                         bits: 2,
8615                                         value: 118,
8616                                       },
8617                                       HuffmanCode {
8618                                         bits: 1,
8619                                         value: 6,
8620                                       },
8621                                       HuffmanCode {
8622                                         bits: 3,
8623                                         value: 15,
8624                                       },
8625                                       HuffmanCode {
8626                                         bits: 1,
8627                                         value: 6,
8628                                       },
8629                                       HuffmanCode {
8630                                         bits: 2,
8631                                         value: 118,
8632                                       },
8633                                       HuffmanCode {
8634                                         bits: 1,
8635                                         value: 6,
8636                                       },
8637                                       HuffmanCode {
8638                                         bits: 3,
8639                                         value: 10,
8640                                       },
8641                                       HuffmanCode {
8642                                         bits: 1,
8643                                         value: 6,
8644                                       },
8645                                       HuffmanCode {
8646                                         bits: 2,
8647                                         value: 118,
8648                                       },
8649                                       HuffmanCode {
8650                                         bits: 1,
8651                                         value: 6,
8652                                       },
8653                                       HuffmanCode {
8654                                         bits: 3,
8655                                         value: 15,
8656                                       },
8657                                       HuffmanCode {
8658                                         bits: 1,
8659                                         value: 6,
8660                                       },
8661                                       HuffmanCode {
8662                                         bits: 2,
8663                                         value: 118,
8664                                       },
8665                                       HuffmanCode {
8666                                         bits: 1,
8667                                         value: 6,
8668                                       },
8669                                       HuffmanCode {
8670                                         bits: 3,
8671                                         value: 10,
8672                                       },
8673                                       HuffmanCode {
8674                                         bits: 1,
8675                                         value: 6,
8676                                       },
8677                                       HuffmanCode {
8678                                         bits: 2,
8679                                         value: 118,
8680                                       },
8681                                       HuffmanCode {
8682                                         bits: 1,
8683                                         value: 6,
8684                                       },
8685                                       HuffmanCode {
8686                                         bits: 3,
8687                                         value: 15,
8688                                       },
8689                                       HuffmanCode {
8690                                         bits: 1,
8691                                         value: 6,
8692                                       },
8693                                       HuffmanCode {
8694                                         bits: 2,
8695                                         value: 118,
8696                                       },
8697                                       HuffmanCode {
8698                                         bits: 1,
8699                                         value: 6,
8700                                       },
8701                                       HuffmanCode {
8702                                         bits: 3,
8703                                         value: 10,
8704                                       },
8705                                       HuffmanCode {
8706                                         bits: 1,
8707                                         value: 6,
8708                                       },
8709                                       HuffmanCode {
8710                                         bits: 2,
8711                                         value: 118,
8712                                       },
8713                                       HuffmanCode {
8714                                         bits: 1,
8715                                         value: 6,
8716                                       },
8717                                       HuffmanCode {
8718                                         bits: 3,
8719                                         value: 15,
8720                                       },
8721                                       HuffmanCode {
8722                                         bits: 1,
8723                                         value: 6,
8724                                       },
8725                                       HuffmanCode {
8726                                         bits: 2,
8727                                         value: 118,
8728                                       },
8729                                       HuffmanCode {
8730                                         bits: 1,
8731                                         value: 6,
8732                                       },
8733                                       HuffmanCode {
8734                                         bits: 3,
8735                                         value: 10,
8736                                       },
8737                                       HuffmanCode {
8738                                         bits: 1,
8739                                         value: 6,
8740                                       },
8741                                       HuffmanCode {
8742                                         bits: 2,
8743                                         value: 118,
8744                                       },
8745                                       HuffmanCode {
8746                                         bits: 1,
8747                                         value: 6,
8748                                       },
8749                                       HuffmanCode {
8750                                         bits: 3,
8751                                         value: 15,
8752                                       }];
8753  let mut val: [u16; 5] = [6, 118, 15, 10, 65535];
8754  let goal_size = BrotliBuildSimpleHuffmanTable(&mut table, 8, &mut val, 4);
8755  assert_eq!(goal_size, 256);
8756  for index in 0..end_table.len() {
8757    assert_eq!([index, table[index].bits as usize, table[index].value as usize],
8758               [index, end_table[index].bits as usize, end_table[index].value as usize]);
8759    assert!(table[index] == end_table[index]);
8760  }
8761}