#![doc(hidden)]
use crate::traits::{BitRead, BitWrite, BE, LE};
use common_traits::*;
pub const READ_BITS: usize = 12;
pub const WRITE_MAX: u64 = 1023;
#[inline(always)]
pub fn read_table_le<B: BitRead<LE>>(backend: &mut B) -> Option<(u64, usize)> {
if let Ok(idx) = backend.peek_bits(READ_BITS) {
let idx: u64 = idx.cast();
let len = READ_LEN_LE[idx as usize];
if len != MISSING_VALUE_LEN_LE {
backend.skip_bits_after_table_lookup(len as usize);
return Some((READ_LE[idx as usize] as u64, len as usize));
}
}
None
}
#[inline(always)]
pub fn len_table_le<B: BitRead<LE>>(backend: &mut B) -> Option<usize> {
if let Ok(idx) = backend.peek_bits(READ_BITS) {
let idx: u64 = idx.cast();
let len = READ_LEN_LE[idx as usize];
if len != MISSING_VALUE_LEN_LE {
backend.skip_bits_after_table_lookup(len as usize);
return Some(len as usize);
}
}
None
}
#[inline(always)]
pub fn write_table_le<B: BitWrite<LE>>(
backend: &mut B,
value: u64,
) -> Result<Option<usize>, B::Error> {
Ok(if let Some(bits) = WRITE_LE.get(value as usize) {
let len = WRITE_LEN_LE[value as usize] as usize;
backend.write_bits(*bits as u64, len)?;
Some(len)
} else {
None
})
}
#[inline(always)]
pub fn read_table_be<B: BitRead<BE>>(backend: &mut B) -> Option<(u64, usize)> {
if let Ok(idx) = backend.peek_bits(READ_BITS) {
let idx: u64 = idx.cast();
let len = READ_LEN_BE[idx as usize];
if len != MISSING_VALUE_LEN_BE {
backend.skip_bits_after_table_lookup(len as usize);
return Some((READ_BE[idx as usize] as u64, len as usize));
}
}
None
}
#[inline(always)]
pub fn len_table_be<B: BitRead<BE>>(backend: &mut B) -> Option<usize> {
if let Ok(idx) = backend.peek_bits(READ_BITS) {
let idx: u64 = idx.cast();
let len = READ_LEN_BE[idx as usize];
if len != MISSING_VALUE_LEN_BE {
backend.skip_bits_after_table_lookup(len as usize);
return Some(len as usize);
}
}
None
}
#[inline(always)]
pub fn write_table_be<B: BitWrite<BE>>(
backend: &mut B,
value: u64,
) -> Result<Option<usize>, B::Error> {
Ok(if let Some(bits) = WRITE_BE.get(value as usize) {
let len = WRITE_LEN_BE[value as usize] as usize;
backend.write_bits(*bits as u64, len)?;
Some(len)
} else {
None
})
}
pub const MISSING_VALUE_LEN_BE: u8 = 13;
pub const READ_BE: &[u16] = &[
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74,
75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86,
87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, 96, 96, 97, 97, 98, 98,
99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108,
108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117,
118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 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, 260,
261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
508, 509, 510, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24,
24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27,
27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30,
30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33,
33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45,
45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48,
48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57,
57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60,
60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
];
pub const READ_LEN_BE: &[u8] = &[
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
];
pub const MISSING_VALUE_LEN_LE: u8 = 13;
pub const READ_LE: &[u16] = &[
0, 0, 7, 1, 63, 3, 8, 5, 0, 0, 9, 2, 64, 4, 10, 6, 0, 0, 11, 1, 65, 3, 12, 5, 0, 0, 13, 2, 66,
4, 14, 6, 0, 0, 15, 1, 67, 3, 17, 5, 0, 0, 19, 2, 68, 4, 21, 6, 0, 0, 23, 1, 69, 3, 25, 5, 0,
0, 27, 2, 70, 4, 29, 6, 0, 0, 31, 1, 71, 3, 33, 5, 0, 0, 35, 2, 72, 4, 37, 6, 0, 0, 39, 1, 73,
3, 41, 5, 0, 0, 43, 2, 74, 4, 45, 6, 0, 0, 47, 1, 75, 3, 49, 5, 0, 0, 51, 2, 76, 4, 53, 6, 0,
0, 55, 1, 77, 3, 57, 5, 0, 0, 59, 2, 78, 4, 61, 6, 0, 0, 7, 1, 79, 3, 8, 5, 0, 0, 9, 2, 80, 4,
10, 6, 0, 0, 11, 1, 81, 3, 12, 5, 0, 0, 13, 2, 82, 4, 14, 6, 0, 0, 16, 1, 83, 3, 18, 5, 0, 0,
20, 2, 84, 4, 22, 6, 0, 0, 24, 1, 85, 3, 26, 5, 0, 0, 28, 2, 86, 4, 30, 6, 0, 0, 32, 1, 87, 3,
34, 5, 0, 0, 36, 2, 88, 4, 38, 6, 0, 0, 40, 1, 89, 3, 42, 5, 0, 0, 44, 2, 90, 4, 46, 6, 0, 0,
48, 1, 91, 3, 50, 5, 0, 0, 52, 2, 92, 4, 54, 6, 0, 0, 56, 1, 93, 3, 58, 5, 0, 0, 60, 2, 94, 4,
62, 6, 0, 0, 7, 1, 95, 3, 8, 5, 0, 0, 9, 2, 96, 4, 10, 6, 0, 0, 11, 1, 97, 3, 12, 5, 0, 0, 13,
2, 98, 4, 14, 6, 0, 0, 15, 1, 99, 3, 17, 5, 0, 0, 19, 2, 100, 4, 21, 6, 0, 0, 23, 1, 101, 3,
25, 5, 0, 0, 27, 2, 102, 4, 29, 6, 0, 0, 31, 1, 103, 3, 33, 5, 0, 0, 35, 2, 104, 4, 37, 6, 0,
0, 39, 1, 105, 3, 41, 5, 0, 0, 43, 2, 106, 4, 45, 6, 0, 0, 47, 1, 107, 3, 49, 5, 0, 0, 51, 2,
108, 4, 53, 6, 0, 0, 55, 1, 109, 3, 57, 5, 0, 0, 59, 2, 110, 4, 61, 6, 0, 0, 7, 1, 111, 3, 8,
5, 0, 0, 9, 2, 112, 4, 10, 6, 0, 0, 11, 1, 113, 3, 12, 5, 0, 0, 13, 2, 114, 4, 14, 6, 0, 0, 16,
1, 115, 3, 18, 5, 0, 0, 20, 2, 116, 4, 22, 6, 0, 0, 24, 1, 117, 3, 26, 5, 0, 0, 28, 2, 118, 4,
30, 6, 0, 0, 32, 1, 119, 3, 34, 5, 0, 0, 36, 2, 120, 4, 38, 6, 0, 0, 40, 1, 121, 3, 42, 5, 0,
0, 44, 2, 122, 4, 46, 6, 0, 0, 48, 1, 123, 3, 50, 5, 0, 0, 52, 2, 124, 4, 54, 6, 0, 0, 56, 1,
125, 3, 58, 5, 0, 0, 60, 2, 126, 4, 62, 6, 0, 0, 7, 1, 127, 3, 8, 5, 0, 0, 9, 2, 129, 4, 10, 6,
0, 0, 11, 1, 131, 3, 12, 5, 0, 0, 13, 2, 133, 4, 14, 6, 0, 0, 15, 1, 135, 3, 17, 5, 0, 0, 19,
2, 137, 4, 21, 6, 0, 0, 23, 1, 139, 3, 25, 5, 0, 0, 27, 2, 141, 4, 29, 6, 0, 0, 31, 1, 143, 3,
33, 5, 0, 0, 35, 2, 145, 4, 37, 6, 0, 0, 39, 1, 147, 3, 41, 5, 0, 0, 43, 2, 149, 4, 45, 6, 0,
0, 47, 1, 151, 3, 49, 5, 0, 0, 51, 2, 153, 4, 53, 6, 0, 0, 55, 1, 155, 3, 57, 5, 0, 0, 59, 2,
157, 4, 61, 6, 0, 0, 7, 1, 159, 3, 8, 5, 0, 0, 9, 2, 161, 4, 10, 6, 0, 0, 11, 1, 163, 3, 12, 5,
0, 0, 13, 2, 165, 4, 14, 6, 0, 0, 16, 1, 167, 3, 18, 5, 0, 0, 20, 2, 169, 4, 22, 6, 0, 0, 24,
1, 171, 3, 26, 5, 0, 0, 28, 2, 173, 4, 30, 6, 0, 0, 32, 1, 175, 3, 34, 5, 0, 0, 36, 2, 177, 4,
38, 6, 0, 0, 40, 1, 179, 3, 42, 5, 0, 0, 44, 2, 181, 4, 46, 6, 0, 0, 48, 1, 183, 3, 50, 5, 0,
0, 52, 2, 185, 4, 54, 6, 0, 0, 56, 1, 187, 3, 58, 5, 0, 0, 60, 2, 189, 4, 62, 6, 0, 0, 7, 1,
191, 3, 8, 5, 0, 0, 9, 2, 193, 4, 10, 6, 0, 0, 11, 1, 195, 3, 12, 5, 0, 0, 13, 2, 197, 4, 14,
6, 0, 0, 15, 1, 199, 3, 17, 5, 0, 0, 19, 2, 201, 4, 21, 6, 0, 0, 23, 1, 203, 3, 25, 5, 0, 0,
27, 2, 205, 4, 29, 6, 0, 0, 31, 1, 207, 3, 33, 5, 0, 0, 35, 2, 209, 4, 37, 6, 0, 0, 39, 1, 211,
3, 41, 5, 0, 0, 43, 2, 213, 4, 45, 6, 0, 0, 47, 1, 215, 3, 49, 5, 0, 0, 51, 2, 217, 4, 53, 6,
0, 0, 55, 1, 219, 3, 57, 5, 0, 0, 59, 2, 221, 4, 61, 6, 0, 0, 7, 1, 223, 3, 8, 5, 0, 0, 9, 2,
225, 4, 10, 6, 0, 0, 11, 1, 227, 3, 12, 5, 0, 0, 13, 2, 229, 4, 14, 6, 0, 0, 16, 1, 231, 3, 18,
5, 0, 0, 20, 2, 233, 4, 22, 6, 0, 0, 24, 1, 235, 3, 26, 5, 0, 0, 28, 2, 237, 4, 30, 6, 0, 0,
32, 1, 239, 3, 34, 5, 0, 0, 36, 2, 241, 4, 38, 6, 0, 0, 40, 1, 243, 3, 42, 5, 0, 0, 44, 2, 245,
4, 46, 6, 0, 0, 48, 1, 247, 3, 50, 5, 0, 0, 52, 2, 249, 4, 54, 6, 0, 0, 56, 1, 251, 3, 58, 5,
0, 0, 60, 2, 253, 4, 62, 6, 0, 0, 7, 1, 255, 3, 8, 5, 0, 0, 9, 2, 257, 4, 10, 6, 0, 0, 11, 1,
259, 3, 12, 5, 0, 0, 13, 2, 261, 4, 14, 6, 0, 0, 15, 1, 263, 3, 17, 5, 0, 0, 19, 2, 265, 4, 21,
6, 0, 0, 23, 1, 267, 3, 25, 5, 0, 0, 27, 2, 269, 4, 29, 6, 0, 0, 31, 1, 271, 3, 33, 5, 0, 0,
35, 2, 273, 4, 37, 6, 0, 0, 39, 1, 275, 3, 41, 5, 0, 0, 43, 2, 277, 4, 45, 6, 0, 0, 47, 1, 279,
3, 49, 5, 0, 0, 51, 2, 281, 4, 53, 6, 0, 0, 55, 1, 283, 3, 57, 5, 0, 0, 59, 2, 285, 4, 61, 6,
0, 0, 7, 1, 287, 3, 8, 5, 0, 0, 9, 2, 289, 4, 10, 6, 0, 0, 11, 1, 291, 3, 12, 5, 0, 0, 13, 2,
293, 4, 14, 6, 0, 0, 16, 1, 295, 3, 18, 5, 0, 0, 20, 2, 297, 4, 22, 6, 0, 0, 24, 1, 299, 3, 26,
5, 0, 0, 28, 2, 301, 4, 30, 6, 0, 0, 32, 1, 303, 3, 34, 5, 0, 0, 36, 2, 305, 4, 38, 6, 0, 0,
40, 1, 307, 3, 42, 5, 0, 0, 44, 2, 309, 4, 46, 6, 0, 0, 48, 1, 311, 3, 50, 5, 0, 0, 52, 2, 313,
4, 54, 6, 0, 0, 56, 1, 315, 3, 58, 5, 0, 0, 60, 2, 317, 4, 62, 6, 0, 0, 7, 1, 319, 3, 8, 5, 0,
0, 9, 2, 321, 4, 10, 6, 0, 0, 11, 1, 323, 3, 12, 5, 0, 0, 13, 2, 325, 4, 14, 6, 0, 0, 15, 1,
327, 3, 17, 5, 0, 0, 19, 2, 329, 4, 21, 6, 0, 0, 23, 1, 331, 3, 25, 5, 0, 0, 27, 2, 333, 4, 29,
6, 0, 0, 31, 1, 335, 3, 33, 5, 0, 0, 35, 2, 337, 4, 37, 6, 0, 0, 39, 1, 339, 3, 41, 5, 0, 0,
43, 2, 341, 4, 45, 6, 0, 0, 47, 1, 343, 3, 49, 5, 0, 0, 51, 2, 345, 4, 53, 6, 0, 0, 55, 1, 347,
3, 57, 5, 0, 0, 59, 2, 349, 4, 61, 6, 0, 0, 7, 1, 351, 3, 8, 5, 0, 0, 9, 2, 353, 4, 10, 6, 0,
0, 11, 1, 355, 3, 12, 5, 0, 0, 13, 2, 357, 4, 14, 6, 0, 0, 16, 1, 359, 3, 18, 5, 0, 0, 20, 2,
361, 4, 22, 6, 0, 0, 24, 1, 363, 3, 26, 5, 0, 0, 28, 2, 365, 4, 30, 6, 0, 0, 32, 1, 367, 3, 34,
5, 0, 0, 36, 2, 369, 4, 38, 6, 0, 0, 40, 1, 371, 3, 42, 5, 0, 0, 44, 2, 373, 4, 46, 6, 0, 0,
48, 1, 375, 3, 50, 5, 0, 0, 52, 2, 377, 4, 54, 6, 0, 0, 56, 1, 379, 3, 58, 5, 0, 0, 60, 2, 381,
4, 62, 6, 0, 0, 7, 1, 383, 3, 8, 5, 0, 0, 9, 2, 385, 4, 10, 6, 0, 0, 11, 1, 387, 3, 12, 5, 0,
0, 13, 2, 389, 4, 14, 6, 0, 0, 15, 1, 391, 3, 17, 5, 0, 0, 19, 2, 393, 4, 21, 6, 0, 0, 23, 1,
395, 3, 25, 5, 0, 0, 27, 2, 397, 4, 29, 6, 0, 0, 31, 1, 399, 3, 33, 5, 0, 0, 35, 2, 401, 4, 37,
6, 0, 0, 39, 1, 403, 3, 41, 5, 0, 0, 43, 2, 405, 4, 45, 6, 0, 0, 47, 1, 407, 3, 49, 5, 0, 0,
51, 2, 409, 4, 53, 6, 0, 0, 55, 1, 411, 3, 57, 5, 0, 0, 59, 2, 413, 4, 61, 6, 0, 0, 7, 1, 415,
3, 8, 5, 0, 0, 9, 2, 417, 4, 10, 6, 0, 0, 11, 1, 419, 3, 12, 5, 0, 0, 13, 2, 421, 4, 14, 6, 0,
0, 16, 1, 423, 3, 18, 5, 0, 0, 20, 2, 425, 4, 22, 6, 0, 0, 24, 1, 427, 3, 26, 5, 0, 0, 28, 2,
429, 4, 30, 6, 0, 0, 32, 1, 431, 3, 34, 5, 0, 0, 36, 2, 433, 4, 38, 6, 0, 0, 40, 1, 435, 3, 42,
5, 0, 0, 44, 2, 437, 4, 46, 6, 0, 0, 48, 1, 439, 3, 50, 5, 0, 0, 52, 2, 441, 4, 54, 6, 0, 0,
56, 1, 443, 3, 58, 5, 0, 0, 60, 2, 445, 4, 62, 6, 0, 0, 7, 1, 447, 3, 8, 5, 0, 0, 9, 2, 449, 4,
10, 6, 0, 0, 11, 1, 451, 3, 12, 5, 0, 0, 13, 2, 453, 4, 14, 6, 0, 0, 15, 1, 455, 3, 17, 5, 0,
0, 19, 2, 457, 4, 21, 6, 0, 0, 23, 1, 459, 3, 25, 5, 0, 0, 27, 2, 461, 4, 29, 6, 0, 0, 31, 1,
463, 3, 33, 5, 0, 0, 35, 2, 465, 4, 37, 6, 0, 0, 39, 1, 467, 3, 41, 5, 0, 0, 43, 2, 469, 4, 45,
6, 0, 0, 47, 1, 471, 3, 49, 5, 0, 0, 51, 2, 473, 4, 53, 6, 0, 0, 55, 1, 475, 3, 57, 5, 0, 0,
59, 2, 477, 4, 61, 6, 0, 0, 7, 1, 479, 3, 8, 5, 0, 0, 9, 2, 481, 4, 10, 6, 0, 0, 11, 1, 483, 3,
12, 5, 0, 0, 13, 2, 485, 4, 14, 6, 0, 0, 16, 1, 487, 3, 18, 5, 0, 0, 20, 2, 489, 4, 22, 6, 0,
0, 24, 1, 491, 3, 26, 5, 0, 0, 28, 2, 493, 4, 30, 6, 0, 0, 32, 1, 495, 3, 34, 5, 0, 0, 36, 2,
497, 4, 38, 6, 0, 0, 40, 1, 499, 3, 42, 5, 0, 0, 44, 2, 501, 4, 46, 6, 0, 0, 48, 1, 503, 3, 50,
5, 0, 0, 52, 2, 505, 4, 54, 6, 0, 0, 56, 1, 507, 3, 58, 5, 0, 0, 60, 2, 509, 4, 62, 6, 0, 0, 7,
1, 63, 3, 8, 5, 0, 0, 9, 2, 64, 4, 10, 6, 0, 0, 11, 1, 65, 3, 12, 5, 0, 0, 13, 2, 66, 4, 14, 6,
0, 0, 15, 1, 67, 3, 17, 5, 0, 0, 19, 2, 68, 4, 21, 6, 0, 0, 23, 1, 69, 3, 25, 5, 0, 0, 27, 2,
70, 4, 29, 6, 0, 0, 31, 1, 71, 3, 33, 5, 0, 0, 35, 2, 72, 4, 37, 6, 0, 0, 39, 1, 73, 3, 41, 5,
0, 0, 43, 2, 74, 4, 45, 6, 0, 0, 47, 1, 75, 3, 49, 5, 0, 0, 51, 2, 76, 4, 53, 6, 0, 0, 55, 1,
77, 3, 57, 5, 0, 0, 59, 2, 78, 4, 61, 6, 0, 0, 7, 1, 79, 3, 8, 5, 0, 0, 9, 2, 80, 4, 10, 6, 0,
0, 11, 1, 81, 3, 12, 5, 0, 0, 13, 2, 82, 4, 14, 6, 0, 0, 16, 1, 83, 3, 18, 5, 0, 0, 20, 2, 84,
4, 22, 6, 0, 0, 24, 1, 85, 3, 26, 5, 0, 0, 28, 2, 86, 4, 30, 6, 0, 0, 32, 1, 87, 3, 34, 5, 0,
0, 36, 2, 88, 4, 38, 6, 0, 0, 40, 1, 89, 3, 42, 5, 0, 0, 44, 2, 90, 4, 46, 6, 0, 0, 48, 1, 91,
3, 50, 5, 0, 0, 52, 2, 92, 4, 54, 6, 0, 0, 56, 1, 93, 3, 58, 5, 0, 0, 60, 2, 94, 4, 62, 6, 0,
0, 7, 1, 95, 3, 8, 5, 0, 0, 9, 2, 96, 4, 10, 6, 0, 0, 11, 1, 97, 3, 12, 5, 0, 0, 13, 2, 98, 4,
14, 6, 0, 0, 15, 1, 99, 3, 17, 5, 0, 0, 19, 2, 100, 4, 21, 6, 0, 0, 23, 1, 101, 3, 25, 5, 0, 0,
27, 2, 102, 4, 29, 6, 0, 0, 31, 1, 103, 3, 33, 5, 0, 0, 35, 2, 104, 4, 37, 6, 0, 0, 39, 1, 105,
3, 41, 5, 0, 0, 43, 2, 106, 4, 45, 6, 0, 0, 47, 1, 107, 3, 49, 5, 0, 0, 51, 2, 108, 4, 53, 6,
0, 0, 55, 1, 109, 3, 57, 5, 0, 0, 59, 2, 110, 4, 61, 6, 0, 0, 7, 1, 111, 3, 8, 5, 0, 0, 9, 2,
112, 4, 10, 6, 0, 0, 11, 1, 113, 3, 12, 5, 0, 0, 13, 2, 114, 4, 14, 6, 0, 0, 16, 1, 115, 3, 18,
5, 0, 0, 20, 2, 116, 4, 22, 6, 0, 0, 24, 1, 117, 3, 26, 5, 0, 0, 28, 2, 118, 4, 30, 6, 0, 0,
32, 1, 119, 3, 34, 5, 0, 0, 36, 2, 120, 4, 38, 6, 0, 0, 40, 1, 121, 3, 42, 5, 0, 0, 44, 2, 122,
4, 46, 6, 0, 0, 48, 1, 123, 3, 50, 5, 0, 0, 52, 2, 124, 4, 54, 6, 0, 0, 56, 1, 125, 3, 58, 5,
0, 0, 60, 2, 126, 4, 62, 6, 0, 0, 7, 1, 128, 3, 8, 5, 0, 0, 9, 2, 130, 4, 10, 6, 0, 0, 11, 1,
132, 3, 12, 5, 0, 0, 13, 2, 134, 4, 14, 6, 0, 0, 15, 1, 136, 3, 17, 5, 0, 0, 19, 2, 138, 4, 21,
6, 0, 0, 23, 1, 140, 3, 25, 5, 0, 0, 27, 2, 142, 4, 29, 6, 0, 0, 31, 1, 144, 3, 33, 5, 0, 0,
35, 2, 146, 4, 37, 6, 0, 0, 39, 1, 148, 3, 41, 5, 0, 0, 43, 2, 150, 4, 45, 6, 0, 0, 47, 1, 152,
3, 49, 5, 0, 0, 51, 2, 154, 4, 53, 6, 0, 0, 55, 1, 156, 3, 57, 5, 0, 0, 59, 2, 158, 4, 61, 6,
0, 0, 7, 1, 160, 3, 8, 5, 0, 0, 9, 2, 162, 4, 10, 6, 0, 0, 11, 1, 164, 3, 12, 5, 0, 0, 13, 2,
166, 4, 14, 6, 0, 0, 16, 1, 168, 3, 18, 5, 0, 0, 20, 2, 170, 4, 22, 6, 0, 0, 24, 1, 172, 3, 26,
5, 0, 0, 28, 2, 174, 4, 30, 6, 0, 0, 32, 1, 176, 3, 34, 5, 0, 0, 36, 2, 178, 4, 38, 6, 0, 0,
40, 1, 180, 3, 42, 5, 0, 0, 44, 2, 182, 4, 46, 6, 0, 0, 48, 1, 184, 3, 50, 5, 0, 0, 52, 2, 186,
4, 54, 6, 0, 0, 56, 1, 188, 3, 58, 5, 0, 0, 60, 2, 190, 4, 62, 6, 0, 0, 7, 1, 192, 3, 8, 5, 0,
0, 9, 2, 194, 4, 10, 6, 0, 0, 11, 1, 196, 3, 12, 5, 0, 0, 13, 2, 198, 4, 14, 6, 0, 0, 15, 1,
200, 3, 17, 5, 0, 0, 19, 2, 202, 4, 21, 6, 0, 0, 23, 1, 204, 3, 25, 5, 0, 0, 27, 2, 206, 4, 29,
6, 0, 0, 31, 1, 208, 3, 33, 5, 0, 0, 35, 2, 210, 4, 37, 6, 0, 0, 39, 1, 212, 3, 41, 5, 0, 0,
43, 2, 214, 4, 45, 6, 0, 0, 47, 1, 216, 3, 49, 5, 0, 0, 51, 2, 218, 4, 53, 6, 0, 0, 55, 1, 220,
3, 57, 5, 0, 0, 59, 2, 222, 4, 61, 6, 0, 0, 7, 1, 224, 3, 8, 5, 0, 0, 9, 2, 226, 4, 10, 6, 0,
0, 11, 1, 228, 3, 12, 5, 0, 0, 13, 2, 230, 4, 14, 6, 0, 0, 16, 1, 232, 3, 18, 5, 0, 0, 20, 2,
234, 4, 22, 6, 0, 0, 24, 1, 236, 3, 26, 5, 0, 0, 28, 2, 238, 4, 30, 6, 0, 0, 32, 1, 240, 3, 34,
5, 0, 0, 36, 2, 242, 4, 38, 6, 0, 0, 40, 1, 244, 3, 42, 5, 0, 0, 44, 2, 246, 4, 46, 6, 0, 0,
48, 1, 248, 3, 50, 5, 0, 0, 52, 2, 250, 4, 54, 6, 0, 0, 56, 1, 252, 3, 58, 5, 0, 0, 60, 2, 254,
4, 62, 6, 0, 0, 7, 1, 256, 3, 8, 5, 0, 0, 9, 2, 258, 4, 10, 6, 0, 0, 11, 1, 260, 3, 12, 5, 0,
0, 13, 2, 262, 4, 14, 6, 0, 0, 15, 1, 264, 3, 17, 5, 0, 0, 19, 2, 266, 4, 21, 6, 0, 0, 23, 1,
268, 3, 25, 5, 0, 0, 27, 2, 270, 4, 29, 6, 0, 0, 31, 1, 272, 3, 33, 5, 0, 0, 35, 2, 274, 4, 37,
6, 0, 0, 39, 1, 276, 3, 41, 5, 0, 0, 43, 2, 278, 4, 45, 6, 0, 0, 47, 1, 280, 3, 49, 5, 0, 0,
51, 2, 282, 4, 53, 6, 0, 0, 55, 1, 284, 3, 57, 5, 0, 0, 59, 2, 286, 4, 61, 6, 0, 0, 7, 1, 288,
3, 8, 5, 0, 0, 9, 2, 290, 4, 10, 6, 0, 0, 11, 1, 292, 3, 12, 5, 0, 0, 13, 2, 294, 4, 14, 6, 0,
0, 16, 1, 296, 3, 18, 5, 0, 0, 20, 2, 298, 4, 22, 6, 0, 0, 24, 1, 300, 3, 26, 5, 0, 0, 28, 2,
302, 4, 30, 6, 0, 0, 32, 1, 304, 3, 34, 5, 0, 0, 36, 2, 306, 4, 38, 6, 0, 0, 40, 1, 308, 3, 42,
5, 0, 0, 44, 2, 310, 4, 46, 6, 0, 0, 48, 1, 312, 3, 50, 5, 0, 0, 52, 2, 314, 4, 54, 6, 0, 0,
56, 1, 316, 3, 58, 5, 0, 0, 60, 2, 318, 4, 62, 6, 0, 0, 7, 1, 320, 3, 8, 5, 0, 0, 9, 2, 322, 4,
10, 6, 0, 0, 11, 1, 324, 3, 12, 5, 0, 0, 13, 2, 326, 4, 14, 6, 0, 0, 15, 1, 328, 3, 17, 5, 0,
0, 19, 2, 330, 4, 21, 6, 0, 0, 23, 1, 332, 3, 25, 5, 0, 0, 27, 2, 334, 4, 29, 6, 0, 0, 31, 1,
336, 3, 33, 5, 0, 0, 35, 2, 338, 4, 37, 6, 0, 0, 39, 1, 340, 3, 41, 5, 0, 0, 43, 2, 342, 4, 45,
6, 0, 0, 47, 1, 344, 3, 49, 5, 0, 0, 51, 2, 346, 4, 53, 6, 0, 0, 55, 1, 348, 3, 57, 5, 0, 0,
59, 2, 350, 4, 61, 6, 0, 0, 7, 1, 352, 3, 8, 5, 0, 0, 9, 2, 354, 4, 10, 6, 0, 0, 11, 1, 356, 3,
12, 5, 0, 0, 13, 2, 358, 4, 14, 6, 0, 0, 16, 1, 360, 3, 18, 5, 0, 0, 20, 2, 362, 4, 22, 6, 0,
0, 24, 1, 364, 3, 26, 5, 0, 0, 28, 2, 366, 4, 30, 6, 0, 0, 32, 1, 368, 3, 34, 5, 0, 0, 36, 2,
370, 4, 38, 6, 0, 0, 40, 1, 372, 3, 42, 5, 0, 0, 44, 2, 374, 4, 46, 6, 0, 0, 48, 1, 376, 3, 50,
5, 0, 0, 52, 2, 378, 4, 54, 6, 0, 0, 56, 1, 380, 3, 58, 5, 0, 0, 60, 2, 382, 4, 62, 6, 0, 0, 7,
1, 384, 3, 8, 5, 0, 0, 9, 2, 386, 4, 10, 6, 0, 0, 11, 1, 388, 3, 12, 5, 0, 0, 13, 2, 390, 4,
14, 6, 0, 0, 15, 1, 392, 3, 17, 5, 0, 0, 19, 2, 394, 4, 21, 6, 0, 0, 23, 1, 396, 3, 25, 5, 0,
0, 27, 2, 398, 4, 29, 6, 0, 0, 31, 1, 400, 3, 33, 5, 0, 0, 35, 2, 402, 4, 37, 6, 0, 0, 39, 1,
404, 3, 41, 5, 0, 0, 43, 2, 406, 4, 45, 6, 0, 0, 47, 1, 408, 3, 49, 5, 0, 0, 51, 2, 410, 4, 53,
6, 0, 0, 55, 1, 412, 3, 57, 5, 0, 0, 59, 2, 414, 4, 61, 6, 0, 0, 7, 1, 416, 3, 8, 5, 0, 0, 9,
2, 418, 4, 10, 6, 0, 0, 11, 1, 420, 3, 12, 5, 0, 0, 13, 2, 422, 4, 14, 6, 0, 0, 16, 1, 424, 3,
18, 5, 0, 0, 20, 2, 426, 4, 22, 6, 0, 0, 24, 1, 428, 3, 26, 5, 0, 0, 28, 2, 430, 4, 30, 6, 0,
0, 32, 1, 432, 3, 34, 5, 0, 0, 36, 2, 434, 4, 38, 6, 0, 0, 40, 1, 436, 3, 42, 5, 0, 0, 44, 2,
438, 4, 46, 6, 0, 0, 48, 1, 440, 3, 50, 5, 0, 0, 52, 2, 442, 4, 54, 6, 0, 0, 56, 1, 444, 3, 58,
5, 0, 0, 60, 2, 446, 4, 62, 6, 0, 0, 7, 1, 448, 3, 8, 5, 0, 0, 9, 2, 450, 4, 10, 6, 0, 0, 11,
1, 452, 3, 12, 5, 0, 0, 13, 2, 454, 4, 14, 6, 0, 0, 15, 1, 456, 3, 17, 5, 0, 0, 19, 2, 458, 4,
21, 6, 0, 0, 23, 1, 460, 3, 25, 5, 0, 0, 27, 2, 462, 4, 29, 6, 0, 0, 31, 1, 464, 3, 33, 5, 0,
0, 35, 2, 466, 4, 37, 6, 0, 0, 39, 1, 468, 3, 41, 5, 0, 0, 43, 2, 470, 4, 45, 6, 0, 0, 47, 1,
472, 3, 49, 5, 0, 0, 51, 2, 474, 4, 53, 6, 0, 0, 55, 1, 476, 3, 57, 5, 0, 0, 59, 2, 478, 4, 61,
6, 0, 0, 7, 1, 480, 3, 8, 5, 0, 0, 9, 2, 482, 4, 10, 6, 0, 0, 11, 1, 484, 3, 12, 5, 0, 0, 13,
2, 486, 4, 14, 6, 0, 0, 16, 1, 488, 3, 18, 5, 0, 0, 20, 2, 490, 4, 22, 6, 0, 0, 24, 1, 492, 3,
26, 5, 0, 0, 28, 2, 494, 4, 30, 6, 0, 0, 32, 1, 496, 3, 34, 5, 0, 0, 36, 2, 498, 4, 38, 6, 0,
0, 40, 1, 500, 3, 42, 5, 0, 0, 44, 2, 502, 4, 46, 6, 0, 0, 48, 1, 504, 3, 50, 5, 0, 0, 52, 2,
506, 4, 54, 6, 0, 0, 56, 1, 508, 3, 58, 5, 0, 0, 60, 2, 510, 4, 62, 6,
];
pub const READ_LEN_LE: &[u8] = &[
13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11,
4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4,
11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13,
3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11,
4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3,
8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4,
11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13,
3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4,
7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7,
4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7,
4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4,
12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4,
13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4,
7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4,
7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7,
4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4,
13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4,
11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13,
3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4,
13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11,
4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3,
8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8,
4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4,
11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13, 3, 7, 4, 11, 4, 7, 4, 13,
3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4,
8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8,
4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 8, 4, 11, 4, 8, 4,
13, 3, 8, 4, 11, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4,
7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7,
4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7,
4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4,
13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12,
4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4,
12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12,
4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13,
3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4,
8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8,
4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4,
13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 7, 4, 12,
4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3, 7, 4, 12, 4, 7, 4, 13, 3,
8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8,
4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4,
12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13, 3, 8, 4, 12, 4, 8, 4, 13,
3, 8, 4, 12, 4, 8, 4,
];
pub const WRITE_BE: &[u16] = &[
4, 10, 11, 12, 13, 14, 15, 32, 33, 34, 35, 36, 37, 38, 39, 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, 256,
257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
314, 315, 316, 317, 318, 319, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690,
691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709,
710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728,
729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766,
767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785,
786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861,
862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880,
881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994,
995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 2048, 2049, 2050,
2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066,
2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082,
2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114,
2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162,
2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194,
2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210,
2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242,
2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274,
2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306,
2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322,
2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354,
2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370,
2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386,
2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402,
2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418,
2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434,
2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450,
2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466,
2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482,
2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498,
2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514,
2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530,
2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546,
2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 5120,
];
pub const WRITE_LEN_BE: &[u16] = &[
3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
16,
];
pub const WRITE_LE: &[u16] = &[
1, 3, 11, 5, 13, 7, 15, 2, 6, 10, 14, 18, 22, 26, 30, 34, 162, 38, 166, 42, 170, 46, 174, 50,
178, 54, 182, 58, 186, 62, 190, 66, 194, 70, 198, 74, 202, 78, 206, 82, 210, 86, 214, 90, 218,
94, 222, 98, 226, 102, 230, 106, 234, 110, 238, 114, 242, 118, 246, 122, 250, 126, 254, 4, 12,
20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124, 132, 140, 148, 156, 164, 172, 180,
188, 196, 204, 212, 220, 228, 236, 244, 252, 260, 268, 276, 284, 292, 300, 308, 316, 324, 332,
340, 348, 356, 364, 372, 380, 388, 396, 404, 412, 420, 428, 436, 444, 452, 460, 468, 476, 484,
492, 500, 508, 516, 2564, 524, 2572, 532, 2580, 540, 2588, 548, 2596, 556, 2604, 564, 2612,
572, 2620, 580, 2628, 588, 2636, 596, 2644, 604, 2652, 612, 2660, 620, 2668, 628, 2676, 636,
2684, 644, 2692, 652, 2700, 660, 2708, 668, 2716, 676, 2724, 684, 2732, 692, 2740, 700, 2748,
708, 2756, 716, 2764, 724, 2772, 732, 2780, 740, 2788, 748, 2796, 756, 2804, 764, 2812, 772,
2820, 780, 2828, 788, 2836, 796, 2844, 804, 2852, 812, 2860, 820, 2868, 828, 2876, 836, 2884,
844, 2892, 852, 2900, 860, 2908, 868, 2916, 876, 2924, 884, 2932, 892, 2940, 900, 2948, 908,
2956, 916, 2964, 924, 2972, 932, 2980, 940, 2988, 948, 2996, 956, 3004, 964, 3012, 972, 3020,
980, 3028, 988, 3036, 996, 3044, 1004, 3052, 1012, 3060, 1020, 3068, 1028, 3076, 1036, 3084,
1044, 3092, 1052, 3100, 1060, 3108, 1068, 3116, 1076, 3124, 1084, 3132, 1092, 3140, 1100, 3148,
1108, 3156, 1116, 3164, 1124, 3172, 1132, 3180, 1140, 3188, 1148, 3196, 1156, 3204, 1164, 3212,
1172, 3220, 1180, 3228, 1188, 3236, 1196, 3244, 1204, 3252, 1212, 3260, 1220, 3268, 1228, 3276,
1236, 3284, 1244, 3292, 1252, 3300, 1260, 3308, 1268, 3316, 1276, 3324, 1284, 3332, 1292, 3340,
1300, 3348, 1308, 3356, 1316, 3364, 1324, 3372, 1332, 3380, 1340, 3388, 1348, 3396, 1356, 3404,
1364, 3412, 1372, 3420, 1380, 3428, 1388, 3436, 1396, 3444, 1404, 3452, 1412, 3460, 1420, 3468,
1428, 3476, 1436, 3484, 1444, 3492, 1452, 3500, 1460, 3508, 1468, 3516, 1476, 3524, 1484, 3532,
1492, 3540, 1500, 3548, 1508, 3556, 1516, 3564, 1524, 3572, 1532, 3580, 1540, 3588, 1548, 3596,
1556, 3604, 1564, 3612, 1572, 3620, 1580, 3628, 1588, 3636, 1596, 3644, 1604, 3652, 1612, 3660,
1620, 3668, 1628, 3676, 1636, 3684, 1644, 3692, 1652, 3700, 1660, 3708, 1668, 3716, 1676, 3724,
1684, 3732, 1692, 3740, 1700, 3748, 1708, 3756, 1716, 3764, 1724, 3772, 1732, 3780, 1740, 3788,
1748, 3796, 1756, 3804, 1764, 3812, 1772, 3820, 1780, 3828, 1788, 3836, 1796, 3844, 1804, 3852,
1812, 3860, 1820, 3868, 1828, 3876, 1836, 3884, 1844, 3892, 1852, 3900, 1860, 3908, 1868, 3916,
1876, 3924, 1884, 3932, 1892, 3940, 1900, 3948, 1908, 3956, 1916, 3964, 1924, 3972, 1932, 3980,
1940, 3988, 1948, 3996, 1956, 4004, 1964, 4012, 1972, 4020, 1980, 4028, 1988, 4036, 1996, 4044,
2004, 4052, 2012, 4060, 2020, 4068, 2028, 4076, 2036, 4084, 2044, 4092, 8, 24, 40, 56, 72, 88,
104, 120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392,
408, 424, 440, 456, 472, 488, 504, 520, 536, 552, 568, 584, 600, 616, 632, 648, 664, 680, 696,
712, 728, 744, 760, 776, 792, 808, 824, 840, 856, 872, 888, 904, 920, 936, 952, 968, 984, 1000,
1016, 1032, 1048, 1064, 1080, 1096, 1112, 1128, 1144, 1160, 1176, 1192, 1208, 1224, 1240, 1256,
1272, 1288, 1304, 1320, 1336, 1352, 1368, 1384, 1400, 1416, 1432, 1448, 1464, 1480, 1496, 1512,
1528, 1544, 1560, 1576, 1592, 1608, 1624, 1640, 1656, 1672, 1688, 1704, 1720, 1736, 1752, 1768,
1784, 1800, 1816, 1832, 1848, 1864, 1880, 1896, 1912, 1928, 1944, 1960, 1976, 1992, 2008, 2024,
2040, 2056, 2072, 2088, 2104, 2120, 2136, 2152, 2168, 2184, 2200, 2216, 2232, 2248, 2264, 2280,
2296, 2312, 2328, 2344, 2360, 2376, 2392, 2408, 2424, 2440, 2456, 2472, 2488, 2504, 2520, 2536,
2552, 2568, 2584, 2600, 2616, 2632, 2648, 2664, 2680, 2696, 2712, 2728, 2744, 2760, 2776, 2792,
2808, 2824, 2840, 2856, 2872, 2888, 2904, 2920, 2936, 2952, 2968, 2984, 3000, 3016, 3032, 3048,
3064, 3080, 3096, 3112, 3128, 3144, 3160, 3176, 3192, 3208, 3224, 3240, 3256, 3272, 3288, 3304,
3320, 3336, 3352, 3368, 3384, 3400, 3416, 3432, 3448, 3464, 3480, 3496, 3512, 3528, 3544, 3560,
3576, 3592, 3608, 3624, 3640, 3656, 3672, 3688, 3704, 3720, 3736, 3752, 3768, 3784, 3800, 3816,
3832, 3848, 3864, 3880, 3896, 3912, 3928, 3944, 3960, 3976, 3992, 4008, 4024, 4040, 4056, 4072,
4088, 4104, 4120, 4136, 4152, 4168, 4184, 4200, 4216, 4232, 4248, 4264, 4280, 4296, 4312, 4328,
4344, 4360, 4376, 4392, 4408, 4424, 4440, 4456, 4472, 4488, 4504, 4520, 4536, 4552, 4568, 4584,
4600, 4616, 4632, 4648, 4664, 4680, 4696, 4712, 4728, 4744, 4760, 4776, 4792, 4808, 4824, 4840,
4856, 4872, 4888, 4904, 4920, 4936, 4952, 4968, 4984, 5000, 5016, 5032, 5048, 5064, 5080, 5096,
5112, 5128, 5144, 5160, 5176, 5192, 5208, 5224, 5240, 5256, 5272, 5288, 5304, 5320, 5336, 5352,
5368, 5384, 5400, 5416, 5432, 5448, 5464, 5480, 5496, 5512, 5528, 5544, 5560, 5576, 5592, 5608,
5624, 5640, 5656, 5672, 5688, 5704, 5720, 5736, 5752, 5768, 5784, 5800, 5816, 5832, 5848, 5864,
5880, 5896, 5912, 5928, 5944, 5960, 5976, 5992, 6008, 6024, 6040, 6056, 6072, 6088, 6104, 6120,
6136, 6152, 6168, 6184, 6200, 6216, 6232, 6248, 6264, 6280, 6296, 6312, 6328, 6344, 6360, 6376,
6392, 6408, 6424, 6440, 6456, 6472, 6488, 6504, 6520, 6536, 6552, 6568, 6584, 6600, 6616, 6632,
6648, 6664, 6680, 6696, 6712, 6728, 6744, 6760, 6776, 6792, 6808, 6824, 6840, 6856, 6872, 6888,
6904, 6920, 6936, 6952, 6968, 6984, 7000, 7016, 7032, 7048, 7064, 7080, 7096, 7112, 7128, 7144,
7160, 7176, 7192, 7208, 7224, 7240, 7256, 7272, 7288, 7304, 7320, 7336, 7352, 7368, 7384, 7400,
7416, 7432, 7448, 7464, 7480, 7496, 7512, 7528, 7544, 7560, 7576, 7592, 7608, 7624, 7640, 7656,
7672, 7688, 7704, 7720, 7736, 7752, 7768, 7784, 7800, 7816, 7832, 7848, 7864, 7880, 7896, 7912,
7928, 7944, 7960, 7976, 7992, 8008, 8024, 8040, 8056, 8072, 8088, 8104, 8120, 8136, 8152, 8168,
8184, 8200,
];
pub const WRITE_LEN_LE: &[u16] = &[
3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
16,
];
pub const LEN: &[u8] = &[
3, 4, 4, 4, 4, 4, 4, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
16,
];
pub const K: u64 = 3;