GremlinVideo audio decoder
[nihav.git] / nihav-realmedia / src / codecs / ra144.rs
1 use std::rc::Rc;
2 use std::cell::RefCell;
3 use nihav_core::formats::*;
4 use nihav_core::frame::*;
5 use nihav_core::codecs::*;
6 use nihav_core::io::bitreader::*;
7
8 const NBLOCKS: usize = 4;
9 const BLOCKSIZE: usize = 40;
10 const LPC_ORDER: usize = 10;
11 const BUFFERSIZE: usize = 146;
12 const FRAME_SIZE: usize = 20;
13
14 struct RA144Decoder {
15 chmap: NAChannelMap,
16 ainfo: NAAudioInfo,
17 info: Rc<NACodecInfo>,
18
19 old_energy: u16,
20 lpc_data: [[i32; LPC_ORDER]; 2],
21 frame_no: usize,
22 lpc_refl_rms: [u32; 2],
23 audio: [i16; BLOCKSIZE + LPC_ORDER],
24 adapt_cb: [i16; BUFFERSIZE + 2],
25 }
26
27 impl RA144Decoder {
28 fn new() -> Self {
29 RA144Decoder {
30 chmap: NAChannelMap::new(),
31 ainfo: NAAudioInfo::new(0, 1, SND_S16_FORMAT, NBLOCKS * BLOCKSIZE),
32 info: NACodecInfo::new_dummy(),
33
34 old_energy: 0,
35 lpc_data: [[0; 10]; 2],
36 frame_no: 0,
37 lpc_refl_rms: [0; 2],
38 audio: [0; BLOCKSIZE + LPC_ORDER],
39 adapt_cb: [0; BUFFERSIZE + 2],
40 }
41 }
42
43 fn evaluate_coeffs(&mut self, lpc_refl: &[i32; LPC_ORDER]) {
44 let mut tmp: [i32; LPC_ORDER] = [0; LPC_ORDER];
45
46 for i in 0..LPC_ORDER {
47 let src;
48 let dst;
49 if (i & 1) == 0 {
50 src = &self.lpc_data[self.frame_no];
51 dst = &mut tmp;
52 } else {
53 src = &tmp;
54 dst = &mut self.lpc_data[self.frame_no];
55 }
56 dst[i] = lpc_refl[i] << 4;
57
58 for j in 0..i {
59 dst[j] = ((lpc_refl[i] * src[i - j - 1]) >> 12) + src[j];
60 }
61 }
62 for i in 0..LPC_ORDER {
63 self.lpc_data[self.frame_no][i] >>= 4;
64 }
65 }
66 fn interpolate(&mut self, coeffs: &mut [i16; LPC_ORDER], scale1: i32, copyold: bool, energy: u16) -> u32 {
67 let scale2 = (NBLOCKS as i32) - scale1;
68 {
69 let src1 = &self.lpc_data[self.frame_no];
70 let src2 = &self.lpc_data[self.frame_no ^ 1];
71 for i in 0..LPC_ORDER {
72 coeffs[i] = ((scale1 * src1[i] + scale2 * src2[i]) >> 2) as i16;
73 }
74 }
75 if let Some(rms) = eval_reflection(coeffs) {
76 rescale_rms(rms, energy)
77 } else {
78 let src = if copyold { &self.lpc_data[self.frame_no ^ 1] } else { &self.lpc_data[self.frame_no] };
79 for i in 0..LPC_ORDER {
80 coeffs[i] = src[i] as i16;
81 }
82 rescale_rms(self.lpc_refl_rms[if copyold { 1 } else { 0 }], energy)
83 }
84 }
85 fn process_subblock(&mut self, br: &mut BitReader, lpc_coeffs: &[i16; LPC_ORDER], rms: u32) -> DecoderResult<()> {
86 let cba_idx = br.read(7)? as usize;
87 let gain = br.read(8)? as usize;
88 let cb1_idx = br.read(7)? as usize;
89 let cb2_idx = br.read(7)? as usize;
90
91 let mut tmp_a: [i16; BLOCKSIZE] = [0; BLOCKSIZE];
92 let mut m: [u32; 3] = [0; 3];
93 if cba_idx != 0 {
94 let len = cba_idx + BLOCKSIZE/2 - 1;
95 let soff = BUFFERSIZE - len;
96 for i in 0..len.min(BLOCKSIZE) {
97 tmp_a[i] = self.adapt_cb[i + soff];
98 }
99 for i in len..BLOCKSIZE {
100 tmp_a[i] = self.adapt_cb[i + soff - len];
101 }
102 m[0] = (calc_irms(&tmp_a) * rms) >> 12;
103 } else {
104 m[0] = 0;
105 }
106 m[1] = ((RA144_CODEBOOK1[cb1_idx] as u32) * rms) >> 8;
107 m[2] = ((RA144_CODEBOOK2[cb2_idx] as u32) * rms) >> 8;
108 for i in 0..3 {
109 m[i] = (m[i] * (RA144_GAIN_VAL_TAB[gain][i] as u32)) >> RA144_GAIN_EXP_TAB[gain];
110 }
111
112 for i in 0..(BUFFERSIZE - BLOCKSIZE) {
113 self.adapt_cb[i] = self.adapt_cb[i + BLOCKSIZE];
114 }
115
116 let doff = BUFFERSIZE - BLOCKSIZE;
117 if m[0] != 0 {
118 for i in 0..BLOCKSIZE {
119 let sum = (m[0] as i32) * (tmp_a[i] as i32)
120 + (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
121 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
122 self.adapt_cb[i + doff] = (sum >> 12) as i16;
123 }
124 } else {
125 for i in 0..BLOCKSIZE {
126 let sum = (m[1] as i32) * (RA144_VECTORS1[cb1_idx][i] as i32)
127 + (m[2] as i32) * (RA144_VECTORS2[cb2_idx][i] as i32);
128 self.adapt_cb[i + doff] = (sum >> 12) as i16;
129 }
130 }
131
132 for i in 0..LPC_ORDER {
133 self.audio[i] = self.audio[i + BLOCKSIZE];
134 }
135 if celp_synth_filter(&mut self.audio, &self.adapt_cb, lpc_coeffs) {
136 self.audio = [0; BLOCKSIZE + LPC_ORDER];
137 }
138 Ok(())
139 }
140 }
141
142 const CHMAP_MONO: [NAChannelType; 1] = [NAChannelType::C];
143
144 fn celp_synth_filter(dst: &mut [i16], src: &[i16], filt: &[i16; LPC_ORDER]) -> bool { //1,0,0xfff
145 for i in 0..BLOCKSIZE {
146 let mut sum = -0xFFF;
147 for j in 0..LPC_ORDER {
148 sum += (filt[j] as i32) * (dst[LPC_ORDER + i - j - 1] as i32);
149 }
150 let sum1 = (-sum >> 12) + (src[BUFFERSIZE - BLOCKSIZE + i] as i32);
151 if ((sum1 >> 16) != 0) && ((sum1 >> 16) != -1) { // overflow
152 return true;
153 }
154 dst[LPC_ORDER + i] = sum1 as i16;
155 }
156 false
157 }
158
159 fn fixp_sqrt(mut val: u32) -> u32 {
160 let mut shift = 2;
161 while val >= (1 << 12) {
162 val >>= 2;
163 shift += 1;
164 }
165 (SQRT_TABLE[val as usize] as u32) << shift
166 }
167
168 fn calc_rms(coeffs: &[i32; LPC_ORDER]) -> u32 {
169 let mut res = 1 << 16;
170 let mut shift = 10;
171
172 for i in 0..LPC_ORDER {
173 res = ((((1 << 24) - ((coeffs[i] * coeffs[i]) as u32)) >> 12) * res) >> 12;
174 if res == 0 { return 0; }
175 while res < (1 << 14) {
176 res <<= 2;
177 shift += 1;
178 }
179 }
180 fixp_sqrt(res) >> shift
181 }
182
183 fn calc_irms(coeffs: &[i16; BLOCKSIZE]) -> u32 {
184 let mut sum = 0;
185 for i in 0..BLOCKSIZE {
186 sum += ((coeffs[i] as i32) * (coeffs[i] as i32)) as u32;
187 }
188 if sum != 0 {
189 (1 << 29) / (fixp_sqrt(sum) >> 8)
190 } else {
191 0
192 }
193 }
194
195 fn rescale_rms(rms: u32, energy: u16) -> u32 {
196 (rms * (energy as u32)) >> 10
197 }
198
199 fn eval_reflection(coeffs: &[i16; LPC_ORDER]) -> Option<u32> {
200 let mut tmp1: [i32; LPC_ORDER] = [0; LPC_ORDER];
201 let mut tmp2: [i32; LPC_ORDER] = [0; LPC_ORDER];
202 let mut tmp3: [i32; LPC_ORDER] = [0; LPC_ORDER];
203
204 for i in 0..LPC_ORDER {
205 tmp2[i] = coeffs[i] as i32;
206 }
207 tmp3[LPC_ORDER - 1] = tmp2[LPC_ORDER - 1];
208
209 if (tmp2[LPC_ORDER - 1] as u32).wrapping_add(0x1000) > 0x1FFF {
210 return None;
211 }
212
213 for i in (0..(LPC_ORDER - 1)).rev() {
214 let src;
215 let dst;
216 if (i & 1) == 0 {
217 src = &tmp2;
218 dst = &mut tmp1;
219 } else {
220 src = &tmp1;
221 dst = &mut tmp2;
222 }
223 let a = (1 << 12) - ((src[i + 1] * src[i + 1]) >> 12);
224 let scale = if a != 0 { (1 << 24) / a } else { (1 << 24) };
225 for j in 0..(i+1) {
226 let result = (src[j] - ((tmp3[i + 1] * src[i - j]) >> 12)).checked_mul(scale);
227 if let Some(val) = result {
228 dst[j] = val >> 12;
229 } else {
230 return None;
231 }
232 }
233 if (dst[i] as u32).wrapping_add(0x1000) > 0x1FFF {
234 return None;
235 }
236 tmp3[i] = dst[i];
237 }
238
239 Some(calc_rms(&tmp3))
240 }
241
242 fn clip_out(sample: i16) -> i16 {
243 sample.max(-16384 >> 2).min(16383 >> 2)
244 }
245
246 impl NADecoder for RA144Decoder {
247 fn init(&mut self, info: Rc<NACodecInfo>) -> DecoderResult<()> {
248 if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() {
249 self.chmap.add_channels(&CHMAP_MONO);
250 self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(),
251 1,
252 SND_S16_FORMAT, NBLOCKS * BLOCKSIZE);
253 self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo.clone()));
254 Ok(())
255 } else {
256 Err(DecoderError::InvalidData)
257 }
258 }
259 fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
260 let info = pkt.get_stream().get_info();
261 validate!(info.get_properties().is_audio());
262 let pktbuf = pkt.get_buffer();
263 let nframes = pktbuf.len() / FRAME_SIZE;
264
265 let duration = NBLOCKS * BLOCKSIZE * nframes;
266
267 let mut abuf = alloc_audio_buffer(self.ainfo, duration, self.chmap.clone())?;
268 let mut adata = abuf.get_abuf_i16().unwrap();
269 let mut dst = adata.get_data_mut();
270
271 for (input, output) in pktbuf.chunks(FRAME_SIZE).zip(dst.chunks_mut(NBLOCKS * BLOCKSIZE)) {
272 let mut br = BitReader::new(input, input.len(), BitReaderMode::BE);
273
274 let mut lpc_refl: [i32; LPC_ORDER] = [0; LPC_ORDER];
275 for i in 0..LPC_ORDER {
276 lpc_refl[i] = RA144_LPC_REFL_CODEBOOK[i][br.read(RA144_LPC_SIZES[i])? as usize] as i32;
277 }
278
279 self.evaluate_coeffs(&lpc_refl);
280 self.lpc_refl_rms[0] = calc_rms(&lpc_refl);
281
282 let energy = RA144_ENERGY_TAB[br.read(5)? as usize];
283
284 let mut block_coeffs: [[i16; LPC_ORDER]; NBLOCKS] = [[0; LPC_ORDER]; NBLOCKS];
285 let mut refl_rms: [u32; NBLOCKS] = [0; NBLOCKS];
286
287 let old_energy = self.old_energy;
288 let interp_energy = (fixp_sqrt((energy as u32) * (old_energy as u32)) >> 12) as u16;
289 refl_rms[0] = self.interpolate(&mut block_coeffs[0], 1, true, old_energy);
290 refl_rms[1] = self.interpolate(&mut block_coeffs[1], 2, energy <= old_energy, interp_energy);
291 refl_rms[2] = self.interpolate(&mut block_coeffs[2], 3, false, energy);
292 refl_rms[3] = rescale_rms(self.lpc_refl_rms[0], energy);
293 for i in 0..LPC_ORDER { block_coeffs[3][i] = self.lpc_data[self.frame_no][i] as i16; }
294
295 for (i, block) in output.chunks_mut(BLOCKSIZE).enumerate() {
296
297 self.process_subblock(&mut br, &block_coeffs[i], refl_rms[i])?;
298 for j in 0..BLOCKSIZE {
299 block[j] = clip_out(self.audio[j + LPC_ORDER]) << 2;
300 }
301 }
302
303 self.old_energy = energy;
304 self.lpc_refl_rms[1] = self.lpc_refl_rms[0];
305 self.frame_no ^= 1;
306 }
307
308 let mut frm = NAFrame::new_from_pkt(pkt, self.info.clone(), abuf);
309 frm.set_keyframe(true);
310 Ok(Rc::new(RefCell::new(frm)))
311 }
312 }
313
314 pub fn get_decoder() -> Box<NADecoder> {
315 Box::new(RA144Decoder::new())
316 }
317
318 #[cfg(test)]
319 mod test {
320 use crate::test::dec_video::*;
321 #[test]
322 fn test_ra144() {
323 let file = "assets/RV/ra3_in_rm_file.rm";
324 test_decode_audio("realmedia", file, Some(5000), "ra14.4");
325 }
326 }
327
328 const RA144_LPC_SIZES: [u8; LPC_ORDER] = [ 6, 5, 5, 4, 4, 3, 3, 3, 3, 2 ];
329 const RA144_LPC_REFL_CODEBOOK: [&[i16]; LPC_ORDER] = [
330 LPC_REFL_CB0, LPC_REFL_CB1, LPC_REFL_CB2, LPC_REFL_CB3, LPC_REFL_CB4,
331 LPC_REFL_CB5, LPC_REFL_CB6, LPC_REFL_CB7, LPC_REFL_CB8, LPC_REFL_CB9,
332 ];
333 const LPC_REFL_CB0: &[i16; 64] = &[
334 -4041, -4018, -3998, -3977, -3954, -3930, -3906, -3879,
335 -3852, -3825, -3795, -3764, -3731, -3699, -3666, -3631,
336 -3594, -3555, -3513, -3468, -3420, -3372, -3321, -3268,
337 -3212, -3153, -3090, -3021, -2944, -2863, -2772, -2676,
338 -2565, -2445, -2328, -2202, -2072, -1941, -1808, -1660,
339 -1508, -1348, -1185, -994, -798, -600, -374, -110,
340 152, 447, 720, 982, 1229, 1456, 1682, 1916,
341 2130, 2353, 2595, 2853, 3118, 3363, 3588, 3814
342 ];
343 const LPC_REFL_CB1: &[i16; 32] = &[
344 -3091, -2386, -1871, -1425, -1021, -649, -316, -20,
345 267, 544, 810, 1065, 1305, 1534, 1756, 1970,
346 2171, 2359, 2536, 2700, 2854, 2996, 3133, 3263,
347 3386, 3499, 3603, 3701, 3789, 3870, 3947, 4020
348 ];
349 const LPC_REFL_CB2: &[i16; 32] = &[
350 -3525, -3295, -3081, -2890, -2696, -2511, -2328, -2149,
351 -1979, -1817, -1658, -1498, -1341, -1188, -1032, -876,
352 -721, -561, -394, -228, -54, 119, 296, 484,
353 683, 895, 1123, 1373, 1651, 1965, 2360, 2854
354 ];
355 const LPC_REFL_CB3: &[i16; 16] = &[
356 -1845, -1057, -522, -77, 301, 647, 975, 1285,
357 1582, 1873, 2163, 2452, 2735, 3017, 3299, 3569
358 ];
359 const LPC_REFL_CB4: &[i16; 16] = &[
360 -2691, -2187, -1788, -1435, -1118, -837, -571, -316,
361 -59, 201, 470, 759, 1077, 1457, 1908, 2495
362 ];
363 const LPC_REFL_CB5: &[i16; 8] = &[
364 -1372, -474, 133, 632, 1100, 1571, 2075, 2672
365 ];
366 const LPC_REFL_CB6: &[i16; 8] = &[
367 -2389, -1787, -1231, -717, -239, 234, 770, 1474
368 ];
369 const LPC_REFL_CB7: &[i16; 8] = &[
370 -1569, -864, -296, 200, 670, 1151, 1709, 2385
371 ];
372 const LPC_REFL_CB8: &[i16; 8] = &[
373 -2200, -1608, -1062, -569, -120, 338, 863, 1621
374 ];
375 const LPC_REFL_CB9: &[i16; 4] = &[
376 -617, 190, 802, 1483
377 ];
378
379 const RA144_ENERGY_TAB: [u16; 32] = [
380 0, 16, 20, 25, 32, 41, 51, 65,
381 81, 103, 129, 163, 205, 259, 326, 410,
382 516, 650, 819, 1031, 1298, 1634, 2057, 2590,
383 3261, 4105, 5168, 6507, 8192, 10313, 12983, 16345
384 ];
385
386 const SQRT_TABLE: [u16; 4096] = [
387 0x0000,0x0400,0x05a8,0x06ed,0x0800,0x08f1,0x09cc,0x0a95,
388 0x0b50,0x0c00,0x0ca6,0x0d44,0x0ddb,0x0e6c,0x0ef7,0x0f7d,
389 0x1000,0x107e,0x10f8,0x116f,0x11e3,0x1254,0x12c2,0x132e,
390 0x1398,0x1400,0x1465,0x14c8,0x152a,0x158a,0x15e8,0x1645,
391 0x16a0,0x16fa,0x1752,0x17aa,0x1800,0x1854,0x18a8,0x18fa,
392 0x194c,0x199c,0x19ec,0x1a3a,0x1a88,0x1ad5,0x1b21,0x1b6c,
393 0x1bb6,0x1c00,0x1c48,0x1c90,0x1cd8,0x1d1e,0x1d64,0x1daa,
394 0x1dee,0x1e33,0x1e76,0x1eb9,0x1efb,0x1f3d,0x1f7e,0x1fbf,
395 0x2000,0x203f,0x207f,0x20bd,0x20fc,0x2139,0x2177,0x21b4,
396 0x21f0,0x222d,0x2268,0x22a4,0x22df,0x2319,0x2353,0x238d,
397 0x23c6,0x2400,0x2438,0x2471,0x24a9,0x24e0,0x2518,0x254f,
398 0x2585,0x25bc,0x25f2,0x2628,0x265d,0x2693,0x26c8,0x26fc,
399 0x2731,0x2765,0x2799,0x27cc,0x2800,0x2833,0x2865,0x2898,
400 0x28ca,0x28fc,0x292e,0x2960,0x2991,0x29c2,0x29f3,0x2a24,
401 0x2a54,0x2a85,0x2ab5,0x2ae5,0x2b14,0x2b44,0x2b73,0x2ba2,
402 0x2bd1,0x2c00,0x2c2e,0x2c5c,0x2c8a,0x2cb8,0x2ce6,0x2d13,
403 0x2d41,0x2d6e,0x2d9b,0x2dc8,0x2df4,0x2e21,0x2e4d,0x2e79,
404 0x2ea5,0x2ed1,0x2efd,0x2f28,0x2f54,0x2f7f,0x2faa,0x2fd5,
405 0x3000,0x302a,0x3055,0x307f,0x30a9,0x30d3,0x30fd,0x3127,
406 0x3150,0x317a,0x31a3,0x31cc,0x31f5,0x321e,0x3247,0x3270,
407 0x3298,0x32c1,0x32e9,0x3311,0x3339,0x3361,0x3389,0x33b0,
408 0x33d8,0x3400,0x3427,0x344e,0x3475,0x349c,0x34c3,0x34ea,
409 0x3510,0x3537,0x355d,0x3584,0x35aa,0x35d0,0x35f6,0x361c,
410 0x3642,0x3667,0x368d,0x36b2,0x36d8,0x36fd,0x3722,0x3747,
411 0x376c,0x3791,0x37b6,0x37db,0x3800,0x3824,0x3848,0x386d,
412 0x3891,0x38b5,0x38d9,0x38fd,0x3921,0x3945,0x3969,0x398c,
413 0x39b0,0x39d3,0x39f7,0x3a1a,0x3a3d,0x3a60,0x3a83,0x3aa6,
414 0x3ac9,0x3aec,0x3b0f,0x3b31,0x3b54,0x3b76,0x3b99,0x3bbb,
415 0x3bdd,0x3c00,0x3c22,0x3c44,0x3c66,0x3c87,0x3ca9,0x3ccb,
416 0x3ced,0x3d0e,0x3d30,0x3d51,0x3d72,0x3d94,0x3db5,0x3dd6,
417 0x3df7,0x3e18,0x3e39,0x3e5a,0x3e7b,0x3e9c,0x3ebc,0x3edd,
418 0x3efd,0x3f1e,0x3f3e,0x3f5f,0x3f7f,0x3f9f,0x3fbf,0x3fdf,
419 0x4000,0x401f,0x403f,0x405f,0x407f,0x409f,0x40be,0x40de,
420 0x40fe,0x411d,0x413c,0x415c,0x417b,0x419a,0x41ba,0x41d9,
421 0x41f8,0x4217,0x4236,0x4255,0x4273,0x4292,0x42b1,0x42d0,
422 0x42ee,0x430d,0x432b,0x434a,0x4368,0x4387,0x43a5,0x43c3,
423 0x43e1,0x4400,0x441e,0x443c,0x445a,0x4478,0x4495,0x44b3,
424 0x44d1,0x44ef,0x450c,0x452a,0x4548,0x4565,0x4583,0x45a0,
425 0x45be,0x45db,0x45f8,0x4615,0x4633,0x4650,0x466d,0x468a,
426 0x46a7,0x46c4,0x46e1,0x46fe,0x471b,0x4737,0x4754,0x4771,
427 0x478d,0x47aa,0x47c7,0x47e3,0x4800,0x481c,0x4838,0x4855,
428 0x4871,0x488d,0x48a9,0x48c6,0x48e2,0x48fe,0x491a,0x4936,
429 0x4952,0x496e,0x498a,0x49a5,0x49c1,0x49dd,0x49f9,0x4a14,
430 0x4a30,0x4a4b,0x4a67,0x4a83,0x4a9e,0x4ab9,0x4ad5,0x4af0,
431 0x4b0b,0x4b27,0x4b42,0x4b5d,0x4b78,0x4b93,0x4bae,0x4bca,
432 0x4be5,0x4c00,0x4c1a,0x4c35,0x4c50,0x4c6b,0x4c86,0x4ca1,
433 0x4cbb,0x4cd6,0x4cf1,0x4d0b,0x4d26,0x4d40,0x4d5b,0x4d75,
434 0x4d90,0x4daa,0x4dc4,0x4ddf,0x4df9,0x4e13,0x4e2d,0x4e48,
435 0x4e62,0x4e7c,0x4e96,0x4eb0,0x4eca,0x4ee4,0x4efe,0x4f18,
436 0x4f32,0x4f4c,0x4f65,0x4f7f,0x4f99,0x4fb3,0x4fcc,0x4fe6,
437 0x5000,0x5019,0x5033,0x504c,0x5066,0x507f,0x5099,0x50b2,
438 0x50cb,0x50e5,0x50fe,0x5117,0x5130,0x514a,0x5163,0x517c,
439 0x5195,0x51ae,0x51c7,0x51e0,0x51f9,0x5212,0x522b,0x5244,
440 0x525d,0x5276,0x528f,0x52a7,0x52c0,0x52d9,0x52f2,0x530a,
441 0x5323,0x533c,0x5354,0x536d,0x5385,0x539e,0x53b6,0x53cf,
442 0x53e7,0x5400,0x5418,0x5430,0x5449,0x5461,0x5479,0x5491,
443 0x54a9,0x54c2,0x54da,0x54f2,0x550a,0x5522,0x553a,0x5552,
444 0x556a,0x5582,0x559a,0x55b2,0x55ca,0x55e2,0x55fa,0x5611,
445 0x5629,0x5641,0x5659,0x5670,0x5688,0x56a0,0x56b7,0x56cf,
446 0x56e6,0x56fe,0x5716,0x572d,0x5745,0x575c,0x5773,0x578b,
447 0x57a2,0x57ba,0x57d1,0x57e8,0x5800,0x5817,0x582e,0x5845,
448 0x585c,0x5874,0x588b,0x58a2,0x58b9,0x58d0,0x58e7,0x58fe,
449 0x5915,0x592c,0x5943,0x595a,0x5971,0x5988,0x599f,0x59b5,
450 0x59cc,0x59e3,0x59fa,0x5a11,0x5a27,0x5a3e,0x5a55,0x5a6b,
451 0x5a82,0x5a99,0x5aaf,0x5ac6,0x5adc,0x5af3,0x5b09,0x5b20,
452 0x5b36,0x5b4d,0x5b63,0x5b7a,0x5b90,0x5ba6,0x5bbd,0x5bd3,
453 0x5be9,0x5c00,0x5c16,0x5c2c,0x5c42,0x5c58,0x5c6f,0x5c85,
454 0x5c9b,0x5cb1,0x5cc7,0x5cdd,0x5cf3,0x5d09,0x5d1f,0x5d35,
455 0x5d4b,0x5d61,0x5d77,0x5d8d,0x5da3,0x5db9,0x5dce,0x5de4,
456 0x5dfa,0x5e10,0x5e26,0x5e3b,0x5e51,0x5e67,0x5e7c,0x5e92,
457 0x5ea8,0x5ebd,0x5ed3,0x5ee9,0x5efe,0x5f14,0x5f29,0x5f3f,
458 0x5f54,0x5f6a,0x5f7f,0x5f95,0x5faa,0x5fbf,0x5fd5,0x5fea,
459 0x6000,0x6015,0x602a,0x603f,0x6055,0x606a,0x607f,0x6094,
460 0x60aa,0x60bf,0x60d4,0x60e9,0x60fe,0x6113,0x6128,0x613d,
461 0x6152,0x6168,0x617d,0x6192,0x61a7,0x61bb,0x61d0,0x61e5,
462 0x61fa,0x620f,0x6224,0x6239,0x624e,0x6263,0x6277,0x628c,
463 0x62a1,0x62b6,0x62ca,0x62df,0x62f4,0x6309,0x631d,0x6332,
464 0x6347,0x635b,0x6370,0x6384,0x6399,0x63ad,0x63c2,0x63d7,
465 0x63eb,0x6400,0x6414,0x6428,0x643d,0x6451,0x6466,0x647a,
466 0x648e,0x64a3,0x64b7,0x64cb,0x64e0,0x64f4,0x6508,0x651d,
467 0x6531,0x6545,0x6559,0x656e,0x6582,0x6596,0x65aa,0x65be,
468 0x65d2,0x65e6,0x65fa,0x660f,0x6623,0x6637,0x664b,0x665f,
469 0x6673,0x6687,0x669b,0x66af,0x66c3,0x66d6,0x66ea,0x66fe,
470 0x6712,0x6726,0x673a,0x674e,0x6761,0x6775,0x6789,0x679d,
471 0x67b1,0x67c4,0x67d8,0x67ec,0x6800,0x6813,0x6827,0x683b,
472 0x684e,0x6862,0x6875,0x6889,0x689d,0x68b0,0x68c4,0x68d7,
473 0x68eb,0x68fe,0x6912,0x6925,0x6939,0x694c,0x6960,0x6973,
474 0x6986,0x699a,0x69ad,0x69c1,0x69d4,0x69e7,0x69fb,0x6a0e,
475 0x6a21,0x6a35,0x6a48,0x6a5b,0x6a6e,0x6a82,0x6a95,0x6aa8,
476 0x6abb,0x6ace,0x6ae2,0x6af5,0x6b08,0x6b1b,0x6b2e,0x6b41,
477 0x6b54,0x6b67,0x6b7a,0x6b8d,0x6ba1,0x6bb4,0x6bc7,0x6bda,
478 0x6bed,0x6c00,0x6c12,0x6c25,0x6c38,0x6c4b,0x6c5e,0x6c71,
479 0x6c84,0x6c97,0x6caa,0x6cbc,0x6ccf,0x6ce2,0x6cf5,0x6d08,
480 0x6d1a,0x6d2d,0x6d40,0x6d53,0x6d65,0x6d78,0x6d8b,0x6d9e,
481 0x6db0,0x6dc3,0x6dd6,0x6de8,0x6dfb,0x6e0d,0x6e20,0x6e33,
482 0x6e45,0x6e58,0x6e6a,0x6e7d,0x6e8f,0x6ea2,0x6eb4,0x6ec7,
483 0x6ed9,0x6eec,0x6efe,0x6f11,0x6f23,0x6f36,0x6f48,0x6f5a,
484 0x6f6d,0x6f7f,0x6f92,0x6fa4,0x6fb6,0x6fc9,0x6fdb,0x6fed,
485 0x7000,0x7012,0x7024,0x7036,0x7049,0x705b,0x706d,0x707f,
486 0x7091,0x70a4,0x70b6,0x70c8,0x70da,0x70ec,0x70fe,0x7110,
487 0x7123,0x7135,0x7147,0x7159,0x716b,0x717d,0x718f,0x71a1,
488 0x71b3,0x71c5,0x71d7,0x71e9,0x71fb,0x720d,0x721f,0x7231,
489 0x7243,0x7255,0x7267,0x7279,0x728a,0x729c,0x72ae,0x72c0,
490 0x72d2,0x72e4,0x72f5,0x7307,0x7319,0x732b,0x733d,0x734e,
491 0x7360,0x7372,0x7384,0x7395,0x73a7,0x73b9,0x73ca,0x73dc,
492 0x73ee,0x7400,0x7411,0x7423,0x7434,0x7446,0x7458,0x7469,
493 0x747b,0x748c,0x749e,0x74b0,0x74c1,0x74d3,0x74e4,0x74f6,
494 0x7507,0x7519,0x752a,0x753c,0x754d,0x755f,0x7570,0x7581,
495 0x7593,0x75a4,0x75b6,0x75c7,0x75d8,0x75ea,0x75fb,0x760d,
496 0x761e,0x762f,0x7641,0x7652,0x7663,0x7674,0x7686,0x7697,
497 0x76a8,0x76ba,0x76cb,0x76dc,0x76ed,0x76fe,0x7710,0x7721,
498 0x7732,0x7743,0x7754,0x7766,0x7777,0x7788,0x7799,0x77aa,
499 0x77bb,0x77cc,0x77dd,0x77ee,0x7800,0x7811,0x7822,0x7833,
500 0x7844,0x7855,0x7866,0x7877,0x7888,0x7899,0x78aa,0x78bb,
501 0x78cc,0x78dd,0x78ee,0x78fe,0x790f,0x7920,0x7931,0x7942,
502 0x7953,0x7964,0x7975,0x7986,0x7996,0x79a7,0x79b8,0x79c9,
503 0x79da,0x79eb,0x79fb,0x7a0c,0x7a1d,0x7a2e,0x7a3e,0x7a4f,
504 0x7a60,0x7a71,0x7a81,0x7a92,0x7aa3,0x7ab3,0x7ac4,0x7ad5,
505 0x7ae5,0x7af6,0x7b07,0x7b17,0x7b28,0x7b39,0x7b49,0x7b5a,
506 0x7b6b,0x7b7b,0x7b8c,0x7b9c,0x7bad,0x7bbd,0x7bce,0x7bde,
507 0x7bef,0x7c00,0x7c10,0x7c21,0x7c31,0x7c41,0x7c52,0x7c62,
508 0x7c73,0x7c83,0x7c94,0x7ca4,0x7cb5,0x7cc5,0x7cd5,0x7ce6,
509 0x7cf6,0x7d07,0x7d17,0x7d27,0x7d38,0x7d48,0x7d58,0x7d69,
510 0x7d79,0x7d89,0x7d9a,0x7daa,0x7dba,0x7dcb,0x7ddb,0x7deb,
511 0x7dfb,0x7e0c,0x7e1c,0x7e2c,0x7e3c,0x7e4d,0x7e5d,0x7e6d,
512 0x7e7d,0x7e8d,0x7e9e,0x7eae,0x7ebe,0x7ece,0x7ede,0x7eee,
513 0x7efe,0x7f0f,0x7f1f,0x7f2f,0x7f3f,0x7f4f,0x7f5f,0x7f6f,
514 0x7f7f,0x7f8f,0x7f9f,0x7faf,0x7fbf,0x7fcf,0x7fdf,0x7fef,
515 0x8000,0x800f,0x801f,0x802f,0x803f,0x804f,0x805f,0x806f,
516 0x807f,0x808f,0x809f,0x80af,0x80bf,0x80cf,0x80df,0x80ef,
517 0x80ff,0x810e,0x811e,0x812e,0x813e,0x814e,0x815e,0x816d,
518 0x817d,0x818d,0x819d,0x81ad,0x81bc,0x81cc,0x81dc,0x81ec,
519 0x81fc,0x820b,0x821b,0x822b,0x823b,0x824a,0x825a,0x826a,
520 0x8279,0x8289,0x8299,0x82a8,0x82b8,0x82c8,0x82d7,0x82e7,
521 0x82f7,0x8306,0x8316,0x8326,0x8335,0x8345,0x8354,0x8364,
522 0x8374,0x8383,0x8393,0x83a2,0x83b2,0x83c1,0x83d1,0x83e0,
523 0x83f0,0x8400,0x840f,0x841f,0x842e,0x843e,0x844d,0x845c,
524 0x846c,0x847b,0x848b,0x849a,0x84aa,0x84b9,0x84c9,0x84d8,
525 0x84e7,0x84f7,0x8506,0x8516,0x8525,0x8534,0x8544,0x8553,
526 0x8562,0x8572,0x8581,0x8591,0x85a0,0x85af,0x85be,0x85ce,
527 0x85dd,0x85ec,0x85fc,0x860b,0x861a,0x862a,0x8639,0x8648,
528 0x8657,0x8667,0x8676,0x8685,0x8694,0x86a3,0x86b3,0x86c2,
529 0x86d1,0x86e0,0x86ef,0x86ff,0x870e,0x871d,0x872c,0x873b,
530 0x874a,0x8759,0x8769,0x8778,0x8787,0x8796,0x87a5,0x87b4,
531 0x87c3,0x87d2,0x87e1,0x87f0,0x8800,0x880f,0x881e,0x882d,
532 0x883c,0x884b,0x885a,0x8869,0x8878,0x8887,0x8896,0x88a5,
533 0x88b4,0x88c3,0x88d2,0x88e1,0x88f0,0x88ff,0x890e,0x891c,
534 0x892b,0x893a,0x8949,0x8958,0x8967,0x8976,0x8985,0x8994,
535 0x89a3,0x89b2,0x89c0,0x89cf,0x89de,0x89ed,0x89fc,0x8a0b,
536 0x8a19,0x8a28,0x8a37,0x8a46,0x8a55,0x8a64,0x8a72,0x8a81,
537 0x8a90,0x8a9f,0x8aad,0x8abc,0x8acb,0x8ada,0x8ae8,0x8af7,
538 0x8b06,0x8b15,0x8b23,0x8b32,0x8b41,0x8b50,0x8b5e,0x8b6d,
539 0x8b7c,0x8b8a,0x8b99,0x8ba8,0x8bb6,0x8bc5,0x8bd4,0x8be2,
540 0x8bf1,0x8c00,0x8c0e,0x8c1d,0x8c2b,0x8c3a,0x8c49,0x8c57,
541 0x8c66,0x8c74,0x8c83,0x8c91,0x8ca0,0x8caf,0x8cbd,0x8ccc,
542 0x8cda,0x8ce9,0x8cf7,0x8d06,0x8d14,0x8d23,0x8d31,0x8d40,
543 0x8d4e,0x8d5d,0x8d6b,0x8d7a,0x8d88,0x8d97,0x8da5,0x8db4,
544 0x8dc2,0x8dd1,0x8ddf,0x8ded,0x8dfc,0x8e0a,0x8e19,0x8e27,
545 0x8e36,0x8e44,0x8e52,0x8e61,0x8e6f,0x8e7d,0x8e8c,0x8e9a,
546 0x8ea9,0x8eb7,0x8ec5,0x8ed4,0x8ee2,0x8ef0,0x8eff,0x8f0d,
547 0x8f1b,0x8f2a,0x8f38,0x8f46,0x8f54,0x8f63,0x8f71,0x8f7f,
548 0x8f8e,0x8f9c,0x8faa,0x8fb8,0x8fc7,0x8fd5,0x8fe3,0x8ff1,
549 0x9000,0x900e,0x901c,0x902a,0x9038,0x9047,0x9055,0x9063,
550 0x9071,0x907f,0x908d,0x909c,0x90aa,0x90b8,0x90c6,0x90d4,
551 0x90e2,0x90f0,0x90ff,0x910d,0x911b,0x9129,0x9137,0x9145,
552 0x9153,0x9161,0x916f,0x917e,0x918c,0x919a,0x91a8,0x91b6,
553 0x91c4,0x91d2,0x91e0,0x91ee,0x91fc,0x920a,0x9218,0x9226,
554 0x9234,0x9242,0x9250,0x925e,0x926c,0x927a,0x9288,0x9296,
555 0x92a4,0x92b2,0x92c0,0x92ce,0x92dc,0x92ea,0x92f8,0x9306,
556 0x9314,0x9321,0x932f,0x933d,0x934b,0x9359,0x9367,0x9375,
557 0x9383,0x9391,0x939f,0x93ac,0x93ba,0x93c8,0x93d6,0x93e4,
558 0x93f2,0x9400,0x940d,0x941b,0x9429,0x9437,0x9445,0x9452,
559 0x9460,0x946e,0x947c,0x948a,0x9497,0x94a5,0x94b3,0x94c1,
560 0x94cf,0x94dc,0x94ea,0x94f8,0x9506,0x9513,0x9521,0x952f,
561 0x953c,0x954a,0x9558,0x9566,0x9573,0x9581,0x958f,0x959c,
562 0x95aa,0x95b8,0x95c5,0x95d3,0x95e1,0x95ee,0x95fc,0x960a,
563 0x9617,0x9625,0x9633,0x9640,0x964e,0x965c,0x9669,0x9677,
564 0x9684,0x9692,0x96a0,0x96ad,0x96bb,0x96c8,0x96d6,0x96e4,
565 0x96f1,0x96ff,0x970c,0x971a,0x9727,0x9735,0x9742,0x9750,
566 0x975d,0x976b,0x9779,0x9786,0x9794,0x97a1,0x97af,0x97bc,
567 0x97ca,0x97d7,0x97e5,0x97f2,0x9800,0x980d,0x981a,0x9828,
568 0x9835,0x9843,0x9850,0x985e,0x986b,0x9879,0x9886,0x9893,
569 0x98a1,0x98ae,0x98bc,0x98c9,0x98d6,0x98e4,0x98f1,0x98ff,
570 0x990c,0x9919,0x9927,0x9934,0x9942,0x994f,0x995c,0x996a,
571 0x9977,0x9984,0x9992,0x999f,0x99ac,0x99ba,0x99c7,0x99d4,
572 0x99e2,0x99ef,0x99fc,0x9a09,0x9a17,0x9a24,0x9a31,0x9a3f,
573 0x9a4c,0x9a59,0x9a66,0x9a74,0x9a81,0x9a8e,0x9a9b,0x9aa9,
574 0x9ab6,0x9ac3,0x9ad0,0x9ade,0x9aeb,0x9af8,0x9b05,0x9b12,
575 0x9b20,0x9b2d,0x9b3a,0x9b47,0x9b54,0x9b62,0x9b6f,0x9b7c,
576 0x9b89,0x9b96,0x9ba3,0x9bb1,0x9bbe,0x9bcb,0x9bd8,0x9be5,
577 0x9bf2,0x9c00,0x9c0d,0x9c1a,0x9c27,0x9c34,0x9c41,0x9c4e,
578 0x9c5b,0x9c68,0x9c75,0x9c83,0x9c90,0x9c9d,0x9caa,0x9cb7,
579 0x9cc4,0x9cd1,0x9cde,0x9ceb,0x9cf8,0x9d05,0x9d12,0x9d1f,
580 0x9d2c,0x9d39,0x9d46,0x9d53,0x9d60,0x9d6d,0x9d7a,0x9d87,
581 0x9d94,0x9da1,0x9dae,0x9dbb,0x9dc8,0x9dd5,0x9de2,0x9def,
582 0x9dfc,0x9e09,0x9e16,0x9e23,0x9e30,0x9e3d,0x9e4a,0x9e57,
583 0x9e64,0x9e71,0x9e7e,0x9e8b,0x9e98,0x9ea4,0x9eb1,0x9ebe,
584 0x9ecb,0x9ed8,0x9ee5,0x9ef2,0x9eff,0x9f0c,0x9f18,0x9f25,
585 0x9f32,0x9f3f,0x9f4c,0x9f59,0x9f66,0x9f72,0x9f7f,0x9f8c,
586 0x9f99,0x9fa6,0x9fb3,0x9fbf,0x9fcc,0x9fd9,0x9fe6,0x9ff3,
587 0xa000,0xa00c,0xa019,0xa026,0xa033,0xa03f,0xa04c,0xa059,
588 0xa066,0xa073,0xa07f,0xa08c,0xa099,0xa0a6,0xa0b2,0xa0bf,
589 0xa0cc,0xa0d9,0xa0e5,0xa0f2,0xa0ff,0xa10b,0xa118,0xa125,
590 0xa132,0xa13e,0xa14b,0xa158,0xa164,0xa171,0xa17e,0xa18a,
591 0xa197,0xa1a4,0xa1b0,0xa1bd,0xa1ca,0xa1d6,0xa1e3,0xa1f0,
592 0xa1fc,0xa209,0xa216,0xa222,0xa22f,0xa23c,0xa248,0xa255,
593 0xa261,0xa26e,0xa27b,0xa287,0xa294,0xa2a0,0xa2ad,0xa2ba,
594 0xa2c6,0xa2d3,0xa2df,0xa2ec,0xa2f8,0xa305,0xa312,0xa31e,
595 0xa32b,0xa337,0xa344,0xa350,0xa35d,0xa369,0xa376,0xa382,
596 0xa38f,0xa39b,0xa3a8,0xa3b5,0xa3c1,0xa3ce,0xa3da,0xa3e7,
597 0xa3f3,0xa400,0xa40c,0xa418,0xa425,0xa431,0xa43e,0xa44a,
598 0xa457,0xa463,0xa470,0xa47c,0xa489,0xa495,0xa4a2,0xa4ae,
599 0xa4ba,0xa4c7,0xa4d3,0xa4e0,0xa4ec,0xa4f9,0xa505,0xa511,
600 0xa51e,0xa52a,0xa537,0xa543,0xa54f,0xa55c,0xa568,0xa574,
601 0xa581,0xa58d,0xa59a,0xa5a6,0xa5b2,0xa5bf,0xa5cb,0xa5d7,
602 0xa5e4,0xa5f0,0xa5fc,0xa609,0xa615,0xa621,0xa62e,0xa63a,
603 0xa646,0xa653,0xa65f,0xa66b,0xa678,0xa684,0xa690,0xa69d,
604 0xa6a9,0xa6b5,0xa6c1,0xa6ce,0xa6da,0xa6e6,0xa6f2,0xa6ff,
605 0xa70b,0xa717,0xa724,0xa730,0xa73c,0xa748,0xa754,0xa761,
606 0xa76d,0xa779,0xa785,0xa792,0xa79e,0xa7aa,0xa7b6,0xa7c3,
607 0xa7cf,0xa7db,0xa7e7,0xa7f3,0xa800,0xa80c,0xa818,0xa824,
608 0xa830,0xa83c,0xa849,0xa855,0xa861,0xa86d,0xa879,0xa885,
609 0xa892,0xa89e,0xa8aa,0xa8b6,0xa8c2,0xa8ce,0xa8da,0xa8e6,
610 0xa8f3,0xa8ff,0xa90b,0xa917,0xa923,0xa92f,0xa93b,0xa947,
611 0xa953,0xa960,0xa96c,0xa978,0xa984,0xa990,0xa99c,0xa9a8,
612 0xa9b4,0xa9c0,0xa9cc,0xa9d8,0xa9e4,0xa9f0,0xa9fc,0xaa09,
613 0xaa15,0xaa21,0xaa2d,0xaa39,0xaa45,0xaa51,0xaa5d,0xaa69,
614 0xaa75,0xaa81,0xaa8d,0xaa99,0xaaa5,0xaab1,0xaabd,0xaac9,
615 0xaad5,0xaae1,0xaaed,0xaaf9,0xab05,0xab11,0xab1d,0xab29,
616 0xab35,0xab41,0xab4d,0xab58,0xab64,0xab70,0xab7c,0xab88,
617 0xab94,0xaba0,0xabac,0xabb8,0xabc4,0xabd0,0xabdc,0xabe8,
618 0xabf4,0xac00,0xac0b,0xac17,0xac23,0xac2f,0xac3b,0xac47,
619 0xac53,0xac5f,0xac6b,0xac76,0xac82,0xac8e,0xac9a,0xaca6,
620 0xacb2,0xacbe,0xacc9,0xacd5,0xace1,0xaced,0xacf9,0xad05,
621 0xad11,0xad1c,0xad28,0xad34,0xad40,0xad4c,0xad57,0xad63,
622 0xad6f,0xad7b,0xad87,0xad92,0xad9e,0xadaa,0xadb6,0xadc2,
623 0xadcd,0xadd9,0xade5,0xadf1,0xadfd,0xae08,0xae14,0xae20,
624 0xae2c,0xae37,0xae43,0xae4f,0xae5b,0xae66,0xae72,0xae7e,
625 0xae8a,0xae95,0xaea1,0xaead,0xaeb8,0xaec4,0xaed0,0xaedc,
626 0xaee7,0xaef3,0xaeff,0xaf0a,0xaf16,0xaf22,0xaf2e,0xaf39,
627 0xaf45,0xaf51,0xaf5c,0xaf68,0xaf74,0xaf7f,0xaf8b,0xaf97,
628 0xafa2,0xafae,0xafba,0xafc5,0xafd1,0xafdd,0xafe8,0xaff4,
629 0xb000,0xb00b,0xb017,0xb022,0xb02e,0xb03a,0xb045,0xb051,
630 0xb05c,0xb068,0xb074,0xb07f,0xb08b,0xb097,0xb0a2,0xb0ae,
631 0xb0b9,0xb0c5,0xb0d0,0xb0dc,0xb0e8,0xb0f3,0xb0ff,0xb10a,
632 0xb116,0xb121,0xb12d,0xb139,0xb144,0xb150,0xb15b,0xb167,
633 0xb172,0xb17e,0xb189,0xb195,0xb1a0,0xb1ac,0xb1b8,0xb1c3,
634 0xb1cf,0xb1da,0xb1e6,0xb1f1,0xb1fd,0xb208,0xb214,0xb21f,
635 0xb22b,0xb236,0xb242,0xb24d,0xb259,0xb264,0xb270,0xb27b,
636 0xb286,0xb292,0xb29d,0xb2a9,0xb2b4,0xb2c0,0xb2cb,0xb2d7,
637 0xb2e2,0xb2ee,0xb2f9,0xb305,0xb310,0xb31b,0xb327,0xb332,
638 0xb33e,0xb349,0xb355,0xb360,0xb36b,0xb377,0xb382,0xb38e,
639 0xb399,0xb3a4,0xb3b0,0xb3bb,0xb3c7,0xb3d2,0xb3dd,0xb3e9,
640 0xb3f4,0xb400,0xb40b,0xb416,0xb422,0xb42d,0xb438,0xb444,
641 0xb44f,0xb45a,0xb466,0xb471,0xb47c,0xb488,0xb493,0xb49f,
642 0xb4aa,0xb4b5,0xb4c1,0xb4cc,0xb4d7,0xb4e2,0xb4ee,0xb4f9,
643 0xb504,0xb510,0xb51b,0xb526,0xb532,0xb53d,0xb548,0xb554,
644 0xb55f,0xb56a,0xb575,0xb581,0xb58c,0xb597,0xb5a3,0xb5ae,
645 0xb5b9,0xb5c4,0xb5d0,0xb5db,0xb5e6,0xb5f1,0xb5fd,0xb608,
646 0xb613,0xb61e,0xb62a,0xb635,0xb640,0xb64b,0xb657,0xb662,
647 0xb66d,0xb678,0xb684,0xb68f,0xb69a,0xb6a5,0xb6b0,0xb6bc,
648 0xb6c7,0xb6d2,0xb6dd,0xb6e8,0xb6f4,0xb6ff,0xb70a,0xb715,
649 0xb720,0xb72c,0xb737,0xb742,0xb74d,0xb758,0xb763,0xb76f,
650 0xb77a,0xb785,0xb790,0xb79b,0xb7a6,0xb7b2,0xb7bd,0xb7c8,
651 0xb7d3,0xb7de,0xb7e9,0xb7f4,0xb800,0xb80b,0xb816,0xb821,
652 0xb82c,0xb837,0xb842,0xb84d,0xb858,0xb864,0xb86f,0xb87a,
653 0xb885,0xb890,0xb89b,0xb8a6,0xb8b1,0xb8bc,0xb8c7,0xb8d3,
654 0xb8de,0xb8e9,0xb8f4,0xb8ff,0xb90a,0xb915,0xb920,0xb92b,
655 0xb936,0xb941,0xb94c,0xb957,0xb962,0xb96d,0xb978,0xb983,
656 0xb98f,0xb99a,0xb9a5,0xb9b0,0xb9bb,0xb9c6,0xb9d1,0xb9dc,
657 0xb9e7,0xb9f2,0xb9fd,0xba08,0xba13,0xba1e,0xba29,0xba34,
658 0xba3f,0xba4a,0xba55,0xba60,0xba6b,0xba76,0xba81,0xba8c,
659 0xba97,0xbaa2,0xbaad,0xbab8,0xbac3,0xbace,0xbad8,0xbae3,
660 0xbaee,0xbaf9,0xbb04,0xbb0f,0xbb1a,0xbb25,0xbb30,0xbb3b,
661 0xbb46,0xbb51,0xbb5c,0xbb67,0xbb72,0xbb7d,0xbb88,0xbb92,
662 0xbb9d,0xbba8,0xbbb3,0xbbbe,0xbbc9,0xbbd4,0xbbdf,0xbbea,
663 0xbbf5,0xbc00,0xbc0a,0xbc15,0xbc20,0xbc2b,0xbc36,0xbc41,
664 0xbc4c,0xbc57,0xbc61,0xbc6c,0xbc77,0xbc82,0xbc8d,0xbc98,
665 0xbca3,0xbcad,0xbcb8,0xbcc3,0xbcce,0xbcd9,0xbce4,0xbcef,
666 0xbcf9,0xbd04,0xbd0f,0xbd1a,0xbd25,0xbd30,0xbd3a,0xbd45,
667 0xbd50,0xbd5b,0xbd66,0xbd70,0xbd7b,0xbd86,0xbd91,0xbd9c,
668 0xbda6,0xbdb1,0xbdbc,0xbdc7,0xbdd2,0xbddc,0xbde7,0xbdf2,
669 0xbdfd,0xbe08,0xbe12,0xbe1d,0xbe28,0xbe33,0xbe3d,0xbe48,
670 0xbe53,0xbe5e,0xbe68,0xbe73,0xbe7e,0xbe89,0xbe93,0xbe9e,
671 0xbea9,0xbeb4,0xbebe,0xbec9,0xbed4,0xbedf,0xbee9,0xbef4,
672 0xbeff,0xbf0a,0xbf14,0xbf1f,0xbf2a,0xbf34,0xbf3f,0xbf4a,
673 0xbf55,0xbf5f,0xbf6a,0xbf75,0xbf7f,0xbf8a,0xbf95,0xbf9f,
674 0xbfaa,0xbfb5,0xbfbf,0xbfca,0xbfd5,0xbfdf,0xbfea,0xbff5,
675 0xc000,0xc00a,0xc015,0xc01f,0xc02a,0xc035,0xc03f,0xc04a,
676 0xc055,0xc05f,0xc06a,0xc075,0xc07f,0xc08a,0xc095,0xc09f,
677 0xc0aa,0xc0b5,0xc0bf,0xc0ca,0xc0d4,0xc0df,0xc0ea,0xc0f4,
678 0xc0ff,0xc109,0xc114,0xc11f,0xc129,0xc134,0xc13e,0xc149,
679 0xc154,0xc15e,0xc169,0xc173,0xc17e,0xc189,0xc193,0xc19e,
680 0xc1a8,0xc1b3,0xc1bd,0xc1c8,0xc1d3,0xc1dd,0xc1e8,0xc1f2,
681 0xc1fd,0xc207,0xc212,0xc21d,0xc227,0xc232,0xc23c,0xc247,
682 0xc251,0xc25c,0xc266,0xc271,0xc27b,0xc286,0xc290,0xc29b,
683 0xc2a5,0xc2b0,0xc2bb,0xc2c5,0xc2d0,0xc2da,0xc2e5,0xc2ef,
684 0xc2fa,0xc304,0xc30f,0xc319,0xc324,0xc32e,0xc339,0xc343,
685 0xc34e,0xc358,0xc363,0xc36d,0xc377,0xc382,0xc38c,0xc397,
686 0xc3a1,0xc3ac,0xc3b6,0xc3c1,0xc3cb,0xc3d6,0xc3e0,0xc3eb,
687 0xc3f5,0xc400,0xc40a,0xc414,0xc41f,0xc429,0xc434,0xc43e,
688 0xc449,0xc453,0xc45d,0xc468,0xc472,0xc47d,0xc487,0xc492,
689 0xc49c,0xc4a6,0xc4b1,0xc4bb,0xc4c6,0xc4d0,0xc4da,0xc4e5,
690 0xc4ef,0xc4fa,0xc504,0xc50e,0xc519,0xc523,0xc52e,0xc538,
691 0xc542,0xc54d,0xc557,0xc562,0xc56c,0xc576,0xc581,0xc58b,
692 0xc595,0xc5a0,0xc5aa,0xc5b4,0xc5bf,0xc5c9,0xc5d4,0xc5de,
693 0xc5e8,0xc5f3,0xc5fd,0xc607,0xc612,0xc61c,0xc626,0xc631,
694 0xc63b,0xc645,0xc650,0xc65a,0xc664,0xc66f,0xc679,0xc683,
695 0xc68e,0xc698,0xc6a2,0xc6ac,0xc6b7,0xc6c1,0xc6cb,0xc6d6,
696 0xc6e0,0xc6ea,0xc6f5,0xc6ff,0xc709,0xc713,0xc71e,0xc728,
697 0xc732,0xc73d,0xc747,0xc751,0xc75b,0xc766,0xc770,0xc77a,
698 0xc784,0xc78f,0xc799,0xc7a3,0xc7ae,0xc7b8,0xc7c2,0xc7cc,
699 0xc7d7,0xc7e1,0xc7eb,0xc7f5,0xc800,0xc80a,0xc814,0xc81e,
700 0xc828,0xc833,0xc83d,0xc847,0xc851,0xc85c,0xc866,0xc870,
701 0xc87a,0xc884,0xc88f,0xc899,0xc8a3,0xc8ad,0xc8b7,0xc8c2,
702 0xc8cc,0xc8d6,0xc8e0,0xc8ea,0xc8f5,0xc8ff,0xc909,0xc913,
703 0xc91d,0xc928,0xc932,0xc93c,0xc946,0xc950,0xc95a,0xc965,
704 0xc96f,0xc979,0xc983,0xc98d,0xc997,0xc9a2,0xc9ac,0xc9b6,
705 0xc9c0,0xc9ca,0xc9d4,0xc9df,0xc9e9,0xc9f3,0xc9fd,0xca07,
706 0xca11,0xca1b,0xca26,0xca30,0xca3a,0xca44,0xca4e,0xca58,
707 0xca62,0xca6c,0xca76,0xca81,0xca8b,0xca95,0xca9f,0xcaa9,
708 0xcab3,0xcabd,0xcac7,0xcad1,0xcadc,0xcae6,0xcaf0,0xcafa,
709 0xcb04,0xcb0e,0xcb18,0xcb22,0xcb2c,0xcb36,0xcb40,0xcb4a,
710 0xcb55,0xcb5f,0xcb69,0xcb73,0xcb7d,0xcb87,0xcb91,0xcb9b,
711 0xcba5,0xcbaf,0xcbb9,0xcbc3,0xcbcd,0xcbd7,0xcbe1,0xcbeb,
712 0xcbf5,0xcc00,0xcc0a,0xcc14,0xcc1e,0xcc28,0xcc32,0xcc3c,
713 0xcc46,0xcc50,0xcc5a,0xcc64,0xcc6e,0xcc78,0xcc82,0xcc8c,
714 0xcc96,0xcca0,0xccaa,0xccb4,0xccbe,0xccc8,0xccd2,0xccdc,
715 0xcce6,0xccf0,0xccfa,0xcd04,0xcd0e,0xcd18,0xcd22,0xcd2c,
716 0xcd36,0xcd40,0xcd4a,0xcd54,0xcd5e,0xcd68,0xcd72,0xcd7c,
717 0xcd86,0xcd90,0xcd99,0xcda3,0xcdad,0xcdb7,0xcdc1,0xcdcb,
718 0xcdd5,0xcddf,0xcde9,0xcdf3,0xcdfd,0xce07,0xce11,0xce1b,
719 0xce25,0xce2f,0xce39,0xce43,0xce4c,0xce56,0xce60,0xce6a,
720 0xce74,0xce7e,0xce88,0xce92,0xce9c,0xcea6,0xceb0,0xceba,
721 0xcec3,0xcecd,0xced7,0xcee1,0xceeb,0xcef5,0xceff,0xcf09,
722 0xcf13,0xcf1d,0xcf26,0xcf30,0xcf3a,0xcf44,0xcf4e,0xcf58,
723 0xcf62,0xcf6c,0xcf75,0xcf7f,0xcf89,0xcf93,0xcf9d,0xcfa7,
724 0xcfb1,0xcfbb,0xcfc4,0xcfce,0xcfd8,0xcfe2,0xcfec,0xcff6,
725 0xd000,0xd009,0xd013,0xd01d,0xd027,0xd031,0xd03b,0xd044,
726 0xd04e,0xd058,0xd062,0xd06c,0xd076,0xd07f,0xd089,0xd093,
727 0xd09d,0xd0a7,0xd0b0,0xd0ba,0xd0c4,0xd0ce,0xd0d8,0xd0e1,
728 0xd0eb,0xd0f5,0xd0ff,0xd109,0xd112,0xd11c,0xd126,0xd130,
729 0xd13a,0xd143,0xd14d,0xd157,0xd161,0xd16b,0xd174,0xd17e,
730 0xd188,0xd192,0xd19b,0xd1a5,0xd1af,0xd1b9,0xd1c3,0xd1cc,
731 0xd1d6,0xd1e0,0xd1ea,0xd1f3,0xd1fd,0xd207,0xd211,0xd21a,
732 0xd224,0xd22e,0xd238,0xd241,0xd24b,0xd255,0xd25f,0xd268,
733 0xd272,0xd27c,0xd285,0xd28f,0xd299,0xd2a3,0xd2ac,0xd2b6,
734 0xd2c0,0xd2c9,0xd2d3,0xd2dd,0xd2e7,0xd2f0,0xd2fa,0xd304,
735 0xd30d,0xd317,0xd321,0xd32b,0xd334,0xd33e,0xd348,0xd351,
736 0xd35b,0xd365,0xd36e,0xd378,0xd382,0xd38b,0xd395,0xd39f,
737 0xd3a8,0xd3b2,0xd3bc,0xd3c6,0xd3cf,0xd3d9,0xd3e3,0xd3ec,
738 0xd3f6,0xd400,0xd409,0xd413,0xd41c,0xd426,0xd430,0xd439,
739 0xd443,0xd44d,0xd456,0xd460,0xd46a,0xd473,0xd47d,0xd487,
740 0xd490,0xd49a,0xd4a3,0xd4ad,0xd4b7,0xd4c0,0xd4ca,0xd4d4,
741 0xd4dd,0xd4e7,0xd4f0,0xd4fa,0xd504,0xd50d,0xd517,0xd521,
742 0xd52a,0xd534,0xd53d,0xd547,0xd551,0xd55a,0xd564,0xd56d,
743 0xd577,0xd581,0xd58a,0xd594,0xd59d,0xd5a7,0xd5b0,0xd5ba,
744 0xd5c4,0xd5cd,0xd5d7,0xd5e0,0xd5ea,0xd5f4,0xd5fd,0xd607,
745 0xd610,0xd61a,0xd623,0xd62d,0xd637,0xd640,0xd64a,0xd653,
746 0xd65d,0xd666,0xd670,0xd679,0xd683,0xd68c,0xd696,0xd6a0,
747 0xd6a9,0xd6b3,0xd6bc,0xd6c6,0xd6cf,0xd6d9,0xd6e2,0xd6ec,
748 0xd6f5,0xd6ff,0xd708,0xd712,0xd71b,0xd725,0xd72f,0xd738,
749 0xd742,0xd74b,0xd755,0xd75e,0xd768,0xd771,0xd77b,0xd784,
750 0xd78e,0xd797,0xd7a1,0xd7aa,0xd7b4,0xd7bd,0xd7c7,0xd7d0,
751 0xd7da,0xd7e3,0xd7ed,0xd7f6,0xd800,0xd809,0xd812,0xd81c,
752 0xd825,0xd82f,0xd838,0xd842,0xd84b,0xd855,0xd85e,0xd868,
753 0xd871,0xd87b,0xd884,0xd88e,0xd897,0xd8a0,0xd8aa,0xd8b3,
754 0xd8bd,0xd8c6,0xd8d0,0xd8d9,0xd8e3,0xd8ec,0xd8f5,0xd8ff,
755 0xd908,0xd912,0xd91b,0xd925,0xd92e,0xd938,0xd941,0xd94a,
756 0xd954,0xd95d,0xd967,0xd970,0xd979,0xd983,0xd98c,0xd996,
757 0xd99f,0xd9a9,0xd9b2,0xd9bb,0xd9c5,0xd9ce,0xd9d8,0xd9e1,
758 0xd9ea,0xd9f4,0xd9fd,0xda07,0xda10,0xda19,0xda23,0xda2c,
759 0xda35,0xda3f,0xda48,0xda52,0xda5b,0xda64,0xda6e,0xda77,
760 0xda81,0xda8a,0xda93,0xda9d,0xdaa6,0xdaaf,0xdab9,0xdac2,
761 0xdacb,0xdad5,0xdade,0xdae8,0xdaf1,0xdafa,0xdb04,0xdb0d,
762 0xdb16,0xdb20,0xdb29,0xdb32,0xdb3c,0xdb45,0xdb4e,0xdb58,
763 0xdb61,0xdb6a,0xdb74,0xdb7d,0xdb86,0xdb90,0xdb99,0xdba2,
764 0xdbac,0xdbb5,0xdbbe,0xdbc8,0xdbd1,0xdbda,0xdbe4,0xdbed,
765 0xdbf6,0xdc00,0xdc09,0xdc12,0xdc1b,0xdc25,0xdc2e,0xdc37,
766 0xdc41,0xdc4a,0xdc53,0xdc5d,0xdc66,0xdc6f,0xdc78,0xdc82,
767 0xdc8b,0xdc94,0xdc9e,0xdca7,0xdcb0,0xdcb9,0xdcc3,0xdccc,
768 0xdcd5,0xdcde,0xdce8,0xdcf1,0xdcfa,0xdd04,0xdd0d,0xdd16,
769 0xdd1f,0xdd29,0xdd32,0xdd3b,0xdd44,0xdd4e,0xdd57,0xdd60,
770 0xdd69,0xdd73,0xdd7c,0xdd85,0xdd8e,0xdd98,0xdda1,0xddaa,
771 0xddb3,0xddbd,0xddc6,0xddcf,0xddd8,0xdde2,0xddeb,0xddf4,
772 0xddfd,0xde06,0xde10,0xde19,0xde22,0xde2b,0xde35,0xde3e,
773 0xde47,0xde50,0xde59,0xde63,0xde6c,0xde75,0xde7e,0xde87,
774 0xde91,0xde9a,0xdea3,0xdeac,0xdeb5,0xdebf,0xdec8,0xded1,
775 0xdeda,0xdee3,0xdeed,0xdef6,0xdeff,0xdf08,0xdf11,0xdf1a,
776 0xdf24,0xdf2d,0xdf36,0xdf3f,0xdf48,0xdf52,0xdf5b,0xdf64,
777 0xdf6d,0xdf76,0xdf7f,0xdf89,0xdf92,0xdf9b,0xdfa4,0xdfad,
778 0xdfb6,0xdfbf,0xdfc9,0xdfd2,0xdfdb,0xdfe4,0xdfed,0xdff6,
779 0xe000,0xe009,0xe012,0xe01b,0xe024,0xe02d,0xe036,0xe03f,
780 0xe049,0xe052,0xe05b,0xe064,0xe06d,0xe076,0xe07f,0xe088,
781 0xe092,0xe09b,0xe0a4,0xe0ad,0xe0b6,0xe0bf,0xe0c8,0xe0d1,
782 0xe0db,0xe0e4,0xe0ed,0xe0f6,0xe0ff,0xe108,0xe111,0xe11a,
783 0xe123,0xe12c,0xe136,0xe13f,0xe148,0xe151,0xe15a,0xe163,
784 0xe16c,0xe175,0xe17e,0xe187,0xe190,0xe199,0xe1a3,0xe1ac,
785 0xe1b5,0xe1be,0xe1c7,0xe1d0,0xe1d9,0xe1e2,0xe1eb,0xe1f4,
786 0xe1fd,0xe206,0xe20f,0xe218,0xe221,0xe22b,0xe234,0xe23d,
787 0xe246,0xe24f,0xe258,0xe261,0xe26a,0xe273,0xe27c,0xe285,
788 0xe28e,0xe297,0xe2a0,0xe2a9,0xe2b2,0xe2bb,0xe2c4,0xe2cd,
789 0xe2d6,0xe2df,0xe2e8,0xe2f1,0xe2fa,0xe303,0xe30c,0xe315,
790 0xe31f,0xe328,0xe331,0xe33a,0xe343,0xe34c,0xe355,0xe35e,
791 0xe367,0xe370,0xe379,0xe382,0xe38b,0xe394,0xe39d,0xe3a6,
792 0xe3af,0xe3b8,0xe3c1,0xe3ca,0xe3d3,0xe3dc,0xe3e5,0xe3ee,
793 0xe3f7,0xe400,0xe408,0xe411,0xe41a,0xe423,0xe42c,0xe435,
794 0xe43e,0xe447,0xe450,0xe459,0xe462,0xe46b,0xe474,0xe47d,
795 0xe486,0xe48f,0xe498,0xe4a1,0xe4aa,0xe4b3,0xe4bc,0xe4c5,
796 0xe4ce,0xe4d7,0xe4e0,0xe4e9,0xe4f2,0xe4fa,0xe503,0xe50c,
797 0xe515,0xe51e,0xe527,0xe530,0xe539,0xe542,0xe54b,0xe554,
798 0xe55d,0xe566,0xe56f,0xe578,0xe580,0xe589,0xe592,0xe59b,
799 0xe5a4,0xe5ad,0xe5b6,0xe5bf,0xe5c8,0xe5d1,0xe5da,0xe5e3,
800 0xe5eb,0xe5f4,0xe5fd,0xe606,0xe60f,0xe618,0xe621,0xe62a,
801 0xe633,0xe63c,0xe644,0xe64d,0xe656,0xe65f,0xe668,0xe671,
802 0xe67a,0xe683,0xe68c,0xe694,0xe69d,0xe6a6,0xe6af,0xe6b8,
803 0xe6c1,0xe6ca,0xe6d3,0xe6db,0xe6e4,0xe6ed,0xe6f6,0xe6ff,
804 0xe708,0xe711,0xe71a,0xe722,0xe72b,0xe734,0xe73d,0xe746,
805 0xe74f,0xe758,0xe760,0xe769,0xe772,0xe77b,0xe784,0xe78d,
806 0xe795,0xe79e,0xe7a7,0xe7b0,0xe7b9,0xe7c2,0xe7cb,0xe7d3,
807 0xe7dc,0xe7e5,0xe7ee,0xe7f7,0xe800,0xe808,0xe811,0xe81a,
808 0xe823,0xe82c,0xe834,0xe83d,0xe846,0xe84f,0xe858,0xe861,
809 0xe869,0xe872,0xe87b,0xe884,0xe88d,0xe895,0xe89e,0xe8a7,
810 0xe8b0,0xe8b9,0xe8c1,0xe8ca,0xe8d3,0xe8dc,0xe8e5,0xe8ed,
811 0xe8f6,0xe8ff,0xe908,0xe911,0xe919,0xe922,0xe92b,0xe934,
812 0xe93c,0xe945,0xe94e,0xe957,0xe960,0xe968,0xe971,0xe97a,
813 0xe983,0xe98b,0xe994,0xe99d,0xe9a6,0xe9ae,0xe9b7,0xe9c0,
814 0xe9c9,0xe9d2,0xe9da,0xe9e3,0xe9ec,0xe9f5,0xe9fd,0xea06,
815 0xea0f,0xea18,0xea20,0xea29,0xea32,0xea3b,0xea43,0xea4c,
816 0xea55,0xea5e,0xea66,0xea6f,0xea78,0xea80,0xea89,0xea92,
817 0xea9b,0xeaa3,0xeaac,0xeab5,0xeabe,0xeac6,0xeacf,0xead8,
818 0xeae0,0xeae9,0xeaf2,0xeafb,0xeb03,0xeb0c,0xeb15,0xeb1d,
819 0xeb26,0xeb2f,0xeb38,0xeb40,0xeb49,0xeb52,0xeb5a,0xeb63,
820 0xeb6c,0xeb74,0xeb7d,0xeb86,0xeb8f,0xeb97,0xeba0,0xeba9,
821 0xebb1,0xebba,0xebc3,0xebcb,0xebd4,0xebdd,0xebe5,0xebee,
822 0xebf7,0xec00,0xec08,0xec11,0xec1a,0xec22,0xec2b,0xec34,
823 0xec3c,0xec45,0xec4e,0xec56,0xec5f,0xec68,0xec70,0xec79,
824 0xec82,0xec8a,0xec93,0xec9c,0xeca4,0xecad,0xecb5,0xecbe,
825 0xecc7,0xeccf,0xecd8,0xece1,0xece9,0xecf2,0xecfb,0xed03,
826 0xed0c,0xed15,0xed1d,0xed26,0xed2e,0xed37,0xed40,0xed48,
827 0xed51,0xed5a,0xed62,0xed6b,0xed74,0xed7c,0xed85,0xed8d,
828 0xed96,0xed9f,0xeda7,0xedb0,0xedb8,0xedc1,0xedca,0xedd2,
829 0xeddb,0xede4,0xedec,0xedf5,0xedfd,0xee06,0xee0f,0xee17,
830 0xee20,0xee28,0xee31,0xee3a,0xee42,0xee4b,0xee53,0xee5c,
831 0xee65,0xee6d,0xee76,0xee7e,0xee87,0xee8f,0xee98,0xeea1,
832 0xeea9,0xeeb2,0xeeba,0xeec3,0xeecc,0xeed4,0xeedd,0xeee5,
833 0xeeee,0xeef6,0xeeff,0xef08,0xef10,0xef19,0xef21,0xef2a,
834 0xef32,0xef3b,0xef43,0xef4c,0xef55,0xef5d,0xef66,0xef6e,
835 0xef77,0xef7f,0xef88,0xef90,0xef99,0xefa2,0xefaa,0xefb3,
836 0xefbb,0xefc4,0xefcc,0xefd5,0xefdd,0xefe6,0xefee,0xeff7,
837 0xf000,0xf008,0xf011,0xf019,0xf022,0xf02a,0xf033,0xf03b,
838 0xf044,0xf04c,0xf055,0xf05d,0xf066,0xf06e,0xf077,0xf07f,
839 0xf088,0xf090,0xf099,0xf0a1,0xf0aa,0xf0b2,0xf0bb,0xf0c3,
840 0xf0cc,0xf0d4,0xf0dd,0xf0e5,0xf0ee,0xf0f6,0xf0ff,0xf107,
841 0xf110,0xf118,0xf121,0xf129,0xf132,0xf13a,0xf143,0xf14b,
842 0xf154,0xf15c,0xf165,0xf16d,0xf176,0xf17e,0xf187,0xf18f,
843 0xf198,0xf1a0,0xf1a9,0xf1b1,0xf1ba,0xf1c2,0xf1cb,0xf1d3,
844 0xf1dc,0xf1e4,0xf1ec,0xf1f5,0xf1fd,0xf206,0xf20e,0xf217,
845 0xf21f,0xf228,0xf230,0xf239,0xf241,0xf24a,0xf252,0xf25a,
846 0xf263,0xf26b,0xf274,0xf27c,0xf285,0xf28d,0xf296,0xf29e,
847 0xf2a6,0xf2af,0xf2b7,0xf2c0,0xf2c8,0xf2d1,0xf2d9,0xf2e1,
848 0xf2ea,0xf2f2,0xf2fb,0xf303,0xf30c,0xf314,0xf31c,0xf325,
849 0xf32d,0xf336,0xf33e,0xf347,0xf34f,0xf357,0xf360,0xf368,
850 0xf371,0xf379,0xf381,0xf38a,0xf392,0xf39b,0xf3a3,0xf3ac,
851 0xf3b4,0xf3bc,0xf3c5,0xf3cd,0xf3d6,0xf3de,0xf3e6,0xf3ef,
852 0xf3f7,0xf400,0xf408,0xf410,0xf419,0xf421,0xf429,0xf432,
853 0xf43a,0xf443,0xf44b,0xf453,0xf45c,0xf464,0xf46d,0xf475,
854 0xf47d,0xf486,0xf48e,0xf496,0xf49f,0xf4a7,0xf4b0,0xf4b8,
855 0xf4c0,0xf4c9,0xf4d1,0xf4d9,0xf4e2,0xf4ea,0xf4f2,0xf4fb,
856 0xf503,0xf50c,0xf514,0xf51c,0xf525,0xf52d,0xf535,0xf53e,
857 0xf546,0xf54e,0xf557,0xf55f,0xf567,0xf570,0xf578,0xf580,
858 0xf589,0xf591,0xf599,0xf5a2,0xf5aa,0xf5b2,0xf5bb,0xf5c3,
859 0xf5cb,0xf5d4,0xf5dc,0xf5e4,0xf5ed,0xf5f5,0xf5fd,0xf606,
860 0xf60e,0xf616,0xf61f,0xf627,0xf62f,0xf638,0xf640,0xf648,
861 0xf651,0xf659,0xf661,0xf66a,0xf672,0xf67a,0xf682,0xf68b,
862 0xf693,0xf69b,0xf6a4,0xf6ac,0xf6b4,0xf6bd,0xf6c5,0xf6cd,
863 0xf6d6,0xf6de,0xf6e6,0xf6ee,0xf6f7,0xf6ff,0xf707,0xf710,
864 0xf718,0xf720,0xf728,0xf731,0xf739,0xf741,0xf74a,0xf752,
865 0xf75a,0xf762,0xf76b,0xf773,0xf77b,0xf784,0xf78c,0xf794,
866 0xf79c,0xf7a5,0xf7ad,0xf7b5,0xf7bd,0xf7c6,0xf7ce,0xf7d6,
867 0xf7de,0xf7e7,0xf7ef,0xf7f7,0xf800,0xf808,0xf810,0xf818,
868 0xf821,0xf829,0xf831,0xf839,0xf842,0xf84a,0xf852,0xf85a,
869 0xf863,0xf86b,0xf873,0xf87b,0xf883,0xf88c,0xf894,0xf89c,
870 0xf8a4,0xf8ad,0xf8b5,0xf8bd,0xf8c5,0xf8ce,0xf8d6,0xf8de,
871 0xf8e6,0xf8ef,0xf8f7,0xf8ff,0xf907,0xf90f,0xf918,0xf920,
872 0xf928,0xf930,0xf939,0xf941,0xf949,0xf951,0xf959,0xf962,
873 0xf96a,0xf972,0xf97a,0xf982,0xf98b,0xf993,0xf99b,0xf9a3,
874 0xf9ab,0xf9b4,0xf9bc,0xf9c4,0xf9cc,0xf9d4,0xf9dd,0xf9e5,
875 0xf9ed,0xf9f5,0xf9fd,0xfa06,0xfa0e,0xfa16,0xfa1e,0xfa26,
876 0xfa2f,0xfa37,0xfa3f,0xfa47,0xfa4f,0xfa58,0xfa60,0xfa68,
877 0xfa70,0xfa78,0xfa80,0xfa89,0xfa91,0xfa99,0xfaa1,0xfaa9,
878 0xfab1,0xfaba,0xfac2,0xfaca,0xfad2,0xfada,0xfae2,0xfaeb,
879 0xfaf3,0xfafb,0xfb03,0xfb0b,0xfb13,0xfb1c,0xfb24,0xfb2c,
880 0xfb34,0xfb3c,0xfb44,0xfb4c,0xfb55,0xfb5d,0xfb65,0xfb6d,
881 0xfb75,0xfb7d,0xfb85,0xfb8e,0xfb96,0xfb9e,0xfba6,0xfbae,
882 0xfbb6,0xfbbe,0xfbc7,0xfbcf,0xfbd7,0xfbdf,0xfbe7,0xfbef,
883 0xfbf7,0xfc00,0xfc08,0xfc10,0xfc18,0xfc20,0xfc28,0xfc30,
884 0xfc38,0xfc40,0xfc49,0xfc51,0xfc59,0xfc61,0xfc69,0xfc71,
885 0xfc79,0xfc81,0xfc8a,0xfc92,0xfc9a,0xfca2,0xfcaa,0xfcb2,
886 0xfcba,0xfcc2,0xfcca,0xfcd2,0xfcdb,0xfce3,0xfceb,0xfcf3,
887 0xfcfb,0xfd03,0xfd0b,0xfd13,0xfd1b,0xfd23,0xfd2c,0xfd34,
888 0xfd3c,0xfd44,0xfd4c,0xfd54,0xfd5c,0xfd64,0xfd6c,0xfd74,
889 0xfd7c,0xfd84,0xfd8d,0xfd95,0xfd9d,0xfda5,0xfdad,0xfdb5,
890 0xfdbd,0xfdc5,0xfdcd,0xfdd5,0xfddd,0xfde5,0xfded,0xfdf5,
891 0xfdfd,0xfe06,0xfe0e,0xfe16,0xfe1e,0xfe26,0xfe2e,0xfe36,
892 0xfe3e,0xfe46,0xfe4e,0xfe56,0xfe5e,0xfe66,0xfe6e,0xfe76,
893 0xfe7e,0xfe86,0xfe8e,0xfe97,0xfe9f,0xfea7,0xfeaf,0xfeb7,
894 0xfebf,0xfec7,0xfecf,0xfed7,0xfedf,0xfee7,0xfeef,0xfef7,
895 0xfeff,0xff07,0xff0f,0xff17,0xff1f,0xff27,0xff2f,0xff37,
896 0xff3f,0xff47,0xff4f,0xff57,0xff5f,0xff67,0xff6f,0xff77,
897 0xff7f,0xff87,0xff8f,0xff97,0xff9f,0xffa7,0xffaf,0xffb7,
898 0xffbf,0xffc7,0xffcf,0xffd7,0xffdf,0xffe7,0xffef,0xfff7
899 ];
900
901 const RA144_CODEBOOK1: [u16; 128] = [
902 19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
903 20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
904 20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
905 21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
906 19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
907 21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
908 19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
909 21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
910 19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
911 18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
912 17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
913 16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
914 20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
915 19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
916 17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
917 16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
918 ];
919 const RA144_VECTORS1: [[i8; BLOCKSIZE]; 128] = [
920 [
921 38, -4, 15, -4, 14, -13, 12, -11, -2, -6,
922 -6, -11, -45, -16, -11, -13, -7, 6, -12, 4,
923 -20, 3, -16, 12, -1, 12, 46, 24, 0, 33,
924 -3, 9, -12, -12, -8, -7, 17, -6, 0, -2,
925 ], [
926 60, -16, 3, -22, 10, -32, 0, -28, -17, -18,
927 -3, -25, -37, -23, -10, 3, 2, 3, 0, 3,
928 -14, 0, -14, -1, 0, 2, 32, 9, -1, 25,
929 7, 13, -5, 13, 8, 1, 2, 8, -10, 6,
930 ], [
931 27, -12, 28, -2, 6, -7, 15, 9, -11, 1,
932 -13, -11, -40, 4, -29, -14, -19, -5, -23, -8,
933 -30, -13, -17, 0, -14, 12, 34, 20, -2, 25,
934 2, -16, -4, -12, 15, 16, 29, 7, 24, 10,
935 ], [
936 49, -24, 16, -20, 2, -26, 2, -7, -25, -10,
937 -11, -25, -32, -3, -27, 2, -8, -8, -11, -9,
938 -24, -17, -16, -14, -13, 2, 20, 5, -4, 17,
939 14, -12, 3, 13, 33, 25, 14, 23, 15, 19,
940 ], [
941 46, -6, 21, 8, -2, -16, -5, -8, -11, 4,
942 8, 15, -24, 4, -2, -26, -3, -16, -16, -14,
943 -9, -2, -1, 4, 19, 7, 36, 17, 9, 13,
944 0, 31, -5, -12, 7, -8, 11, -15, -13, -4,
945 ], [
946 68, -18, 9, -9, -6, -35, -18, -25, -26, -7,
947 10, 1, -16, -3, -1, -9, 6, -19, -4, -15,
948 -4, -6, 0, -8, 20, -2, 23, 2, 7, 5,
949 12, 35, 1, 13, 24, 0, -3, 0, -22, 4,
950 ], [
951 35, -14, 34, 10, -10, -10, -1, 12, -20, 12,
952 0, 15, -18, 24, -20, -27, -14, -28, -27, -27,
953 -20, -19, -2, -8, 5, 7, 25, 13, 5, 5,
954 6, 5, 2, -12, 31, 15, 23, -1, 12, 8,
955 ], [
956 57, -26, 22, -7, -14, -28, -14, -3, -35, 0,
957 3, 1, -11, 16, -18, -10, -4, -31, -15, -28,
958 -14, -23, -1, -21, 7, -2, 11, -1, 3, -1,
959 18, 9, 10, 13, 49, 24, 8, 14, 2, 16,
960 ], [
961 25, 15, 22, 11, 18, 4, 15, -22, 8, -2,
962 -17, -9, -48, -20, -30, -17, -16, 11, -1, 16,
963 2, 10, -5, 26, -2, -4, 22, 0, 2, 10,
964 -6, 13, -14, 10, -23, 0, 10, -2, 1, 0,
965 ], [
966 47, 3, 11, -6, 15, -13, 2, -38, -6, -13,
967 -15, -22, -40, -28, -28, 0, -5, 8, 10, 15,
968 7, 7, -4, 13, -1, -14, 9, -14, 0, 2,
969 4, 18, -7, 36, -6, 8, -3, 13, -7, 8,
970 ], [
971 14, 7, 36, 13, 10, 10, 18, 0, 0, 5,
972 -25, -8, -43, 0, -48, -18, -27, 0, -12, 3,
973 -7, -6, -7, 13, -15, -5, 11, -3, 0, 2,
974 0, -12, -6, 10, 0, 23, 22, 11, 26, 12,
975 ], [
976 36, -5, 24, -4, 7, -7, 6, -17, -14, -5,
977 -22, -22, -35, -8, -46, -1, -17, -3, 0, 2,
978 -2, -10, -5, 0, -14, -15, -2, -18, -2, -4,
979 11, -7, 1, 36, 18, 32, 7, 27, 17, 20,
980 ], [
981 33, 13, 29, 24, 1, 1, -2, -18, 0, 9,
982 -3, 17, -27, 0, -21, -30, -12, -11, -5, -2,
983 12, 4, 9, 19, 18, -9, 13, -6, 11, -8,
984 -2, 35, -8, 10, -7, -1, 4, -11, -10, -2,
985 ], [
986 55, 1, 17, 6, -1, -16, -15, -35, -15, -2,
987 0, 4, -19, -8, -20, -13, -1, -14, 7, -3,
988 18, 0, 10, 5, 19, -19, 0, -21, 8, -16,
989 9, 39, 0, 36, 10, 7, -9, 4, -20, 5,
990 ], [
991 22, 5, 42, 26, -6, 8, 1, 2, -9, 17,
992 -10, 18, -21, 19, -39, -31, -23, -23, -16, -15,
993 2, -12, 7, 6, 5, -9, 1, -10, 7, -16,
994 4, 9, 0, 10, 17, 22, 16, 2, 14, 9,
995 ], [
996 44, -6, 30, 8, -9, -10, -11, -14, -23, 5,
997 -8, 4, -14, 12, -37, -14, -12, -26, -4, -16,
998 8, -16, 9, -7, 6, -19, -12, -25, 5, -24,
999 15, 13, 8, 36, 34, 31, 1, 18, 4, 18,
1000 ], [
1001 -3, -5, -9, -7, 15, -1, 5, 13, 2, 12,
1002 5, 2, -21, -23, -2, -16, 0, 5, -6, 13,
1003 -23, 3, -32, 10, -15, 8, 44, 28, 9, 37,
1004 -2, 13, -9, -15, -12, -27, -7, -12, 0, -11,
1005 ], [
1006 18, -17, -21, -25, 11, -19, -6, -3, -11, 0,
1007 7, -11, -13, -31, -1, 0, 9, 1, 5, 12,
1008 -18, 0, -31, -2, -13, -1, 30, 14, 7, 29,
1009 9, 18, -1, 10, 4, -18, -22, 3, -10, -2,
1010 ], [
1011 -13, -13, 3, -5, 7, 4, 9, 34, -5, 20,
1012 -2, 3, -16, -3, -20, -17, -11, -7, -17, 0,
1013 -34, -13, -33, -2, -28, 8, 32, 24, 5, 29,
1014 3, -12, 0, -15, 11, -3, 3, 2, 24, 1,
1015 ], [
1016 8, -25, -8, -23, 3, -13, -3, 17, -20, 8,
1017 0, -10, -8, -11, -18, 0, -1, -10, -5, 0,
1018 -28, -17, -32, -15, -26, -1, 19, 9, 3, 21,
1019 15, -7, 6, 9, 29, 5, -10, 17, 15, 9,
1020 ], [
1021 4, -6, -3, 5, -1, -4, -11, 16, -6, 23,
1022 19, 29, 0, -3, 6, -30, 3, -17, -10, -5,
1023 -13, -2, -17, 3, 5, 3, 35, 21, 17, 17,
1024 2, 35, -2, -15, 3, -28, -13, -21, -13, -13,
1025 ], [
1026 26, -19, -15, -12, -5, -22, -24, 0, -21, 12,
1027 21, 15, 8, -11, 7, -12, 14, -20, 2, -6,
1028 -7, -6, -16, -9, 6, -5, 21, 7, 15, 10,
1029 13, 39, 5, 10, 20, -19, -28, -5, -22, -5,
1030 ], [
1031 -5, -15, 9, 7, -9, 2, -8, 37, -14, 31,
1032 11, 29, 5, 16, -11, -30, -7, -29, -21, -18,
1033 -23, -19, -18, -9, -7, 3, 23, 17, 14, 9,
1034 8, 9, 6, -15, 27, -4, -2, -6, 12, -1,
1035 ], [
1036 16, -27, -2, -10, -13, -16, -20, 20, -29, 20,
1037 14, 16, 13, 8, -9, -13, 2, -33, -9, -19,
1038 -17, -23, -17, -22, -6, -6, 9, 2, 12, 2,
1039 20, 13, 13, 10, 45, 4, -16, 8, 2, 7,
1040 ], [
1041 -16, 14, -2, 8, 20, 17, 9, 2, 14, 16,
1042 -6, 5, -24, -28, -21, -20, -8, 9, 4, 25,
1043 -1, 11, -22, 24, -15, -8, 21, 5, 11, 14,
1044 -5, 18, -11, 7, -27, -20, -14, -7, 1, -9,
1045 ], [
1046 6, 2, -14, -9, 16, -1, -3, -14, 0, 5,
1047 -3, -8, -16, -36, -19, -3, 1, 6, 17, 24,
1048 4, 7, -21, 11, -14, -18, 7, -9, 9, 7,
1049 6, 22, -3, 33, -10, -11, -28, 7, -7, 0,
1050 ], [
1051 -26, 6, 11, 10, 12, 23, 12, 23, 5, 24,
1052 -13, 5, -19, -8, -38, -21, -20, -2, -6, 12,
1053 -11, -5, -23, 11, -29, -9, 9, 0, 7, 6,
1054 1, -7, -2, 7, -3, 3, -2, 6, 27, 3,
1055 ], [
1056 -4, -6, 0, -7, 8, 4, 0, 6, -9, 13,
1057 -11, -7, -11, -15, -37, -4, -9, -5, 5, 11,
1058 -5, -9, -22, -1, -27, -18, -4, -14, 5, 0,
1059 12, -3, 4, 32, 14, 12, -17, 22, 17, 11,
1060 ], [
1061 -8, 12, 3, 21, 3, 14, -8, 5, 4, 28,
1062 7, 32, -2, -8, -12, -34, -4, -12, 1, 6,
1063 9, 4, -7, 17, 4, -13, 11, -1, 19, -4,
1064 0, 39, -4, 7, -11, -21, -20, -16, -10, -11,
1065 ], [
1066 13, 0, -8, 3, 0, -4, -21, -11, -9, 16,
1067 10, 18, 5, -16, -10, -16, 5, -15, 13, 5,
1068 15, 1, -6, 4, 6, -23, -2, -16, 17, -12,
1069 10, 44, 3, 33, 6, -12, -34, -1, -20, -3,
1070 ], [
1071 -18, 4, 17, 23, -4, 20, -4, 26, -3, 36,
1072 0, 32, 2, 12, -29, -34, -16, -24, -10, -6,
1073 0, -12, -8, 4, -8, -13, 0, -6, 16, -12,
1074 5, 13, 3, 7, 13, 3, -8, -2, 14, 0,
1075 ], [
1076 3, -7, 5, 5, -8, 2, -17, 9, -18, 24,
1077 2, 19, 10, 4, -28, -17, -5, -28, 2, -7,
1078 4, -15, -7, -8, -6, -23, -13, -21, 14, -20,
1079 17, 18, 11, 33, 30, 11, -23, 13, 5, 9,
1080 ], [
1081 60, 10, 7, -1, 9, -8, 6, -13, 2, -15,
1082 -1, -10, -13, -11, 15, 0, 6, 9, -1, 0,
1083 -13, 1, -11, -3, -13, 21, 13, 26, -7, 31,
1084 -10, -7, -16, -33, -31, -10, 22, -8, 1, -2,
1085 ], [
1086 82, -1, -4, -19, 6, -27, -6, -29, -12, -26,
1087 1, -24, -5, -18, 17, 17, 17, 6, 10, 0,
1088 -7, -2, -9, -16, -12, 11, 0, 11, -9, 23,
1089 0, -3, -8, -8, -13, -1, 8, 7, -7, 6,
1090 ], [
1091 49, 2, 21, 0, 1, -2, 9, 8, -6, -6,
1092 -8, -10, -8, 9, -2, 0, -4, -2, -13, -12,
1093 -23, -15, -12, -16, -26, 21, 2, 21, -11, 23,
1094 -4, -33, -7, -33, -6, 13, 34, 5, 27, 10,
1095 ], [
1096 71, -10, 9, -17, -1, -20, -3, -8, -21, -18,
1097 -6, -24, 0, 1, 0, 16, 6, -5, 0, -13,
1098 -17, -19, -11, -29, -25, 11, -11, 6, -13, 15,
1099 7, -29, 0, -8, 11, 22, 20, 21, 17, 18,
1100 ], [
1101 67, 8, 14, 11, -7, -11, -11, -9, -7, -3,
1102 13, 16, 8, 9, 24, -12, 10, -13, -5, -17,
1103 -2, -4, 3, -10, 6, 17, 4, 19, 0, 11,
1104 -6, 13, -9, -33, -14, -10, 16, -17, -10, -4,
1105 ], [
1106 90, -3, 2, -6, -10, -29, -24, -26, -21, -15,
1107 15, 2, 16, 1, 25, 4, 21, -16, 6, -18,
1108 3, -8, 5, -24, 8, 7, -9, 4, -1, 3,
1109 5, 18, -1, -7, 2, -1, 2, -1, -19, 3,
1110 ], [
1111 57, 0, 27, 13, -14, -5, -7, 11, -15, 4,
1112 5, 16, 13, 29, 6, -13, 0, -25, -16, -31,
1113 -12, -22, 2, -23, -6, 16, -7, 14, -2, 3,
1114 0, -12, 0, -33, 9, 13, 28, -3, 14, 7,
1115 ], [
1116 79, -11, 15, -4, -18, -23, -20, -5, -30, -7,
1117 7, 2, 21, 21, 8, 3, 10, -28, -4, -31,
1118 -6, -25, 3, -37, -4, 7, -20, 0, -4, -4,
1119 11, -7, 6, -8, 27, 22, 14, 12, 5, 16,
1120 ], [
1121 47, 30, 15, 14, 14, 9, 9, -23, 13, -10,
1122 -12, -7, -16, -15, -3, -3, -1, 14, 9, 12,
1123 9, 8, 0, 10, -14, 4, -9, 2, -5, 8,
1124 -13, -3, -18, -10, -45, -3, 16, -4, 4, 0,
1125 ], [
1126 69, 17, 3, -3, 10, -8, -3, -40, -1, -21,
1127 -10, -21, -8, -23, -1, 13, 8, 11, 21, 11,
1128 15, 4, 0, -2, -13, -5, -23, -12, -7, 0,
1129 -1, 0, -10, 14, -28, 5, 1, 11, -5, 7,
1130 ], [
1131 36, 21, 28, 16, 6, 16, 12, -2, 4, -2,
1132 -20, -7, -11, 4, -20, -4, -12, 2, -1, 0,
1133 0, -8, -2, -2, -27, 4, -21, -2, -9, 0,
1134 -6, -29, -9, -10, -21, 21, 28, 10, 29, 11,
1135 ], [
1136 58, 9, 16, -1, 2, -2, 0, -19, -10, -13,
1137 -17, -21, -3, -3, -19, 12, -2, 0, 10, -1,
1138 5, -12, 0, -15, -26, -5, -34, -16, -11, -7,
1139 4, -25, -2, 14, -3, 29, 13, 25, 20, 20,
1140 ], [
1141 55, 28, 21, 27, -2, 7, -8, -20, 4, 1,
1142 1, 18, 5, 4, 5, -16, 2, -8, 5, -5,
1143 19, 2, 14, 3, 6, 0, -18, -4, 2, -11,
1144 -8, 18, -11, -10, -29, -3, 10, -13, -8, -3,
1145 ], [
1146 77, 16, 9, 9, -6, -11, -21, -37, -10, -10,
1147 4, 5, 13, -3, 7, 0, 13, -11, 17, -6,
1148 25, -1, 15, -9, 7, -9, -32, -19, 0, -18,
1149 2, 22, -3, 15, -12, 5, -4, 2, -17, 5,
1150 ], [
1151 44, 20, 34, 29, -10, 13, -4, 0, -4, 9,
1152 -5, 19, 10, 24, -11, -17, -8, -20, -5, -19,
1153 9, -14, 12, -9, -6, 0, -30, -9, 0, -19,
1154 -2, -7, -2, -10, -5, 20, 21, 1, 17, 9,
1155 ], [
1156 66, 8, 23, 11, -14, -5, -17, -16, -19, -2,
1157 -3, 5, 18, 17, -10, 0, 1, -23, 6, -20,
1158 15, -18, 14, -22, -5, -10, -44, -23, -2, -26,
1159 9, -3, 4, 14, 12, 29, 7, 16, 7, 18,
1160 ], [
1161 18, 9, -17, -4, 11, 3, 0, 11, 7, 4,
1162 10, 3, 10, -18, 24, -3, 14, 7, 4, 10,
1163 -16, 1, -27, -4, -27, 17, 12, 30, 0, 35,
1164 -9, -3, -12, -36, -35, -30, -2, -13, 2, -11,
1165 ], [
1166 40, -2, -29, -22, 7, -14, -12, -5, -7, -7,
1167 12, -9, 18, -26, 26, 14, 24, 4, 16, 9,
1168 -10, -2, -26, -18, -26, 7, -1, 15, -1, 27,
1169 2, 0, -4, -11, -17, -21, -16, 1, -7, -3,
1170 ], [
1171 8, 1, -3, -2, 3, 10, 3, 32, -1, 12,
1172 2, 4, 15, 1, 7, -3, 2, -4, -6, -3,
1173 -26, -15, -29, -17, -40, 17, 0, 26, -2, 27,
1174 -2, -29, -4, -36, -10, -6, 9, 0, 27, 0,
1175 ], [
1176 30, -11, -15, -20, 0, -8, -9, 15, -15, 0,
1177 5, -9, 23, -6, 8, 13, 13, -7, 5, -3,
1178 -20, -19, -27, -31, -39, 7, -13, 11, -4, 19,
1179 8, -25, 3, -11, 7, 2, -4, 16, 18, 9,
1180 ], [
1181 26, 7, -11, 8, -5, 1, -17, 14, -1, 15,
1182 24, 30, 32, 1, 33, -16, 18, -14, 0, -8,
1183 -6, -4, -12, -12, -6, 13, 2, 23, 8, 15,
1184 -4, 17, -5, -36, -18, -30, -8, -22, -10, -14,
1185 ], [
1186 48, -4, -23, -9, -9, -17, -30, -2, -16, 3,
1187 26, 16, 40, -6, 35, 1, 28, -17, 12, -9,
1188 0, -8, -11, -25, -5, 3, -10, 8, 6, 7,
1189 6, 22, 1, -11, -1, -21, -22, -7, -19, -5,
1190 ], [
1191 15, 0, 2, 10, -13, 7, -14, 35, -10, 23,
1192 16, 31, 37, 21, 16, -17, 6, -26, -10, -21,
1193 -16, -21, -13, -25, -19, 13, -8, 19, 5, 7,
1194 1, -8, 2, -36, 5, -6, 3, -8, 15, -1,
1195 ], [
1196 37, -12, -9, -7, -17, -11, -26, 18, -25, 12,
1197 19, 17, 45, 14, 17, 0, 17, -30, 1, -22,
1198 -10, -25, -12, -38, -18, 3, -22, 4, 3, 0,
1199 13, -3, 10, -11, 23, 2, -10, 7, 5, 7,
1200 ], [
1201 5, 29, -9, 11, 15, 22, 3, 0, 18, 8,
1202 -1, 6, 7, -23, 6, -6, 5, 12, 15, 21,
1203 5, 8, -17, 9, -28, 0, -11, 6, 2, 12,
1204 -11, 0, -14, -13, -49, -22, -8, -9, 4, -9,
1205 ], [
1206 27, 16, -21, -6, 12, 3, -9, -16, 3, -2,
1207 1, -7, 15, -31, 7, 10, 16, 9, 27, 21,
1208 11, 5, -16, -3, -26, -9, -24, -7, 0, 4,
1209 0, 4, -6, 11, -32, -14, -23, 6, -5, -1,
1210 ], [
1211 -4, 20, 3, 13, 8, 28, 6, 21, 10, 16,
1212 -8, 7, 12, -3, -11, -7, -5, 0, 4, 8,
1213 -4, -8, -18, -3, -41, 0, -22, 2, 0, 4,
1214 -5, -25, -6, -14, -25, 1, 2, 4, 29, 2,
1215 ], [
1216 17, 8, -8, -4, 4, 10, -6, 5, -4, 5,
1217 -6, -6, 20, -10, -9, 9, 4, -2, 16, 7,
1218 1, -12, -17, -16, -39, -9, -36, -12, -2, -3,
1219 6, -21, 1, 11, -7, 10, -11, 20, 20, 11,
1220 ], [
1221 13, 27, -3, 24, -1, 19, -14, 3, 9, 20,
1222 12, 33, 29, -3, 15, -20, 9, -9, 11, 3,
1223 16, 2, -2, 2, -7, -3, -20, 0, 10, -7,
1224 -7, 22, -7, -13, -33, -23, -14, -18, -7, -12,
1225 ], [
1226 35, 15, -15, 6, -4, 1, -27, -12, -5, 8,
1227 15, 19, 37, -11, 16, -2, 20, -12, 23, 2,
1228 22, -1, -1, -11, -5, -13, -34, -14, 8, -14,
1229 4, 26, 0, 11, -16, -14, -29, -2, -17, -3,
1230 ], [
1231 3, 19, 9, 26, -8, 26, -10, 24, 0, 28,
1232 5, 33, 34, 17, -2, -20, -1, -22, 0, -10,
1233 6, -14, -3, -10, -20, -4, -32, -4, 7, -15,
1234 0, -3, 0, -13, -9, 0, -3, -4, 17, 0,
1235 ], [
1236 25, 7, -2, 8, -12, 7, -23, 8, -13, 16,
1237 7, 20, 42, 9, 0, -3, 9, -25, 12, -10,
1238 12, -18, -2, -24, -19, -13, -46, -19, 5, -22,
1239 10, 0, 8, 11, 8, 9, -17, 11, 7, 8,
1240 ], [
1241 -25, -7, 2, -8, 12, -7, 23, -8, 13, -16,
1242 -7, -20, -42, -9, 0, 3, -9, 25, -12, 10,
1243 -12, 18, 2, 24, 19, 13, 46, 19, -5, 22,
1244 -10, 0, -8, -11, -8, -9, 17, -11, -7, -8,
1245 ], [
1246 -3, -19, -9, -26, 8, -26, 10, -24, 0, -28,
1247 -5, -33, -34, -17, 2, 20, 1, 22, 0, 10,
1248 -6, 14, 3, 10, 20, 4, 32, 4, -7, 15,
1249 0, 3, 0, 13, 9, 0, 3, 4, -17, 0,
1250 ], [
1251 -35, -15, 15, -6, 4, -1, 27, 12, 5, -8,
1252 -15, -19, -37, 11, -16, 2, -20, 12, -23, -2,
1253 -22, 1, 1, 11, 5, 13, 34, 14, -8, 14,
1254 -4, -26, 0, -11, 16, 14, 29, 2, 17, 3,
1255 ], [
1256 -13, -27, 3, -24, 1, -19, 14, -3, -9, -20,
1257 -12, -33, -29, 3, -15, 20, -9, 9, -11, -3,
1258 -16, -2, 2, -2, 7, 3, 20, 0, -10, 7,
1259 7, -22, 7, 13, 33, 23, 14, 18, 7, 12,
1260 ], [
1261 -17, -8, 8, 4, -4, -10, 6, -5, 4, -5,
1262 6, 6, -20, 10, 9, -9, -4, 2, -16, -7,
1263 -1, 12, 17, 16, 39, 9, 36, 12, 2, 3,
1264 -6, 21, -1, -11, 7, -10, 11, -20, -20, -11,
1265 ], [
1266 4, -20, -3, -13, -8, -28, -6, -21, -10, -16,
1267 8, -7, -12, 3, 11, 7, 5, 0, -4, -8,
1268 4, 8, 18, 3, 41, 0, 22, -2, 0, -4,
1269 5, 25, 6, 14, 25, -1, -2, -4, -29, -2,
1270 ], [
1271 -27, -16, 21, 6, -12, -3, 9, 16, -3, 2,
1272 -1, 7, -15, 31, -7, -10, -16, -9, -27, -21,
1273 -11, -5, 16, 3, 26, 9, 24, 7, 0, -4,
1274 0, -4, 6, -11, 32, 14, 23, -6, 5, 1,
1275 ], [
1276 -5, -29, 9, -11, -15, -22, -3, 0, -18, -8,
1277 1, -6, -7, 23, -6, 6, -5, -12, -15, -21,
1278 -5, -8, 17, -9, 28, 0, 11, -6, -2, -12,
1279 11, 0, 14, 13, 49, 22, 8, 9, -4, 9,
1280 ], [
1281 -37, 12, 9, 7, 17, 11, 26, -18, 25, -12,
1282 -19, -17, -45, -14, -17, 0, -17, 30, -1, 22,
1283 10, 25, 12, 38, 18, -3, 22, -4, -3, 0,
1284 -13, 3, -10, 11, -23, -2, 10, -7, -5, -7,
1285 ], [
1286 -15, 0, -2, -10, 13, -7, 14, -35, 10, -23,
1287 -16, -31, -37, -21, -16, 17, -6, 26, 10, 21,
1288 16, 21, 13, 25, 19, -13, 8, -19, -5, -7,
1289 -1, 8, -2, 36, -5, 6, -3, 8, -15, 1,
1290 ], [
1291 -48, 4, 23, 9, 9, 17, 30, 2, 16, -3,
1292 -26, -16, -40, 6, -35, -1, -28, 17, -12, 9,
1293 0, 8, 11, 25, 5, -3, 10, -8, -6, -7,
1294 -6, -22, -1, 11, 1, 21, 22, 7, 19, 5,
1295 ], [
1296 -26, -7, 11, -8, 5, -1, 17, -14, 1, -15,
1297 -24, -30, -32, -1, -33, 16, -18, 14, 0, 8,
1298 6, 4, 12, 12, 6, -13, -2, -23, -8, -15,
1299 4, -17, 5, 36, 18, 30, 8, 22, 10, 14,
1300 ], [
1301 -30, 11, 15, 20, 0, 8, 9, -15, 15, 0,
1302 -5, 9, -23, 6, -8, -13, -13, 7, -5, 3,
1303 20, 19, 27, 31, 39, -7, 13, -11, 4, -19,
1304 -8, 25, -3, 11, -7, -2, 4, -16, -18, -9,
1305 ], [
1306 -8, -1, 3, 2, -3, -10, -3, -32, 1, -12,
1307 -2, -4, -15, -1, -7, 3, -2, 4, 6, 3,
1308 26, 15, 29, 17, 40, -17, 0, -26, 2, -27,
1309 2, 29, 4, 36, 10, 6, -9, 0, -27, 0,
1310 ], [
1311 -40, 2, 29, 22, -7, 14, 12, 5, 7, 7,
1312 -12, 9, -18, 26, -26, -14, -24, -4, -16, -9,
1313 10, 2, 26, 18, 26, -7, 1, -15, 1, -27,
1314 -2, 0, 4, 11, 17, 21, 16, -1, 7, 3,
1315 ], [
1316 -18, -9, 17, 4, -11, -3, 0, -11, -7, -4,
1317 -10, -3, -10, 18, -24, 3, -14, -7, -4, -10,
1318 16, -1, 27, 4, 27, -17, -12, -30, 0, -35,
1319 9, 3, 12, 36, 35, 30, 2, 13, -2, 11,
1320 ], [
1321 -66, -8, -23, -11, 14, 5, 17, 16, 19, 2,
1322 3, -5, -18, -17, 10, 0, -1, 23, -6, 20,
1323 -15, 18, -14, 22, 5, 10, 44, 23, 2, 26,
1324 -9, 3, -4, -14, -12, -29, -7, -16, -7, -18,
1325 ], [
1326 -44, -20, -34, -29, 10, -13, 4, 0, 4, -9,
1327 5, -19, -10, -24, 11, 17, 8, 20, 5, 19,
1328 -9, 14, -12, 9, 6, 0, 30, 9, 0, 19,
1329 2, 7, 2, 10, 5, -20, -21, -1, -17, -9,
1330 ], [
1331 -77, -16, -9, -9, 6, 11, 21, 37, 10, 10,
1332 -4, -5, -13, 3, -7, 0, -13, 11, -17, 6,
1333 -25, 1, -15, 9, -7, 9, 32, 19, 0, 18,
1334 -2, -22, 3, -15, 12, -5, 4, -2, 17, -5,
1335 ], [
1336 -55, -28, -21, -27, 2, -7, 8, 20, -4, -1,
1337 -1, -18, -5, -4, -5, 16, -2, 8, -5, 5,
1338 -19, -2, -14, -3, -6, 0, 18, 4, -2, 11,
1339 8, -18, 11, 10, 29, 3, -10, 13, 8, 3,
1340 ], [
1341 -58, -9, -16, 1, -2, 2, 0, 19, 10, 13,
1342 17, 21, 3, 3, 19, -12, 2, 0, -10, 1,
1343 -5, 12, 0, 15, 26, 5, 34, 16, 11, 7,
1344 -4, 25, 2, -14, 3, -29, -13, -25, -20, -20,
1345 ], [
1346 -36, -21, -28, -16, -6, -16, -12, 2, -4, 2,
1347 20, 7, 11, -4, 20, 4, 12, -2, 1, 0,
1348 0, 8, 2, 2, 27, -4, 21, 2, 9, 0,
1349 6, 29, 9, 10, 21, -21, -28, -10, -29, -11,
1350 ], [
1351 -69, -17, -3, 3, -10, 8, 3, 40, 1, 21,
1352 10, 21, 8, 23, 1, -13, -8, -11, -21, -11,
1353 -15, -4, 0, 2, 13, 5, 23, 12, 7, 0,
1354 1, 0, 10, -14, 28, -5, -1, -11, 5, -7,
1355 ], [
1356 -47, -30, -15, -14, -14, -9, -9, 23, -13, 10,
1357 12, 7, 16, 15, 3, 3, 1, -14, -9, -12,
1358 -9, -8, 0, -10, 14, -4, 9, -2, 5, -8,
1359 13, 3, 18, 10, 45, 3, -16, 4, -4, 0,
1360 ], [
1361 -79, 11, -15, 4, 18, 23, 20, 5, 30, 7,
1362 -7, -2, -21, -21, -8, -3, -10, 28, 4, 31,
1363 6, 25, -3, 37, 4, -7, 20, 0, 4, 4,
1364 -11, 7, -6, 8, -27, -22, -14, -12, -5, -16,
1365 ], [
1366 -57, 0, -27, -13, 14, 5, 7, -11, 15, -4,
1367 -5, -16, -13, -29, -6, 13, 0, 25, 16, 31,
1368 12, 22, -2, 23, 6, -16, 7, -14, 2, -3,
1369 0, 12, 0, 33, -9, -13, -28, 3, -14, -7,
1370 ], [
1371 -90, 3, -2, 6, 10, 29, 24, 26, 21, 15,
1372 -15, -2, -16, -1, -25, -4, -21, 16, -6, 18,
1373 -3, 8, -5, 24, -8, -7, 9, -4, 1, -3,
1374 -5, -18, 1, 7, -2, 1, -2, 1, 19, -3,
1375 ], [
1376 -67, -8, -14, -11, 7, 11, 11, 9, 7, 3,
1377 -13, -16, -8, -9, -24, 12, -10, 13, 5, 17,
1378 2, 4, -3, 10, -6, -17, -4, -19, 0, -11,
1379 6, -13, 9, 33, 14, 10, -16, 17, 10, 4,
1380 ], [
1381 -71, 10, -9, 17, 1, 20, 3, 8, 21, 18,
1382 6, 24, 0, -1, 0, -16, -6, 5, 0, 13,
1383 17, 19, 11, 29, 25, -11, 11, -6, 13, -15,
1384 -7, 29, 0, 8, -11, -22, -20, -21, -17, -18,
1385 ], [
1386 -49, -2, -21, 0, -1, 2, -9, -8, 6, 6,
1387 8, 10, 8, -9, 2, 0, 4, 2, 13, 12,
1388 23, 15, 12, 16, 26, -21, -2, -21, 11, -23,
1389 4, 33, 7, 33, 6, -13, -34, -5, -27, -10,
1390 ], [
1391 -82, 1, 4, 19, -6, 27, 6, 29, 12, 26,
1392 -1, 24, 5, 18, -17, -17, -17, -6, -10, 0,
1393 7, 2, 9, 16, 12, -11, 0, -11, 9, -23,
1394 0, 3, 8, 8, 13, 1, -8, -7, 7, -6,
1395 ], [
1396 -60, -10, -7, 1, -9, 8, -6, 13, -2, 15,
1397 1, 10, 13, 11, -15, 0, -6, -9, 1, 0,
1398 13, -1, 11, 3, 13, -21, -13, -26, 7, -31,
1399 10, 7, 16, 33, 31, 10, -22, 8, -1, 2,
1400 ], [
1401 -3, 7, -5, -5, 8, -2, 17, -9, 18, -24,
1402 -2, -19, -10, -4, 28, 17, 5, 28, -2, 7,
1403 -4, 15, 7, 8, 6, 23, 13, 21, -14, 20,
1404 -17, -18, -11, -33, -30, -11, 23, -13, -5, -9,
1405 ], [
1406 18, -4, -17, -23, 4, -20, 4, -26, 3, -36,
1407 0, -32, -2, -12, 29, 34, 16, 24, 10, 6,
1408 0, 12, 8, -4, 8, 13, 0, 6, -16, 12,
1409 -5, -13, -3, -7, -13, -3, 8, 2, -14, 0,
1410 ], [
1411 -13, 0, 8, -3, 0, 4, 21, 11, 9, -16,
1412 -10, -18, -5, 16, 10, 16, -5, 15, -13, -5,
1413 -15, -1, 6, -4, -6, 23, 2, 16, -17, 12,
1414 -10, -44, -3, -33, -6, 12, 34, 1, 20, 3,
1415 ], [
1416 8, -12, -3, -21, -3, -14, 8, -5, -4, -28,
1417 -7, -32, 2, 8, 12, 34, 4, 12, -1, -6,
1418 -9, -4, 7, -17, -4, 13, -11, 1, -19, 4,
1419 0, -39, 4, -7, 11, 21, 20, 16, 10, 11,
1420 ], [
1421 4, 6, 0, 7, -8, -4, 0, -6, 9, -13,
1422 11, 7, 11, 15, 37, 4, 9, 5, -5, -11,
1423 5, 9, 22, 1, 27, 18, 4, 14, -5, 0,
1424 -12, 3, -4, -32, -14, -12, 17, -22, -17, -11,
1425 ], [
1426 26, -6, -11, -10, -12, -23, -12, -23, -5, -24,
1427 13, -5, 19, 8, 38, 21, 20, 2, 6, -12,
1428 11, 5, 23, -11, 29, 9, -9, 0, -7, -6,
1429 -1, 7, 2, -7, 3, -3, 2, -6, -27, -3,
1430 ], [
1431 -6, -2, 14, 9, -16, 1, 3, 14, 0, -5,
1432 3, 8, 16, 36, 19, 3, -1, -6, -17, -24,
1433 -4, -7, 21, -11, 14, 18, -7, 9, -9, -7,
1434 -6, -22, 3, -33, 10, 11, 28, -7, 7, 0,
1435 ], [
1436 16, -14, 2, -8, -20, -17, -9, -2, -14, -16,
1437 6, -5, 24, 28, 21, 20, 8, -9, -4, -25,
1438 1, -11, 22, -24, 15, 8, -21, -5, -11, -14,
1439 5, -18, 11, -7, 27, 20, 14, 7, -1, 9,
1440 ], [
1441 -16, 27, 2, 10, 13, 16, 20, -20, 29, -20,
1442 -14, -16, -13, -8, 9, 13, -2, 33, 9, 19,
1443 17, 23, 17, 22, 6, 6, -9, -2, -12, -2,
1444 -20, -13, -13, -10, -45, -4, 16, -8, -2, -7,
1445 ], [
1446 5, 15, -9, -7, 9, -2, 8, -37, 14, -31,
1447 -11, -29, -5, -16, 11, 30, 7, 29, 21, 18,
1448 23, 19, 18, 9, 7, -3, -23, -17, -14, -9,
1449 -8, -9, -6, 15, -27, 4, 2, 6, -12, 1,
1450 ], [
1451 -26, 19, 15, 12, 5, 22, 24, 0, 21, -12,
1452 -21, -15, -8, 11, -7, 12, -14, 20, -2, 6,
1453 7, 6, 16, 9, -6, 5, -21, -7, -15, -10,
1454 -13, -39, -5, -10, -20, 19, 28, 5, 22, 5,
1455 ], [
1456 -4, 6, 3, -5, 1, 4, 11, -16, 6, -23,
1457 -19, -29, 0, 3, -6, 30, -3, 17, 10, 5,
1458 13, 2, 17, -3, -5, -3, -35, -21, -17, -17,
1459 -2, -35, 2, 15, -3, 28, 13, 21, 13, 13,
1460 ], [
1461 -8, 25, 8, 23, -3, 13, 3, -17, 20, -8,
1462 0, 10, 8, 11, 18, 0, 1, 10, 5, 0,
1463 28, 17, 32, 15, 26, 1, -19, -9, -3, -21,
1464 -15, 7, -6, -9, -29, -5, 10, -17, -15, -9,
1465 ], [
1466 13, 13, -3, 5, -7, -4, -9, -34, 5, -20,
1467 2, -3, 16, 3, 20, 17, 11, 7, 17, 0,
1468 34, 13, 33, 2, 28, -8, -32, -24, -5, -29,
1469 -3, 12, 0, 15, -11, 3, -3, -2, -24, -1,
1470 ], [
1471 -18, 17, 21, 25, -11, 19, 6, 3, 11, 0,
1472 -7, 11, 13, 31, 1, 0, -9, -1, -5, -12,
1473 18, 0, 31, 2, 13, 1, -30, -14, -7, -29,
1474 -9, -18, 1, -10, -4, 18, 22, -3, 10, 2,
1475 ], [
1476 3, 5, 9, 7, -15, 1, -5, -13, -2, -12,
1477 -5, -2, 21, 23, 2, 16, 0, -5, 6, -13,
1478 23, -3, 32, -10, 15, -8, -44, -28, -9, -37,
1479 2, -13, 9, 15, 12, 27, 7, 12, 0, 11,
1480 ], [
1481 -44, 6, -30, -8, 9, 10, 11, 14, 23, -5,
1482 8, -4, 14, -12, 37, 14, 12, 26, 4, 16,
1483 -8, 16, -9, 7, -6, 19, 12, 25, -5, 24,
1484 -15, -13, -8, -36, -34, -31, -1, -18, -4, -18,
1485 ], [
1486 -22, -5, -42, -26, 6, -8, -1, -2, 9, -17,
1487 10, -18, 21, -19, 39, 31, 23, 23, 16, 15,
1488 -2, 12, -7, -6, -5, 9, -1, 10, -7, 16,
1489 -4, -9, 0, -10, -17, -22, -16, -2, -14, -9,
1490 ], [
1491 -55, -1, -17, -6, 1, 16, 15, 35, 15, 2,
1492 0, -4, 19, 8, 20, 13, 1, 14, -7, 3,
1493 -18, 0, -10, -5, -19, 19, 0, 21, -8, 16,
1494 -9, -39, 0, -36, -10, -7, 9, -4, 20, -5,
1495 ], [
1496 -33, -13, -29, -24, -1, -1, 2, 18, 0, -9,
1497 3, -17, 27, 0, 21, 30, 12, 11, 5, 2,
1498 -12, -4, -9, -19, -18, 9, -13, 6, -11, 8,
1499 2, -35, 8, -10, 7, 1, -4, 11, 10, 2,
1500 ], [
1501 -36, 5, -24, 4, -7, 7, -6, 17, 14, 5,
1502 22, 22, 35, 8, 46, 1, 17, 3, 0, -2,
1503 2, 10, 5, 0, 14, 15, 2, 18, 2, 4,
1504 -11, 7, -1, -36, -18, -32, -7, -27, -17, -20,
1505 ], [
1506 -14, -7, -36, -13, -10, -10, -18, 0, 0, -5,
1507 25, 8, 43, 0, 48, 18, 27, 0, 12, -3,
1508 7, 6, 7, -13, 15, 5, -11, 3, 0, -2,
1509 0, 12, 6, -10, 0, -23, -22, -11, -26, -12,
1510 ], [
1511 -47, -3, -11, 6, -15, 13, -2, 38, 6, 13,
1512 15, 22, 40, 28, 28, 0, 5, -8, -10, -15,
1513 -7, -7, 4, -13, 1, 14, -9, 14, 0, -2,
1514 -4, -18, 7, -36, 6, -8, 3, -13, 7, -8,
1515 ], [
1516 -25, -15, -22, -11, -18, -4, -15, 22, -8, 2,
1517 17, 9, 48, 20, 30, 17, 16, -11, 1, -16,
1518 -2, -10, 5, -26, 2, 4, -22, 0, -2, -10,
1519 6, -13, 14, -10, 23, 0, -10, 2, -1, 0,
1520 ], [
1521 -57, 26, -22, 7, 14, 28, 14, 3, 35, 0,
1522 -3, -1, 11, -16, 18, 10, 4, 31, 15, 28,
1523 14, 23, 1, 21, -7, 2, -11, 1, -3, 1,
1524 -18, -9, -10, -13, -49, -24, -8, -14, -2, -16,
1525 ], [
1526 -35, 14, -34, -10, 10, 10, 1, -12, 20, -12,
1527 0, -15, 18, -24, 20, 27, 14, 28, 27, 27,
1528 20, 19, 2, 8, -5, -7, -25, -13, -5, -5,
1529 -6, -5, -2, 12, -31, -15, -23, 1, -12, -8,
1530 ], [
1531 -68, 18, -9, 9, 6, 35, 18, 25, 26, 7,
1532 -10, -1, 16, 3, 1, 9, -6, 19, 4, 15,
1533 4, 6, 0, 8, -20, 2, -23, -2, -7, -5,
1534 -12, -35, -1, -13, -24, 0, 3, 0, 22, -4,
1535 ], [
1536 -46, 6, -21, -8, 2, 16, 5, 8, 11, -4,
1537 -8, -15, 24, -4, 2, 26, 3, 16, 16, 14,
1538 9, 2, 1, -4, -19, -7, -36, -17, -9, -13,
1539 0, -31, 5, 12, -7, 8, -11, 15, 13, 4,
1540 ], [
1541 -49, 24, -16, 20, -2, 26, -2, 7, 25, 10,
1542 11, 25, 32, 3, 27, -2, 8, 8, 11, 9,
1543 24, 17, 16, 14, 13, -2, -20, -5, 4, -17,
1544 -14, 12, -3, -13, -33, -25, -14, -23, -15, -19,
1545 ], [
1546 -27, 12, -28, 2, -6, 7, -15, -9, 11, -1,
1547 13, 11, 40, -4, 29, 14, 19, 5, 23, 8,
1548 30, 13, 17, 0, 14, -12, -34, -20, 2, -25,
1549 -2, 16, 4, 12, -15, -16, -29, -7, -24, -10,
1550 ], [
1551 -60, 16, -3, 22, -10, 32, 0, 28, 17, 18,
1552 3, 25, 37, 23, 10, -3, -2, -3, 0, -3,
1553 14, 0, 14, 1, 0, -2, -32, -9, 1, -25,
1554 -7, -13, 5, -13, -8, -1, -2, -8, 10, -6,
1555 ], [
1556 -38, 4, -15, 4, -14, 13, -12, 11, 2, 6,
1557 6, 11, 45, 16, 11, 13, 7, -6, 12, -4,
1558 20, -3, 16, -12, 1, -12, -46, -24, 0, -33,
1559 3, -9, 12, 12, 8, 7, -17, 6, 0, 2
1560 ]
1561 ];
1562 const RA144_CODEBOOK2: [u16; 128] = [
1563 12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
1564 12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
1565 11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
1566 11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
1567 10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
1568 10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
1569 10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
1570 10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
1571 14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
1572 15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
1573 13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
1574 12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
1575 12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
1576 13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
1577 12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
1578 12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
1579 ];
1580 const RA144_VECTORS2: [[i8; BLOCKSIZE]; 128] = [
1581 [
1582 73, -32, -60, -15, -26, 59, 2, -33, 30, -10,
1583 -3, -17, 8, 30, -1, -26, -4, -22, 10, 16,
1584 -36, -5, -11, 56, 37, 6, -10, -5, -13, -3,
1585 6, -5, 11, 4, -19, -5, -16, 41, 24, 13,
1586 ], [
1587 4, -11, -37, 23, -5, 46, -2, -29, -5, -39,
1588 -21, -9, 0, 49, 12, -9, -16, -26, 22, 15,
1589 -45, -20, -5, 40, 22, 17, -26, 31, -14, 2,
1590 -14, 10, 30, 20, -27, -9, -39, 39, 18, 5,
1591 ], [
1592 34, -25, -48, -28, -11, 34, -2, -41, 9, -7,
1593 -17, 21, 20, 24, -17, -33, 0, -24, 10, 42,
1594 3, -5, 10, 42, 11, 8, -3, 3, 16, 9,
1595 22, -2, 0, -33, -10, 18, 7, 58, 10, 28,
1596 ], [
1597 -34, -4, -25, 10, 9, 21, -7, -36, -26, -36,
1598 -35, 28, 12, 42, -3, -16, -12, -28, 21, 42,
1599 -5, -21, 16, 26, -4, 19, -19, 39, 15, 15,
1600 1, 13, 19, -17, -17, 14, -15, 55, 4, 19,
1601 ], [
1602 28, -20, -51, -14, -6, 7, 0, -26, 27, -4,
1603 18, -40, -6, 16, -1, -15, 0, -55, -5, -16,
1604 -19, 14, -3, 49, 14, 1, -22, -30, -12, 0,
1605 24, 15, 9, -17, -45, -29, 4, 28, 51, 35,
1606 ], [
1607 -40, 0, -28, 24, 14, -5, -4, -21, -7, -33,
1608 0, -32, -15, 35, 12, 1, -11, -58, 5, -16,
1609 -28, 0, 1, 33, 0, 11, -39, 5, -14, 6,
1610 3, 31, 28, -1, -53, -33, -19, 25, 46, 26,
1611 ], [
1612 -11, -14, -39, -27, 9, -17, -4, -33, 6, 0,
1613 4, -1, 5, 10, -17, -22, 5, -57, -5, 9,
1614 20, 13, 18, 35, -11, 3, -16, -22, 17, 13,
1615 40, 19, -1, -55, -35, -5, 27, 44, 37, 49,
1616 ], [
1617 -80, 6, -16, 11, 30, -30, -9, -28, -28, -29,
1618 -13, 6, -2, 28, -3, -5, -7, -60, 5, 9,
1619 11, -1, 24, 19, -27, 13, -32, 13, 15, 19,
1620 19, 35, 17, -39, -43, -9, 4, 42, 32, 41,
1621 ], [
1622 78, -21, -43, 4, -38, 17, 17, -5, 55, 24,
1623 -15, -36, 14, 4, 24, -24, 12, 5, 17, 31,
1624 -54, -5, -2, 27, 43, -12, 2, 9, -9, -15,
1625 22, -3, 28, 21, -20, 3, 20, 28, 9, -5,
1626 ], [
1627 9, -1, -20, 43, -17, 3, 12, 0, 20, -4,
1628 -33, -29, 6, 22, 38, -7, 0, 1, 29, 30,
1629 -63, -21, 3, 11, 27, -1, -14, 45, -10, -9,
1630 1, 12, 47, 37, -28, 0, -2, 26, 4, -13,
1631 ], [
1632 39, -14, -30, -8, -22, -8, 12, -12, 34, 27,
1633 -29, 2, 26, -2, 8, -31, 16, 3, 17, 57,
1634 -14, -6, 19, 13, 16, -10, 8, 17, 20, -2,
1635 38, 0, 17, -16, -11, 27, 44, 45, -4, 8,
1636 ], [
1637 -29, 5, -7, 30, -1, -21, 7, -7, 0, 0,
1638 -47, 9, 18, 15, 22, -14, 4, 0, 28, 57,
1639 -23, -21, 25, -2, 1, 0, -7, 53, 19, 3,
1640 17, 15, 36, 0, -19, 24, 21, 43, -9, 0,
1641 ], [
1642 33, -10, -34, 5, -17, -35, 15, 1, 53, 30,
1643 6, -59, 0, -10, 24, -13, 17, -27, 1, -1,
1644 -37, 13, 4, 20, 20, -18, -10, -16, -8, -11,
1645 39, 18, 26, 0, -46, -20, 41, 15, 37, 15,
1646 ], [
1647 -35, 10, -11, 44, 3, -48, 10, 6, 17, 2,
1648 -11, -51, -8, 8, 38, 3, 4, -31, 12, -2,
1649 -46, -1, 10, 4, 5, -7, -26, 19, -10, -5,
1650 18, 34, 45, 15, -54, -24, 18, 13, 31, 7,
1651 ], [
1652 -5, -3, -21, -7, -2, -60, 10, -5, 32, 34,
1653 -7, -20, 11, -16, 8, -20, 21, -29, 1, 24,
1654 2, 13, 27, 6, -5, -15, -3, -8, 21, 1,
1655 55, 21, 15, -38, -37, 3, 65, 32, 23, 30,
1656 ], [
1657 -74, 17, 0, 31, 18, -73, 5, 0, -3, 5,
1658 -25, -12, 3, 1, 22, -3, 9, -33, 12, 24,
1659 -6, -2, 33, -9, -21, -5, -20, 27, 19, 7,
1660 34, 37, 34, -22, -44, 0, 41, 29, 17, 21,
1661 ], [
1662 76, -35, -31, -28, -49, 43, -40, 0, 29, -14,
1663 8, 5, 10, 18, -26, -46, 0, 7, 6, 3,
1664 -25, -7, -2, 40, 28, 14, 18, -3, -27, -28,
1665 -8, -45, -13, 34, -13, -27, -15, 31, 12, 3,
1666 ], [
1667 7, -15, -9, 9, -28, 29, -45, 5, -6, -43,
1668 -9, 12, 2, 36, -12, -30, -11, 3, 17, 3,
1669 -34, -22, 3, 24, 12, 24, 2, 32, -28, -22,
1670 -29, -29, 5, 50, -21, -31, -38, 29, 7, -5,
1671 ], [
1672 36, -29, -19, -41, -34, 18, -45, -6, 8, -10,
1673 -5, 43, 23, 11, -42, -53, 5, 5, 6, 30,
1674 14, -8, 20, 26, 1, 16, 25, 4, 3, -15,
1675 7, -41, -23, -3, -4, -3, 8, 48, -1, 17,
1676 ], [
1677 -32, -8, 3, -2, -13, 4, -50, -1, -27, -39,
1678 -23, 51, 15, 30, -27, -37, -7, 1, 17, 29,
1679 5, -23, 25, 10, -14, 26, 8, 41, 1, -9,
1680 -13, -26, -5, 12, -12, -7, -14, 45, -6, 9,
1681 ], [
1682 31, -24, -23, -27, -29, -9, -43, 8, 26, -7,
1683 30, -17, -4, 3, -26, -35, 5, -24, -10, -28,
1684 -9, 12, 5, 33, 5, 8, 5, -29, -26, -24,
1685 9, -23, -14, 12, -39, -52, 5, 18, 39, 24,
1686 ], [
1687 -37, -3, 0, 10, -7, -22, -48, 12, -8, -36,
1688 12, -9, -12, 22, -12, -19, -6, -28, 0, -29,
1689 -18, -3, 11, 17, -10, 18, -10, 7, -27, -18,
1690 -11, -7, 3, 28, -47, -55, -18, 15, 34, 16,
1691 ], [
1692 -8, -17, -10, -40, -13, -34, -47, 0, 5, -4,
1693 16, 21, 8, -2, -42, -43, 10, -26, -10, -2,
1694 31, 11, 27, 19, -21, 10, 12, -20, 3, -11,
1695 25, -20, -25, -25, -29, -28, 28, 34, 25, 38,
1696 ], [
1697 -77, 2, 11, -1, 7, -47, -52, 5, -29, -33,
1698 -1, 28, 0, 15, -28, -26, -2, -30, 0, -2,
1699 22, -4, 33, 3, -36, 21, -3, 15, 2, -5,
1700 4, -4, -6, -9, -37, -31, 5, 32, 20, 30,
1701 ], [
1702 81, -25, -14, -8, -61, 0, -25, 28, 54, 20,
1703 -3, -14, 17, -8, 0, -44, 16, 35, 13, 18,
1704 -43, -7, 6, 11, 33, -4, 30, 11, -22, -40,
1705 6, -43, 3, 50, -14, -18, 22, 18, -1, -16,
1706 ], [
1707 12, -4, 8, 29, -39, -12, -30, 33, 19, -8,
1708 -21, -6, 8, 9, 13, -28, 4, 31, 24, 18,
1709 -52, -23, 12, -4, 18, 5, 14, 47, -24, -34,
1710 -14, -27, 22, 66, -22, -22, -1, 16, -6, -24,
1711 ], [
1712 41, -18, -2, -21, -45, -24, -30, 21, 33, 24,
1713 -17, 24, 29, -15, -16, -51, 21, 33, 13, 45,
1714 -3, -8, 28, -2, 7, -2, 37, 19, 7, -27,
1715 22, -39, -7, 12, -5, 5, 45, 35, -15, -1,
1716 ], [
1717 -27, 1, 20, 17, -24, -38, -35, 26, -1, -4,
1718 -35, 32, 21, 3, -2, -35, 8, 29, 24, 44,
1719 -12, -24, 34, -18, -8, 7, 21, 55, 5, -21,
1720 2, -23, 11, 28, -13, 1, 22, 33, -21, -10,
1721 ], [
1722 36, -13, -5, -7, -40, -51, -28, 36, 52, 27,
1723 18, -36, 2, -22, 0, -33, 21, 2, -3, -13,
1724 -26, 11, 14, 4, 10, -10, 18, -14, -22, -36,
1725 24, -21, 1, 28, -40, -42, 42, 5, 25, 5,
1726 ], [
1727 -32, 6, 17, 31, -19, -65, -33, 41, 16, -1,
1728 0, -29, -6, -4, 13, -17, 9, -1, 8, -14,
1729 -35, -3, 19, -11, -4, 0, 1, 21, -23, -30,
1730 3, -5, 20, 44, -48, -46, 19, 3, 20, -3,
1731 ], [
1732 -3, -7, 6, -20, -25, -77, -32, 29, 31, 30,
1733 4, 2, 14, -29, -16, -40, 26, 0, -3, 12,
1734 13, 10, 36, -9, -15, -8, 24, -6, 7, -22,
1735 40, -17, -8, -9, -31, -18, 66, 22, 11, 19,
1736 ], [
1737 -72, 13, 29, 18, -4, -90, -37, 34, -4, 1,
1738 -13, 9, 6, -11, -2, -24, 13, -3, 7, 11,
1739 4, -4, 42, -25, -31, 1, 8, 29, 6, -17,
1740 19, -2, 10, 6, -38, -22, 42, 19, 6, 11,
1741 ], [
1742 116, -20, -68, -30, -28, 83, 28, -18, 32, -22,
1743 -13, -21, 5, 28, 5, -7, -24, -8, -22, 17,
1744 -23, 30, -25, 45, 15, -9, -11, -18, 22, -10,
1745 4, -2, 19, -12, 23, 3, -43, 2, 12, -4,
1746 ], [
1747 47, 0, -45, 7, -7, 69, 23, -13, -2, -51,
1748 -32, -14, -3, 47, 19, 8, -37, -11, -10, 16,
1749 -32, 15, -19, 29, 0, 1, -28, 18, 20, -4,
1750 -16, 13, 38, 3, 15, 0, -66, 0, 7, -13,
1751 ], [
1752 77, -13, -56, -43, -13, 57, 23, -26, 11, -19,
1753 -27, 16, 17, 22, -10, -15, -19, -10, -22, 43,
1754 16, 30, -2, 31, -11, -6, -5, -9, 52, 2,
1755 20, 0, 8, -50, 33, 27, -19, 19, -1, 9,
1756 ], [
1757 8, 6, -33, -4, 7, 44, 18, -21, -23, -48,
1758 -46, 24, 9, 40, 3, 1, -32, -13, -11, 43,
1759 7, 14, 3, 15, -26, 3, -21, 26, 50, 8,
1760 0, 16, 27, -34, 25, 23, -43, 17, -6, 1,
1761 ], [
1762 71, -9, -59, -29, -8, 30, 26, -11, 30, -16,
1763 8, -44, -9, 14, 5, 2, -19, -40, -38, -15,
1764 -7, 50, -17, 38, -7, -14, -24, -43, 22, -6,
1765 22, 19, 17, -34, -2, -20, -23, -10, 39, 16,
1766 ], [
1767 2, 11, -36, 9, 13, 17, 21, -6, -5, -45,
1768 -10, -36, -18, 33, 19, 19, -31, -44, -27, -15,
1769 -16, 34, -11, 22, -22, -4, -40, -7, 21, 0,
1770 1, 35, 36, -18, -10, -24, -46, -12, 34, 8,
1771 ], [
1772 32, -2, -47, -42, 7, 5, 21, -18, 9, -12,
1773 -5, -5, 2, 8, -10, -4, -14, -42, -38, 10,
1774 33, 49, 5, 24, -33, -12, -17, -35, 52, 6,
1775 38, 22, 7, -72, 7, 3, 0, 6, 25, 30,
1776 ], [
1777 -36, 18, -24, -3, 28, -7, 16, -13, -26, -41,
1778 -24, 1, -5, 26, 3, 12, -27, -46, -27, 10,
1779 24, 34, 10, 8, -49, -2, -34, 0, 51, 12,
1780 17, 38, 25, -56, 0, 0, -22, 3, 20, 22,
1781 ], [
1782 121, -9, -50, -10, -40, 40, 43, 9, 58, 12,
1783 -25, -41, 11, 2, 31, -5, -8, 19, -15, 32,
1784 -41, 30, -16, 16, 20, -28, 0, -3, 26, -22,
1785 19, 0, 36, 4, 22, 12, -6, -9, -1, -24,
1786 ], [
1787 52, 10, -27, 27, -18, 26, 38, 14, 23, -16,
1788 -44, -33, 3, 20, 45, 10, -20, 15, -3, 31,
1789 -50, 14, -10, 0, 5, -17, -15, 32, 24, -16,
1790 -1, 15, 55, 20, 14, 8, -29, -12, -7, -32,
1791 ], [
1792 82, -3, -38, -23, -24, 15, 38, 2, 37, 15,
1793 -39, -2, 23, -4, 15, -12, -3, 17, -15, 58,
1794 -1, 29, 6, 2, -5, -26, 7, 4, 56, -9,
1795 35, 3, 25, -33, 32, 36, 17, 7, -15, -9,
1796 ], [
1797 13, 17, -15, 15, -3, 1, 33, 7, 1, -12,
1798 -58, 5, 15, 13, 29, 3, -16, 13, -4, 57,
1799 -10, 13, 11, -13, -21, -15, -9, 40, 55, -3,
1800 14, 19, 44, -17, 24, 32, -5, 4, -21, -18,
1801 ], [
1802 76, 1, -41, -9, -19, -12, 41, 17, 55, 18,
1803 -3, -63, -3, -12, 30, 5, -3, -12, -31, 0,
1804 -24, 49, -8, 9, -1, -33, -12, -29, 27, -18,
1805 37, 21, 34, -17, -3, -11, 14, -23, 25, -2,
1806 ], [
1807 7, 22, -18, 29, 1, -25, 36, 21, 20, -9,
1808 -22, -56, -11, 6, 45, 21, -15, -16, -20, -1,
1809 -33, 34, -2, -6, -17, -23, -28, 6, 25, -12,
1810 16, 37, 53, -1, -11, -15, -8, -25, 20, -11,
1811 ], [
1812 37, 8, -29, -22, -4, -37, 36, 9, 34, 22,
1813 -17, -24, 8, -18, 15, -2, 1, -14, -31, 25,
1814 15, 48, 13, -4, -28, -31, -5, -21, 57, -4,
1815 53, 24, 23, -55, 6, 12, 37, -6, 11, 11,
1816 ], [
1817 -31, 28, -6, 16, 16, -50, 31, 14, 0, -6,
1818 -36, -17, 0, 0, 29, 14, -11, -18, -20, 25,
1819 6, 33, 19, -20, -43, -21, -21, 14, 55, 0,
1820 32, 40, 42, -39, -1, 8, 14, -8, 6, 3,
1821 ], [
1822 119, -24, -39, -44, -51, 66, -14, 15, 31, -26,
1823 -1, 0, 7, 16, -19, -28, -19, 22, -26, 4,
1824 -13, 28, -16, 29, 5, -1, 16, -16, 8, -35,
1825 -10, -42, -4, 17, 29, -19, -42, -7, 0, -15,
1826 ], [
1827 50, -3, -16, -5, -30, 53, -19, 20, -3, -55,
1828 -19, 8, 0, 34, -5, -11, -32, 18, -15, 4,
1829 -22, 13, -10, 13, -9, 8, 0, 19, 7, -29,
1830 -31, -26, 13, 33, 21, -22, -65, -9, -4, -23,
1831 ], [
1832 79, -17, -27, -56, -36, 41, -19, 8, 10, -22,
1833 -15, 39, 20, 9, -35, -35, -15, 20, -26, 31,
1834 26, 27, 6, 15, -20, 0, 23, -8, 38, -22,
1835 5, -38, -15, -20, 39, 4, -18, 9, -13, -1,
1836 ], [
1837 10, 3, -4, -18, -15, 27, -24, 13, -24, -51,
1838 -34, 47, 12, 28, -21, -19, -27, 16, -15, 30,
1839 17, 12, 12, 0, -36, 10, 7, 27, 37, -16,
1840 -15, -22, 3, -4, 31, 1, -42, 7, -18, -9,
1841 ], [
1842 74, -12, -30, -42, -30, 14, -16, 23, 29, -19,
1843 20, -21, -7, 1, -19, -17, -14, -10, -43, -27,
1844 3, 48, -8, 22, -16, -7, 4, -42, 9, -31,
1845 6, -20, -6, -4, 3, -43, -22, -20, 28, 5,
1846 ], [
1847 5, 7, -7, -4, -9, 0, -21, 28, -6, -48,
1848 2, -14, -15, 20, -5, 0, -27, -14, -32, -28,
1849 -5, 32, -2, 6, -32, 3, -12, -5, 8, -25,
1850 -14, -4, 12, 11, -4, -47, -45, -22, 22, -2,
1851 ], [
1852 34, -6, -18, -55, -15, -11, -21, 16, 8, -16,
1853 6, 16, 5, -4, -35, -24, -10, -12, -43, -1,
1854 43, 47, 14, 8, -43, -5, 10, -34, 39, -18,
1855 22, -16, -17, -42, 13, -19, 1, -3, 14, 20,
1856 ], [
1857 -34, 14, 4, -17, 5, -24, -26, 20, -27, -45,
1858 -12, 24, -2, 13, -21, -8, -22, -16, -32, -2,
1859 34, 31, 20, -7, -58, 5, -5, 2, 38, -12,
1860 2, -1, 1, -26, 5, -23, -21, -6, 8, 11,
1861 ], [
1862 124, -13, -21, -23, -62, 23, 0, 43, 57, 8,
1863 -13, -18, 14, -10, 6, -26, -3, 49, -19, 19,
1864 -31, 27, -7, 0, 11, -20, 29, -1, 12, -47,
1865 4, -39, 11, 34, 28, -9, -5, -19, -13, -34,
1866 ], [
1867 55, 6, 1, 14, -41, 10, -4, 48, 22, -20,
1868 -31, -10, 5, 7, 20, -9, -16, 45, -8, 19,
1869 -40, 12, -1, -15, -4, -10, 12, 34, 11, -41,
1870 -16, -24, 30, 49, 20, -13, -28, -22, -18, -43,
1871 ], [
1872 84, -6, -9, -36, -47, -1, -4, 36, 36, 12,
1873 -27, 20, 26, -17, -9, -33, 1, 47, -19, 46,
1874 9, 27, 15, -13, -15, -18, 35, 6, 42, -33,
1875 20, -36, 1, -4, 38, 14, 18, -2, -27, -20,
1876 ], [
1877 15, 13, 13, 1, -26, -14, -9, 41, 1, -16,
1878 -46, 27, 18, 1, 4, -16, -11, 43, -8, 45,
1879 0, 11, 21, -29, -30, -8, 19, 42, 41, -28,
1880 0, -20, 20, 11, 30, 10, -4, -5, -32, -28,
1881 ], [
1882 79, -2, -12, -22, -42, -28, -1, 51, 54, 15,
1883 8, -41, 0, -24, 6, -15, 1, 17, -36, -12,
1884 -14, 47, 0, -6, -11, -26, 16, -27, 13, -43,
1885 22, -18, 10, 12, 2, -34, 15, -33, 13, -13,
1886 ], [
1887 10, 18, 10, 15, -21, -41, -6, 56, 19, -13,
1888 -9, -33, -9, -6, 20, 1, -11, 13, -24, -13,
1889 -23, 32, 6, -22, -26, -15, 0, 8, 12, -37,
1890 1, -2, 28, 27, -5, -37, -7, -35, 8, -21,
1891 ], [
1892 39, 4, 0, -35, -27, -53, -6, 44, 33, 18,
1893 -5, -2, 11, -31, -9, -22, 6, 15, -36, 13,
1894 25, 46, 23, -20, -37, -24, 23, -19, 43, -29,
1895 38, -14, 0, -26, 12, -10, 38, -16, 0, 0,
1896 ], [
1897 -29, 25, 22, 2, -6, -67, -11, 49, -1, -10,
1898 -24, 5, 3, -13, 4, -5, -6, 11, -25, 12,
1899 16, 31, 28, -36, -53, -13, 6, 16, 42, -24,
1900 17, 1, 18, -10, 4, -13, 15, -18, -5, -7,
1901 ], [
1902 29, -25, -22, -2, 6, 67, 11, -49, 1, 10,
1903 24, -5, -3, 13, -4, 5, 6, -11, 25, -12,
1904 -16, -31, -28, 36, 53, 13, -6, -16, -42, 24,
1905 -17, -1, -18, 10, -4, 13, -15, 18, 5, 7,
1906 ], [
1907 -39, -4, 0, 35, 27, 53, 6, -44, -33, -18,
1908 5, 2, -11, 31, 9, 22, -6, -15, 36, -13,
1909 -25, -46, -23, 20, 37, 24, -23, 19, -43, 29,
1910 -38, 14, 0, 26, -12, 10, -38, 16, 0, 0,
1911 ], [
1912 -10, -18, -10, -15, 21, 41, 6, -56, -19, 13,
1913 9, 33, 9, 6, -20, -1, 11, -13, 24, 13,
1914 23, -32, -6, 22, 26, 15, 0, -8, -12, 37,
1915 -1, 2, -28, -27, 5, 37, 7, 35, -8, 21,
1916 ], [
1917 -79, 2, 12, 22, 42, 28, 1, -51, -54, -15,
1918 -8, 41, 0, 24, -6, 15, -1, -17, 36, 12,
1919 14, -47, 0, 6, 11, 26, -16, 27, -13, 43,
1920 -22, 18, -10, -12, -2, 34, -15, 33, -13, 13,
1921 ], [
1922 -15, -13, -13, -1, 26, 14, 9, -41, -1, 16,
1923 46, -27, -18, -1, -4, 16, 11, -43, 8, -45,
1924 0, -11, -21, 29, 30, 8, -19, -42, -41, 28,
1925 0, 20, -20, -11, -30, -10, 4, 5, 32, 28,
1926 ], [
1927 -84, 6, 9, 36, 47, 1, 4, -36, -36, -12,
1928 27, -20, -26, 17, 9, 33, -1, -47, 19, -46,
1929 -9, -27, -15, 13, 15, 18, -35, -6, -42, 33,
1930 -20, 36, -1, 4, -38, -14, -18, 2, 27, 20,
1931 ], [
1932 -55, -6, -1, -14, 41, -10, 4, -48, -22, 20,
1933 31, 10, -5, -7, -20, 9, 16, -45, 8, -19,
1934 40, -12, 1, 15, 4, 10, -12, -34, -11, 41,
1935 16, 24, -30, -49, -20, 13, 28, 22, 18, 43,
1936 ], [
1937 -124, 13, 21, 23, 62, -23, 0, -43, -57, -8,
1938 13, 18, -14, 10, -6, 26, 3, -49, 19, -19,
1939 31, -27, 7, 0, -11, 20, -29, 1, -12, 47,
1940 -4, 39, -11, -34, -28, 9, 5, 19, 13, 34,
1941 ], [
1942 34, -14, -4, 17, -5, 24, 26, -20, 27, 45,
1943 12, -24, 2, -13, 21, 8, 22, 16, 32, 2,
1944 -34, -31, -20, 7, 58, -5, 5, -2, -38, 12,
1945 -2, 1, -1, 26, -5, 23, 21, 6, -8, -11,
1946 ], [
1947 -34, 6, 18, 55, 15, 11, 21, -16, -8, 16,
1948 -6, -16, -5, 4, 35, 24, 10, 12, 43, 1,
1949 -43, -47, -14, -8, 43, 5, -10, 34, -39, 18,
1950 -22, 16, 17, 42, -13, 19, -1, 3, -14, -20,
1951 ], [
1952 -5, -7, 7, 4, 9, 0, 21, -28, 6, 48,
1953 -2, 14, 15, -20, 5, 0, 27, 14, 32, 28,
1954 5, -32, 2, -6, 32, -3, 12, 5, -8, 25,
1955 14, 4, -12, -11, 4, 47, 45, 22, -22, 2,
1956 ], [
1957 -74, 12, 30, 42, 30, -14, 16, -23, -29, 19,
1958 -20, 21, 7, -1, 19, 17, 14, 10, 43, 27,
1959 -3, -48, 8, -22, 16, 7, -4, 42, -9, 31,
1960 -6, 20, 6, 4, -3, 43, 22, 20, -28, -5,
1961 ], [
1962 -10, -3, 4, 18, 15, -27, 24, -13, 24, 51,
1963 34, -47, -12, -28, 21, 19, 27, -16, 15, -30,
1964 -17, -12, -12, 0, 36, -10, -7, -27, -37, 16,
1965 15, 22, -3, 4, -31, -1, 42, -7, 18, 9,
1966 ], [
1967 -79, 17, 27, 56, 36, -41, 19, -8, -10, 22,
1968 15, -39, -20, -9, 35, 35, 15, -20, 26, -31,
1969 -26, -27, -6, -15, 20, 0, -23, 8, -38, 22,
1970 -5, 38, 15, 20, -39, -4, 18, -9, 13, 1,
1971 ], [
1972 -50, 3, 16, 5, 30, -53, 19, -20, 3, 55,
1973 19, -8, 0, -34, 5, 11, 32, -18, 15, -4,
1974 22, -13, 10, -13, 9, -8, 0, -19, -7, 29,
1975 31, 26, -13, -33, -21, 22, 65, 9, 4, 23,
1976 ], [
1977 -119, 24, 39, 44, 51, -66, 14, -15, -31, 26,
1978 1, 0, -7, -16, 19, 28, 19, -22, 26, -4,
1979 13, -28, 16, -29, -5, 1, -16, 16, -8, 35,
1980 10, 42, 4, -17, -29, 19, 42, 7, 0, 15,
1981 ], [
1982 31, -28, 6, -16, -16, 50, -31, -14, 0, 6,
1983 36, 17, 0, 0, -29, -14, 11, 18, 20, -25,
1984 -6, -33, -19, 20, 43, 21, 21, -14, -55, 0,
1985 -32, -40, -42, 39, 1, -8, -14, 8, -6, -3,
1986 ], [
1987 -37, -8, 29, 22, 4, 37, -36, -9, -34, -22,
1988 17, 24, -8, 18, -15, 2, -1, 14, 31, -25,
1989 -15, -48, -13, 4, 28, 31, 5, 21, -57, 4,
1990 -53, -24, -23, 55, -6, -12, -37, 6, -11, -11,
1991 ], [
1992 -7, -22, 18, -29, -1, 25, -36, -21, -20, 9,
1993 22, 56, 11, -6, -45, -21, 15, 16, 20, 1,
1994 33, -34, 2, 6, 17, 23, 28, -6, -25, 12,
1995 -16, -37, -53, 1, 11, 15, 8, 25, -20, 11,
1996 ], [
1997 -76, -1, 41, 9, 19, 12, -41, -17, -55, -18,
1998 3, 63, 3, 12, -30, -5, 3, 12, 31, 0,
1999 24, -49, 8, -9, 1, 33, 12, 29, -27, 18,
2000 -37, -21, -34, 17, 3, 11, -14, 23, -25, 2,
2001 ], [
2002 -13, -17, 15, -15, 3, -1, -33, -7, -1, 12,
2003 58, -5, -15, -13, -29, -3, 16, -13, 4, -57,
2004 10, -13, -11, 13, 21, 15, 9, -40, -55, 3,
2005 -14, -19, -44, 17, -24, -32, 5, -4, 21, 18,
2006 ], [
2007 -82, 3, 38, 23, 24, -15, -38, -2, -37, -15,
2008 39, 2, -23, 4, -15, 12, 3, -17, 15, -58,
2009 1, -29, -6, -2, 5, 26, -7, -4, -56, 9,
2010 -35, -3, -25, 33, -32, -36, -17, -7, 15, 9,
2011 ], [
2012 -52, -10, 27, -27, 18, -26, -38, -14, -23, 16,
2013 44, 33, -3, -20, -45, -10, 20, -15, 3, -31,
2014 50, -14, 10, 0, -5, 17, 15, -32, -24, 16,
2015 1, -15, -55, -20, -14, -8, 29, 12, 7, 32,
2016 ], [
2017 -121, 9, 50, 10, 40, -40, -43, -9, -58, -12,
2018 25, 41, -11, -2, -31, 5, 8, -19, 15, -32,
2019 41, -30, 16, -16, -20, 28, 0, 3, -26, 22,
2020 -19, 0, -36, -4, -22, -12, 6, 9, 1, 24,
2021 ], [
2022 36, -18, 24, 3, -28, 7, -16, 13, 26, 41,
2023 24, -1, 5, -26, -3, -12, 27, 46, 27, -10,
2024 -24, -34, -10, -8, 49, 2, 34, 0, -51, -12,
2025 -17, -38, -25, 56, 0, 0, 22, -3, -20, -22,
2026 ], [
2027 -32, 2, 47, 42, -7, -5, -21, 18, -9, 12,
2028 5, 5, -2, -8, 10, 4, 14, 42, 38, -10,
2029 -33, -49, -5, -24, 33, 12, 17, 35, -52, -6,
2030 -38, -22, -7, 72, -7, -3, 0, -6, -25, -30,
2031 ], [
2032 -2, -11, 36, -9, -13, -17, -21, 6, 5, 45,
2033 10, 36, 18, -33, -19, -19, 31, 44, 27, 15,
2034 16, -34, 11, -22, 22, 4, 40, 7, -21, 0,
2035 -1, -35, -36, 18, 10, 24, 46, 12, -34, -8,
2036 ], [
2037 -71, 9, 59, 29, 8, -30, -26, 11, -30, 16,
2038 -8, 44, 9, -14, -5, -2, 19, 40, 38, 15,
2039 7, -50, 17, -38, 7, 14, 24, 43, -22, 6,
2040 -22, -19, -17, 34, 2, 20, 23, 10, -39, -16,
2041 ], [
2042 -8, -6, 33, 4, -7, -44, -18, 21, 23, 48,
2043 46, -24, -9, -40, -3, -1, 32, 13, 11, -43,
2044 -7, -14, -3, -15, 26, -3, 21, -26, -50, -8,
2045 0, -16, -27, 34, -25, -23, 43, -17, 6, -1,
2046 ], [
2047 -77, 13, 56, 43, 13, -57, -23, 26, -11, 19,
2048 27, -16, -17, -22, 10, 15, 19, 10, 22, -43,
2049 -16, -30, 2, -31, 11, 6, 5, 9, -52, -2,
2050 -20, 0, -8, 50, -33, -27, 19, -19, 1, -9,
2051 ], [
2052 -47, 0, 45, -7, 7, -69, -23, 13, 2, 51,
2053 32, 14, 3, -47, -19, -8, 37, 11, 10, -16,
2054 32, -15, 19, -29, 0, -1, 28, -18, -20, 4,
2055 16, -13, -38, -3, -15, 0, 66, 0, -7, 13,
2056 ], [
2057 -116, 20, 68, 30, 28, -83, -28, 18, -32, 22,
2058 13, 21, -5, -28, -5, 7, 24, 8, 22, -17,
2059 23, -30, 25, -45, -15, 9, 11, 18, -22, 10,
2060 -4, 2, -19, 12, -23, -3, 43, -2, -12, 4,
2061 ], [
2062 72, -13, -29, -18, 4, 90, 37, -34, 4, -1,
2063 13, -9, -6, 11, 2, 24, -13, 3, -7, -11,
2064 -4, 4, -42, 25, 31, -1, -8, -29, -6, 17,
2065 -19, 2, -10, -6, 38, 22, -42, -19, -6, -11,
2066 ], [
2067 3, 7, -6, 20, 25, 77, 32, -29, -31, -30,
2068 -4, -2, -14, 29, 16, 40, -26, 0, 3, -12,
2069 -13, -10, -36, 9, 15, 8, -24, 6, -7, 22,
2070 -40, 17, 8, 9, 31, 18, -66, -22, -11, -19,
2071 ], [
2072 32, -6, -17, -31, 19, 65, 33, -41, -16, 1,
2073 0, 29, 6, 4, -13, 17, -9, 1, -8, 14,
2074 35, 3, -19, 11, 4, 0, -1, -21, 23, 30,
2075 -3, 5, -20, -44, 48, 46, -19, -3, -20, 3,
2076 ], [
2077 -36, 13, 5, 7, 40, 51, 28, -36, -52, -27,
2078 -18, 36, -2, 22, 0, 33, -21, -2, 3, 13,
2079 26, -11, -14, -4, -10, 10, -18, 14, 22, 36,
2080 -24, 21, -1, -28, 40, 42, -42, -5, -25, -5,
2081 ], [
2082 27, -1, -20, -17, 24, 38, 35, -26, 1, 4,
2083 35, -32, -21, -3, 2, 35, -8, -29, -24, -44,
2084 12, 24, -34, 18, 8, -7, -21, -55, -5, 21,
2085 -2, 23, -11, -28, 13, -1, -22, -33, 21, 10,
2086 ], [
2087 -41, 18, 2, 21, 45, 24, 30, -21, -33, -24,
2088 17, -24, -29, 15, 16, 51, -21, -33, -13, -45,
2089 3, 8, -28, 2, -7, 2, -37, -19, -7, 27,
2090 -22, 39, 7, -12, 5, -5, -45, -35, 15, 1,
2091 ], [
2092 -12, 4, -8, -29, 39, 12, 30, -33, -19, 8,
2093 21, 6, -8, -9, -13, 28, -4, -31, -24, -18,
2094 52, 23, -12, 4, -18, -5, -14, -47, 24, 34,
2095 14, 27, -22, -66, 22, 22, 1, -16, 6, 24,
2096 ], [
2097 -81, 25, 14, 8, 61, 0, 25, -28, -54, -20,
2098 3, 14, -17, 8, 0, 44, -16, -35, -13, -18,
2099 43, 7, -6, -11, -33, 4, -30, -11, 22, 40,
2100 -6, 43, -3, -50, 14, 18, -22, -18, 1, 16,
2101 ], [
2102 77, -2, -11, 1, -7, 47, 52, -5, 29, 33,
2103 1, -28, 0, -15, 28, 26, 2, 30, 0, 2,
2104 -22, 4, -33, -3, 36, -21, 3, -15, -2, 5,
2105 -4, 4, 6, 9, 37, 31, -5, -32, -20, -30,
2106 ], [
2107 8, 17, 10, 40, 13, 34, 47, 0, -5, 4,
2108 -16, -21, -8, 2, 42, 43, -10, 26, 10, 2,
2109 -31, -11, -27, -19, 21, -10, -12, 20, -3, 11,
2110 -25, 20, 25, 25, 29, 28, -28, -34, -25, -38,
2111 ], [
2112 37, 3, 0, -10, 7, 22, 48, -12, 8, 36,
2113 -12, 9, 12, -22, 12, 19, 6, 28, 0, 29,
2114 18, 3, -11, -17, 10, -18, 10, -7, 27, 18,
2115 11, 7, -3, -28, 47, 55, 18, -15, -34, -16,
2116 ], [
2117 -31, 24, 23, 27, 29, 9, 43, -8, -26, 7,
2118 -30, 17, 4, -3, 26, 35, -5, 24, 10, 28,
2119 9, -12, -5, -33, -5, -8, -5, 29, 26, 24,
2120 -9, 23, 14, -12, 39, 52, -5, -18, -39, -24,
2121 ], [
2122 32, 8, -3, 2, 13, -4, 50, 1, 27, 39,
2123 23, -51, -15, -30, 27, 37, 7, -1, -17, -29,
2124 -5, 23, -25, -10, 14, -26, -8, -41, -1, 9,
2125 13, 26, 5, -12, 12, 7, 14, -45, 6, -9,
2126 ], [
2127 -36, 29, 19, 41, 34, -18, 45, 6, -8, 10,
2128 5, -43, -23, -11, 42, 53, -5, -5, -6, -30,
2129 -14, 8, -20, -26, -1, -16, -25, -4, -3, 15,
2130 -7, 41, 23, 3, 4, 3, -8, -48, 1, -17,
2131 ], [
2132 -7, 15, 9, -9, 28, -29, 45, -5, 6, 43,
2133 9, -12, -2, -36, 12, 30, 11, -3, -17, -3,
2134 34, 22, -3, -24, -12, -24, -2, -32, 28, 22,
2135 29, 29, -5, -50, 21, 31, 38, -29, -7, 5,
2136 ], [
2137 -76, 35, 31, 28, 49, -43, 40, 0, -29, 14,
2138 -8, -5, -10, -18, 26, 46, 0, -7, -6, -3,
2139 25, 7, 2, -40, -28, -14, -18, 3, 27, 28,
2140 8, 45, 13, -34, 13, 27, 15, -31, -12, -3,
2141 ], [
2142 74, -17, 0, -31, -18, 73, -5, 0, 3, -5,
2143 25, 12, -3, -1, -22, 3, -9, 33, -12, -24,
2144 6, 2, -33, 9, 21, 5, 20, -27, -19, -7,
2145 -34, -37, -34, 22, 44, 0, -41, -29, -17, -21,
2146 ], [
2147 5, 3, 21, 7, 2, 60, -10, 5, -32, -34,
2148 7, 20, -11, 16, -8, 20, -21, 29, -1, -24,
2149 -2, -13, -27, -6, 5, 15, 3, 8, -21, -1,
2150 -55, -21, -15, 38, 37, -3, -65, -32, -23, -30,
2151 ], [
2152 35, -10, 11, -44, -3, 48, -10, -6, -17, -2,
2153 11, 51, 8, -8, -38, -3, -4, 31, -12, 2,
2154 46, 1, -10, -4, -5, 7, 26, -19, 10, 5,
2155 -18, -34, -45, -15, 54, 24, -18, -13, -31, -7,
2156 ], [
2157 -33, 10, 34, -5, 17, 35, -15, -1, -53, -30,
2158 -6, 59, 0, 10, -24, 13, -17, 27, -1, 1,
2159 37, -13, -4, -20, -20, 18, 10, 16, 8, 11,
2160 -39, -18, -26, 0, 46, 20, -41, -15, -37, -15,
2161 ], [
2162 29, -5, 7, -30, 1, 21, -7, 7, 0, 0,
2163 47, -9, -18, -15, -22, 14, -4, 0, -28, -57,
2164 23, 21, -25, 2, -1, 0, 7, -53, -19, -3,
2165 -17, -15, -36, 0, 19, -24, -21, -43, 9, 0,
2166 ], [
2167 -39, 14, 30, 8, 22, 8, -12, 12, -34, -27,
2168 29, -2, -26, 2, -8, 31, -16, -3, -17, -57,
2169 14, 6, -19, -13, -16, 10, -8, -17, -20, 2,
2170 -38, 0, -17, 16, 11, -27, -44, -45, 4, -8,
2171 ], [
2172 -9, 1, 20, -43, 17, -3, -12, 0, -20, 4,
2173 33, 29, -6, -22, -38, 7, 0, -1, -29, -30,
2174 63, 21, -3, -11, -27, 1, 14, -45, 10, 9,
2175 -1, -12, -47, -37, 28, 0, 2, -26, -4, 13,
2176 ], [
2177 -78, 21, 43, -4, 38, -17, -17, 5, -55, -24,
2178 15, 36, -14, -4, -24, 24, -12, -5, -17, -31,
2179 54, 5, 2, -27, -43, 12, -2, -9, 9, 15,
2180 -22, 3, -28, -21, 20, -3, -20, -28, -9, 5,
2181 ], [
2182 80, -6, 16, -11, -30, 30, 9, 28, 28, 29,
2183 13, -6, 2, -28, 3, 5, 7, 60, -5, -9,
2184 -11, 1, -24, -19, 27, -13, 32, -13, -15, -19,
2185 -19, -35, -17, 39, 43, 9, -4, -42, -32, -41,
2186 ], [
2187 11, 14, 39, 27, -9, 17, 4, 33, -6, 0,
2188 -4, 1, -5, -10, 17, 22, -5, 57, 5, -9,
2189 -20, -13, -18, -35, 11, -3, 16, 22, -17, -13,
2190 -40, -19, 1, 55, 35, 5, -27, -44, -37, -49,
2191 ], [
2192 40, 0, 28, -24, -14, 5, 4, 21, 7, 33,
2193 0, 32, 15, -35, -12, -1, 11, 58, -5, 16,
2194 28, 0, -1, -33, 0, -11, 39, -5, 14, -6,
2195 -3, -31, -28, 1, 53, 33, 19, -25, -46, -26,
2196 ], [
2197 -28, 20, 51, 14, 6, -7, 0, 26, -27, 4,
2198 -18, 40, 6, -16, 1, 15, 0, 55, 5, 16,
2199 19, -14, 3, -49, -14, -1, 22, 30, 12, 0,
2200 -24, -15, -9, 17, 45, 29, -4, -28, -51, -35,
2201 ], [
2202 34, 4, 25, -10, -9, -21, 7, 36, 26, 36,
2203 35, -28, -12, -42, 3, 16, 12, 28, -21, -42,
2204 5, 21, -16, -26, 4, -19, 19, -39, -15, -15,
2205 -1, -13, -19, 17, 17, -14, 15, -55, -4, -19,
2206 ], [
2207 -34, 25, 48, 28, 11, -34, 2, 41, -9, 7,
2208 17, -21, -20, -24, 17, 33, 0, 24, -10, -42,
2209 -3, 5, -10, -42, -11, -8, 3, -3, -16, -9,
2210 -22, 2, 0, 33, 10, -18, -7, -58, -10, -28,
2211 ], [
2212 -4, 11, 37, -23, 5, -46, 2, 29, 5, 39,
2213 21, 9, 0, -49, -12, 9, 16, 26, -22, -15,
2214 45, 20, 5, -40, -22, -17, 26, -31, 14, -2,
2215 14, -10, -30, -20, 27, 9, 39, -39, -18, -5,
2216 ], [
2217 -73, 32, 60, 15, 26, -59, -2, 33, -30, 10,
2218 3, 17, -8, -30, 1, 26, 4, 22, -10, -16,
2219 36, 5, 11, -56, -37, -6, 10, 5, 13, 3,
2220 -6, 5, -11, -4, 19, 5, 16, -41, -24, -13
2221 ]
2222 ];
2223
2224 const RA144_GAIN_VAL_TAB: [[u16; 3]; 256] = [
2225 [ 541, 956, 768], [ 877, 581, 568], [ 675,1574, 635], [1248,1464, 668],
2226 [1246, 839, 1394], [2560,1386, 991], [ 925, 687, 608], [2208, 797, 1144],
2227 [ 535, 832, 799], [ 762, 605, 1154], [ 832,1122, 1003], [1180, 687, 1176],
2228 [1292, 901, 732], [1656, 689, 896], [1750,1248, 848], [2284, 942, 1022],
2229 [ 824,1472, 643], [ 517, 765, 512], [ 562,1816, 1522], [ 694,1826, 2700],
2230 [ 704, 524, 672], [1442, 757, 2232], [ 884, 551, 1266], [2232,1007, 1692],
2231 [ 932, 746, 777], [1132, 822, 926], [1226, 771, 611], [2948,1342, 1008],
2232 [1302, 594, 1158], [1602, 636, 1128], [3408, 910, 1438], [1996, 614, 575],
2233 [ 665, 935, 628], [ 631,1192, 829], [ 644, 926, 1052], [ 879, 988, 1226],
2234 [ 941,2768, 2772], [ 565,1344, 2304], [ 547, 628, 740], [ 639, 532, 1074],
2235 [ 955,1208, 598], [1124,1160, 900], [1206, 899, 1242], [ 746, 533, 624],
2236 [1458,1028, 735], [1706,1102, 692], [1898,1018, 1004], [2176, 988, 735],
2237 [1578, 782, 1642], [ 897, 516, 754], [2068, 702, 1656], [2344, 818, 1526],
2238 [ 907, 652, 592], [1056, 652, 642], [2124,1416, 780], [2664,1250, 727],
2239 [1894, 727, 1108], [2196, 657, 981], [4840, 920, 1704], [4992,1238, 983],
2240 [2420, 909, 1094], [2760, 935, 1032], [2800, 612, 853], [3068, 832, 574],
2241 [ 523,1796, 923], [ 722,1916, 1382], [1226,1542, 928], [ 758, 757, 584],
2242 [ 512,1134, 577], [ 615,1276, 698], [ 574,2568, 2356], [ 993,2728, 3512],
2243 [ 539, 890, 913], [ 694, 928, 1088], [ 805, 600, 1360], [2160, 951, 3128],
2244 [ 816, 950, 590], [ 955, 847, 811], [1094, 883, 556], [1304, 888, 604],
2245 [ 863,1170, 855], [1023, 997, 1032], [ 932,1228, 1280], [ 627, 564, 573],
2246 [ 876, 900, 1448], [1030, 857, 1792], [1294, 953, 1758], [1612, 854, 1714],
2247 [1090,1166, 631], [1314,1202, 751], [1480, 905, 795], [1682,1016, 568],
2248 [1494,1178, 983], [ 878, 613, 526], [1728,1446, 779], [2136,1348, 774],
2249 [ 950, 649, 939], [1180, 703, 899], [1236, 527, 1158], [1450, 647, 972],
2250 [1282, 647, 707], [1460, 663, 644], [1614, 572, 578], [3516,1222, 821],
2251 [2668, 729, 1682], [3128, 585, 1502], [3208, 733, 976], [6800, 871, 1416],
2252 [3480, 743, 1408], [3764, 899, 1170], [3772, 632, 875], [4092, 732, 638],
2253 [3112, 753, 2620], [3372, 945, 1890], [3768, 969, 2288], [2016, 559, 854],
2254 [1736, 729, 787], [1940, 686, 547], [2140, 635, 674], [4480,1272, 828],
2255 [3976, 592, 1666], [4384, 621, 1388], [4400, 801, 955], [4656, 522, 646],
2256 [4848, 625, 1636], [4984, 591, 874], [5352, 535, 1001], [11216,938, 1184],
2257 [ 925,3280, 1476], [ 735,1580, 1088], [1150,1576, 674], [ 655, 783, 528],
2258 [ 527,2052, 1354], [ 782,1704, 1880], [ 578, 910, 1026], [ 692, 882, 1468],
2259 [ 586, 683, 715], [ 739, 609, 717], [ 778, 773, 697], [ 922, 785, 813],
2260 [ 766, 651, 984], [ 978, 596, 1030], [1070, 757, 1080], [1324, 687, 1178],
2261 [1108,2144, 979], [ 723, 982, 690], [ 936, 956, 527], [1180,1002, 547],
2262 [ 517,1306, 825], [ 832,1184, 974], [1024, 957, 903], [1262,1090, 906],
2263 [1028, 720, 649], [1192, 679, 694], [2468,1480, 979], [2844,1370, 877],
2264 [1310, 835, 848], [1508, 839, 698], [1742,1030, 769], [1910, 852, 573],
2265 [1280, 859, 1174], [1584, 863, 1108], [1686, 708, 1364], [1942, 768, 1104],
2266 [ 891, 536, 690], [1016, 560, 663], [2172, 870, 1348], [2404, 999, 1170],
2267 [1890, 966, 889], [2116, 912, 777], [2296,1020, 714], [4872,1844, 932],
2268 [2392, 778, 929], [2604, 772, 744], [2764, 957, 722], [5832,1532, 984],
2269 [2188, 519, 1264], [2332, 532, 922], [5064, 995, 2412], [2708, 571, 874],
2270 [2408, 545, 666], [5016,1084, 875], [5376, 983, 1196], [5536, 979, 730],
2271 [5344, 634, 1744], [5688, 706, 1348], [5912, 977, 1190], [6072, 905, 763],
2272 [6048, 582, 1526], [11968,1013,1816], [12864,937, 1900], [12560,1086, 998],
2273 [1998, 684, 1884], [2504, 633, 1992], [1252, 567, 835], [1478, 571, 973],
2274 [2620, 769, 1414], [2808, 952, 1142], [2908, 712, 1028], [2976, 686, 741],
2275 [1462, 552, 714], [3296, 991, 1452], [1590, 615, 544], [3480,1150, 824],
2276 [3212, 832, 923], [3276, 839, 531], [3548, 786, 852], [3732, 764, 570],
2277 [5728, 906, 2616], [6272, 804, 2252], [3096, 535, 876], [3228, 598, 649],
2278 [6536, 759, 1436], [6648, 993, 846], [6864, 567, 1210],[14016,1012, 1302],
2279 [3408, 548, 1098], [7160,1008, 1742], [7136,1000, 1182], [7480,1032, 836],
2280 [7448, 612, 1552], [7744, 614, 816], [8384, 777, 1438], [8784, 694, 786],
2281 [ 882,1508, 1068], [ 597, 837, 766], [1270, 954, 1408], [ 803, 550, 798],
2282 [1398,1308, 798], [1848,1534, 738], [ 970, 675, 608], [1264, 706, 684],
2283 [1716, 767, 1126], [2108, 765, 1404], [2236, 924, 1003], [2472,1048, 611],
2284 [ 999, 942, 963], [1094, 857, 935], [2936, 926, 1138], [1934, 746, 551],
2285 [3336, 633, 1762], [3764, 701, 1454], [1890, 564, 636], [4096,1126, 793],
2286 [3936, 556, 1140], [3936, 540, 740], [4216, 764, 874], [8480,1328, 1014],
2287 [2184, 515, 1042], [4432, 934, 1344], [4784, 945, 1112], [5016,1062, 733],
2288 [9216,1020, 2028], [9968, 924, 1188], [5424, 909, 1206], [6512, 744, 1086]
2289 ];
2290 const RA144_GAIN_EXP_TAB: [u8; 256] = [
2291 15, 15, 15, 15, 15, 16, 14, 15, 14, 14, 14, 14, 14, 14, 14, 14,
2292 14, 13, 14, 14, 13, 14, 13, 14, 13, 13, 13, 14, 13, 13, 14, 13,
2293 13, 13, 13, 13, 14, 13, 12, 12, 13, 13, 13, 12, 13, 13, 13, 13,
2294 13, 12, 13, 13, 12, 12, 13, 13, 13, 13, 14, 14, 13, 13, 13, 13,
2295 13, 13, 13, 12, 12, 12, 13, 13, 12, 12, 12, 13, 12, 12, 12, 12,
2296 12, 12, 12, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 11, 12, 12,
2297 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 13, 13, 13, 13,
2298 13, 13, 13, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14,
2299 13, 12, 12, 11, 12, 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2300 12, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 11, 11, 11, 11,
2301 12, 12, 12, 12, 11, 11, 12, 12, 12, 12, 12, 13, 12, 12, 12, 13,
2302 12, 12, 13, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14,
2303 12, 12, 11, 11, 12, 12, 12, 12, 11, 12, 11, 12, 12, 12, 12, 12,
2304 13, 13, 12, 12, 13, 13, 13, 14, 12, 13, 13, 13, 13, 13, 13, 13,
2305 11, 10, 11, 10, 11, 11, 10, 10, 11, 11, 11, 11, 10, 9, 11, 10,
2306 12, 12, 11, 12, 12, 12, 12, 13, 11, 12, 12, 12, 13, 13, 12, 12
2307 ];