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