1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
pub static HUFFMAN_CODES: &'static [&'static str] = &[
  "11111111111111111110111010",
  "11111111111111111110111011",
  "11111111111111111110111100",
  "11111111111111111110111101",
  "11111111111111111110111110",
  "11111111111111111110111111",
  "11111111111111111111000000",
  "11111111111111111111000001",
  "11111111111111111111000010",
  "11111111111111111111000011",
  "11111111111111111111000100",
  "11111111111111111111000101",
  "11111111111111111111000110",
  "11111111111111111111000111",
  "11111111111111111111001000",
  "11111111111111111111001001",
  "11111111111111111111001010",
  "11111111111111111111001011",
  "11111111111111111111001100",
  "11111111111111111111001101",
  "11111111111111111111001110",
  "11111111111111111111001111",
  "11111111111111111111010000",
  "11111111111111111111010001",
  "11111111111111111111010010",
  "11111111111111111111010011",
  "11111111111111111111010100",
  "11111111111111111111010101",
  "11111111111111111111010110",
  "11111111111111111111010111",
  "11111111111111111111011000",
  "11111111111111111111011001",
  "00110",
  "1111111111100",
  "111110000",
  "11111111111100",
  "111111111111100",
  "011110",
  "1100100",
  "1111111111101",
  "1111111010",
  "111110001",
  "1111111011",
  "1111111100",
  "1100101",
  "1100110",
  "011111",
  "00111",
  "0000",
  "0001",
  "0010",
  "01000",
  "100000",
  "100001",
  "100010",
  "100011",
  "100100",
  "100101",
  "100110",
  "11101100",
  "11111111111111100",
  "100111",
  "111111111111101",
  "1111111101",
  "111111111111110",
  "1100111",
  "11101101",
  "11101110",
  "1101000",
  "11101111",
  "1101001",
  "1101010",
  "111110010",
  "11110000",
  "111110011",
  "111110100",
  "111110101",
  "1101011",
  "1101100",
  "11110001",
  "11110010",
  "111110110",
  "111110111",
  "1101101",
  "101000",
  "11110011",
  "111111000",
  "111111001",
  "11110100",
  "111111010",
  "111111011",
  "11111111100",
  "11111111111111111111011010",
  "11111111101",
  "11111111111101",
  "1101110",
  "111111111111111110",
  "01001",
  "1101111",
  "01010",
  "101001",
  "01011",
  "1110000",
  "101010",
  "101011",
  "01100",
  "11110101",
  "11110110",
  "101100",
  "101101",
  "101110",
  "01101",
  "101111",
  "111111100",
  "110000",
  "110001",
  "01110",
  "1110001",
  "1110010",
  "1110011",
  "1110100",
  "1110101",
  "11110111",
  "11111111111111101",
  "111111111100",
  "11111111111111110",
  "111111111101",
  "11111111111111111111011011",
  "11111111111111111111011100",
  "11111111111111111111011101",
  "11111111111111111111011110",
  "11111111111111111111011111",
  "11111111111111111111100000",
  "11111111111111111111100001",
  "11111111111111111111100010",
  "11111111111111111111100011",
  "11111111111111111111100100",
  "11111111111111111111100101",
  "11111111111111111111100110",
  "11111111111111111111100111",
  "11111111111111111111101000",
  "11111111111111111111101001",
  "11111111111111111111101010",
  "11111111111111111111101011",
  "11111111111111111111101100",
  "11111111111111111111101101",
  "11111111111111111111101110",
  "11111111111111111111101111",
  "11111111111111111111110000",
  "11111111111111111111110001",
  "11111111111111111111110010",
  "11111111111111111111110011",
  "11111111111111111111110100",
  "11111111111111111111110101",
  "11111111111111111111110110",
  "11111111111111111111110111",
  "11111111111111111111111000",
  "11111111111111111111111001",
  "11111111111111111111111010",
  "11111111111111111111111011",
  "11111111111111111111111100",
  "11111111111111111111111101",
  "11111111111111111111111110",
  "11111111111111111111111111",
  "1111111111111111110000000",
  "1111111111111111110000001",
  "1111111111111111110000010",
  "1111111111111111110000011",
  "1111111111111111110000100",
  "1111111111111111110000101",
  "1111111111111111110000110",
  "1111111111111111110000111",
  "1111111111111111110001000",
  "1111111111111111110001001",
  "1111111111111111110001010",
  "1111111111111111110001011",
  "1111111111111111110001100",
  "1111111111111111110001101",
  "1111111111111111110001110",
  "1111111111111111110001111",
  "1111111111111111110010000",
  "1111111111111111110010001",
  "1111111111111111110010010",
  "1111111111111111110010011",
  "1111111111111111110010100",
  "1111111111111111110010101",
  "1111111111111111110010110",
  "1111111111111111110010111",
  "1111111111111111110011000",
  "1111111111111111110011001",
  "1111111111111111110011010",
  "1111111111111111110011011",
  "1111111111111111110011100",
  "1111111111111111110011101",
  "1111111111111111110011110",
  "1111111111111111110011111",
  "1111111111111111110100000",
  "1111111111111111110100001",
  "1111111111111111110100010",
  "1111111111111111110100011",
  "1111111111111111110100100",
  "1111111111111111110100101",
  "1111111111111111110100110",
  "1111111111111111110100111",
  "1111111111111111110101000",
  "1111111111111111110101001",
  "1111111111111111110101010",
  "1111111111111111110101011",
  "1111111111111111110101100",
  "1111111111111111110101101",
  "1111111111111111110101110",
  "1111111111111111110101111",
  "1111111111111111110110000",
  "1111111111111111110110001",
  "1111111111111111110110010",
  "1111111111111111110110011",
  "1111111111111111110110100",
  "1111111111111111110110101",
  "1111111111111111110110110",
  "1111111111111111110110111",
  "1111111111111111110111000",
  "1111111111111111110111001",
  "1111111111111111110111010",
  "1111111111111111110111011",
  "1111111111111111110111100",
  "1111111111111111110111101",
  "1111111111111111110111110",
  "1111111111111111110111111",
  "1111111111111111111000000",
  "1111111111111111111000001",
  "1111111111111111111000010",
  "1111111111111111111000011",
  "1111111111111111111000100",
  "1111111111111111111000101",
  "1111111111111111111000110",
  "1111111111111111111000111",
  "1111111111111111111001000",
  "1111111111111111111001001",
  "1111111111111111111001010",
  "1111111111111111111001011",
  "1111111111111111111001100",
  "1111111111111111111001101",
  "1111111111111111111001110",
  "1111111111111111111001111",
  "1111111111111111111010000",
  "1111111111111111111010001",
  "1111111111111111111010010",
  "1111111111111111111010011",
  "1111111111111111111010100",
  "1111111111111111111010101",
  "1111111111111111111010110",
  "1111111111111111111010111",
  "1111111111111111111011000",
  "1111111111111111111011001",
  "1111111111111111111011010",
  "1111111111111111111011011",
  "1111111111111111111011100"
];