30 0, 32, 32, 32, 33, 32, 32, 32,
31 32, 31, 32, 33, 33, 33, 33, 35,
32 36, 36, 34, 34, 36, 37, 37, 36,
33 36, 35, 36, 38, 39, 39, 37, 36,
34 37, 37, 39, 41, 42, 41, 39, 39,
35 40, 41, 42, 43, 42, 42, 41, 41,
36 41, 44, 47, 46, 46, 48, 51, 51,
37 50, 50, 53, 55, 55, 56, 60, 60,
42 0, 32, 33, 34, 34, 33, 34, 35,
43 37, 40, 43, 42, 39, 38, 39, 41,
44 43, 44, 47, 50, 55, 61, 63, 56,
45 48, 46, 49, 54, 59, 58, 55, 58,
46 63, 65, 67, 74, 84, 82, 75, 72,
47 70, 74, 84, 87, 87, 94, 93, 81,
48 75, 78, 83, 89, 91, 86, 82, 85,
49 90, 90, 85, 79, 73, 73, 73, 73,
54 0, 32, 33, 34, 34, 36, 37, 36,
55 36, 37, 38, 38, 38, 39, 41, 44,
56 43, 41, 40, 41, 46, 49, 47, 46,
57 47, 49, 51, 54, 60, 62, 59, 55,
58 54, 56, 58, 61, 65, 66, 64, 63,
59 66, 73, 78, 79, 80, 79, 78, 78,
60 82, 87, 89, 90, 93, 95, 96, 97,
61 97, 100, 104, 102, 98, 98, 99, 99,
66 0, 32, 36, 39, 39, 38, 39, 41,
67 45, 51, 57, 58, 53, 48, 47, 51,
68 55, 58, 66, 75, 81, 83, 82, 78,
69 73, 72, 74, 77, 83, 85, 83, 82,
70 89, 99, 96, 90, 94, 97, 99, 105,
71 109, 105, 95, 89, 92, 95, 94, 93,
72 92, 88, 89, 90, 93, 95, 96, 97,
73 97, 100, 104, 102, 98, 98, 99, 99,
78 0, 32, 32, 33, 34, 33, 33, 33,
79 33, 33, 33, 33, 33, 35, 37, 37,
80 36, 36, 35, 36, 38, 38, 36, 35,
81 36, 37, 38, 41, 42, 41, 39, 38,
82 38, 38, 39, 41, 42, 41, 39, 39,
83 40, 41, 43, 44, 44, 44, 44, 44,
84 45, 47, 47, 47, 49, 50, 51, 51,
85 51, 53, 55, 57, 58, 59, 57, 57,
90 0, 32, 35, 35, 35, 34, 34, 35,
91 39, 43, 45, 45, 41, 39, 40, 41,
92 42, 44, 48, 55, 59, 63, 65, 59,
93 53, 52, 52, 55, 61, 62, 58, 58,
94 63, 66, 66, 65, 70, 74, 70, 66,
95 65, 68, 75, 77, 74, 74, 77, 76,
96 73, 73, 73, 73, 76, 80, 89, 90,
97 82, 77, 80, 86, 84, 82, 82, 82,
102 0, 32, 33, 34, 34, 35, 36, 37,
103 36, 37, 38, 38, 38, 39, 39, 40,
104 40, 38, 38, 39, 38, 37, 39, 41,
105 41, 42, 43, 45, 45, 46, 47, 46,
106 45, 43, 39, 37, 37, 40, 44, 45,
107 45, 46, 46, 46, 47, 47, 46, 44,
108 42, 43, 45, 47, 48, 49, 50, 49,
109 48, 46, 47, 48, 48, 49, 49, 49,
114 0, 32, 36, 38, 37, 37, 40, 41,
115 40, 40, 42, 42, 41, 41, 41, 41,
116 42, 43, 44, 44, 45, 46, 46, 45,
117 44, 45, 45, 45, 45, 46, 47, 46,
118 45, 44, 42, 41, 43, 45, 45, 47,
119 48, 48, 48, 46, 47, 47, 46, 47,
120 46, 45, 45, 47, 48, 49, 50, 49,
121 48, 46, 48, 49, 48, 49, 49, 49,
125 0, 32, 33, 33, 34, 35, 36, 35,
126 33, 33, 35, 36, 37, 37, 38, 37,
127 37, 37, 36, 37, 37, 37, 38, 39,
128 37, 36, 37, 40, 42, 45, 46, 44,
129 41, 42, 44, 45, 47, 49, 50, 48,
130 46, 48, 49, 50, 52, 52, 50, 49,
131 47, 48, 50, 50, 51, 51, 50, 49,
132 49, 51, 52, 51, 49, 47, 47, 47,
136 0, 32, 37, 42, 45, 45, 45, 44,
137 38, 37, 40, 42, 44, 49, 51, 47,
138 41, 40, 43, 44, 46, 48, 51, 54,
139 51, 47, 47, 45, 47, 50, 51, 49,
140 46, 47, 49, 47, 50, 55, 55, 51,
141 48, 49, 51, 51, 52, 52, 54, 54,
142 49, 49, 52, 53, 54, 54, 53, 53,
143 55, 59, 63, 62, 60, 60, 60, 60,
147 0, 32, 32, 33, 33, 35, 35, 35,
148 35, 35, 35, 35, 34, 35, 38, 40,
149 39, 37, 37, 37, 36, 35, 36, 38,
150 40, 41, 42, 44, 45, 44, 42, 41,
151 40, 38, 36, 36, 37, 38, 40, 43,
152 44, 45, 45, 45, 45, 45, 45, 41,
153 39, 41, 45, 47, 47, 48, 48, 48,
154 46, 44, 45, 47, 47, 48, 47, 47,
158 0, 32, 36, 37, 36, 37, 39, 39,
159 41, 43, 43, 42, 41, 41, 41, 42,
160 43, 43, 43, 44, 44, 44, 46, 47,
161 46, 45, 45, 45, 45, 46, 44, 44,
162 45, 44, 42, 41, 43, 46, 45, 44,
163 45, 45, 45, 46, 46, 46, 45, 44,
164 45, 44, 45, 47, 47, 48, 49, 48,
165 46, 45, 46, 47, 47, 48, 47, 47,
169 0, 32, 32, 33, 34, 35, 35, 35,
170 34, 34, 35, 36, 36, 36, 36, 36,
171 37, 38, 38, 38, 38, 38, 39, 39,
172 38, 38, 39, 41, 43, 43, 42, 41,
173 40, 40, 39, 40, 41, 41, 39, 39,
174 40, 42, 47, 50, 47, 45, 46, 46,
175 44, 45, 46, 47, 49, 54, 58, 54,
176 48, 49, 54, 57, 60, 62, 63, 63,
180 0, 32, 35, 36, 36, 35, 36, 39,
181 41, 43, 45, 44, 41, 39, 40, 42,
182 43, 43, 45, 48, 49, 51, 52, 50,
183 50, 51, 51, 51, 51, 52, 53, 54,
184 51, 49, 51, 52, 52, 56, 57, 55,
185 54, 54, 55, 56, 55, 58, 58, 58,
186 60, 61, 62, 62, 59, 57, 58, 58,
187 61, 59, 59, 59, 60, 62, 63, 63,
191 0, 32, 32, 34, 34, 34, 34, 35,
192 35, 35, 36, 37, 36, 36, 35, 36,
193 38, 38, 38, 38, 38, 38, 38, 38,
194 38, 38, 39, 41, 44, 43, 41, 40,
195 40, 40, 40, 39, 40, 41, 40, 39,
196 40, 43, 46, 46, 44, 44, 44, 42,
197 41, 43, 46, 48, 50, 55, 58, 53,
198 48, 50, 55, 58, 61, 62, 62, 62,
202 0, 32, 35, 36, 36, 35, 36, 39,
203 41, 43, 45, 44, 41, 39, 40, 42,
204 43, 43, 45, 48, 48, 48, 50, 50,
205 50, 51, 51, 51, 51, 52, 53, 54,
206 51, 49, 51, 52, 52, 56, 57, 55,
207 54, 54, 55, 56, 55, 58, 58, 58,
208 60, 61, 62, 62, 59, 57, 58, 58,
209 61, 59, 59, 59, 61, 62, 62, 62,
214 0, 32, 34, 35, 36, 36, 36, 37,
215 36, 37, 39, 40, 41, 40, 40, 40,
216 41, 41, 42, 41, 41, 43, 44, 44,
217 45, 46, 48, 55, 60, 57, 52, 50,
218 49, 49, 52, 52, 53, 55, 58, 62,
219 65, 73, 82, 82, 80, 78, 73, 68,
220 71, 82, 90, 90, 88, 87, 90, 95,
221 100, 107, 103, 97, 95, 93, 99, 99,
226 0, 32, 35, 36, 37, 37, 38, 40,
227 42, 46, 49, 50, 50, 49, 49, 53,
228 56, 56, 57, 58, 60, 62, 64, 65,
229 63, 64, 64, 65, 66, 65, 67, 71,
230 72, 74, 74, 74, 74, 77, 81, 78,
231 72, 73, 82, 85, 89, 88, 84, 80,
232 90, 100, 90, 90, 88, 87, 90, 95,
233 114, 128, 125, 129, 134, 125, 116, 116,
238 0, 32, 33, 34, 36, 37, 37, 36,
239 34, 33, 34, 35, 37, 38, 40, 41,
240 40, 39, 38, 37, 34, 33, 34, 37,
241 40, 44, 48, 52, 53, 49, 47, 45,
242 42, 38, 36, 36, 38, 41, 43, 44,
243 46, 49, 52, 54, 54, 49, 44, 44,
244 44, 47, 51, 51, 52, 51, 48, 50,
245 52, 53, 53, 50, 50, 54, 54, 54,
250 0, 32, 34, 38, 42, 40, 38, 36,
251 35, 35, 38, 42, 43, 43, 42, 40,
252 38, 39, 43, 43, 42, 41, 43, 43,
253 42, 44, 46, 45, 45, 46, 47, 46,
254 44, 44, 45, 46, 46, 46, 50, 50,
255 47, 47, 49, 49, 49, 49, 51, 53,
256 51, 49, 53, 57, 56, 52, 50, 52,
257 56, 56, 53, 53, 53, 54, 58, 58,
262 10, 62, 11, 12, 13, 0, 1, 2, 3, 4, 14, 30, 126, 127,
267 4, 6, 4, 4, 4, 3, 3, 3, 3, 3, 4, 5, 7, 7,
272 0, 12, 13, 1, 2, 3, 4, 5, 14, 30, 62, 63,
277 3, 4, 4, 3, 3, 3, 3, 3, 4, 5, 6, 6,
282 0, 1, 4, 5, 12, 26, 27, 56,
283 57, 58, 59, 120, 121, 244, 245, 246,
284 247, 248, 498, 499, 500, 501, 502, 1006,
285 1007, 1008, 1009, 1010, 1011, 2024, 2025, 2026,
286 2027, 2028, 2029, 2030, 2031, 4064, 4065, 4066,
287 4067, 4068, 4069, 4070, 4071, 4072, 4073, 8148,
288 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
289 8157, 8158, 16318, 16319, 16320, 16321, 16322, 16323,
290 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331,
291 16332, 16333, 32668, 32669, 32670, 32671, 32672, 32673,
292 32674, 32675, 32676, 32677, 32678, 32679, 32680, 32681,
293 32682, 32683, 32684, 65370, 65371, 65372, 65373, 65374,
294 65375, 65376, 65377, 65378, 65379, 65380, 65381, 65382,
295 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390,
296 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
297 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
298 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
299 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
300 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
301 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
302 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
303 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
304 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
305 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
306 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
307 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
308 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
309 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
310 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
311 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
312 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
313 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
319 2, 2, 3, 3, 4, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8,
320 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11,
321 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
322 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
323 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
324 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
325 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
326 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
327 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
328 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
329 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
330 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
331 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
332 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
333 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
334 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
340 3, 0, 3, 2, 5, 0, 0, 0, 7, 0, 9, 0, 5, 2, 11, 0,
341 13, 0, 15, 0, 7, 2, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0,
342 9, 2, 11, 2, 27, 0, 29, 0, 31, 0, 33, 0, 13, 2, 35, 0,
343 37, 0, 39, 0, 41, 0, 43, 0, 15, 2, 45, 0, 47, 0, 49, 0,
344 51, 0, 53, 0, 55, 0, 17, 2, 19, 2, 57, 0, 59, 0, 61, 0,
345 63, 0, 65, 0, 67, 0, 69, 0, 21, 2, 23, 2, 25, 2, 71, 0,
346 73, 0, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 27, 2, 29, 2,
347 31, 2, 33, 2, 85, 0, 87, 0, 89, 0, 91, 0, 93, 0, 95, 0,
348 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 35, 2, 37, 2, 39, 2,
349 41, 2, 43, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0,
350 119, 0, 121, 0, 123, 0, 129, 0, 3, 1, 45, 2, 47, 2, 49, 2,
351 51, 2, 53, 2, 55, 2, 125, 0, 127, 0, 5, 1, 7, 1, 9, 1,
352 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1,
353 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1,
354 43, 1, 45, 1, 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1,
355 59, 1, 61, 1, 63, 1, 65, 1, 67, 1, 69, 1, 71, 1, 73, 1,
356 75, 1, 77, 1, 79, 1, 81, 1, 83, 1, 85, 1, 87, 1, 89, 1,
357 91, 1, 93, 1, 95, 1, 97, 1, 99, 1, 101, 1, 103, 1, 105, 1,
358 107, 1, 109, 1, 111, 1, 113, 1, 115, 1, 117, 1, 119, 1, 121, 1,
359 123, 1, 125, 1, 127, 1, 129, 1, 57, 2, 59, 2, 61, 2, 63, 2,
360 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
361 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
362 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
363 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
364 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
365 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
366 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
367 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
368 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
369 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
370 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
371 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
377 0, 1, 4, 10, 11, 24, 25, 26,
378 54, 55, 56, 57, 116, 117, 118, 119,
379 240, 241, 242, 243, 244, 245, 492, 493,
380 494, 495, 496, 497, 498, 499, 1000, 1001,
381 1002, 1003, 1004, 1005, 1006, 1007, 1008, 2018,
382 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
383 2027, 4056, 4057, 4058, 4059, 4060, 4061, 4062,
384 4063, 4064, 4065, 4066, 4067, 4068, 4069, 8140,
385 8141, 8142, 8143, 8144, 8145, 8146, 8147, 8148,
386 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8156,
387 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321,
388 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329,
389 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337,
390 16338, 32678, 32679, 32680, 32681, 32682, 32683, 32684,
391 32685, 32686, 32687, 32688, 32689, 32690, 32691, 32692,
392 32693, 32694, 32695, 32696, 32697, 32698, 32699, 32700,
393 32701, 32702, 32703, 32704, 32705, 65412, 65413, 65414,
394 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
395 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
396 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
397 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
398 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
399 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
400 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
401 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
402 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
403 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
404 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
405 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
406 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
407 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
408 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
414 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
415 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
416 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
417 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
418 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
419 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
420 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
421 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
422 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
423 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
424 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
425 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
426 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
427 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
428 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
429 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
435 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
436 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
437 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
438 39, 0, 41, 0, 43, 0, 45, 0, 13, 2, 15, 2, 47, 0, 49, 0,
439 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 17, 2, 19, 2, 61, 0,
440 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 21, 2,
441 23, 2, 77, 0, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0,
442 91, 0, 93, 0, 95, 0, 97, 0, 25, 2, 27, 2, 29, 2, 99, 0,
443 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0,
444 117, 0, 119, 0, 121, 0, 123, 0, 31, 2, 33, 2, 35, 2, 37, 2,
445 125, 0, 127, 0, 129, 0, 3, 1, 5, 1, 7, 1, 9, 1, 11, 1,
446 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1,
447 29, 1, 31, 1, 33, 1, 39, 2, 41, 2, 43, 2, 45, 2, 47, 2,
448 49, 2, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1, 47, 1,
449 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1, 63, 1,
450 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 81, 1, 51, 2,
451 53, 2, 55, 2, 57, 2, 59, 2, 61, 2, 77, 1, 79, 1, 83, 1,
452 85, 1, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1,
453 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1, 113, 1, 115, 1,
454 117, 1, 119, 1, 121, 1, 123, 1, 125, 1, 127, 1, 129, 1, 63, 2,
455 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
456 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
457 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
458 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
459 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
460 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
461 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
462 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
463 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
464 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
465 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
466 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
472 0, 1, 4, 10, 11, 24, 25, 26,
473 54, 55, 56, 57, 116, 117, 118, 119,
474 240, 241, 242, 243, 244, 245, 492, 493,
475 494, 495, 496, 497, 498, 998, 999, 1000,
476 1001, 1002, 1003, 1004, 1005, 1006, 1007, 2016,
477 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
478 2025, 2026, 4054, 4055, 4056, 4057, 4058, 4059,
479 4060, 4061, 4062, 4063, 4064, 4065, 4066, 4067,
480 4068, 4069, 8140, 8141, 8142, 8143, 8144, 8145,
481 8146, 8147, 8148, 8149, 8150, 8151, 8152, 8153,
482 8154, 8155, 8156, 8157, 16316, 16317, 16318, 16319,
483 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
484 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
485 16336, 16337, 32676, 32677, 32678, 32679, 32680, 32681,
486 32682, 32683, 32684, 32685, 32686, 32687, 32688, 32689,
487 32690, 32691, 32692, 32693, 32694, 32695, 32696, 32697,
488 32698, 32699, 32700, 32701, 32702, 32703, 32704, 32705,
489 32706, 32707, 32708, 65418, 65419, 65420, 65421, 65422,
490 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
491 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
492 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
493 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
494 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
495 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
496 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
497 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
498 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
499 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
500 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
501 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
502 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
503 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
509 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
510 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
511 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11,
512 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
513 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
514 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
515 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
516 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
517 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16,
518 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
519 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
520 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
521 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
522 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
523 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
524 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
530 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
531 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
532 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
533 39, 0, 41, 0, 43, 0, 13, 2, 15, 2, 45, 0, 47, 0, 49, 0,
534 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 17, 2, 19, 2, 61, 0,
535 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0,
536 21, 2, 23, 2, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0,
537 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 25, 2, 27, 2,
538 29, 2, 31, 2, 103, 0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0,
539 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 3, 1,
540 33, 2, 35, 2, 37, 2, 39, 2, 129, 0, 5, 1, 7, 1, 9, 1,
541 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1,
542 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 41, 2, 43, 2, 45, 2,
543 47, 2, 49, 2, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1, 47, 1,
544 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1, 63, 1,
545 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 77, 1, 79, 1,
546 81, 1, 83, 1, 85, 1, 51, 2, 53, 2, 55, 2, 57, 2, 59, 2,
547 61, 2, 63, 2, 65, 2, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1,
548 97, 1, 99, 1, 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1,
549 113, 1, 115, 1, 117, 1, 119, 1, 121, 1, 123, 1, 125, 1, 127, 1,
550 129, 1, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
551 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
552 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
553 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
554 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
555 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
556 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
557 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
558 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
559 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
560 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
561 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
566 0, 1, 4, 10, 11, 24, 25, 26,
567 54, 55, 56, 57, 116, 117, 118, 119,
568 240, 241, 242, 243, 244, 245, 492, 493,
569 494, 495, 496, 497, 498, 998, 999, 1000,
570 1001, 1002, 1003, 1004, 1005, 1006, 2014, 2015,
571 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
572 2024, 2025, 4052, 4053, 4054, 4055, 4056, 4057,
573 4058, 4059, 4060, 4061, 4062, 4063, 4064, 4065,
574 4066, 4067, 8136, 8137, 8138, 8139, 8140, 8141,
575 8142, 8143, 8144, 8145, 8146, 8147, 8148, 8149,
576 8150, 8151, 8152, 8153, 8154, 8155, 8156, 16314,
577 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322,
578 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330,
579 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338,
580 32678, 32679, 32680, 32681, 32682, 32683, 32684, 32685,
581 32686, 32687, 32688, 32689, 32690, 32691, 32692, 32693,
582 32694, 32695, 32696, 32697, 32698, 32699, 32700, 32701,
583 32702, 32703, 32704, 32705, 32706, 32707, 32708, 32709,
584 32710, 32711, 32712, 65426, 65427, 65428, 65429, 65430,
585 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
586 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
587 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
588 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
589 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
590 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
591 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
592 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
593 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
594 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
595 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
596 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
597 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
601 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
602 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10,
603 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
604 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
605 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
606 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
607 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
608 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
609 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
610 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
611 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
612 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
613 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
614 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
615 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
616 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
621 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
622 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
623 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
624 39, 0, 41, 0, 43, 0, 45, 0, 13, 2, 47, 0, 49, 0, 51, 0,
625 53, 0, 55, 0, 57, 0, 59, 0, 15, 2, 17, 2, 61, 0, 63, 0,
626 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0,
627 19, 2, 21, 2, 81, 0, 83, 0, 85, 0, 87, 0, 89, 0, 91, 0,
628 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0, 23, 2,
629 25, 2, 27, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0,
630 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 3, 1, 5, 1,
631 7, 1, 9, 1, 11, 1, 29, 2, 31, 2, 33, 2, 35, 2, 13, 1,
632 15, 1, 17, 1, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1, 29, 1,
633 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1,
634 47, 1, 49, 1, 51, 1, 53, 1, 37, 2, 39, 2, 41, 2, 43, 2,
635 55, 1, 57, 1, 59, 1, 61, 1, 63, 1, 65, 1, 67, 1, 69, 1,
636 71, 1, 73, 1, 75, 1, 77, 1, 79, 1, 81, 1, 83, 1, 85, 1,
637 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1, 101, 1,
638 103, 1, 105, 1, 107, 1, 111, 1, 113, 1, 45, 2, 47, 2, 49, 2,
639 51, 2, 53, 2, 55, 2, 109, 1, 115, 1, 117, 1, 119, 1, 121, 1,
640 123, 1, 125, 1, 127, 1, 129, 1, 57, 2, 59, 2, 61, 2, 63, 2,
641 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
642 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
643 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
644 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
645 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
646 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
647 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
648 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
649 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
650 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
651 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
652 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
657 0, 1, 4, 10, 11, 24, 25, 26,
658 54, 55, 56, 57, 116, 117, 118, 119,
659 240, 241, 242, 243, 244, 245, 492, 493,
660 494, 495, 496, 497, 996, 997, 998, 999,
661 1000, 1001, 1002, 1003, 1004, 1005, 2012, 2013,
662 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
663 2022, 2023, 2024, 2025, 4052, 4053, 4054, 4055,
664 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063,
665 4064, 4065, 4066, 8134, 8135, 8136, 8137, 8138,
666 8139, 8140, 8141, 8142, 8143, 8144, 8145, 8146,
667 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154,
668 8155, 8156, 16314, 16315, 16316, 16317, 16318, 16319,
669 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
670 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
671 16336, 16337, 16338, 16339, 32680, 32681, 32682, 32683,
672 32684, 32685, 32686, 32687, 32688, 32689, 32690, 32691,
673 32692, 32693, 32694, 32695, 32696, 32697, 32698, 32699,
674 32700, 32701, 32702, 32703, 32704, 32705, 32706, 32707,
675 32708, 32709, 32710, 32711, 32712, 32713, 32714, 65430,
676 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
677 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
678 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
679 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
680 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
681 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
682 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
683 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
684 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
685 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
686 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
687 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
688 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
693 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
694 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
695 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
696 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
697 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
698 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
699 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
700 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
701 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
702 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16,
703 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
704 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
705 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
706 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
707 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
708 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
713 3, 0, 3, 2, 5, 0, 7, 0, 0, 0, 9, 0, 11, 0, 5, 2,
714 13, 0, 15, 0, 17, 0, 7, 2, 19, 0, 21, 0, 23, 0, 9, 2,
715 25, 0, 27, 0, 29, 0, 31, 0, 33, 0, 11, 2, 35, 0, 37, 0,
716 39, 0, 41, 0, 43, 0, 13, 2, 45, 0, 47, 0, 49, 0, 51, 0,
717 53, 0, 55, 0, 57, 0, 59, 0, 15, 2, 17, 2, 61, 0, 63, 0,
718 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 0, 79, 0,
719 81, 0, 19, 2, 21, 2, 23, 2, 83, 0, 85, 0, 87, 0, 89, 0,
720 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0, 103, 0, 105, 0,
721 25, 2, 27, 2, 29, 2, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0,
722 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 3, 1,
723 5, 1, 7, 1, 9, 1, 11, 1, 13, 1, 15, 1, 17, 1, 31, 2,
724 33, 2, 35, 2, 19, 1, 21, 1, 23, 1, 25, 1, 27, 1, 29, 1,
725 31, 1, 33, 1, 35, 1, 37, 1, 39, 1, 41, 1, 43, 1, 45, 1,
726 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 37, 2,
727 39, 2, 41, 2, 43, 2, 45, 2, 61, 1, 63, 1, 65, 1, 67, 1,
728 69, 1, 71, 1, 73, 1, 75, 1, 77, 1, 79, 1, 81, 1, 83, 1,
729 85, 1, 87, 1, 89, 1, 91, 1, 93, 1, 95, 1, 97, 1, 99, 1,
730 101, 1, 103, 1, 105, 1, 107, 1, 109, 1, 111, 1, 113, 1, 115, 1,
731 117, 1, 47, 2, 49, 2, 51, 2, 53, 2, 55, 2, 57, 2, 119, 1,
732 121, 1, 123, 1, 125, 1, 127, 1, 129, 1, 59, 2, 61, 2, 63, 2,
733 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
734 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
735 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
736 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
737 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
738 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
739 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
740 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
741 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
742 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
743 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
744 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
750 0, 1, 4, 10, 11, 12, 26, 27,
751 56, 57, 58, 118, 119, 120, 242, 243,
752 244, 245, 246, 247, 496, 497, 498, 499,
753 500, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
754 1009, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
755 2027, 2028, 2029, 4060, 4061, 4062, 4063, 4064,
756 4065, 4066, 4067, 4068, 4069, 4070, 4071, 8144,
757 8145, 8146, 8147, 8148, 8149, 8150, 8151, 8152,
758 8153, 8154, 8155, 8156, 8157, 8158, 16318, 16319,
759 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327,
760 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335,
761 32672, 32673, 32674, 32675, 32676, 32677, 32678, 32679,
762 32680, 32681, 32682, 32683, 32684, 32685, 32686, 32687,
763 32688, 32689, 32690, 32691, 32692, 32693, 32694, 65390,
764 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398,
765 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
766 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414,
767 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422,
768 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430,
769 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438,
770 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446,
771 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454,
772 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462,
773 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470,
774 65471, 65472, 65473, 65474, 65475, 65476, 65477, 65478,
775 65479, 65480, 65481, 65482, 65483, 65484, 65485, 65486,
776 65487, 65488, 65489, 65490, 65491, 65492, 65493, 65494,
777 65495, 65496, 65497, 65498, 65499, 65500, 65501, 65502,
778 65503, 65504, 65505, 65506, 65507, 65508, 65509, 65510,
779 65511, 65512, 65513, 65514, 65515, 65516, 65517, 65518,
780 65519, 65520, 65521, 65522, 65523, 65524, 65525, 65526,
781 65527, 65528, 65529, 65530, 65531, 65532, 65533, 65534,
787 2, 2, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8,
788 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10,
789 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
790 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
791 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
792 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
793 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16,
794 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
795 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
796 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
797 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
798 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
799 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
800 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
801 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
802 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
808 3, 0, 3, 2, 5, 0, 7, 0, 5, 2, 0, 0, 9, 0, 11, 0,
809 13, 0, 15, 0, 7, 2, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0,
810 27, 0, 29, 0, 9, 2, 11, 2, 31, 0, 33, 0, 35, 0, 37, 0,
811 13, 2, 39, 0, 41, 0, 43, 0, 45, 0, 47, 0, 49, 0, 15, 2,
812 17, 2, 51, 0, 53, 0, 55, 0, 57, 0, 59, 0, 61, 0, 63, 0,
813 65, 0, 19, 2, 21, 2, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0,
814 77, 0, 79, 0, 81, 0, 83, 0, 23, 2, 25, 2, 27, 2, 85, 0,
815 87, 0, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 0,
816 103, 0, 105, 0, 107, 0, 29, 2, 31, 2, 33, 2, 109, 0, 111, 0,
817 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 0, 125, 0, 127, 0,
818 129, 0, 3, 1, 5, 1, 7, 1, 35, 2, 37, 2, 39, 2, 41, 2,
819 9, 1, 11, 1, 13, 1, 15, 1, 17, 1, 19, 1, 21, 1, 23, 1,
820 25, 1, 27, 1, 29, 1, 31, 1, 33, 1, 35, 1, 37, 1, 39, 1,
821 41, 1, 43, 1, 43, 2, 45, 2, 47, 2, 49, 2, 51, 2, 45, 1,
822 47, 1, 49, 1, 51, 1, 53, 1, 55, 1, 57, 1, 59, 1, 61, 1,
823 63, 1, 65, 1, 67, 1, 69, 1, 71, 1, 73, 1, 75, 1, 77, 1,
824 79, 1, 81, 1, 83, 1, 85, 1, 87, 1, 89, 1, 91, 1, 93, 1,
825 95, 1, 97, 1, 99, 1, 101, 1, 103, 1, 105, 1, 107, 1, 109, 1,
826 111, 1, 113, 1, 115, 1, 117, 1, 119, 1, 121, 1, 123, 1, 125, 1,
827 127, 1, 129, 1, 53, 2, 55, 2, 57, 2, 59, 2, 61, 2, 63, 2,
828 65, 2, 67, 2, 69, 2, 71, 2, 73, 2, 75, 2, 77, 2, 79, 2,
829 81, 2, 83, 2, 85, 2, 87, 2, 89, 2, 91, 2, 93, 2, 95, 2,
830 97, 2, 99, 2, 101, 2, 103, 2, 105, 2, 107, 2, 109, 2, 111, 2,
831 113, 2, 115, 2, 117, 2, 119, 2, 121, 2, 123, 2, 125, 2, 127, 2,
832 129, 2, 3, 3, 5, 3, 7, 3, 9, 3, 11, 3, 13, 3, 15, 3,
833 17, 3, 19, 3, 21, 3, 23, 3, 25, 3, 27, 3, 29, 3, 31, 3,
834 33, 3, 35, 3, 37, 3, 39, 3, 41, 3, 43, 3, 45, 3, 47, 3,
835 49, 3, 51, 3, 53, 3, 55, 3, 57, 3, 59, 3, 61, 3, 63, 3,
836 65, 3, 67, 3, 69, 3, 71, 3, 73, 3, 75, 3, 77, 3, 79, 3,
837 81, 3, 83, 3, 85, 3, 87, 3, 89, 3, 91, 3, 93, 3, 95, 3,
838 97, 3, 99, 3, 101, 3, 103, 3, 105, 3, 107, 3, 109, 3, 111, 3,
839 113, 3, 115, 3, 117, 3, 119, 3, 121, 3, 123, 3, 125, 3, 127, 3,
845 0, 4, 10, 11, 24, 25, 26, 27,
846 56, 57, 58, 59, 120, 242, 486, 487,
847 488, 489, 980, 981, 982, 983, 984, 985,
848 986, 987, 988, 989, 990, 991, 992, 993,
849 994, 995, 996, 997, 998, 999, 1000, 1001,
850 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
851 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
852 1018, 1019, 1020, 1021, 1022, 1023,
857 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 8, 9, 9,
858 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
859 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
860 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
865 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
866 18, 20, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
867 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
868 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
873 0, 4, 10, 11, 24, 25, 26, 54,
874 55, 56, 57, 58, 118, 119, 240, 482,
875 483, 484, 485, 486, 487, 488, 489, 490,
876 491, 492, 493, 494, 990, 991, 992, 993,
877 994, 995, 996, 997, 998, 999, 1000, 1001,
878 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
879 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
880 1018, 1019, 1020, 1021, 1022, 1023,
885 1, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 8, 9,
886 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
887 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
888 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
893 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
894 17, 18, 19, 20, 21, 53, 57, 58, 59, 60, 61, 62, 22, 23, 24, 25,
895 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
896 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56,
901 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
902 20, 21, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
903 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
904 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
909 0, 4, 5, 12, 26, 27, 28, 58,
910 118, 119, 120, 242, 486, 487, 976, 977,
911 978, 979, 980, 981, 982, 983, 984, 985,
912 986, 987, 988, 989, 990, 991, 992, 993,
913 994, 995, 996, 997, 998, 999, 1000, 1001,
914 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
915 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
916 1018, 1019, 1020, 1021, 1022, 1023,
921 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 10, 10,
922 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
923 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
924 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
929 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
930 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
931 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
932 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
936 { 1235, 1920, 1080, 917504, 917504,
942 { 175, 185, 365, 440 } },
943 { 1237, 1920, 1080, 606208, 606208,
949 { 115, 120, 145, 240, 290 } },
950 { 1238, 1920, 1080, 917504, 917504,
956 { 175, 185, 220, 365, 440 } },
957 { 1241, 1920, 1080, 917504, 458752,
964 { 1242, 1920, 1080, 606208, 303104,
971 { 1243, 1920, 1080, 917504, 458752,
978 { 1244, 1440, 1080, 606208, 303104,
985 { 1250, 1280, 720, 458752, 458752,
992 { 1251, 1280, 720, 458752, 458752,
998 { 90, 110, 180, 220 } },
999 { 1252, 1280, 720, 303104, 303104,
1005 { 60, 75, 120, 145 } },
1006 { 1253, 1920, 1080, 188416, 188416,
1012 { 36, 45, 75, 90 } },
1013 { 1256, 1920, 1080, 1835008, 1835008,
1019 { 350, 390, 440, 730, 880 } },
1020 { 1258, 960, 720, 212992, 212992,
1026 { 42, 60, 75, 115 } },
1027 { 1259, 1440, 1080, 417792, 417792,
1033 { 63, 84, 100, 110 } },
1034 { 1260, 1440, 1080, 835584, 417792,
1040 { 80, 90, 100, 110 } },
1047 { 0 }, { 57344, 255} },
1054 { 0 }, { 28672, 255} },
1061 { 0 }, { 28672, 255} },
1068 { 0 }, { 18944, 255} },
1075 { 0 }, { 5888, 255} },
1082 if (ff_dnxhd_cid_table[i].cid == cid)
1123 int mbs = avctx->
bit_rate / 1000000;
1131 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1154 const CIDEntry *cid = &ff_dnxhd_cid_table[i];
1159 av_log(avctx, loglevel,
"Frame size: %dx%d%c; bitrate: %dMbps; pixel format: %s\n",
#define FF_COMPLIANCE_EXPERIMENTAL
Allow nonstandardized experimental things.
static const uint8_t dnxhd_1237_run_bits[62]
static const uint8_t dnxhd_1238_chroma_weight[]
#define AV_CODEC_FLAG_INTERLACED_DCT
Use interlaced DCT.
#define AV_LOG_WARNING
Something somehow does not look correct.
int64_t bit_rate
the average bitrate
static const uint8_t dnxhd_1242_luma_weight[]
static const uint8_t dnxhd_1250_luma_weight[]
static const uint8_t dnxhd_1250_run_bits[62]
const CIDEntry ff_dnxhd_cid_table[]
int avpriv_dnxhd_get_interlaced(int cid)
static const uint8_t dnxhd_1242_chroma_weight[]
static const uint16_t dnxhd_1238_ac_codes[257]
static const uint8_t dnxhd_1237_run[62]
static const uint8_t dnxhd_1251_ac_bits[257]
static const uint8_t dnxhd_1243_chroma_weight[]
int ff_dnxhd_find_cid(AVCodecContext *avctx, int bit_depth)
static const uint8_t dnxhd_1250_ac_info[2 *257]
static int dnxhd_find_hr_cid(AVCodecContext *avctx)
static const uint8_t dnxhd_1238_ac_info[2 *257]
int avpriv_dnxhd_get_frame_size(int cid)
static const uint8_t dnxhd_1252_ac_bits[257]
static const uint8_t dnxhd_1251_chroma_weight[]
static const uint16_t dnxhd_1251_ac_codes[257]
static const uint16_t dnxhd_1250_run_codes[62]
#define DNXHD_INTERLACED
Additional profile info flags.
int ff_dnxhd_get_cid_table(int cid)
static const uint8_t dnxhd_1238_ac_bits[257]
static const uint8_t dnxhd_1251_ac_info[2 *257]
static const uint16_t dnxhd_1237_run_codes[62]
int flags
AV_CODEC_FLAG_*.
static const uint8_t dnxhd_1241_chroma_weight[]
static const uint8_t dnxhd_1252_ac_info[2 *257]
#define FF_PROFILE_DNXHR_LB
static const uint16_t dnxhd_1250_ac_codes[257]
static const uint8_t dnxhd_1237_dc_codes[12]
static const uint8_t dnxhd_1237_luma_weight[]
static const uint8_t dnxhd_1237_dc_bits[12]
static const uint16_t dnxhd_1237_ac_codes[257]
int width
picture width / height.
static void bit_depth(AudioStatsContext *s, uint64_t mask, uint64_t imask, AVRational *depth)
static const uint16_t dnxhd_1252_ac_codes[257]
static const uint8_t dnxhd_1238_luma_weight[]
static const uint8_t dnxhd_1243_luma_weight[]
void ff_dnxhd_print_profiles(AVCodecContext *avctx, int loglevel)
#define FF_PROFILE_DNXHR_HQ
static const uint8_t dnxhd_1250_chroma_weight[]
#define FF_ARRAY_ELEMS(a)
static const uint8_t dnxhd_1250_run[62]
static const uint8_t dnxhd_1235_run[62]
static const uint8_t dnxhd_1260_luma_weight[]
Libavcodec external API header.
main external API structure.
static const uint8_t dnxhd_1252_luma_weight[]
#define FF_PROFILE_DNXHR_SQ
static const uint8_t dnxhd_1237_ac_info[2 *257]
static const uint16_t dnxhd_1235_ac_codes[257]
static const uint8_t dnxhd_1260_chroma_weight[]
static const uint8_t dnxhd_1235_dc_codes[14]
#define DNXHD_VARIABLE
Indicate that a CIDEntry value must be read in the bitstream.
#define FF_PROFILE_DNXHR_HQX
static const uint8_t dnxhd_1235_ac_bits[257]
common internal and external API header
static const uint8_t dnxhd_1235_dc_bits[14]
#define FF_PROFILE_DNXHR_444
static const uint8_t dnxhd_1237_ac_bits[257]
static const uint8_t dnxhd_1251_luma_weight[]
static const uint8_t dnxhd_1250_ac_bits[257]
int bit_rates[5]
Helper to choose variants, rounded to nearest 5Mb/s.
static const uint8_t dnxhd_1241_luma_weight[]
static const uint8_t dnxhd_1237_chroma_weight[]
static const uint8_t dnxhd_1235_chroma_weight[]
static const uint8_t dnxhd_1238_run[62]
static const uint8_t dnxhd_1235_run_bits[62]
static const uint8_t dnxhd_1252_chroma_weight[]
int strict_std_compliance
strictly follow the standard (MPEG-4, ...).
static const uint8_t dnxhd_1235_ac_info[2 *257]
static const uint16_t dnxhd_1235_run_codes[62]
static const uint8_t dnxhd_1235_luma_weight[]