/****************************************************************************** * * * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ***************************************************************************** * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore */ #include "ixheaacd_sbr_common.h" #include <ixheaacd_type_def.h> #include "ixheaacd_defines.h" #include <ixheaacd_aac_rom.h> #include "ixheaacd_intrinsics.h" // -1 is appended at the end of each table to identify // number of scf bands at run time // const ia_aac_dec_huffman_tables_struct ixheaacd_aac_huffmann_tables = { // static const WORD8 ixheaacd_sfb_96_1024[42] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 36, 44, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, -1}, // 12 scfbands // static const WORD8 ixheaacd_sfb_96_128[13] = {4, 4, 4, 4, 4, 4, 8, 8, 8, 16, 28, 36, -1}, // 47 scfbands // static const WORD8 ixheaacd_sfb_64_1024[48] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 36, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -1}, // 12 scfbands */ // static const WORD8 ixheaacd_sfb_64_128[13] = // same as ixheaacd_sfb_96_128 // 49 scfbands // static const WORD8 ixheaacd_sfb_48_1024[50] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 96, -1}, // 14 scfbands // static const WORD8 ixheaacd_sfb_48_128[15] = {4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 16, 16, -1}, // 51 scfbands // static const WORD8 ixheaacd_sfb_32_1024[52] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 20, 20, 24, 24, 28, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1}, // 47 scfbands // static const WORD8 ixheaacd_sfb_24_1024[48] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 20, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 52, 64, 64, 64, 64, 64, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_24_128[16] = {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 16, 16, 20, -1}, // 43 scfbands // static const WORD8 ixheaacd_sfb_16_1024[44] = {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 20, 20, 20, 24, 24, 28, 28, 32, 36, 40, 40, 44, 48, 52, 56, 60, 64, 64, 64, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_16_128[16] = {4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 12, 12, 16, 20, 20, -1}, // 40 scfbands // static const WORD8 ixheaacd_sfb_8_1024[41] = {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 24, 24, 24, 28, 28, 32, 36, 36, 40, 44, 48, 52, 56, 60, 64, 80, -1}, // 15 scfbands // static const WORD8 ixheaacd_sfb_8_128[16] = {4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 12, 16, 20, 20, -1}, // const ia_sampling_rate_info_struct str_sample_rate_info[16] = {{96000}, {88200}, {64000}, {48000}, {44100}, {32000}, {24000}, {22050}, {16000}, {12000}, {11025}, {8000}, {7350}}, // 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 // +------------------------------------------------+ // | 1| Len | Symbol | // +------------------------------------------------+ // | 0| | Offset | // +------------------------------------------------+ // LSB (00) is set 1 when the codeword is decoded // // HuffmanCodeBook_1 // idx_hf11 { 0x20100001, 0x41e00045, 0x659000c6, 0x890001c4, 0x0e6003df, 0xaef003e8, 0x10d007ef, 0x115007f7, 0x119007fb, 0xd1a007fc, 0x11e00ffd, 0x11f00ffe, 0x12000fff, 0xc0700009, 0x052000bf, 0x08b001bf, 0x0c6003bf, 0x0fd007df, 0x11c00ffb, 0x20e0001a, 0x0180003f, }, // idx_hf10 {0x10200002, 0x21800029, 0x32900064, 0x442000e2, 0x561001e4, 0x087003ef, 0x68a003f2, 0x09c007f7, 0x0a0007fb, 0x0a400ffb, 0x0a600ffd, 0x0a700ffe, 0x0a800fff, 0x60a0000d, 0x0240005f, 0x03f000df, 0x05c001df, 0x077003df, 0x094007ef, 0x00e0001f}, // idx_hf9 {0x00000000, 0x00200005, 0x1030000c, 0x20a00072, 0x31d001e6, 0x431003e1, 0x550007e2, 0x67600feb, 0x08e01fef, 0x09601ff7, 0x09e03ff7, 0x0a203ffb, 0x0a403ffd, 0x0a607ffd, 0x0a707ffe, 0x0a807fff, 0x00700037, 0x512000ed, 0x02f003df, 0x04d007df, 0x06a00fdf, 0x07e01fdf, 0x016001df}, // idx_hf8 {0x10000000, 0x20c00014, 0x31600033, 0x42400075, 0x030000f7, 0x533000fa, 0x039001fb, 0x03b001fd, 0x03d003fd, 0x03e003fe, 0x03f003ff, 0x50500006, 0x0120002f, 0x01e0006f, 0x028000ef, 0x035001f7, 0x0070000f}, // idx_hf7 {0x00000000, 0x00200005, 0x1030000c, 0x20c00074, 0x316000f3, 0x424001f5, 0x030003f7, 0x533003fa, 0x039007fb, 0x03b007fd, 0x03d00ffd, 0x03e00ffe, 0x03f00fff, 0x00700037, 0x012000ef, 0x01e001ef, 0x028003ef, 0x035007f7}, // idx_hf6 {0x00700007, 0x10800008, 0x21800033, 0x32500074, 0x42d000f1, 0x041001f7, 0x544001fa, 0x04a003fb, 0x04c003fd, 0x04e007fd, 0x04f007fe, 0x050007ff, 0x0140002f, 0x0200006f, 0x02b000ef, 0x039001ef, 0x046003f7}, // idx_hf5 {0x00000000, 0x0040000b, 0x0080001b, 0x10c00073, 0x218000f3, 0x324001f3, 0x430003f3, 0x040007f7, 0x542007f9, 0x04a00ffb, 0x04c00ffd, 0x04e01ffd, 0x04f01ffe, 0x05001fff, 0x014000ef, 0x020001ef, 0x02c003ef, 0x038007ef, 0x04600ff7}, // idx_hf4 {0x00700007, 0x10900009, 0x20f00019, 0x31800070, 0x42d000f6, 0x535001f5, 0x041003f7, 0x643003f9, 0x04b007fb, 0x04d007fd, 0x04e007fe, 0x04f00ffe, 0x05000fff, 0x00d00017, 0x0170006f, 0x026000ef, 0x02f001ef, 0x039003ef, 0x047007f7}, // idx_hf3 {0x00000000, 0x0040000b, 0x10600019, 0x20c00039, 0x314000f2, 0x423001f4, 0x031003f7, 0x532003f8, 0x63a007f9, 0x04200ffb, 0x74300ffc, 0x84601ffc, 0x94903ffc, 0x04d07ffd, 0x04e07ffe, 0x04f0fffe, 0x0500ffff, 0x00a00037, 0x80f00076, 0x01e001ef, 0x029003ef, 0x038007f7, 0x03e00ff7, 0x04501ffb, 0x04803ffb, 0x04b07ffb, 0x011000ef}, // idx_hf2 {0x10000000, 0x01e0002f, 0x22000031, 0x32f00072, 0x041000f7, 0x442000f8, 0x04c001fb, 0x04e001fd, 0x04f001fe, 0x050001ff, 0x40100002, 0x02c0006f, 0x039000ef, 0x048001f7, 0x1080000c, 0x00e0001f}, // idx_hf1 {0x00000000, 0x00800017, 0x0180006f, 0x02000077, 0x030001ef, 0x038001f7, 0x040003f7, 0x048007f7, 0x04c007fb, 0x04e007fd, 0x04f007fe, 0x050007ff}, // inp_hf11 {0x000c, 0x0004, 0x0244, 0x2405, 0x0225, 0x0025, 0x0465, 0x0265, 0x0485, 0x0286, 0x0686, 0x06a6, 0x0446, 0x04a6, 0x0046, 0x06c6, 0x08a7, 0x02a7, 0x08c7, 0x04c7, 0x08e7, 0x06e7, 0x0667, 0x0067, 0x0ac7, 0x0ae7, 0x04e7, 0x0907, 0x02c7, 0x0b07, 0x0707, 0x0b27, 0x0928, 0x0d08, 0x0508, 0x0ce8, 0x0d28, 0x0728, 0x02e8, 0x0a88, 0x0868, 0x22a8, 0x2268, 0x2288, 0x0d48, 0x22c8, 0x0888, 0x0948, 0x0088, 0x0648, 0x0b48, 0x0ca8, 0x22e8, 0x2248, 0x2308, 0x0528, 0x0f28, 0x0748, 0x0d68, 0x0b68, 0x0ec8, 0x2348, 0x0f48, 0x0f08, 0x2328, 0x10e8, 0x0428, 0x0308, 0x0968, 0x2368, 0x0f68, 0x2388, 0x1308, 0x2228, 0x0d88, 0x1528, 0x0548, 0x0b88, 0x1748, 0x23a8, 0x1168, 0x1148, 0x0768, 0x0aa8, 0x23c8, 0x1968, 0x0f88, 0x0988, 0x0da8, 0x0fa8, 0x00a8, 0x1189, 0x23e9, 0x1b89, 0x0329, 0x1129, 0x1fc9, 0x0ba9, 0x1da9, 0x0789, 0x11a9, 0x0fc9, 0x0569, 0x11c9, 0x1369, 0x1389, 0x21e9, 0x09a9, 0x0dc9, 0x0cc9, 0x13a9, 0x0bc9, 0x11e9, 0x0fe9, 0x0349, 0x15a9, 0x00c9, 0x1589, 0x1349, 0x13c9, 0x09c9, 0x0589, 0x13e9, 0x07a9, 0x0de9, 0x15c9, 0x1209, 0x15e9, 0x1409, 0x17c9, 0x0369, 0x0ee9, 0x1609, 0x1009, 0x07c9, 0x0be9, 0x1569, 0x09e9, 0x17a9, 0x1be9, 0x0e09, 0x1c09, 0x05a9, 0x2209, 0x0c09, 0x1809, 0x17ea, 0x142a, 0x102a, 0x122a, 0x020a, 0x0a2a, 0x00ea, 0x080a, 0x182a, 0x1bca, 0x1c2a, 0x19ea, 0x05ea, 0x1c4a, 0x124a, 0x0e2a, 0x164a, 0x162a, 0x1e0a, 0x1a0a, 0x038a, 0x0a0a, 0x178a, 0x07ea, 0x03ca, 0x19ca, 0x104a, 0x082a, 0x0c2a, 0x0c4a, 0x1e4a, 0x0a4a, 0x184a, 0x1e2a, 0x1a2a, 0x1c6a, 0x1a4a, 0x110a, 0x186a, 0x05ca, 0x144a, 0x1e6a, 0x0e6a, 0x168a, 0x202a, 0x126a, 0x146a, 0x1e8a, 0x166a, 0x0c6a, 0x188a, 0x1dea, 0x060a, 0x0e4a, 0x03aa, 0x1caa, 0x010a, 0x1c8a, 0x106a, 0x1a6a, 0x108a, 0x204a, 0x19aa, 0x0e8a, 0x062a, 0x208a, 0x206a, 0x03ea, 0x148a, 0x0a6a, 0x1eaa, 0x12aa, 0x1cca, 0x128a, 0x0c8a, 0x084a, 0x16aa, 0x18aa, 0x1a8a, 0x20aa, 0x20ca, 0x12ca, 0x200a, 0x10aa, 0x132a, 0x012a, 0x14ca, 0x14aa, 0x1aaa, 0x1eca, 0x16ea, 0x1eea, 0x1aca, 0x0eaa, 0x10ca, 0x14eb, 0x20eb, 0x18cb, 0x192b, 0x040b, 0x16cb, 0x170b, 0x1d0b, 0x1ceb, 0x190b, 0x18eb, 0x12eb, 0x1f2b, 0x1d2b, 0x1b2b, 0x210b, 0x1f0b, 0x154b, 0x1aeb, 0x150b, 0x014b, 0x1b0b, 0x176b, 0x1b4b, 0x172b, 0x1d4b, 0x01ab, 0x1f4b, 0x212b, 0x214b, 0x194b, 0x1f6b, 0x1bab, 0x016b, 0x1d6b, 0x216b, 0x218b, 0x1b6b, 0x1dcb, 0x1f8b, 0x1d8b, 0x198b, 0x1fab, 0x01cc, 0x018c, 0x21ac, 0x1fec, 0x01ec, 0x21cc}, // inp_hf10 {0x000c, 0x01c4, 0x01e4, 0x0364, 0x0385, 0x01a5, 0x0025, 0x0205, 0x0525, 0x0505, 0x03a5, 0x0545, 0x0346, 0x0046, 0x03c6, 0x06c6, 0x0226, 0x06a6, 0x0006, 0x06e6, 0x0566, 0x04e6, 0x0066, 0x0706, 0x03e6, 0x0866, 0x0247, 0x0847, 0x0887, 0x0587, 0x08a7, 0x0727, 0x0a07, 0x0407, 0x0a27, 0x0687, 0x09e7, 0x0087, 0x0267, 0x05a7, 0x08c7, 0x0a47, 0x0747, 0x0a68, 0x0ba8, 0x05c8, 0x0428, 0x08e8, 0x0d48, 0x0bc8, 0x0828, 0x0b88, 0x00a8, 0x0d28, 0x0288, 0x0d68, 0x0be8, 0x0768, 0x0448, 0x0a88, 0x0c08, 0x02a8, 0x05e8, 0x0d88, 0x0788, 0x0908, 0x0da8, 0x0928, 0x0c29, 0x0aa9, 0x0ee9, 0x09c9, 0x0ac9, 0x0f09, 0x0609, 0x0ec9, 0x0469, 0x00c9, 0x0dc9, 0x0f29, 0x07a9, 0x1089, 0x02c9, 0x0c49, 0x0de9, 0x0f49, 0x0c69, 0x10a9, 0x0949, 0x10c9, 0x0489, 0x1069, 0x0629, 0x0f69, 0x0ae9, 0x0d09, 0x07c9, 0x0b69, 0x1229, 0x0c8a, 0x124a, 0x110a, 0x02ea, 0x120a, 0x0f8a, 0x00ea, 0x0e0a, 0x10ea, 0x064a, 0x096a, 0x0e2a, 0x128a, 0x010a, 0x126a, 0x04aa, 0x0caa, 0x0b0a, 0x112a, 0x07ea, 0x030a, 0x13ca, 0x0faa, 0x13ea, 0x12aa, 0x098a, 0x140a, 0x12ca, 0x142a, 0x066a, 0x0b2a, 0x0eaa, 0x114a, 0x104a, 0x13aa, 0x012a, 0x080a, 0x0fca, 0x144a, 0x04ca, 0x0e4a, 0x0feb, 0x032b, 0x12eb, 0x146b, 0x0ccb, 0x09ab, 0x0b4b, 0x116b, 0x0e6b, 0x148b, 0x014b, 0x0ceb, 0x11eb, 0x118b, 0x130b, 0x132b, 0x016b, 0x134b, 0x100b, 0x11ab, 0x138b, 0x0e8b, 0x14ac, 0x11cc, 0x102c, 0x136c, 0x14ec, 0x018c, 0x14cc, 0x150c}, // inp_hf9 {0x000f, 0x0001, 0x01a3, 0x0023, 0x01c4, 0x0366, 0x01e6, 0x0346, 0x0046, 0x0507, 0x0387, 0x0207, 0x04e8, 0x0068, 0x03a8, 0x0528, 0x0228, 0x06a8, 0x03c8, 0x0248, 0x06c9, 0x0549, 0x0089, 0x0689, 0x0849, 0x03e9, 0x0269, 0x0569, 0x0869, 0x09e9, 0x06e9, 0x00aa, 0x040a, 0x082a, 0x028a, 0x058a, 0x02aa, 0x0d2a, 0x070a, 0x088a, 0x0a0a, 0x0b8a, 0x00ca, 0x0d4a, 0x044a, 0x05aa, 0x042a, 0x072a, 0x0eca, 0x02ca, 0x0baa, 0x09cb, 0x08ab, 0x0a2b, 0x0d6b, 0x00eb, 0x0eeb, 0x05eb, 0x074b, 0x05cb, 0x010b, 0x106b, 0x0a4b, 0x046b, 0x08cb, 0x0d0b, 0x0b6b, 0x0bcb, 0x108b, 0x0f0b, 0x0d8b, 0x02eb, 0x0beb, 0x0a6b, 0x08eb, 0x078b, 0x076b, 0x060b, 0x120b, 0x092b, 0x0eab, 0x0dab, 0x10ac, 0x048c, 0x012c, 0x122c, 0x0f2c, 0x0a8c, 0x13ac, 0x07ac, 0x0dcc, 0x030c, 0x0f4c, 0x10cc, 0x090c, 0x0c0c, 0x04ac, 0x032c, 0x13cc, 0x124c, 0x062c, 0x094c, 0x0aac, 0x0dec, 0x126c, 0x014c, 0x0c2c, 0x13ec, 0x104c, 0x10ec, 0x07cc, 0x0acc, 0x04cc, 0x0f6c, 0x0f8c, 0x07ec, 0x11ec, 0x0aec, 0x064c, 0x096c, 0x0e0d, 0x0c6d, 0x142d, 0x066d, 0x128d, 0x0c4d, 0x140d, 0x12ad, 0x110d, 0x080d, 0x0c8d, 0x098d, 0x016d, 0x144d, 0x0b0d, 0x138d, 0x112d, 0x09ad, 0x0cad, 0x0fad, 0x018d, 0x12cd, 0x0e2d, 0x0fcd, 0x114d, 0x0ccd, 0x146d, 0x0b2d, 0x0e6d, 0x12ed, 0x0ced, 0x0b4d, 0x0e4e, 0x116e, 0x0e8e, 0x0fee, 0x100e, 0x102e, 0x11ae, 0x14ae, 0x118e, 0x130e, 0x148e, 0x132e, 0x14ce, 0x14ee, 0x11cf, 0x134f, 0x136f, 0x150f}, // inp_hf8 {0x000a, 0x0123, 0x0224, 0x0104, 0x0144, 0x0024, 0x0244, 0x0005, 0x0205, 0x0045, 0x0325, 0x0165, 0x0345, 0x0265, 0x0366, 0x0426, 0x0186, 0x0446, 0x0286, 0x0306, 0x0066, 0x0466, 0x0386, 0x0546, 0x0527, 0x02a7, 0x01a7, 0x0567, 0x03a7, 0x0487, 0x0587, 0x0087, 0x04a7, 0x0407, 0x02c7, 0x0647, 0x0627, 0x01c7, 0x03c8, 0x0668, 0x05a8, 0x0508, 0x0688, 0x00a8, 0x04c8, 0x0728, 0x0748, 0x02e8, 0x06a8, 0x0768, 0x01e8, 0x05c8, 0x03e8, 0x06c9, 0x0789, 0x0609, 0x04e9, 0x00c9, 0x07a9, 0x07c9, 0x06e9, 0x05ea, 0x070a, 0x00ea, 0x07ea}, // inp_hf7 {0x000c, 0x0001, 0x0103, 0x0023, 0x0124, 0x0226, 0x0146, 0x0206, 0x0046, 0x0327, 0x0167, 0x0247, 0x0307, 0x0067, 0x0268, 0x0348, 0x0188, 0x0428, 0x01a8, 0x0528, 0x0368, 0x0288, 0x0088, 0x0408, 0x0449, 0x02a9, 0x0549, 0x00a9, 0x0629, 0x0509, 0x01c9, 0x0469, 0x03a9, 0x0389, 0x0569, 0x02c9, 0x0649, 0x01e9, 0x03ca, 0x00ca, 0x060a, 0x048a, 0x072a, 0x04aa, 0x074a, 0x058a, 0x066a, 0x02ea, 0x076a, 0x068a, 0x05aa, 0x04ca, 0x03ea, 0x070b, 0x00eb, 0x06ab, 0x05cb, 0x078b, 0x04eb, 0x05eb, 0x07ab, 0x07cc, 0x06cc, 0x06ec, 0x07ec}, // inp_hf6 {0x000b, 0x0504, 0x0624, 0x04e4, 0x0524, 0x03e4, 0x0644, 0x0404, 0x0604, 0x03c4, 0x0726, 0x0766, 0x02e6, 0x02a6, 0x02c6, 0x0426, 0x0746, 0x05e6, 0x0666, 0x04c6, 0x03a6, 0x0546, 0x0706, 0x0306, 0x0286, 0x0786, 0x01c7, 0x0887, 0x0847, 0x0447, 0x0187, 0x0687, 0x05c7, 0x0387, 0x0867, 0x01a7, 0x04a7, 0x0567, 0x08a7, 0x0168, 0x0328, 0x07a8, 0x0828, 0x06e8, 0x0268, 0x01e8, 0x08c8, 0x0809, 0x0149, 0x0209, 0x05a9, 0x0369, 0x09a9, 0x00a9, 0x0069, 0x06a9, 0x0969, 0x0469, 0x0489, 0x00c9, 0x0049, 0x07c9, 0x0249, 0x0089, 0x09c9, 0x0949, 0x0349, 0x0989, 0x06c9, 0x0589, 0x012a, 0x022a, 0x07ea, 0x092a, 0x08ea, 0x09ea, 0x00ea, 0x002a, 0x0a0b, 0x010b, 0x000b, 0x090b}, // inp_hf5 {0x000d, 0x0501, 0x03e4, 0x0624, 0x0524, 0x04e4, 0x0605, 0x0405, 0x03c5, 0x0645, 0x02c7, 0x0547, 0x0747, 0x04c7, 0x02a8, 0x0768, 0x03a8, 0x0668, 0x02e8, 0x0728, 0x0428, 0x05e8, 0x01a8, 0x0868, 0x04a8, 0x0568, 0x0189, 0x0689, 0x0889, 0x0389, 0x01c9, 0x0849, 0x05c9, 0x0449, 0x0309, 0x0789, 0x0289, 0x0709, 0x016a, 0x082a, 0x032a, 0x06ea, 0x08aa, 0x07aa, 0x01ea, 0x026a, 0x048a, 0x008a, 0x09aa, 0x098a, 0x006b, 0x058b, 0x096b, 0x036b, 0x06ab, 0x046b, 0x00ab, 0x05ab, 0x080b, 0x014b, 0x020b, 0x034b, 0x004b, 0x09cb, 0x06cb, 0x07cb, 0x08cb, 0x00cb, 0x024c, 0x094c, 0x07ec, 0x002c, 0x00ec, 0x08ec, 0x022c, 0x09ec, 0x092c, 0x012c, 0x090d, 0x010d, 0x0a0d, 0x000d}, // inp_hf4 {0x000c, 0x0504, 0x01a4, 0x04a4, 0x04e4, 0x03e4, 0x0364, 0x0484, 0x0004, 0x0084, 0x03c4, 0x0385, 0x0185, 0x0025, 0x0145, 0x0065, 0x0125, 0x0867, 0x0567, 0x0627, 0x0527, 0x0847, 0x0807, 0x0607, 0x0747, 0x0207, 0x01c8, 0x0548, 0x02c8, 0x0408, 0x05c8, 0x04c8, 0x0448, 0x07e8, 0x0728, 0x05a8, 0x06e8, 0x0168, 0x02a8, 0x00a8, 0x01e8, 0x0268, 0x03a8, 0x00e8, 0x0428, 0x06c8, 0x0048, 0x0249, 0x00c9, 0x0689, 0x0989, 0x08c9, 0x0589, 0x0649, 0x0889, 0x066a, 0x096a, 0x08aa, 0x032a, 0x022a, 0x092a, 0x02ea, 0x07aa, 0x046a, 0x09ea, 0x05ea, 0x076a, 0x082a, 0x06aa, 0x08eb, 0x09ab, 0x030b, 0x090b, 0x010b, 0x078b, 0x028b, 0x070b, 0x0a0b, 0x034b, 0x09cb, 0x094c, 0x07cc}, // inp_hf3 {0x0010, 0x0001, 0x0364, 0x0024, 0x0124, 0x0064, 0x0485, 0x0085, 0x0186, 0x0146, 0x03c6, 0x01a6, 0x0386, 0x04e6, 0x0507, 0x03e7, 0x04a7, 0x06c8, 0x0048, 0x00a8, 0x07e8, 0x0608, 0x00e9, 0x0209, 0x05a9, 0x01c9, 0x0849, 0x00c9, 0x02a9, 0x01e9, 0x0249, 0x0169, 0x0729, 0x0629, 0x02c9, 0x0549, 0x0569, 0x05ca, 0x042a, 0x044a, 0x026a, 0x086a, 0x052a, 0x080a, 0x040a, 0x010a, 0x022a, 0x096a, 0x066a, 0x03aa, 0x06ea, 0x032a, 0x090b, 0x068b, 0x04cb, 0x074b, 0x058b, 0x098b, 0x030b, 0x02eb, 0x046c, 0x092c, 0x08ac, 0x09cc, 0x034c, 0x09ec, 0x08cc, 0x064c, 0x06ac, 0x028d, 0x078d, 0x05ed, 0x07ae, 0x088e, 0x082e, 0x0a0f, 0x09af, 0x08ef, 0x076f, 0x070f, 0x0950, 0x07d0}, // inp_hf2 {0x0009, 0x0503, 0x0864, 0x01a5, 0x0525, 0x04a5, 0x04e5, 0x03e5, 0x0565, 0x0625, 0x0446, 0x02c6, 0x05c6, 0x0546, 0x0606, 0x04c6, 0x0186, 0x0746, 0x0806, 0x0086, 0x0486, 0x08c6, 0x0886, 0x0406, 0x0206, 0x0646, 0x0386, 0x01c6, 0x03c6, 0x0146, 0x0986, 0x0686, 0x0586, 0x0846, 0x05e7, 0x0827, 0x0267, 0x0427, 0x07a7, 0x0967, 0x08e7, 0x0327, 0x03a7, 0x09e7, 0x01e7, 0x0027, 0x0167, 0x06e7, 0x0927, 0x0768, 0x02a8, 0x00e8, 0x0228, 0x00a8, 0x0068, 0x0368, 0x08a8, 0x07e8, 0x05a8, 0x06a8, 0x02e8, 0x0128, 0x0668, 0x0728, 0x0468, 0x09a8, 0x0788, 0x0288, 0x0709, 0x0009, 0x0309, 0x0349, 0x0a09, 0x00c9, 0x07c9, 0x0249, 0x0109, 0x0909, 0x06c9, 0x0049, 0x0949, 0x09c9}, // inp_hf1 {0x000b, 0x0501, 0x0865, 0x01a5, 0x04e5, 0x0625, 0x0525, 0x04a5, 0x0565, 0x03e5, 0x0747, 0x02c7, 0x04c7, 0x05c7, 0x0447, 0x0547, 0x0987, 0x0487, 0x0087, 0x0387, 0x0807, 0x0607, 0x0207, 0x0587, 0x08c7, 0x0407, 0x0687, 0x0647, 0x0147, 0x0887, 0x0187, 0x0847, 0x01c7, 0x03c7, 0x0929, 0x0269, 0x07a9, 0x0669, 0x05e9, 0x0469, 0x0429, 0x06e9, 0x0829, 0x05a9, 0x0329, 0x01e9, 0x00e9, 0x03a9, 0x0769, 0x0729, 0x02a9, 0x0029, 0x0369, 0x06a9, 0x08a9, 0x09a9, 0x02e9, 0x09e9, 0x00aa, 0x012a, 0x096a, 0x07ea, 0x016a, 0x006a, 0x022a, 0x08ea, 0x078b, 0x028b, 0x030b, 0x070b, 0x0a0b, 0x010b, 0x090b, 0x00cb, 0x000b, 0x094b, 0x07cb, 0x034b, 0x024b, 0x004b, 0x06cb, 0x09cb}, // UWORD16 huffman_code_book_scl[122]; {0x0013, 0x0781, 0x0763, 0x07a4, 0x0744, 0x07c4, 0x0725, 0x07e5, 0x0706, 0x0806, 0x06e6, 0x0826, 0x0847, 0x06c7, 0x0867, 0x06a8, 0x0888, 0x0688, 0x08a8, 0x0668, 0x08c9, 0x0649, 0x0629, 0x08e9, 0x090a, 0x060a, 0x092a, 0x05ea, 0x094a, 0x05ca, 0x098b, 0x096b, 0x09ab, 0x09cb, 0x05ab, 0x056b, 0x058c, 0x09ec, 0x054c, 0x052c, 0x0a0c, 0x050c, 0x0a2d, 0x04ed, 0x0a4d, 0x04cd, 0x0a6d, 0x04ae, 0x046e, 0x0aae, 0x042e, 0x048e, 0x044e, 0x0a8e, 0x040e, 0x0aef, 0x0b2f, 0x03cf, 0x03ef, 0x0ad0, 0x03b0, 0x0350, 0x0370, 0x0390, 0x0310, 0x0b10, 0x0331, 0x02d1, 0x02f1, 0x0b52, 0x02b2, 0x0272, 0x0072, 0x0032, 0x0052, 0x0012, 0x0c53, 0x0c73, 0x0c93, 0x0cb3, 0x0cd3, 0x0eb3, 0x0c33, 0x0b73, 0x0b93, 0x0bb3, 0x0bd3, 0x0bf3, 0x0c13, 0x0d13, 0x0df3, 0x0e13, 0x0e33, 0x0e53, 0x0e73, 0x0e93, 0x0dd3, 0x0d33, 0x0d53, 0x0d73, 0x0d93, 0x0db3, 0x0ed3, 0x00d3, 0x0113, 0x0133, 0x0153, 0x00b3, 0x0cf3, 0x0f13, 0x0ef3, 0x0093, 0x00f3, 0x01f3, 0x0213, 0x0253, 0x0293, 0x0233, 0x0173, 0x0193, 0x01d3, 0x01b3}, // UWORD32 huffman_code_book_scl_index[33]; {0x00000000, 0x10100004, 0x2040000c, 0x00a0003b, 0x30d0007a, 0x412000fa, 0x516001f9, 0x61c003f9, 0x722007f9, 0x82800ff9, 0x92d01ff8, 0xa3503ff9, 0xb400fff6, 0xc431fff0, 0x0687ffef, 0x0707fff7, 0x0747fffb, 0x0767fffd, 0x0777fffe, 0x0787ffff, 0x0030000b, 0x0060001b, 0x00f000f7, 0x014001f7, 0x01a003f7, 0x020007f7, 0x02600ff7, 0x02c01ff7, 0x03303ff7, 0x03907ff7, 0x0421ffef, 0x14a3ffe8, 0x0587ffdf}, // const WORD16 ixheaacd_sfb_48_512[37] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 52, -1}, // const WORD16 ixheaacd_sfb_32_512[38] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 16, 16, 16, 20, 24, 24, 28, 32, 32, 32, 32, 32, 32, 32, -1}, // const WORD16 ixheaacd_sfb_24_512[32] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1}, // const WORD16 ixheaacd_sfb_48_480[36] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 16, 16, 24, 28, 32, 32, 32, 32, 32, 32, 48, -1, }, // const WORD16 ixheaacd_sfb_32_480[38] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 12, 12, 12, 16, 16, 20, 24, 32, 32, 32, 32, 32, 32, 32, 32, -1, }, // const WORD16 ixheaacd_sfb_24_480[31] = { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 12, 12, 12, 16, 20, 24, 28, 32, 32, 32, 32, 32, 32, 32, 32, 32, -1, }, }; // end of ia_aac_dec_huffman_tables_struct const ia_aac_dec_block_tables_struct ixheaacd_aac_block_tables = { // const WORD32 ixheaacd_pow_table_Q13[129] = {0 >> 4, 131072 >> 4, 330281 >> 4, 567116 >> 4, 832256 >> 4, 1120650 >> 4, 1429042 >> 4, 1755122 >> 4, 2097152 >> 4, 2453767 >> 4, 2823861 >> 4, 3206517 >> 4, 3600960 >> 4, 4006524 >> 4, 4422631 >> 4, 4848770 >> 4, 5284492 >> 4, 5729392 >> 4, 6183105 >> 4, 6645302 >> 4, 7115683 >> 4, 7593972 >> 4, 8079916 >> 4, 8573281 >> 4, 9073850 >> 4, 9581422 >> 4, 10095808 >> 4, 10616832 >> 4, 11144330 >> 4, 11678147 >> 4, 12218136 >> 4, 12764159 >> 4, 13316085 >> 4, 13873792 >> 4, 14437162 >> 4, 15006082 >> 4, 15580448 >> 4, 16160157 >> 4, 16745112 >> 4, 17335222 >> 4, 17930398 >> 4, 18530554 >> 4, 19135610 >> 4, 19745488 >> 4, 20360112 >> 4, 20979411 >> 4, 21603314 >> 4, 22231755 >> 4, 22864669 >> 4, 23501994 >> 4, 24143669 >> 4, 24789637 >> 4, 25439841 >> 4, 26094226 >> 4, 26752740 >> 4, 27415332 >> 4, 28081952 >> 4, 28752552 >> 4, 29427086 >> 4, 30105507 >> 4, 30787772 >> 4, 31473838 >> 4, 32163664 >> 4, 32857208 >> 4, 33554432 >> 4, 34255297 >> 4, 34959765 >> 4, 35667801 >> 4, 36379368 >> 4, 37094431 >> 4, 37812958 >> 4, 38534914 >> 4, 39260268 >> 4, 39988988 >> 4, 40721043 >> 4, 41456403 >> 4, 42195038 >> 4, 42936921 >> 4, 43682022 >> 4, 44430314 >> 4, 45181770 >> 4, 45936364 >> 4, 46694070 >> 4, 47454862 >> 4, 48218716 >> 4, 48985607 >> 4, 49755512 >> 4, 50528406 >> 4, 51304267 >> 4, 52083073 >> 4, 52864802 >> 4, 53649431 >> 4, 54436939 >> 4, 55227306 >> 4, 56020511 >> 4, 56816534 >> 4, 57615355 >> 4, 58416954 >> 4, 59221313 >> 4, 60028412 >> 4, 60838233 >> 4, 61650759 >> 4, 62465970 >> 4, 63283850 >> 4, 64104381 >> 4, 64927547 >> 4, 65753329 >> 4, 66581713 >> 4, 67412681 >> 4, 68246218 >> 4, 69082308 >> 4, 69920936 >> 4, 70762086 >> 4, 71605743 >> 4, 72451892 >> 4, 73300519 >> 4, 74151609 >> 4, 75005149 >> 4, 75861124 >> 4, 76719520 >> 4, 77580324 >> 4, 78443523 >> 4, 79309103 >> 4, 80177051 >> 4, 81047354 >> 4, 81920000 >> 4, 82794977 >> 4, 83672271 >> 4, 84551871 >> 4}, // const WORD16 scale_table[4] = { 16384, 19484, 23171, 27555}, // const WORD8 tns_max_bands_tbl[12][2] = { // Long //Short {31, 9}, // 96000 {31, 9}, // 88200 {34, 10}, // 64000 {40, 14}, // 48000 {42, 14}, // 44100 {51, 14}, // 32000 {46, 14}, // 24000 {46, 14}, // 22050 {42, 14}, // 16000 {42, 14}, // 12000 {42, 14}, // 11025 {39, 14} // 8000 }, // const WORD16 tns_coeff3_16[8] = {(WORD16)-0x7e0e, (WORD16)-0x6eda, (WORD16)-0x5247, (WORD16)-0x2bc7, (WORD16)0x0000, (WORD16)0x378a, (WORD16)0x6413, (WORD16)0x7cca}, // const WORD16 tns_coeff4_16[16] = {(WORD16)-0x7f74, (WORD16)-0x7b1d, (WORD16)-0x7295, (WORD16)-0x6625, (WORD16)-0x563c, (WORD16)-0x4362, (WORD16)-0x2e3d, (WORD16)-0x1785, (WORD16)0x0000, (WORD16)0x1a9d, (WORD16)0x3410, (WORD16)0x4b3d, (WORD16)0x5f1f, (WORD16)0x6eda, (WORD16)0x79bc, (WORD16)0x7f4c}, // const WORD32 scale_mant_tab[PNS_SCALE_MANT_TAB_SIZE] = {0x08000000, 0x09837f05, 0x0b504f33, 0x0d744fcc}, // const WORD32 tns_coeff3[8] = { -2114858540, -1859775364, -1380375817, -734482679, 0, 931758215, 1678970362, 2093641723, }, // const WORD32 tns_coeff4[16] = { -2138322869, -2065504899, -1922348549, -1713729017, -1446750457, -1130504584, -775760644, -394599111, 0, 446486976, 873460283, 1262259191, 1595891328, 1859775364, 2042378368, 2135719561, }, // const WORD32 tns_coeff3_32[8] = {(WORD32)-0x7e0e2e31, (WORD32)-0x6ed9eba0, (WORD32)-0x5246dd48, (WORD32)-0x2bc750e8, (WORD32)0x00000000, (WORD32)0x3789809a, (WORD32)0x64130dd3, (WORD32)0x7cca7014}, // const WORD32 tns_coeff4_32[16] = {(WORD32)-0x7f7437ac, (WORD32)-0x7b1d1a47, (WORD32)-0x7294b5f1, (WORD32)-0x66256db1, (WORD32)-0x563ba8a9, (WORD32)-0x4362210d, (WORD32)-0x2e3d2aba, (WORD32)-0x17851aac, (WORD32)0x00000000, (WORD32)0x1a9cd9ac, (WORD32)0x340ff241, (WORD32)0x4b3c8c11, (WORD32)0x5f1f5ea0, (WORD32)0x6ed9eba0, (WORD32)0x79bc384c, (WORD32)0x7f4c7e52}, // const WORD32 tns_max_bands_tbl_usac[(1<<LEN_SAMP_IDX)][2] = { { 31, 9, }, // 96000 { 31, 9, }, // 88200 { 34, 10, }, // 64000 { 40, 14, }, // 48000 { 42, 14, }, // 44100 { 51, 14, }, // 32000 { 47, 15, }, // 24000 { 47, 15, }, // 22050 { 43, 15, }, // 16000 { 43, 15, }, // 12000 { 43, 15, }, // 11025 { 40, 15, }, // 8000 { 40, 15, }, // 7350 { 0, 0, }, { 0, 0, }, { 0, 0, }}, // const Word8 tns_max_bands_tbl_ld[12][4] = { /*{*/ 31, /* 96000 */ /*{*/ 31, /* 88200 */ /*{*/ 31, /* 64000 */ /*{*/ 31, /* 48000 */ /*{*/ 32, /* 44100 */ /*{*/ 37, /* 32000 */ /*{*/ 31, /* 24000 */ /*{*/ 31, /* 22050 */ /*{*/ 31, /* 16000 */ /*{*/ 31, /* 12000 */ /*{*/ 31, /* 11025 */ /*{*/ 31, /* 8000 */ }, // const Word8 tns_max_bands_tbl_480[12][4] = { /*{*/ 31, /* 96000 */ /*{*/ 31, /* 88200 */ /*{*/ 31, /* 64000 */ /*{*/ 31, /* 48000 */ /*{*/ 32, /* 44100 */ /*{*/ 37, /* 32000 */ /*{*/ 30, /* 24000 */ /*{*/ 30, /* 22050 */ /*{*/ 30, /* 16000 */ /*{*/ 30, /* 12000 */ /*{*/ 30, /* 11025 */ /*{*/ 30, /* 8000 */ } }; // end of ia_aac_dec_block_tables_struct */ const ia_aac_dec_imdct_tables_struct ixheaacd_imdct_tables = { // const WORD16 cos_array_2048[512] and const WORD16 sine_array_2048[512] = { -32767, 0, -32767, -101, -32767, -201, -32767, -302, -32766, -402, -32764, -503, -32762, -603, -32760, -704, -32758, -804, -32756, -905, -32753, -1005, -32749, -1106, -32746, -1206, -32742, -1307, -32738, -1407, -32733, -1507, -32729, -1608, -32723, -1708, -32718, -1809, -32712, -1909, -32706, -2009, -32700, -2110, -32693, -2210, -32686, -2310, -32679, -2411, -32672, -2511, -32664, -2611, -32656, -2711, -32647, -2811, -32638, -2912, -32629, -3012, -32620, -3112, -32610, -3212, -32600, -3312, -32590, -3412, -32579, -3512, -32568, -3612, -32557, -3712, -32546, -3812, -32534, -3911, -32522, -4011, -32509, -4111, -32496, -4211, -32483, -4310, -32470, -4410, -32456, -4510, -32442, -4609, -32428, -4709, -32413, -4808, -32398, -4908, -32383, -5007, -32368, -5106, -32352, -5206, -32336, -5305, -32319, -5404, -32303, -5503, -32286, -5602, -32268, -5701, -32251, -5800, -32233, -5899, -32214, -5998, -32196, -6097, -32177, -6195, -32158, -6294, -32138, -6393, -32119, -6491, -32099, -6590, -32078, -6688, -32058, -6787, -32037, -6885, -32015, -6983, -31994, -7081, -31972, -7180, -31950, -7278, -31927, -7376, -31904, -7474, -31881, -7571, -31858, -7669, -31834, -7767, -31810, -7864, -31786, -7962, -31761, -8059, -31737, -8157, -31711, -8254, -31686, -8351, -31660, -8449, -31634, -8546, -31608, -8643, -31581, -8740, -31554, -8837, -31527, -8933, -31499, -9030, -31471, -9127, -31443, -9223, -31415, -9320, -31386, -9416, -31357, -9512, -31328, -9608, -31298, -9704, -31268, -9800, -31238, -9896, -31207, -9992, -31177, -10088, -31146, -10183, -31114, -10279, -31082, -10374, -31050, -10469, -31018, -10565, -30986, -10660, -30953, -10755, -30920, -10850, -30886, -10945, -30853, -11039, -30819, -11134, -30784, -11228, -30750, -11323, -30715, -11417, -30680, -11511, -30644, -11605, -30608, -11699, -30572, -11793, -30536, -11887, -30499, -11980, -30462, -12074, -30425, -12167, -30388, -12261, -30350, -12354, -30312, -12447, -30274, -12540, -30235, -12633, -30196, -12725, -30157, -12818, -30118, -12910, -30078, -13003, -30038, -13095, -29997, -13187, -29957, -13279, -29916, -13371, -29875, -13463, -29833, -13554, -29792, -13646, -29750, -13737, -29707, -13828, -29665, -13919, -29622, -14010, -29579, -14101, -29535, -14192, -29492, -14282, -29448, -14373, -29404, -14463, -29359, -14553, -29314, -14643, -29269, -14733, -29224, -14823, -29178, -14912, -29132, -15002, -29086, -15091, -29040, -15180, -28993, -15269, -28946, -15358, -28899, -15447, -28851, -15535, -28803, -15624, -28755, -15712, -28707, -15800, -28658, -15888, -28610, -15976, -28560, -16064, -28511, -16151, -28461, -16239, -28411, -16326, -28361, -16413, -28311, -16500, -28260, -16587, -28209, -16673, -28158, -16760, -28106, -16846, -28054, -16932, -28002, -17018, -27950, -17104, -27897, -17190, -27844, -17275, -27791, -17361, -27738, -17446, -27684, -17531, -27630, -17616, -27576, -17700, -27522, -17785, -27467, -17869, -27412, -17953, -27357, -18037, -27301, -18121, -27246, -18205, -27190, -18288, -27133, -18372, -27077, -18455, -27020, -18538, -26963, -18621, -26906, -18703, -26848, -18786, -26791, -18868, -26733, -18950, -26674, -19032, -26616, -19114, -26557, -19195, -26498, -19277, -26439, -19358, -26379, -19439, -26320, -19520, -26260, -19601, -26199, -19681, -26139, -19761, -26078, -19841, -26017, -19921, -25956, -20001, -25894, -20081, -25833, -20160, -25771, -20239, -25708, -20318, -25646, -20397, -25583, -20475, -25520, -20554, -25457, -20632, -25394, -20710, -25330, -20788, -25266, -20865, -25202, -20943, -25138, -21020, -25073, -21097, -25008, -21174, -24943, -21251, -24878, -21327, -24812, -21403, -24746, -21479, -24680, -21555, -24614, -21631, -24548, -21706, -24481, -21781, -24414, -21856, -24347, -21931, -24280, -22006, -24212, -22080, -24144, -22154, -24076, -22228, -24008, -22302, -23939, -22375, -23870, -22449, -23801, -22522, -23732, -22595, -23663, -22668, -23593, -22740, -23523, -22812, -23453, -22884, -23383, -22956, -23312, -23028, -23241, -23099, -23170, -23170, }, // const WORD8 dig_rev_table8_long[64] {0, 8, 16, 24, 32, 40, 48, 56, 1, 9, 17, 25, 33, 41, 49, 57, 2, 10, 18, 26, 34, 42, 50, 58, 3, 11, 19, 27, 35, 43, 51, 59, 4, 12, 20, 28, 36, 44, 52, 60, 5, 13, 21, 29, 37, 45, 53, 61, 6, 14, 22, 30, 38, 46, 54, 62, 7, 15, 23, 31, 39, 47, 55, 63}, // const WORD8 dig_rev_table8_short {0, 1, 2, 3, 4, 5, 6, 7}, // const WORD32 fft_twiddle[64 * 7] = {0x00007fff, 0xfe6e7ffe, 0xfcdc7ff6, 0xfb4a7fea, 0xf9b87fd9, 0xf8277fc2, 0xf6957fa7, 0xf5057f87, 0xf3747f62, 0xf1e47f38, 0xf0557f0a, 0xeec67ed6, 0xed387e9d, 0xebab7e60, 0xea1e7e1e, 0xe8927dd6, 0xe7077d8a, 0xe57d7d3a, 0xe3f47ce4, 0xe26d7c89, 0xe0e67c2a, 0xdf617bc6, 0xdddc7b5d, 0xdc597aef, 0xdad87a7d, 0xd9587a06, 0xd7d9798a, 0xd65c790a, 0xd4e17885, 0xd36777fb, 0xd1ef776c, 0xd07976d9, 0xcf047642, 0xcd9275a6, 0xcc217505, 0xcab27460, 0xc94673b6, 0xc7db7308, 0xc6737255, 0xc50d719e, 0xc3a970e3, 0xc2487023, 0xc0e96f5f, 0xbf8c6e97, 0xbe326dca, 0xbcda6cf9, 0xbb856c24, 0xba336b4b, 0xb8e36a6e, 0xb796698c, 0xb64c68a7, 0xb50567bd, 0xb3c066d0, 0xb27f65de, 0xb14064e9, 0xb00563ef, 0xaecc62f2, 0xad9761f1, 0xac6560ec, 0xab365fe4, 0xaa0a5ed7, 0xa8e25dc8, 0xa7bd5cb4, 0xa69c5b9d, 0xa57e5a82, 0xa4635964, 0xa34c5843, 0xa238571e, 0xa12955f6, 0xa01c54ca, 0x9f14539b, 0x9e0f5269, 0x9d0e5134, 0x9c114ffb, 0x9b174ec0, 0x9a224d81, 0x99304c40, 0x98434afb, 0x975949b4, 0x9674486a, 0x9592471d, 0x94b545cd, 0x93dc447b, 0x93074326, 0x923641ce, 0x91694074, 0x90a13f17, 0x8fdd3db8, 0x8f1d3c57, 0x8e623af3, 0x8dab398d, 0x8cf83825, 0x8c4a36ba, 0x8ba0354e, 0x8afb33df, 0x8a5a326e, 0x89be30fc, 0x89272f87, 0x88942e11, 0x88052c99, 0x877b2b1f, 0x86f629a4, 0x86762827, 0x85fa26a8, 0x85832528, 0x851123a7, 0x84a32224, 0x843a209f, 0x83d61f1a, 0x83771d93, 0x831c1c0c, 0x82c61a83, 0x827618f9, 0x822a176e, 0x81e215e2, 0x81a01455, 0x816312c8, 0x812a113a, 0x80f60fab, 0x80c80e1c, 0x809e0c8c, 0x80790afb, 0x8059096b, 0x803e07d9, 0x80270648, 0x801604b6, 0x800a0324, 0x80020192, 0x80000000, 0x8002fe6e, 0x800afcdc, 0x8016fb4a, 0x8027f9b8, 0x803ef827, 0x8059f695, 0x8079f505, 0x809ef374, 0x80c8f1e4, 0x80f6f055, 0x812aeec6, 0x8163ed38, 0x81a0ebab, 0x81e2ea1e, 0x822ae892, 0x8276e707, 0x82c6e57d, 0x831ce3f4, 0x8377e26d, 0x83d6e0e6, 0x843adf61, 0x84a3dddc, 0x8511dc59, 0x8583dad8, 0x85fad958, 0x8676d7d9, 0x86f6d65c, 0x877bd4e1, 0x8805d367, 0x8894d1ef, 0x8927d079, 0x89becf04, 0x8a5acd92, 0x8afbcc21, 0x8ba0cab2, 0x8c4ac946, 0x8cf8c7db, 0x8dabc673, 0x8e62c50d, 0x8f1dc3a9, 0x8fddc248, 0x90a1c0e9, 0x9169bf8c, 0x9236be32, 0x9307bcda, 0x93dcbb85, 0x94b5ba33, 0x9592b8e3, 0x9674b796, 0x9759b64c, 0x9843b505, 0x9930b3c0, 0x9a22b27f, 0x9b17b140, 0x9c11b005, 0x9d0eaecc, 0x9e0fad97, 0x9f14ac65, 0xa01cab36, 0xa129aa0a, 0xa238a8e2, 0xa34ca7bd, 0xa463a69c, 0xa57ea57e, 0xa69ca463, 0xa7bda34c, 0xa8e2a238, 0xaa0aa129, 0xab36a01c, 0xac659f14, 0xad979e0f, 0xaecc9d0e, 0xb0059c11, 0xb1409b17, 0xb27f9a22, 0xb3c09930, 0xb5059843, 0xb64c9759, 0xb7969674, 0xb8e39592, 0xba3394b5, 0xbb8593dc, 0xbcda9307, 0xbe329236, 0xbf8c9169, 0xc0e990a1, 0xc2488fdd, 0xc3a98f1d, 0xc50d8e62, 0xc6738dab, 0xc7db8cf8, 0xc9468c4a, 0xcab28ba0, 0xcc218afb, 0xcd928a5a, 0xcf0489be, 0xd0798927, 0xd1ef8894, 0xd3678805, 0xd4e1877b, 0xd65c86f6, 0xd7d98676, 0xd95885fa, 0xdad88583, 0xdc598511, 0xdddc84a3, 0xdf61843a, 0xe0e683d6, 0xe26d8377, 0xe3f4831c, 0xe57d82c6, 0xe7078276, 0xe892822a, 0xea1e81e2, 0xebab81a0, 0xed388163, 0xeec6812a, 0xf05580f6, 0xf1e480c8, 0xf374809e, 0xf5058079, 0xf6958059, 0xf827803e, 0xf9b88027, 0xfb4a8016, 0xfcdc800a, 0xfe6e8002, 0x00008000, 0x01928002, 0x0324800a, 0x04b68016, 0x06488027, 0x07d9803e, 0x096b8059, 0x0afb8079, 0x0c8c809e, 0x0e1c80c8, 0x0fab80f6, 0x113a812a, 0x12c88163, 0x145581a0, 0x15e281e2, 0x176e822a, 0x18f98276, 0x1a8382c6, 0x1c0c831c, 0x1d938377, 0x1f1a83d6, 0x209f843a, 0x222484a3, 0x23a78511, 0x25288583, 0x26a885fa, 0x28278676, 0x29a486f6, 0x2b1f877b, 0x2c998805, 0x2e118894, 0x2f878927, 0x30fc89be, 0x326e8a5a, 0x33df8afb, 0x354e8ba0, 0x36ba8c4a, 0x38258cf8, 0x398d8dab, 0x3af38e62, 0x3c578f1d, 0x3db88fdd, 0x3f1790a1, 0x40749169, 0x41ce9236, 0x43269307, 0x447b93dc, 0x45cd94b5, 0x471d9592, 0x486a9674, 0x49b49759, 0x4afb9843, 0x4c409930, 0x4d819a22, 0x4ec09b17, 0x4ffb9c11, 0x51349d0e, 0x52699e0f, 0x539b9f14, 0x54caa01c, 0x55f6a129, 0x571ea238, 0x5843a34c, 0x5964a463, 0x5a82a57e, 0x5b9da69c, 0x5cb4a7bd, 0x5dc8a8e2, 0x5ed7aa0a, 0x5fe4ab36, 0x60ecac65, 0x61f1ad97, 0x62f2aecc, 0x63efb005, 0x64e9b140, 0x65deb27f, 0x66d0b3c0, 0x67bdb505, 0x68a7b64c, 0x698cb796, 0x6a6eb8e3, 0x6b4bba33, 0x6c24bb85, 0x6cf9bcda, 0x6dcabe32, 0x6e97bf8c, 0x6f5fc0e9, 0x7023c248, 0x70e3c3a9, 0x719ec50d, 0x7255c673, 0x7308c7db, 0x73b6c946, 0x7460cab2, 0x7505cc21, 0x75a6cd92, 0x7642cf04, 0x76d9d079, 0x776cd1ef, 0x77fbd367, 0x7885d4e1, 0x790ad65c, 0x798ad7d9, 0x7a06d958, 0x7a7ddad8, 0x7aefdc59, 0x7b5ddddc, 0x7bc6df61, 0x7c2ae0e6, 0x7c89e26d, 0x7ce4e3f4, 0x7d3ae57d, 0x7d8ae707, 0x7dd6e892, 0x7e1eea1e, 0x7e60ebab, 0x7e9ded38, 0x7ed6eec6, 0x7f0af055, 0x7f38f1e4, 0x7f62f374, 0x7f87f505, 0x7fa7f695, 0x7fc2f827, 0x7fd9f9b8, 0x7feafb4a, 0x7ff6fcdc, 0x7ffefe6e, 0x7fff0000, 0x7ffe0192, 0x7ff60324, 0x7fea04b6, 0x7fd90648, 0x7fc207d9, 0x7fa7096b, 0x7f870afb, 0x7f620c8c, 0x7f380e1c, 0x7f0a0fab, 0x7ed6113a, 0x7e9d12c8, 0x7e601455, 0x7e1e15e2, 0x7dd6176e, 0x7d8a18f9, 0x7d3a1a83, 0x7ce41c0c, 0x7c891d93, 0x7c2a1f1a, 0x7bc6209f, 0x7b5d2224, 0x7aef23a7, 0x7a7d2528, 0x7a0626a8, 0x798a2827, 0x790a29a4, 0x78852b1f, 0x77fb2c99, 0x776c2e11, 0x76d92f87, 0x764230fc, 0x75a6326e, 0x750533df, 0x7460354e, 0x73b636ba, 0x73083825, 0x7255398d, 0x719e3af3, 0x70e33c57, 0x70233db8, 0x6f5f3f17, 0x6e974074, 0x6dca41ce, 0x6cf94326, 0x6c24447b, 0x6b4b45cd, 0x6a6e471d, 0x698c486a, 0x68a749b4, 0x67bd4afb, 0x66d04c40, 0x65de4d81, 0x64e94ec0, 0x63ef4ffb, 0x62f25134, 0x61f15269}, // const WORD16 only_long_window_sine[1024] = {0x0019, 0x7fff, 0x004b, 0x7fff, 0x007e, 0x7fff, 0x00b0, 0x7fff, 0x00e2, 0x7fff, 0x0114, 0x7fff, 0x0147, 0x7ffe, 0x0179, 0x7ffe, 0x01ab, 0x7ffd, 0x01dd, 0x7ffd, 0x0210, 0x7ffc, 0x0242, 0x7ffb, 0x0274, 0x7ffa, 0x02a7, 0x7ff9, 0x02d9, 0x7ff8, 0x030b, 0x7ff7, 0x033d, 0x7ff6, 0x0370, 0x7ff4, 0x03a2, 0x7ff3, 0x03d4, 0x7ff1, 0x0406, 0x7ff0, 0x0439, 0x7fee, 0x046b, 0x7fec, 0x049d, 0x7feb, 0x04cf, 0x7fe9, 0x0501, 0x7fe7, 0x0534, 0x7fe5, 0x0566, 0x7fe3, 0x0598, 0x7fe1, 0x05ca, 0x7fde, 0x05fd, 0x7fdc, 0x062f, 0x7fda, 0x0661, 0x7fd7, 0x0693, 0x7fd5, 0x06c5, 0x7fd2, 0x06f8, 0x7fcf, 0x072a, 0x7fcd, 0x075c, 0x7fca, 0x078e, 0x7fc7, 0x07c0, 0x7fc4, 0x07f2, 0x7fc1, 0x0825, 0x7fbe, 0x0857, 0x7fba, 0x0889, 0x7fb7, 0x08bb, 0x7fb4, 0x08ed, 0x7fb0, 0x091f, 0x7fad, 0x0952, 0x7fa9, 0x0984, 0x7fa5, 0x09b6, 0x7fa2, 0x09e8, 0x7f9e, 0x0a1a, 0x7f9a, 0x0a4c, 0x7f96, 0x0a7e, 0x7f92, 0x0ab0, 0x7f8e, 0x0ae2, 0x7f89, 0x0b14, 0x7f85, 0x0b47, 0x7f81, 0x0b79, 0x7f7c, 0x0bab, 0x7f78, 0x0bdd, 0x7f73, 0x0c0f, 0x7f6e, 0x0c41, 0x7f6a, 0x0c73, 0x7f65, 0x0ca5, 0x7f60, 0x0cd7, 0x7f5b, 0x0d09, 0x7f56, 0x0d3b, 0x7f50, 0x0d6d, 0x7f4b, 0x0d9f, 0x7f46, 0x0dd1, 0x7f41, 0x0e03, 0x7f3b, 0x0e35, 0x7f36, 0x0e67, 0x7f30, 0x0e99, 0x7f2a, 0x0ecb, 0x7f24, 0x0efc, 0x7f1f, 0x0f2e, 0x7f19, 0x0f60, 0x7f13, 0x0f92, 0x7f0d, 0x0fc4, 0x7f06, 0x0ff6, 0x7f00, 0x1028, 0x7efa, 0x105a, 0x7ef4, 0x108c, 0x7eed, 0x10bd, 0x7ee7, 0x10ef, 0x7ee0, 0x1121, 0x7ed9, 0x1153, 0x7ed3, 0x1185, 0x7ecc, 0x11b6, 0x7ec5, 0x11e8, 0x7ebe, 0x121a, 0x7eb7, 0x124c, 0x7eb0, 0x127d, 0x7ea8, 0x12af, 0x7ea1, 0x12e1, 0x7e9a, 0x1313, 0x7e92, 0x1344, 0x7e8b, 0x1376, 0x7e83, 0x13a8, 0x7e7b, 0x13d9, 0x7e74, 0x140b, 0x7e6c, 0x143d, 0x7e64, 0x146e, 0x7e5c, 0x14a0, 0x7e54, 0x14d1, 0x7e4c, 0x1503, 0x7e43, 0x1535, 0x7e3b, 0x1566, 0x7e33, 0x1598, 0x7e2a, 0x15c9, 0x7e22, 0x15fb, 0x7e19, 0x162c, 0x7e11, 0x165e, 0x7e08, 0x168f, 0x7dff, 0x16c1, 0x7df6, 0x16f2, 0x7ded, 0x1724, 0x7de4, 0x1755, 0x7ddb, 0x1787, 0x7dd2, 0x17b8, 0x7dc9, 0x17e9, 0x7dbf, 0x181b, 0x7db6, 0x184c, 0x7dac, 0x187d, 0x7da3, 0x18af, 0x7d99, 0x18e0, 0x7d8f, 0x1911, 0x7d85, 0x1943, 0x7d7c, 0x1974, 0x7d72, 0x19a5, 0x7d68, 0x19d6, 0x7d5d, 0x1a08, 0x7d53, 0x1a39, 0x7d49, 0x1a6a, 0x7d3f, 0x1a9b, 0x7d34, 0x1acc, 0x7d2a, 0x1afe, 0x7d1f, 0x1b2f, 0x7d15, 0x1b60, 0x7d0a, 0x1b91, 0x7cff, 0x1bc2, 0x7cf4, 0x1bf3, 0x7ce9, 0x1c24, 0x7cde, 0x1c55, 0x7cd3, 0x1c86, 0x7cc8, 0x1cb7, 0x7cbd, 0x1ce8, 0x7cb1, 0x1d19, 0x7ca6, 0x1d4a, 0x7c9b, 0x1d7b, 0x7c8f, 0x1dac, 0x7c83, 0x1ddd, 0x7c78, 0x1e0e, 0x7c6c, 0x1e3e, 0x7c60, 0x1e6f, 0x7c54, 0x1ea0, 0x7c48, 0x1ed1, 0x7c3c, 0x1f02, 0x7c30, 0x1f32, 0x7c24, 0x1f63, 0x7c18, 0x1f94, 0x7c0b, 0x1fc5, 0x7bff, 0x1ff5, 0x7bf2, 0x2026, 0x7be6, 0x2057, 0x7bd9, 0x2087, 0x7bcc, 0x20b8, 0x7bbf, 0x20e8, 0x7bb3, 0x2119, 0x7ba6, 0x2149, 0x7b99, 0x217a, 0x7b8b, 0x21aa, 0x7b7e, 0x21db, 0x7b71, 0x220b, 0x7b64, 0x223c, 0x7b56, 0x226c, 0x7b49, 0x229d, 0x7b3b, 0x22cd, 0x7b2e, 0x22fd, 0x7b20, 0x232e, 0x7b12, 0x235e, 0x7b04, 0x238e, 0x7af6, 0x23bf, 0x7ae8, 0x23ef, 0x7ada, 0x241f, 0x7acc, 0x244f, 0x7abe, 0x2480, 0x7ab0, 0x24b0, 0x7aa1, 0x24e0, 0x7a93, 0x2510, 0x7a84, 0x2540, 0x7a76, 0x2570, 0x7a67, 0x25a0, 0x7a58, 0x25d0, 0x7a49, 0x2600, 0x7a3b, 0x2630, 0x7a2c, 0x2660, 0x7a1d, 0x2690, 0x7a0e, 0x26c0, 0x79fe, 0x26f0, 0x79ef, 0x2720, 0x79e0, 0x2750, 0x79d0, 0x2780, 0x79c1, 0x27af, 0x79b1, 0x27df, 0x79a2, 0x280f, 0x7992, 0x283f, 0x7982, 0x286e, 0x7972, 0x289e, 0x7962, 0x28ce, 0x7952, 0x28fd, 0x7942, 0x292d, 0x7932, 0x295c, 0x7922, 0x298c, 0x7912, 0x29bc, 0x7901, 0x29eb, 0x78f1, 0x2a1b, 0x78e1, 0x2a4a, 0x78d0, 0x2a79, 0x78bf, 0x2aa9, 0x78af, 0x2ad8, 0x789e, 0x2b08, 0x788d, 0x2b37, 0x787c, 0x2b66, 0x786b, 0x2b95, 0x785a, 0x2bc5, 0x7849, 0x2bf4, 0x7838, 0x2c23, 0x7826, 0x2c52, 0x7815, 0x2c81, 0x7803, 0x2cb1, 0x77f2, 0x2ce0, 0x77e0, 0x2d0f, 0x77cf, 0x2d3e, 0x77bd, 0x2d6d, 0x77ab, 0x2d9c, 0x7799, 0x2dcb, 0x7787, 0x2dfa, 0x7775, 0x2e29, 0x7763, 0x2e57, 0x7751, 0x2e86, 0x773f, 0x2eb5, 0x772d, 0x2ee4, 0x771a, 0x2f13, 0x7708, 0x2f41, 0x76f5, 0x2f70, 0x76e3, 0x2f9f, 0x76d0, 0x2fcd, 0x76bd, 0x2ffc, 0x76aa, 0x302b, 0x7698, 0x3059, 0x7685, 0x3088, 0x7672, 0x30b6, 0x765e, 0x30e5, 0x764b, 0x3113, 0x7638, 0x3141, 0x7625, 0x3170, 0x7611, 0x319e, 0x75fe, 0x31cc, 0x75ea, 0x31fb, 0x75d7, 0x3229, 0x75c3, 0x3257, 0x75af, 0x3285, 0x759c, 0x32b4, 0x7588, 0x32e2, 0x7574, 0x3310, 0x7560, 0x333e, 0x754c, 0x336c, 0x7538, 0x339a, 0x7523, 0x33c8, 0x750f, 0x33f6, 0x74fb, 0x3424, 0x74e6, 0x3452, 0x74d2, 0x3480, 0x74bd, 0x34ad, 0x74a8, 0x34db, 0x7494, 0x3509, 0x747f, 0x3537, 0x746a, 0x3564, 0x7455, 0x3592, 0x7440, 0x35c0, 0x742b, 0x35ed, 0x7416, 0x361b, 0x7401, 0x3648, 0x73eb, 0x3676, 0x73d6, 0x36a3, 0x73c1, 0x36d1, 0x73ab, 0x36fe, 0x7396, 0x372c, 0x7380, 0x3759, 0x736a, 0x3786, 0x7354, 0x37b4, 0x733f, 0x37e1, 0x7329, 0x380e, 0x7313, 0x383b, 0x72fd, 0x3868, 0x72e7, 0x3895, 0x72d0, 0x38c2, 0x72ba, 0x38f0, 0x72a4, 0x391d, 0x728d, 0x3949, 0x7277, 0x3976, 0x7260, 0x39a3, 0x724a, 0x39d0, 0x7233, 0x39fd, 0x721c, 0x3a2a, 0x7206, 0x3a57, 0x71ef, 0x3a83, 0x71d8, 0x3ab0, 0x71c1, 0x3add, 0x71aa, 0x3b09, 0x7193, 0x3b36, 0x717b, 0x3b62, 0x7164, 0x3b8f, 0x714d, 0x3bbb, 0x7135, 0x3be8, 0x711e, 0x3c14, 0x7106, 0x3c41, 0x70ef, 0x3c6d, 0x70d7, 0x3c99, 0x70bf, 0x3cc5, 0x70a7, 0x3cf2, 0x708f, 0x3d1e, 0x7077, 0x3d4a, 0x705f, 0x3d76, 0x7047, 0x3da2, 0x702f, 0x3dce, 0x7017, 0x3dfa, 0x6fff, 0x3e26, 0x6fe6, 0x3e52, 0x6fce, 0x3e7e, 0x6fb5, 0x3eaa, 0x6f9d, 0x3ed6, 0x6f84, 0x3f01, 0x6f6b, 0x3f2d, 0x6f53, 0x3f59, 0x6f3a, 0x3f84, 0x6f21, 0x3fb0, 0x6f08, 0x3fdc, 0x6eef, 0x4007, 0x6ed6, 0x4033, 0x6ebd, 0x405e, 0x6ea3, 0x408a, 0x6e8a, 0x40b5, 0x6e71, 0x40e0, 0x6e57, 0x410c, 0x6e3e, 0x4137, 0x6e24, 0x4162, 0x6e0a, 0x418d, 0x6df1, 0x41b9, 0x6dd7, 0x41e4, 0x6dbd, 0x420f, 0x6da3, 0x423a, 0x6d89, 0x4265, 0x6d6f, 0x4290, 0x6d55, 0x42bb, 0x6d3b, 0x42e6, 0x6d21, 0x4310, 0x6d06, 0x433b, 0x6cec, 0x4366, 0x6cd2, 0x4391, 0x6cb7, 0x43bb, 0x6c9c, 0x43e6, 0x6c82, 0x4411, 0x6c67, 0x443b, 0x6c4c, 0x4466, 0x6c32, 0x4490, 0x6c17, 0x44ba, 0x6bfc, 0x44e5, 0x6be1, 0x450f, 0x6bc6, 0x4539, 0x6baa, 0x4564, 0x6b8f, 0x458e, 0x6b74, 0x45b8, 0x6b59, 0x45e2, 0x6b3d, 0x460c, 0x6b22, 0x4636, 0x6b06, 0x4660, 0x6aeb, 0x468a, 0x6acf, 0x46b4, 0x6ab3, 0x46de, 0x6a97, 0x4708, 0x6a7c, 0x4732, 0x6a60, 0x475c, 0x6a44, 0x4785, 0x6a28, 0x47af, 0x6a0b, 0x47d9, 0x69ef, 0x4802, 0x69d3, 0x482c, 0x69b7, 0x4855, 0x699a, 0x487f, 0x697e, 0x48a8, 0x6961, 0x48d1, 0x6945, 0x48fb, 0x6928, 0x4924, 0x690c, 0x494d, 0x68ef, 0x4976, 0x68d2, 0x49a0, 0x68b5, 0x49c9, 0x6898, 0x49f2, 0x687b, 0x4a1b, 0x685e, 0x4a44, 0x6841, 0x4a6d, 0x6824, 0x4a95, 0x6806, 0x4abe, 0x67e9, 0x4ae7, 0x67cc, 0x4b10, 0x67ae, 0x4b38, 0x6791, 0x4b61, 0x6773, 0x4b8a, 0x6756, 0x4bb2, 0x6738, 0x4bdb, 0x671a, 0x4c03, 0x66fc, 0x4c2c, 0x66de, 0x4c54, 0x66c1, 0x4c7c, 0x66a3, 0x4ca5, 0x6684, 0x4ccd, 0x6666, 0x4cf5, 0x6648, 0x4d1d, 0x662a, 0x4d45, 0x660c, 0x4d6d, 0x65ed, 0x4d95, 0x65cf, 0x4dbd, 0x65b0, 0x4de5, 0x6592, 0x4e0d, 0x6573, 0x4e35, 0x6554, 0x4e5d, 0x6536, 0x4e84, 0x6517, 0x4eac, 0x64f8, 0x4ed4, 0x64d9, 0x4efb, 0x64ba, 0x4f23, 0x649b, 0x4f4a, 0x647c, 0x4f72, 0x645d, 0x4f99, 0x643e, 0x4fc0, 0x641e, 0x4fe8, 0x63ff, 0x500f, 0x63df, 0x5036, 0x63c0, 0x505d, 0x63a0, 0x5084, 0x6381, 0x50ac, 0x6361, 0x50d3, 0x6342, 0x50f9, 0x6322, 0x5120, 0x6302, 0x5147, 0x62e2, 0x516e, 0x62c2, 0x5195, 0x62a2, 0x51bb, 0x6282, 0x51e2, 0x6262, 0x5209, 0x6242, 0x522f, 0x6221, 0x5256, 0x6201, 0x527c, 0x61e1, 0x52a3, 0x61c0, 0x52c9, 0x61a0, 0x52ef, 0x617f, 0x5316, 0x615f, 0x533c, 0x613e, 0x5362, 0x611d, 0x5388, 0x60fd, 0x53ae, 0x60dc, 0x53d4, 0x60bb, 0x53fa, 0x609a, 0x5420, 0x6079, 0x5446, 0x6058, 0x546c, 0x6037, 0x5491, 0x6016, 0x54b7, 0x5ff4, 0x54dd, 0x5fd3, 0x5502, 0x5fb2, 0x5528, 0x5f90, 0x554e, 0x5f6f, 0x5573, 0x5f4d, 0x5598, 0x5f2c, 0x55be, 0x5f0a, 0x55e3, 0x5ee8, 0x5608, 0x5ec7, 0x562d, 0x5ea5, 0x5653, 0x5e83, 0x5678, 0x5e61, 0x569d, 0x5e3f, 0x56c2, 0x5e1d, 0x56e7, 0x5dfb, 0x570c, 0x5dd9, 0x5730, 0x5db7, 0x5755, 0x5d94, 0x577a, 0x5d72, 0x579f, 0x5d50, 0x57c3, 0x5d2d, 0x57e8, 0x5d0b, 0x580c, 0x5ce8, 0x5831, 0x5cc5, 0x5855, 0x5ca3, 0x5879, 0x5c80, 0x589e, 0x5c5d, 0x58c2, 0x5c3a, 0x58e6, 0x5c18, 0x590a, 0x5bf5, 0x592e, 0x5bd2, 0x5952, 0x5baf, 0x5976, 0x5b8c, 0x599a, 0x5b68, 0x59be, 0x5b45, 0x59e2, 0x5b22, 0x5a06, 0x5aff, 0x5a29, 0x5adb, 0x5a4d, 0x5ab8, 0x5a71, 0x5a94}, // const WORD16 only_long_window_kbd[1024] = {0x000a, 0x7fff, 0x000e, 0x7fff, 0x0012, 0x7fff, 0x0015, 0x7fff, 0x0019, 0x7fff, 0x001c, 0x7fff, 0x0020, 0x7fff, 0x0023, 0x7fff, 0x0026, 0x7fff, 0x002a, 0x7fff, 0x002d, 0x7fff, 0x0030, 0x7fff, 0x0034, 0x7fff, 0x0038, 0x7fff, 0x003b, 0x7fff, 0x003f, 0x7fff, 0x0043, 0x7fff, 0x0047, 0x7fff, 0x004b, 0x7fff, 0x004f, 0x7fff, 0x0053, 0x7fff, 0x0057, 0x7fff, 0x005b, 0x7fff, 0x0060, 0x7fff, 0x0064, 0x7fff, 0x0069, 0x7fff, 0x006d, 0x7fff, 0x0072, 0x7fff, 0x0077, 0x7fff, 0x007c, 0x7fff, 0x0081, 0x7fff, 0x0086, 0x7fff, 0x008b, 0x7fff, 0x0091, 0x7fff, 0x0096, 0x7fff, 0x009c, 0x7fff, 0x00a1, 0x7fff, 0x00a7, 0x7fff, 0x00ad, 0x7fff, 0x00b3, 0x7fff, 0x00b9, 0x7fff, 0x00bf, 0x7fff, 0x00c6, 0x7fff, 0x00cc, 0x7fff, 0x00d3, 0x7fff, 0x00da, 0x7fff, 0x00e0, 0x7fff, 0x00e7, 0x7fff, 0x00ee, 0x7fff, 0x00f5, 0x7fff, 0x00fd, 0x7fff, 0x0104, 0x7fff, 0x010c, 0x7fff, 0x0113, 0x7fff, 0x011b, 0x7fff, 0x0123, 0x7fff, 0x012b, 0x7fff, 0x0133, 0x7fff, 0x013c, 0x7ffe, 0x0144, 0x7ffe, 0x014d, 0x7ffe, 0x0156, 0x7ffe, 0x015f, 0x7ffe, 0x0168, 0x7ffe, 0x0171, 0x7ffe, 0x017a, 0x7ffe, 0x0183, 0x7ffe, 0x018d, 0x7ffe, 0x0197, 0x7ffd, 0x01a1, 0x7ffd, 0x01ab, 0x7ffd, 0x01b5, 0x7ffd, 0x01bf, 0x7ffd, 0x01ca, 0x7ffd, 0x01d4, 0x7ffd, 0x01df, 0x7ffc, 0x01ea, 0x7ffc, 0x01f5, 0x7ffc, 0x0200, 0x7ffc, 0x020c, 0x7ffc, 0x0217, 0x7ffc, 0x0223, 0x7ffb, 0x022f, 0x7ffb, 0x023b, 0x7ffb, 0x0247, 0x7ffb, 0x0253, 0x7ffb, 0x0260, 0x7ffa, 0x026d, 0x7ffa, 0x027a, 0x7ffa, 0x0287, 0x7ffa, 0x0294, 0x7ff9, 0x02a1, 0x7ff9, 0x02af, 0x7ff9, 0x02bc, 0x7ff9, 0x02ca, 0x7ff8, 0x02d8, 0x7ff8, 0x02e7, 0x7ff8, 0x02f5, 0x7ff7, 0x0304, 0x7ff7, 0x0312, 0x7ff7, 0x0321, 0x7ff6, 0x0331, 0x7ff6, 0x0340, 0x7ff5, 0x034f, 0x7ff5, 0x035f, 0x7ff5, 0x036f, 0x7ff4, 0x037f, 0x7ff4, 0x038f, 0x7ff3, 0x03a0, 0x7ff3, 0x03b0, 0x7ff2, 0x03c1, 0x7ff2, 0x03d2, 0x7ff1, 0x03e3, 0x7ff1, 0x03f5, 0x7ff0, 0x0406, 0x7ff0, 0x0418, 0x7fef, 0x042a, 0x7fef, 0x043c, 0x7fee, 0x044f, 0x7fed, 0x0461, 0x7fed, 0x0474, 0x7fec, 0x0487, 0x7feb, 0x049a, 0x7feb, 0x04ae, 0x7fea, 0x04c1, 0x7fe9, 0x04d5, 0x7fe9, 0x04e9, 0x7fe8, 0x04fd, 0x7fe7, 0x0512, 0x7fe6, 0x0527, 0x7fe5, 0x053b, 0x7fe5, 0x0550, 0x7fe4, 0x0566, 0x7fe3, 0x057b, 0x7fe2, 0x0591, 0x7fe1, 0x05a7, 0x7fe0, 0x05bd, 0x7fdf, 0x05d3, 0x7fde, 0x05ea, 0x7fdd, 0x0601, 0x7fdc, 0x0618, 0x7fdb, 0x062f, 0x7fda, 0x0646, 0x7fd9, 0x065e, 0x7fd7, 0x0676, 0x7fd6, 0x068e, 0x7fd5, 0x06a6, 0x7fd4, 0x06bf, 0x7fd2, 0x06d8, 0x7fd1, 0x06f1, 0x7fd0, 0x070a, 0x7fce, 0x0723, 0x7fcd, 0x073d, 0x7fcc, 0x0757, 0x7fca, 0x0771, 0x7fc9, 0x078c, 0x7fc7, 0x07a6, 0x7fc5, 0x07c1, 0x7fc4, 0x07dc, 0x7fc2, 0x07f7, 0x7fc0, 0x0813, 0x7fbf, 0x082f, 0x7fbd, 0x084b, 0x7fbb, 0x0867, 0x7fb9, 0x0884, 0x7fb7, 0x08a0, 0x7fb6, 0x08bd, 0x7fb4, 0x08da, 0x7fb2, 0x08f8, 0x7faf, 0x0916, 0x7fad, 0x0934, 0x7fab, 0x0952, 0x7fa9, 0x0970, 0x7fa7, 0x098f, 0x7fa5, 0x09ae, 0x7fa2, 0x09cd, 0x7fa0, 0x09ec, 0x7f9d, 0x0a0c, 0x7f9b, 0x0a2c, 0x7f98, 0x0a4c, 0x7f96, 0x0a6c, 0x7f93, 0x0a8d, 0x7f91, 0x0aae, 0x7f8e, 0x0acf, 0x7f8b, 0x0af0, 0x7f88, 0x0b12, 0x7f85, 0x0b33, 0x7f82, 0x0b55, 0x7f7f, 0x0b78, 0x7f7c, 0x0b9a, 0x7f79, 0x0bbd, 0x7f76, 0x0be0, 0x7f73, 0x0c04, 0x7f6f, 0x0c27, 0x7f6c, 0x0c4b, 0x7f69, 0x0c6f, 0x7f65, 0x0c93, 0x7f61, 0x0cb8, 0x7f5e, 0x0cdd, 0x7f5a, 0x0d02, 0x7f56, 0x0d27, 0x7f53, 0x0d4d, 0x7f4f, 0x0d73, 0x7f4b, 0x0d99, 0x7f47, 0x0dbf, 0x7f43, 0x0de6, 0x7f3e, 0x0e0c, 0x7f3a, 0x0e34, 0x7f36, 0x0e5b, 0x7f31, 0x0e83, 0x7f2d, 0x0eaa, 0x7f28, 0x0ed3, 0x7f24, 0x0efb, 0x7f1f, 0x0f23, 0x7f1a, 0x0f4c, 0x7f15, 0x0f75, 0x7f10, 0x0f9f, 0x7f0b, 0x0fc8, 0x7f06, 0x0ff2, 0x7f01, 0x101c, 0x7efb, 0x1047, 0x7ef6, 0x1071, 0x7ef0, 0x109c, 0x7eeb, 0x10c8, 0x7ee5, 0x10f3, 0x7edf, 0x111f, 0x7eda, 0x114a, 0x7ed4, 0x1177, 0x7ece, 0x11a3, 0x7ec7, 0x11d0, 0x7ec1, 0x11fd, 0x7ebb, 0x122a, 0x7eb4, 0x1257, 0x7eae, 0x1285, 0x7ea7, 0x12b3, 0x7ea0, 0x12e1, 0x7e9a, 0x130f, 0x7e93, 0x133e, 0x7e8c, 0x136d, 0x7e84, 0x139c, 0x7e7d, 0x13cc, 0x7e76, 0x13fb, 0x7e6e, 0x142b, 0x7e67, 0x145b, 0x7e5f, 0x148c, 0x7e57, 0x14bc, 0x7e4f, 0x14ed, 0x7e47, 0x151e, 0x7e3f, 0x1550, 0x7e37, 0x1581, 0x7e2e, 0x15b3, 0x7e26, 0x15e5, 0x7e1d, 0x1618, 0x7e14, 0x164a, 0x7e0b, 0x167d, 0x7e02, 0x16b0, 0x7df9, 0x16e4, 0x7df0, 0x1717, 0x7de6, 0x174b, 0x7ddd, 0x177f, 0x7dd3, 0x17b3, 0x7dc9, 0x17e8, 0x7dbf, 0x181d, 0x7db5, 0x1852, 0x7dab, 0x1887, 0x7da1, 0x18bc, 0x7d96, 0x18f2, 0x7d8c, 0x1928, 0x7d81, 0x195e, 0x7d76, 0x1995, 0x7d6b, 0x19cb, 0x7d60, 0x1a02, 0x7d54, 0x1a39, 0x7d49, 0x1a71, 0x7d3d, 0x1aa8, 0x7d31, 0x1ae0, 0x7d26, 0x1b18, 0x7d19, 0x1b50, 0x7d0d, 0x1b89, 0x7d01, 0x1bc2, 0x7cf4, 0x1bfb, 0x7ce8, 0x1c34, 0x7cdb, 0x1c6d, 0x7cce, 0x1ca7, 0x7cc1, 0x1ce1, 0x7cb3, 0x1d1b, 0x7ca6, 0x1d55, 0x7c98, 0x1d8f, 0x7c8a, 0x1dca, 0x7c7c, 0x1e05, 0x7c6e, 0x1e40, 0x7c60, 0x1e7b, 0x7c51, 0x1eb7, 0x7c43, 0x1ef3, 0x7c34, 0x1f2f, 0x7c25, 0x1f6b, 0x7c16, 0x1fa7, 0x7c06, 0x1fe4, 0x7bf7, 0x2021, 0x7be7, 0x205e, 0x7bd7, 0x209b, 0x7bc7, 0x20d8, 0x7bb7, 0x2116, 0x7ba6, 0x2154, 0x7b96, 0x2192, 0x7b85, 0x21d0, 0x7b74, 0x220e, 0x7b63, 0x224d, 0x7b52, 0x228c, 0x7b40, 0x22cb, 0x7b2e, 0x230a, 0x7b1c, 0x2349, 0x7b0a, 0x2389, 0x7af8, 0x23c8, 0x7ae6, 0x2408, 0x7ad3, 0x2448, 0x7ac0, 0x2489, 0x7aad, 0x24c9, 0x7a9a, 0x250a, 0x7a86, 0x254b, 0x7a73, 0x258c, 0x7a5f, 0x25cd, 0x7a4b, 0x260e, 0x7a36, 0x2650, 0x7a22, 0x2691, 0x7a0d, 0x26d3, 0x79f8, 0x2715, 0x79e3, 0x2757, 0x79ce, 0x279a, 0x79b8, 0x27dc, 0x79a3, 0x281f, 0x798d, 0x2862, 0x7977, 0x28a5, 0x7960, 0x28e8, 0x794a, 0x292b, 0x7933, 0x296f, 0x791c, 0x29b2, 0x7905, 0x29f6, 0x78ed, 0x2a3a, 0x78d6, 0x2a7e, 0x78be, 0x2ac2, 0x78a6, 0x2b07, 0x788d, 0x2b4b, 0x7875, 0x2b90, 0x785c, 0x2bd4, 0x7843, 0x2c19, 0x782a, 0x2c5e, 0x7810, 0x2ca4, 0x77f7, 0x2ce9, 0x77dd, 0x2d2e, 0x77c3, 0x2d74, 0x77a8, 0x2dba, 0x778e, 0x2dff, 0x7773, 0x2e45, 0x7758, 0x2e8b, 0x773d, 0x2ed2, 0x7721, 0x2f18, 0x7706, 0x2f5e, 0x76ea, 0x2fa5, 0x76cd, 0x2fec, 0x76b1, 0x3032, 0x7694, 0x3079, 0x7677, 0x30c0, 0x765a, 0x3107, 0x763d, 0x314e, 0x761f, 0x3196, 0x7601, 0x31dd, 0x75e3, 0x3225, 0x75c5, 0x326c, 0x75a6, 0x32b4, 0x7588, 0x32fc, 0x7569, 0x3344, 0x7549, 0x338c, 0x752a, 0x33d4, 0x750a, 0x341c, 0x74ea, 0x3464, 0x74ca, 0x34ac, 0x74a9, 0x34f5, 0x7488, 0x353d, 0x7467, 0x3585, 0x7446, 0x35ce, 0x7424, 0x3617, 0x7403, 0x365f, 0x73e1, 0x36a8, 0x73be, 0x36f1, 0x739c, 0x373a, 0x7379, 0x3783, 0x7356, 0x37cc, 0x7333, 0x3815, 0x730f, 0x385e, 0x72ec, 0x38a7, 0x72c8, 0x38f1, 0x72a3, 0x393a, 0x727f, 0x3983, 0x725a, 0x39cd, 0x7235, 0x3a16, 0x7210, 0x3a60, 0x71ea, 0x3aa9, 0x71c4, 0x3af3, 0x719e, 0x3b3c, 0x7178, 0x3b86, 0x7151, 0x3bd0, 0x712b, 0x3c19, 0x7104, 0x3c63, 0x70dc, 0x3cad, 0x70b5, 0x3cf7, 0x708d, 0x3d40, 0x7065, 0x3d8a, 0x703c, 0x3dd4, 0x7014, 0x3e1e, 0x6feb, 0x3e68, 0x6fc2, 0x3eb1, 0x6f98, 0x3efb, 0x6f6f, 0x3f45, 0x6f45, 0x3f8f, 0x6f1b, 0x3fd9, 0x6ef0, 0x4023, 0x6ec6, 0x406d, 0x6e9b, 0x40b6, 0x6e70, 0x4100, 0x6e44, 0x414a, 0x6e19, 0x4194, 0x6ded, 0x41de, 0x6dc1, 0x4228, 0x6d94, 0x4271, 0x6d68, 0x42bb, 0x6d3b, 0x4305, 0x6d0d, 0x434f, 0x6ce0, 0x4398, 0x6cb2, 0x43e2, 0x6c84, 0x442c, 0x6c56, 0x4475, 0x6c28, 0x44bf, 0x6bf9, 0x4508, 0x6bca, 0x4552, 0x6b9b, 0x459b, 0x6b6b, 0x45e5, 0x6b3c, 0x462e, 0x6b0c, 0x4678, 0x6adb, 0x46c1, 0x6aab, 0x470a, 0x6a7a, 0x4753, 0x6a49, 0x479c, 0x6a18, 0x47e5, 0x69e7, 0x482e, 0x69b5, 0x4877, 0x6983, 0x48c0, 0x6951, 0x4909, 0x691e, 0x4952, 0x68ec, 0x499b, 0x68b9, 0x49e3, 0x6885, 0x4a2c, 0x6852, 0x4a74, 0x681e, 0x4abd, 0x67ea, 0x4b05, 0x67b6, 0x4b4d, 0x6782, 0x4b95, 0x674d, 0x4bde, 0x6718, 0x4c26, 0x66e3, 0x4c6d, 0x66ae, 0x4cb5, 0x6678, 0x4cfd, 0x6642, 0x4d45, 0x660c, 0x4d8c, 0x65d6, 0x4dd4, 0x659f, 0x4e1b, 0x6568, 0x4e62, 0x6531, 0x4ea9, 0x64fa, 0x4ef0, 0x64c3, 0x4f37, 0x648b, 0x4f7e, 0x6453, 0x4fc5, 0x641b, 0x500b, 0x63e2, 0x5052, 0x63aa, 0x5098, 0x6371, 0x50df, 0x6338, 0x5125, 0x62fe, 0x516b, 0x62c5, 0x51b1, 0x628b, 0x51f6, 0x6251, 0x523c, 0x6217, 0x5281, 0x61dc, 0x52c7, 0x61a2, 0x530c, 0x6167, 0x5351, 0x612c, 0x5396, 0x60f1, 0x53db, 0x60b5, 0x5420, 0x6079, 0x5464, 0x603d, 0x54a9, 0x6001, 0x54ed, 0x5fc5, 0x5531, 0x5f88, 0x5575, 0x5f4b, 0x55b9, 0x5f0e, 0x55fc, 0x5ed1, 0x5640, 0x5e94, 0x5683, 0x5e56, 0x56c7, 0x5e18, 0x570a, 0x5dda, 0x574d, 0x5d9c, 0x578f, 0x5d5e, 0x57d2, 0x5d1f, 0x5814, 0x5ce0, 0x5856, 0x5ca1, 0x5899, 0x5c62, 0x58da, 0x5c23, 0x591c, 0x5be3, 0x595e, 0x5ba4, 0x599f, 0x5b64, 0x59e0, 0x5b24, 0x5a21, 0x5ae3, 0x5a62, 0x5aa3}, // const WORD16 only_short_window_sine[128] = {0x00c9, 0x7fff, 0x025b, 0x7ffa, 0x03ed, 0x7ff1, 0x057f, 0x7fe2, 0x0711, 0x7fce, 0x08a2, 0x7fb5, 0x0a33, 0x7f98, 0x0bc4, 0x7f75, 0x0d54, 0x7f4e, 0x0ee4, 0x7f22, 0x1073, 0x7ef0, 0x1201, 0x7eba, 0x138f, 0x7e7f, 0x151c, 0x7e3f, 0x16a8, 0x7dfb, 0x1833, 0x7db1, 0x19be, 0x7d63, 0x1b47, 0x7d0f, 0x1cd0, 0x7cb7, 0x1e57, 0x7c5a, 0x1fdd, 0x7bf9, 0x2162, 0x7b92, 0x22e5, 0x7b27, 0x2467, 0x7ab7, 0x25e8, 0x7a42, 0x2768, 0x79c9, 0x28e5, 0x794a, 0x2a62, 0x78c8, 0x2bdc, 0x7840, 0x2d55, 0x77b4, 0x2ecc, 0x7723, 0x3042, 0x768e, 0x31b5, 0x75f4, 0x3327, 0x7556, 0x3497, 0x74b3, 0x3604, 0x740b, 0x3770, 0x735f, 0x38d9, 0x72af, 0x3a40, 0x71fa, 0x3ba5, 0x7141, 0x3d08, 0x7083, 0x3e68, 0x6fc2, 0x3fc6, 0x6efb, 0x4121, 0x6e31, 0x427a, 0x6d62, 0x43d1, 0x6c8f, 0x4524, 0x6bb8, 0x4675, 0x6add, 0x47c4, 0x69fd, 0x490f, 0x691a, 0x4a58, 0x6832, 0x4b9e, 0x6747, 0x4ce1, 0x6657, 0x4e21, 0x6564, 0x4f5e, 0x646c, 0x5098, 0x6371, 0x51cf, 0x6272, 0x5303, 0x616f, 0x5433, 0x6068, 0x5560, 0x5f5e, 0x568a, 0x5e50, 0x57b1, 0x5d3e, 0x58d4, 0x5c29, 0x59f4, 0x5b10}, // const WORD16 only_short_window_kbd[128] = {0x0001, 0x7fff, 0x0004, 0x7fff, 0x0008, 0x7fff, 0x000d, 0x7fff, 0x0014, 0x7fff, 0x001d, 0x7fff, 0x0029, 0x7fff, 0x0039, 0x7fff, 0x004c, 0x7fff, 0x0063, 0x7fff, 0x0080, 0x7fff, 0x00a2, 0x7fff, 0x00cb, 0x7fff, 0x00fb, 0x7fff, 0x0133, 0x7fff, 0x0174, 0x7ffe, 0x01be, 0x7ffd, 0x0214, 0x7ffc, 0x0275, 0x7ffa, 0x02e3, 0x7ff8, 0x035e, 0x7ff5, 0x03e8, 0x7ff1, 0x0481, 0x7fec, 0x052b, 0x7fe5, 0x05e7, 0x7fdd, 0x06b4, 0x7fd3, 0x0795, 0x7fc6, 0x088a, 0x7fb7, 0x0993, 0x7fa4, 0x0ab2, 0x7f8d, 0x0be7, 0x7f72, 0x0d32, 0x7f51, 0x0e95, 0x7f2b, 0x100e, 0x7efd, 0x119f, 0x7ec8, 0x1347, 0x7e8a, 0x1507, 0x7e43, 0x16de, 0x7df1, 0x18cc, 0x7d93, 0x1ad0, 0x7d29, 0x1ceb, 0x7cb1, 0x1f1b, 0x7c2a, 0x215f, 0x7b93, 0x23b7, 0x7aeb, 0x2621, 0x7a30, 0x289c, 0x7963, 0x2b27, 0x7882, 0x2dc0, 0x778b, 0x3066, 0x767f, 0x3318, 0x755c, 0x35d2, 0x7422, 0x3895, 0x72d1, 0x3b5d, 0x7167, 0x3e29, 0x6fe5, 0x40f6, 0x6e4a, 0x43c4, 0x6c97, 0x4690, 0x6acc, 0x4957, 0x68e8, 0x4c18, 0x66ed, 0x4ed2, 0x64da, 0x5182, 0x62b2, 0x5426, 0x6074, 0x56bd, 0x5e22, 0x5945, 0x5bbc}, // const WORD16 cos_array_2048p[512] and const WORD16 sine_array_2048p[512] // = { 32767, 0, 32767, 101, 32767, 201, 32767, 302, 32766, 402, 32764, 503, 32762, 603, 32760, 704, 32758, 804, 32756, 905, 32753, 1005, 32749, 1106, 32746, 1206, 32742, 1307, 32738, 1407, 32733, 1507, 32729, 1608, 32723, 1708, 32718, 1809, 32712, 1909, 32706, 2009, 32700, 2110, 32693, 2210, 32686, 2310, 32679, 2411, 32672, 2511, 32664, 2611, 32656, 2711, 32647, 2811, 32638, 2912, 32629, 3012, 32620, 3112, 32610, 3212, 32600, 3312, 32590, 3412, 32579, 3512, 32568, 3612, 32557, 3712, 32546, 3812, 32534, 3911, 32522, 4011, 32509, 4111, 32496, 4211, 32483, 4310, 32470, 4410, 32456, 4510, 32442, 4609, 32428, 4709, 32413, 4808, 32398, 4908, 32383, 5007, 32368, 5106, 32352, 5206, 32336, 5305, 32319, 5404, 32303, 5503, 32286, 5602, 32268, 5701, 32251, 5800, 32233, 5899, 32214, 5998, 32196, 6097, 32177, 6195, 32158, 6294, 32138, 6393, 32119, 6491, 32099, 6590, 32078, 6688, 32058, 6787, 32037, 6885, 32015, 6983, 31994, 7081, 31972, 7180, 31950, 7278, 31927, 7376, 31904, 7474, 31881, 7571, 31858, 7669, 31834, 7767, 31810, 7864, 31786, 7962, 31761, 8059, 31737, 8157, 31711, 8254, 31686, 8351, 31660, 8449, 31634, 8546, 31608, 8643, 31581, 8740, 31554, 8837, 31527, 8933, 31499, 9030, 31471, 9127, 31443, 9223, 31415, 9320, 31386, 9416, 31357, 9512, 31328, 9608, 31298, 9704, 31268, 9800, 31238, 9896, 31207, 9992, 31177, 10088, 31146, 10183, 31114, 10279, 31082, 10374, 31050, 10469, 31018, 10565, 30986, 10660, 30953, 10755, 30920, 10850, 30886, 10945, 30853, 11039, 30819, 11134, 30784, 11228, 30750, 11323, 30715, 11417, 30680, 11511, 30644, 11605, 30608, 11699, 30572, 11793, 30536, 11887, 30499, 11980, 30462, 12074, 30425, 12167, 30388, 12261, 30350, 12354, 30312, 12447, 30274, 12540, 30235, 12633, 30196, 12725, 30157, 12818, 30118, 12910, 30078, 13003, 30038, 13095, 29997, 13187, 29957, 13279, 29916, 13371, 29875, 13463, 29833, 13554, 29792, 13646, 29750, 13737, 29707, 13828, 29665, 13919, 29622, 14010, 29579, 14101, 29535, 14192, 29492, 14282, 29448, 14373, 29404, 14463, 29359, 14553, 29314, 14643, 29269, 14733, 29224, 14823, 29178, 14912, 29132, 15002, 29086, 15091, 29040, 15180, 28993, 15269, 28946, 15358, 28899, 15447, 28851, 15535, 28803, 15624, 28755, 15712, 28707, 15800, 28658, 15888, 28610, 15976, 28560, 16064, 28511, 16151, 28461, 16239, 28411, 16326, 28361, 16413, 28311, 16500, 28260, 16587, 28209, 16673, 28158, 16760, 28106, 16846, 28054, 16932, 28002, 17018, 27950, 17104, 27897, 17190, 27844, 17275, 27791, 17361, 27738, 17446, 27684, 17531, 27630, 17616, 27576, 17700, 27522, 17785, 27467, 17869, 27412, 17953, 27357, 18037, 27301, 18121, 27246, 18205, 27190, 18288, 27133, 18372, 27077, 18455, 27020, 18538, 26963, 18621, 26906, 18703, 26848, 18786, 26791, 18868, 26733, 18950, 26674, 19032, 26616, 19114, 26557, 19195, 26498, 19277, 26439, 19358, 26379, 19439, 26320, 19520, 26260, 19601, 26199, 19681, 26139, 19761, 26078, 19841, 26017, 19921, 25956, 20001, 25894, 20081, 25833, 20160, 25771, 20239, 25708, 20318, 25646, 20397, 25583, 20475, 25520, 20554, 25457, 20632, 25394, 20710, 25330, 20788, 25266, 20865, 25202, 20943, 25138, 21020, 25073, 21097, 25008, 21174, 24943, 21251, 24878, 21327, 24812, 21403, 24746, 21479, 24680, 21555, 24614, 21631, 24548, 21706, 24481, 21781, 24414, 21856, 24347, 21931, 24280, 22006, 24212, 22080, 24144, 22154, 24076, 22228, 24008, 22302, 23939, 22375, 23870, 22449, 23801, 22522, 23732, 22595, 23663, 22668, 23593, 22740, 23523, 22812, 23453, 22884, 23383, 22956, 23312, 23028, 23241, 23099, 23170, 23170, }, // WORD32 w1024[768] { 0x00007fff, 0xff377fff, 0xfe6e7ffe, 0xfda57ffa, 0xfcdc7ff6, 0xfc137ff1, 0xfb4a7fea, 0xfa817fe2, 0xf9b87fd9, 0xf8ef7fce, 0xf8277fc2, 0xf75e7fb5, 0xf6957fa7, 0xf5cd7f98, 0xf5057f87, 0xf43c7f75, 0xf3747f62, 0xf2ac7f4e, 0xf1e47f38, 0xf11c7f22, 0xf0557f0a, 0xef8d7ef0, 0xeec67ed6, 0xedff7eba, 0xed387e9d, 0xec717e7f, 0xebab7e60, 0xeae47e3f, 0xea1e7e1e, 0xe9587dfb, 0xe8927dd6, 0xe7cd7db1, 0xe7077d8a, 0xe6427d63, 0xe57d7d3a, 0xe4b97d0f, 0xe3f47ce4, 0xe3307cb7, 0xe26d7c89, 0xe1a97c5a, 0xe0e67c2a, 0xe0237bf9, 0xdf617bc6, 0xde9e7b92, 0xdddc7b5d, 0xdd1b7b27, 0xdc597aef, 0xdb997ab7, 0xdad87a7d, 0xda187a42, 0xd9587a06, 0xd89879c9, 0xd7d9798a, 0xd71b794a, 0xd65c790a, 0xd59e78c8, 0xd4e17885, 0xd4247840, 0xd36777fb, 0xd2ab77b4, 0xd1ef776c, 0xd1347723, 0xd07976d9, 0xcfbe768e, 0xcf047642, 0xce4b75f4, 0xcd9275a6, 0xccd97556, 0xcc217505, 0xcb6974b3, 0xcab27460, 0xc9fc740b, 0xc94673b6, 0xc890735f, 0xc7db7308, 0xc72772af, 0xc6737255, 0xc5c071fa, 0xc50d719e, 0xc45b7141, 0xc3a970e3, 0xc2f87083, 0xc2487023, 0xc1986fc2, 0xc0e96f5f, 0xc03a6efb, 0xbf8c6e97, 0xbedf6e31, 0xbe326dca, 0xbd866d62, 0xbcda6cf9, 0xbc2f6c8f, 0xbb856c24, 0xbadc6bb8, 0xba336b4b, 0xb98b6add, 0xb8e36a6e, 0xb83c69fd, 0xb796698c, 0xb6f1691a, 0xb64c68a7, 0xb5a86832, 0xb50567bd, 0xb4626747, 0xb3c066d0, 0xb31f6657, 0xb27f65de, 0xb1df6564, 0xb14064e9, 0xb0a2646c, 0xb00563ef, 0xaf686371, 0xaecc62f2, 0xae316272, 0xad9761f1, 0xacfd616f, 0xac6560ec, 0xabcd6068, 0xab365fe4, 0xaaa05f5e, 0xaa0a5ed7, 0xa9765e50, 0xa8e25dc8, 0xa84f5d3e, 0xa7bd5cb4, 0xa72c5c29, 0xa69c5b9d, 0xa60c5b10, 0xa57e5a82, 0xa4f059f4, 0xa4635964, 0xa3d758d4, 0xa34c5843, 0xa2c257b1, 0xa238571e, 0xa1b0568a, 0xa12955f6, 0xa0a25560, 0xa01c54ca, 0x9f985433, 0x9f14539b, 0x9e915303, 0x9e0f5269, 0x9d8e51cf, 0x9d0e5134, 0x9c8f5098, 0x9c114ffb, 0x9b944f5e, 0x9b174ec0, 0x9a9c4e21, 0x9a224d81, 0x99a94ce1, 0x99304c40, 0x98b94b9e, 0x98434afb, 0x97ce4a58, 0x975949b4, 0x96e6490f, 0x9674486a, 0x960347c4, 0x9592471d, 0x95234675, 0x94b545cd, 0x94484524, 0x93dc447b, 0x937143d1, 0x93074326, 0x929e427a, 0x923641ce, 0x91cf4121, 0x91694074, 0x91053fc6, 0x90a13f17, 0x903e3e68, 0x8fdd3db8, 0x8f7d3d08, 0x8f1d3c57, 0x8ebf3ba5, 0x8e623af3, 0x8e063a40, 0x8dab398d, 0x8d5138d9, 0x8cf83825, 0x8ca13770, 0x8c4a36ba, 0x8bf53604, 0x8ba0354e, 0x8b4d3497, 0x8afb33df, 0x8aaa3327, 0x8a5a326e, 0x8a0c31b5, 0x89be30fc, 0x89723042, 0x89272f87, 0x88dd2ecc, 0x88942e11, 0x884c2d55, 0x88052c99, 0x87c02bdc, 0x877b2b1f, 0x87382a62, 0x86f629a4, 0x86b628e5, 0x86762827, 0x86372768, 0x85fa26a8, 0x85be25e8, 0x85832528, 0x85492467, 0x851123a7, 0x84d922e5, 0x84a32224, 0x846e2162, 0x843a209f, 0x84071fdd, 0x83d61f1a, 0x83a61e57, 0x83771d93, 0x83491cd0, 0x831c1c0c, 0x82f11b47, 0x82c61a83, 0x829d19be, 0x827618f9, 0x824f1833, 0x822a176e, 0x820516a8, 0x81e215e2, 0x81c1151c, 0x81a01455, 0x8181138f, 0x816312c8, 0x81461201, 0x812a113a, 0x81101073, 0x80f60fab, 0x80de0ee4, 0x80c80e1c, 0x80b20d54, 0x809e0c8c, 0x808b0bc4, 0x80790afb, 0x80680a33, 0x8059096b, 0x804b08a2, 0x803e07d9, 0x80320711, 0x80270648, 0x801e057f, 0x801604b6, 0x800f03ed, 0x800a0324, 0x8006025b, 0x80020192, 0x800100c9, 0x80000000, 0x8001ff37, 0x8002fe6e, 0x8006fda5, 0x800afcdc, 0x800ffc13, 0x8016fb4a, 0x801efa81, 0x8027f9b8, 0x8032f8ef, 0x803ef827, 0x804bf75e, 0x8059f695, 0x8068f5cd, 0x8079f505, 0x808bf43c, 0x809ef374, 0x80b2f2ac, 0x80c8f1e4, 0x80def11c, 0x80f6f055, 0x8110ef8d, 0x812aeec6, 0x8146edff, 0x8163ed38, 0x8181ec71, 0x81a0ebab, 0x81c1eae4, 0x81e2ea1e, 0x8205e958, 0x822ae892, 0x824fe7cd, 0x8276e707, 0x829de642, 0x82c6e57d, 0x82f1e4b9, 0x831ce3f4, 0x8349e330, 0x8377e26d, 0x83a6e1a9, 0x83d6e0e6, 0x8407e023, 0x843adf61, 0x846ede9e, 0x84a3dddc, 0x84d9dd1b, 0x8511dc59, 0x8549db99, 0x8583dad8, 0x85beda18, 0x85fad958, 0x8637d898, 0x8676d7d9, 0x86b6d71b, 0x86f6d65c, 0x8738d59e, 0x877bd4e1, 0x87c0d424, 0x8805d367, 0x884cd2ab, 0x8894d1ef, 0x88ddd134, 0x8927d079, 0x8972cfbe, 0x89becf04, 0x8a0cce4b, 0x8a5acd92, 0x8aaaccd9, 0x8afbcc21, 0x8b4dcb69, 0x8ba0cab2, 0x8bf5c9fc, 0x8c4ac946, 0x8ca1c890, 0x8cf8c7db, 0x8d51c727, 0x8dabc673, 0x8e06c5c0, 0x8e62c50d, 0x8ebfc45b, 0x8f1dc3a9, 0x8f7dc2f8, 0x8fddc248, 0x903ec198, 0x90a1c0e9, 0x9105c03a, 0x9169bf8c, 0x91cfbedf, 0x9236be32, 0x929ebd86, 0x9307bcda, 0x9371bc2f, 0x93dcbb85, 0x9448badc, 0x94b5ba33, 0x9523b98b, 0x9592b8e3, 0x9603b83c, 0x9674b796, 0x96e6b6f1, 0x9759b64c, 0x97ceb5a8, 0x9843b505, 0x98b9b462, 0x9930b3c0, 0x99a9b31f, 0x9a22b27f, 0x9a9cb1df, 0x9b17b140, 0x9b94b0a2, 0x9c11b005, 0x9c8faf68, 0x9d0eaecc, 0x9d8eae31, 0x9e0fad97, 0x9e91acfd, 0x9f14ac65, 0x9f98abcd, 0xa01cab36, 0xa0a2aaa0, 0xa129aa0a, 0xa1b0a976, 0xa238a8e2, 0xa2c2a84f, 0xa34ca7bd, 0xa3d7a72c, 0xa463a69c, 0xa4f0a60c, 0xa57ea57e, 0xa60ca4f0, 0xa69ca463, 0xa72ca3d7, 0xa7bda34c, 0xa84fa2c2, 0xa8e2a238, 0xa976a1b0, 0xaa0aa129, 0xaaa0a0a2, 0xab36a01c, 0xabcd9f98, 0xac659f14, 0xacfd9e91, 0xad979e0f, 0xae319d8e, 0xaecc9d0e, 0xaf689c8f, 0xb0059c11, 0xb0a29b94, 0xb1409b17, 0xb1df9a9c, 0xb27f9a22, 0xb31f99a9, 0xb3c09930, 0xb46298b9, 0xb5059843, 0xb5a897ce, 0xb64c9759, 0xb6f196e6, 0xb7969674, 0xb83c9603, 0xb8e39592, 0xb98b9523, 0xba3394b5, 0xbadc9448, 0xbb8593dc, 0xbc2f9371, 0xbcda9307, 0xbd86929e, 0xbe329236, 0xbedf91cf, 0xbf8c9169, 0xc03a9105, 0xc0e990a1, 0xc198903e, 0xc2488fdd, 0xc2f88f7d, 0xc3a98f1d, 0xc45b8ebf, 0xc50d8e62, 0xc5c08e06, 0xc6738dab, 0xc7278d51, 0xc7db8cf8, 0xc8908ca1, 0xc9468c4a, 0xc9fc8bf5, 0xcab28ba0, 0xcb698b4d, 0xcc218afb, 0xccd98aaa, 0xcd928a5a, 0xce4b8a0c, 0xcf0489be, 0xcfbe8972, 0xd0798927, 0xd13488dd, 0xd1ef8894, 0xd2ab884c, 0xd3678805, 0xd42487c0, 0xd4e1877b, 0xd59e8738, 0xd65c86f6, 0xd71b86b6, 0xd7d98676, 0xd8988637, 0xd95885fa, 0xda1885be, 0xdad88583, 0xdb998549, 0xdc598511, 0xdd1b84d9, 0xdddc84a3, 0xde9e846e, 0xdf61843a, 0xe0238407, 0xe0e683d6, 0xe1a983a6, 0xe26d8377, 0xe3308349, 0xe3f4831c, 0xe4b982f1, 0xe57d82c6, 0xe642829d, 0xe7078276, 0xe7cd824f, 0xe892822a, 0xe9588205, 0xea1e81e2, 0xeae481c1, 0xebab81a0, 0xec718181, 0xed388163, 0xedff8146, 0xeec6812a, 0xef8d8110, 0xf05580f6, 0xf11c80de, 0xf1e480c8, 0xf2ac80b2, 0xf374809e, 0xf43c808b, 0xf5058079, 0xf5cd8068, 0xf6958059, 0xf75e804b, 0xf827803e, 0xf8ef8032, 0xf9b88027, 0xfa81801e, 0xfb4a8016, 0xfc13800f, 0xfcdc800a, 0xfda58006, 0xfe6e8002, 0xff378001, 0x00008000, 0x00c98001, 0x01928002, 0x025b8006, 0x0324800a, 0x03ed800f, 0x04b68016, 0x057f801e, 0x06488027, 0x07118032, 0x07d9803e, 0x08a2804b, 0x096b8059, 0x0a338068, 0x0afb8079, 0x0bc4808b, 0x0c8c809e, 0x0d5480b2, 0x0e1c80c8, 0x0ee480de, 0x0fab80f6, 0x10738110, 0x113a812a, 0x12018146, 0x12c88163, 0x138f8181, 0x145581a0, 0x151c81c1, 0x15e281e2, 0x16a88205, 0x176e822a, 0x1833824f, 0x18f98276, 0x19be829d, 0x1a8382c6, 0x1b4782f1, 0x1c0c831c, 0x1cd08349, 0x1d938377, 0x1e5783a6, 0x1f1a83d6, 0x1fdd8407, 0x209f843a, 0x2162846e, 0x222484a3, 0x22e584d9, 0x23a78511, 0x24678549, 0x25288583, 0x25e885be, 0x26a885fa, 0x27688637, 0x28278676, 0x28e586b6, 0x29a486f6, 0x2a628738, 0x2b1f877b, 0x2bdc87c0, 0x2c998805, 0x2d55884c, 0x2e118894, 0x2ecc88dd, 0x2f878927, 0x30428972, 0x30fc89be, 0x31b58a0c, 0x326e8a5a, 0x33278aaa, 0x33df8afb, 0x34978b4d, 0x354e8ba0, 0x36048bf5, 0x36ba8c4a, 0x37708ca1, 0x38258cf8, 0x38d98d51, 0x398d8dab, 0x3a408e06, 0x3af38e62, 0x3ba58ebf, 0x3c578f1d, 0x3d088f7d, 0x3db88fdd, 0x3e68903e, 0x3f1790a1, 0x3fc69105, 0x40749169, 0x412191cf, 0x41ce9236, 0x427a929e, 0x43269307, 0x43d19371, 0x447b93dc, 0x45249448, 0x45cd94b5, 0x46759523, 0x471d9592, 0x47c49603, 0x486a9674, 0x490f96e6, 0x49b49759, 0x4a5897ce, 0x4afb9843, 0x4b9e98b9, 0x4c409930, 0x4ce199a9, 0x4d819a22, 0x4e219a9c, 0x4ec09b17, 0x4f5e9b94, 0x4ffb9c11, 0x50989c8f, 0x51349d0e, 0x51cf9d8e, 0x52699e0f, 0x53039e91, 0x539b9f14, 0x54339f98, 0x54caa01c, 0x5560a0a2, 0x55f6a129, 0x568aa1b0, 0x571ea238, 0x57b1a2c2, 0x5843a34c, 0x58d4a3d7, 0x5964a463, 0x59f4a4f0, 0x5a82a57e, 0x5b10a60c, 0x5b9da69c, 0x5c29a72c, 0x5cb4a7bd, 0x5d3ea84f, 0x5dc8a8e2, 0x5e50a976, 0x5ed7aa0a, 0x5f5eaaa0, 0x5fe4ab36, 0x6068abcd, 0x60ecac65, 0x616facfd, 0x61f1ad97, 0x6272ae31, 0x62f2aecc, 0x6371af68, 0x63efb005, 0x646cb0a2, 0x64e9b140, 0x6564b1df, 0x65deb27f, 0x6657b31f, 0x66d0b3c0, 0x6747b462, 0x67bdb505, 0x6832b5a8, 0x68a7b64c, 0x691ab6f1, 0x698cb796, 0x69fdb83c, 0x6a6eb8e3, 0x6addb98b, 0x6b4bba33, 0x6bb8badc, 0x6c24bb85, 0x6c8fbc2f, 0x6cf9bcda, 0x6d62bd86, 0x6dcabe32, 0x6e31bedf, 0x6e97bf8c, 0x6efbc03a, 0x6f5fc0e9, 0x6fc2c198, 0x7023c248, 0x7083c2f8, 0x70e3c3a9, 0x7141c45b, 0x719ec50d, 0x71fac5c0, 0x7255c673, 0x72afc727, 0x7308c7db, 0x735fc890, 0x73b6c946, 0x740bc9fc, 0x7460cab2, 0x74b3cb69, 0x7505cc21, 0x7556ccd9, 0x75a6cd92, 0x75f4ce4b, 0x7642cf04, 0x768ecfbe, 0x76d9d079, 0x7723d134, 0x776cd1ef, 0x77b4d2ab, 0x77fbd367, 0x7840d424, 0x7885d4e1, 0x78c8d59e, 0x790ad65c, 0x794ad71b, 0x798ad7d9, 0x79c9d898, 0x7a06d958, 0x7a42da18, 0x7a7ddad8, 0x7ab7db99, 0x7aefdc59, 0x7b27dd1b, 0x7b5ddddc, 0x7b92de9e, 0x7bc6df61, 0x7bf9e023, 0x7c2ae0e6, 0x7c5ae1a9, 0x7c89e26d, 0x7cb7e330, 0x7ce4e3f4, 0x7d0fe4b9, 0x7d3ae57d, 0x7d63e642, 0x7d8ae707, 0x7db1e7cd, 0x7dd6e892, 0x7dfbe958, 0x7e1eea1e, 0x7e3feae4, 0x7e60ebab, 0x7e7fec71, 0x7e9ded38, 0x7ebaedff, 0x7ed6eec6, 0x7ef0ef8d, 0x7f0af055, 0x7f22f11c, 0x7f38f1e4, 0x7f4ef2ac, 0x7f62f374, 0x7f75f43c, 0x7f87f505, 0x7f98f5cd, 0x7fa7f695, 0x7fb5f75e, 0x7fc2f827, 0x7fcef8ef, 0x7fd9f9b8, 0x7fe2fa81, 0x7feafb4a, 0x7ff1fc13, 0x7ff6fcdc, 0x7ffafda5, 0x7ffefe6e, 0x7fffff37, }, // WORD8 bit_rev_1024[256]= {0x00, 0x40, 0x80, 0xc0, 0x10, 0x50, 0x90, 0xd0, 0x20, 0x60, 0xa0, 0xe0, 0x30, 0x70, 0xb0, 0xf0, 0x04, 0x44, 0x84, 0xc4, 0x14, 0x54, 0x94, 0xd4, 0x24, 0x64, 0xa4, 0xe4, 0x34, 0x74, 0xb4, 0xf4, 0x08, 0x48, 0x88, 0xc8, 0x18, 0x58, 0x98, 0xd8, 0x28, 0x68, 0xa8, 0xe8, 0x38, 0x78, 0xb8, 0xf8, 0x0c, 0x4c, 0x8c, 0xcc, 0x1c, 0x5c, 0x9c, 0xdc, 0x2c, 0x6c, 0xac, 0xec, 0x3c, 0x7c, 0xbc, 0xfc, 0x01, 0x41, 0x81, 0xc1, 0x11, 0x51, 0x91, 0xd1, 0x21, 0x61, 0xa1, 0xe1, 0x31, 0x71, 0xb1, 0xf1, 0x05, 0x45, 0x85, 0xc5, 0x15, 0x55, 0x95, 0xd5, 0x25, 0x65, 0xa5, 0xe5, 0x35, 0x75, 0xb5, 0xf5, 0x09, 0x49, 0x89, 0xc9, 0x19, 0x59, 0x99, 0xd9, 0x29, 0x69, 0xa9, 0xe9, 0x39, 0x79, 0xb9, 0xf9, 0x0d, 0x4d, 0x8d, 0xcd, 0x1d, 0x5d, 0x9d, 0xdd, 0x2d, 0x6d, 0xad, 0xed, 0x3d, 0x7d, 0xbd, 0xfd, 0x02, 0x42, 0x82, 0xc2, 0x12, 0x52, 0x92, 0xd2, 0x22, 0x62, 0xa2, 0xe2, 0x32, 0x72, 0xb2, 0xf2, 0x06, 0x46, 0x86, 0xc6, 0x16, 0x56, 0x96, 0xd6, 0x26, 0x66, 0xa6, 0xe6, 0x36, 0x76, 0xb6, 0xf6, 0x0a, 0x4a, 0x8a, 0xca, 0x1a, 0x5a, 0x9a, 0xda, 0x2a, 0x6a, 0xaa, 0xea, 0x3a, 0x7a, 0xba, 0xfa, 0x0e, 0x4e, 0x8e, 0xce, 0x1e, 0x5e, 0x9e, 0xde, 0x2e, 0x6e, 0xae, 0xee, 0x3e, 0x7e, 0xbe, 0xfe, 0x03, 0x43, 0x83, 0xc3, 0x13, 0x53, 0x93, 0xd3, 0x23, 0x63, 0xa3, 0xe3, 0x33, 0x73, 0xb3, 0xf3, 0x07, 0x47, 0x87, 0xc7, 0x17, 0x57, 0x97, 0xd7, 0x27, 0x67, 0xa7, 0xe7, 0x37, 0x77, 0xb7, 0xf7, 0x0b, 0x4b, 0x8b, 0xcb, 0x1b, 0x5b, 0x9b, 0xdb, 0x2b, 0x6b, 0xab, 0xeb, 0x3b, 0x7b, 0xbb, 0xfb, 0x0f, 0x4f, 0x8f, 0xcf, 0x1f, 0x5f, 0x9f, 0xdf, 0x2f, 0x6f, 0xaf, 0xef, 0x3f, 0x7f, 0xbf, 0xff}, // WORD8 bit_rev_512[64]= {0x00, 0x10, 0x20, 0x30, 0x04, 0x14, 0x24, 0x34, 0x08, 0x18, 0x28, 0x38, 0x0c, 0x1c, 0x2c, 0x3c, 0x01, 0x11, 0x21, 0x31, 0x05, 0x15, 0x25, 0x35, 0x09, 0x19, 0x29, 0x39, 0x0d, 0x1d, 0x2d, 0x3d, 0x02, 0x12, 0x22, 0x32, 0x06, 0x16, 0x26, 0x36, 0x0a, 0x1a, 0x2a, 0x3a, 0x0e, 0x1e, 0x2e, 0x3e, 0x03, 0x13, 0x23, 0x33, 0x07, 0x17, 0x27, 0x37, 0x0b, 0x1b, 0x2b, 0x3b, 0x0f, 0x1f, 0x2f, 0x3f}, // WORD8 bit_rev_128[16]= {0x00, 0x04, 0x08, 0x0c, 0x01, 0x05, 0x09, 0x0d, 0x02, 0x06, 0x0a, 0x0e, 0x03, 0x07, 0x0b, 0x0f}, // WORD8 bit_rev_32[4]= { 0x00, 0x01, 0x02, 0x03, }, // const WORD32 w_256[504] = { 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x03242abf, 0x7ff62182, 0x0647d97c, 0x7fd8878e, 0x096a9049, 0x7fa736b4, 0x0647d97c, 0x7fd8878e, 0x0c8bd35e, 0x7f62368f, 0x12c8106f, 0x7e9d55fc, 0x096a9049, 0x7fa736b4, 0x12c8106f, 0x7e9d55fc, 0x1c0b826b, 0x7ce3ceb2, 0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b, 0x0fab272b, 0x7f0991c4, 0x1f19f97b, 0x7c29fbee, 0x2e110a62, 0x776c4edb, 0x12c8106f, 0x7e9d55fc, 0x25280c5e, 0x7a7d055b, 0x36ba2014, 0x73b5ebd1, 0x15e21445, 0x7e1d93ea, 0x2b1f34eb, 0x78848414, 0x3f1749b8, 0x6f5f02b2, 0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4, 0x1c0b826b, 0x7ce3ceb2, 0x36ba2014, 0x73b5ebd1, 0x4ebfe8a5, 0x64e88926, 0x1f19f97b, 0x7c29fbee, 0x3c56ba70, 0x70e2cbc6, 0x55f5a4d2, 0x5ed77c8a, 0x2223a4c5, 0x7b5d039e, 0x41ce1e65, 0x6dca0d14, 0x5cb420e0, 0x5842dd54, 0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94, 0x2826b928, 0x798a23b1, 0x4c3fdff4, 0x66cf8120, 0x68a69e81, 0x49b41533, 0x2b1f34eb, 0x78848414, 0x5133cc94, 0x62f201ac, 0x6dca0d15, 0x41ce1e64, 0x2e110a62, 0x776c4edb, 0x55f5a4d2, 0x5ed77c8a, 0x72552c85, 0x398cdd32, 0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d, 0x33def287, 0x7504d345, 0x5ed77c8a, 0x55f5a4d2, 0x798a23b1, 0x2826b928, 0x36ba2014, 0x73b5ebd1, 0x62f201ac, 0x5133cc94, 0x7c29fbee, 0x1f19f97b, 0x398cdd33, 0x72552c85, 0x66cf8120, 0x4c3fdff3, 0x7e1d93ea, 0x15e21444, 0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e, 0x3f1749b8, 0x6f5f02b2, 0x6dca0d15, 0x41ce1e64, 0x7ff62182, 0x03242abf, 0x41ce1e65, 0x6dca0d14, 0x70e2cbc6, 0x3c56ba70, 0x7fd8878e, 0xf9b82684, 0x447acd51, 0x6c242960, 0x73b5ebd1, 0x36ba2013, 0x7f0991c3, 0xf054d8d5, 0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4, 0x49b41534, 0x68a69e81, 0x78848414, 0x2b1f34eb, 0x7b5d039d, 0xdddc5b3b, 0x4c3fdff4, 0x66cf8120, 0x7a7d055b, 0x25280c5d, 0x78848414, 0xd4e0cb15, 0x4ebfe8a5, 0x64e88926, 0x7c29fbee, 0x1f19f97b, 0x7504d345, 0xcc210d79, 0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590, 0x539b2af0, 0x60ec3830, 0x7e9d55fc, 0x12c8106e, 0x6c242960, 0xbb8532b0, 0x55f5a4d2, 0x5ed77c8a, 0x7f62368f, 0x0c8bd35e, 0x66cf811f, 0xb3c0200d, 0x5842dd55, 0x5cb420e0, 0x7fd8878e, 0x0647d97c, 0x60ec3830, 0xac64d511, 0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667, 0x5cb420e0, 0x5842dd54, 0x7fd8878e, 0xf9b82684, 0x539b2aef, 0x9f13c7d1, 0x5ed77c8a, 0x55f5a4d2, 0x7f62368f, 0xf3742ca2, 0x4c3fdff3, 0x99307ee1, 0x60ec3830, 0x539b2aef, 0x7e9d55fc, 0xed37ef92, 0x447acd50, 0x93dbd6a0, 0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b, 0x64e88926, 0x4ebfe8a4, 0x7c29fbee, 0xe0e60685, 0x33def287, 0x8afb2cbb, 0x66cf8120, 0x4c3fdff3, 0x7a7d055b, 0xdad7f3a3, 0x2b1f34eb, 0x877b7bed, 0x68a69e81, 0x49b41533, 0x78848414, 0xd4e0cb15, 0x2223a4c5, 0x84a2fc63, 0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1, 0x6c242960, 0x447acd50, 0x73b5ebd1, 0xc945dfed, 0x0fab272a, 0x80f66e3d, 0x6dca0d15, 0x41ce1e64, 0x70e2cbc6, 0xc3a94590, 0x0647d97b, 0x80277873, 0x6f5f02b2, 0x3f1749b8, 0x6dca0d14, 0xbe31e19c, 0xfcdbd541, 0x8009de7f, 0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972, 0x72552c85, 0x398cdd32, 0x66cf811f, 0xb3c0200d, 0xea1debbc, 0x81e26c17, 0x73b5ebd1, 0x36ba2013, 0x62f201ac, 0xaecc336c, 0xe0e60685, 0x83d60413, 0x7504d345, 0x33def287, 0x5ed77c89, 0xaa0a5b2e, 0xd7d946d8, 0x8675dc50, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5, 0x776c4edb, 0x2e110a62, 0x55f5a4d2, 0xa1288377, 0xc67322ce, 0x8daad37d, 0x78848414, 0x2b1f34eb, 0x5133cc94, 0x9d0dfe54, 0xbe31e19c, 0x9235f2ed, 0x798a23b1, 0x2826b928, 0x4c3fdff3, 0x99307ee1, 0xb64beacd, 0x97596181, 0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55, 0x7b5d039e, 0x2223a4c5, 0x41ce1e64, 0x9235f2ec, 0xa7bd22ac, 0xa34bdf22, 0x7c29fbee, 0x1f19f97b, 0x3c56ba6f, 0x8f1d343b, 0xa1288377, 0xaa0a5b30, 0x7ce3ceb2, 0x1c0b826a, 0x36ba2013, 0x8c4a1430, 0x9b1776da, 0xb140175d, 0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b, 0x7e1d93ea, 0x15e21444, 0x2b1f34eb, 0x877b7bed, 0x90a0fd4f, 0xc0e8b64a, 0x7e9d55fc, 0x12c8106e, 0x25280c5d, 0x8582faa6, 0x8c4a1430, 0xc945dfee, 0x7f0991c4, 0x0fab272b, 0x1f19f97a, 0x83d60413, 0x8893b125, 0xd1eef5a0, 0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5, 0x7fa736b4, 0x096a9049, 0x12c8106e, 0x8162aa05, 0x831c314f, 0xe3f47d98, 0x7fd8878e, 0x0647d97c, 0x0c8bd35d, 0x809dc972, 0x8162aa05, 0xed37ef94, 0x7ff62182, 0x03242abf, 0x0647d97b, 0x80277873, 0x8058c94d, 0xf6956fb9, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x0c8bd35e, 0x7f62368f, 0x18f8b83c, 0x7d8a5f40, 0x25280c5e, 0x7a7d055b, 0x18f8b83c, 0x7d8a5f40, 0x30fbc54d, 0x7641af3d, 0x471cece7, 0x6a6d98a4, 0x25280c5e, 0x7a7d055b, 0x471cece7, 0x6a6d98a4, 0x62f201ac, 0x5133cc94, 0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d, 0x3c56ba70, 0x70e2cbc6, 0x6a6d98a4, 0x471cece6, 0x7f62368f, 0x0c8bd35e, 0x471cece7, 0x6a6d98a4, 0x7641af3d, 0x30fbc54d, 0x7d8a5f40, 0xe70747c4, 0x5133cc94, 0x62f201ac, 0x7d8a5f40, 0x18f8b83c, 0x70e2cbc6, 0xc3a94590, 0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667, 0x62f201ac, 0x5133cc94, 0x7d8a5f40, 0xe70747c4, 0x3c56ba6f, 0x8f1d343b, 0x6a6d98a4, 0x471cece6, 0x7641af3d, 0xcf043ab3, 0x18f8b83c, 0x8275a0c1, 0x70e2cbc6, 0x3c56ba70, 0x6a6d98a4, 0xb8e3131a, 0xf3742ca2, 0x809dc972, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5, 0x7a7d055b, 0x25280c5d, 0x471cece6, 0x9592675c, 0xaecc336c, 0x9d0dfe55, 0x7d8a5f40, 0x18f8b83c, 0x30fbc54d, 0x89be50c4, 0x9592675c, 0xb8e3131b, 0x7f62368f, 0x0c8bd35e, 0x18f8b83c, 0x8275a0c1, 0x8582faa6, 0xdad7f3a5, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5, }, // WORD32 low_overlap_win[512]; { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6588355, 19764075, 32936819, 46104602, 59265442, 72417357, 85558366, 98686490, 111799753, 124896178, 137973795, 151030634, 164064728, 177074114, 190056834, 203010932, 215934457, 228825463, 241682009, 254502159, 267283981, 280025551, 292724951, 305380267, 317989594, 330551034, 343062693, 355522688, 367929143, 380280189, 392573967, 404808624, 416982318, 429093217, 441139495, 453119340, 465030947, 476872521, 488642280, 500338452, 511959274, 523502998, 534967883, 546352205, 557654248, 568872310, 580004702, 591049747, 602005783, 612871159, 623644238, 634323399, 644907034, 655393547, 665781361, 676068911, 686254647, 696337035, 706314558, 716185713, 725949012, 735602987, 745146182, 754577161, 763894503, 773096806, 782182683, 791150766, 799999705, 808728167, 817334837, 825818420, 834177638, 842411231, 850517961, 858496605, 866345963, 874064853, 881652112, 889106597, 896427186, 903612776, 910662286, 917574653, 924348836, 930983817, 937478594, 943832191, 950043650, 956112036, 962036435, 967815955, 973449725, 978936897, 984276645, 989468165, 994510674, 999403414, 1004145647, 1008736660, 1013175760, 1017462280, 1021595574, 1025575020, 1029400017, 1033069991, 1036584388, 1039942680, 1043144359, 1046188946, 1049075979, 1051805026, 1054375675, 1056787539, 1059040255, 1061133483, 1063066908, 1064840239, 1066453209, 1067905576, 1069197119, 1070327646, 1071296985, 1072104991, 1072751541, 1073236539, 1073559912, 1073721611, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, }, // WORD32 window_sine_512[512]; {1647098, 4941280, 8235415, 11529473, 14823423, 18117232, 21410872, 24704309, 27997515, 31290456, 34583103, 37875425, 41167390, 44458968, 47750127, 51040837, 54331066, 57620784, 60909960, 64198562, 67486560, 70773923, 74060620, 77346619, 80631891, 83916404, 87200127, 90483029, 93765079, 97046247, 100326501, 103605811, 106884146, 110161475, 113437767, 116712991, 119987117, 123260113, 126531950, 129802595, 133072018, 136340189, 139607077, 142872650, 146136879, 149399733, 152661180, 155921190, 159179733, 162436777, 165692293, 168946249, 172198614, 175449359, 178698453, 181945864, 185191563, 188435519, 191677702, 194918080, 198156623, 201393302, 204628084, 207860941, 211091841, 214320755, 217547651, 220772499, 223995270, 227215932, 230434456, 233650810, 236864966, 240076892, 243286558, 246493934, 249698990, 252901696, 256102022, 259299937, 262495411, 265688415, 268878918, 272066890, 275252301, 278435122, 281615322, 284792871, 287967740, 291139898, 294309315, 297475963, 300639811, 303800829, 306958987, 310114256, 313266607, 316416009, 319562432, 322705848, 325846226, 328983537, 332117752, 335248841, 338376774, 341501522, 344623056, 347741346, 350856364, 353968078, 357076461, 360181484, 363283116, 366381328, 369476092, 372567379, 375655158, 378739402, 381820081, 384897167, 387970629, 391040440, 394106570, 397168990, 400227673, 403282588, 406333707, 409381002, 412424443, 415464003, 418499652, 421531362, 424559105, 427582851, 430602573, 433618242, 436629829, 439637307, 442640646, 445639819, 448634798, 451625554, 454612059, 457594286, 460572205, 463545789, 466515010, 469479840, 472440251, 475396215, 478347705, 481294692, 484237149, 487175049, 490108362, 493037063, 495961123, 498880515, 501795211, 504705185, 507610407, 510510852, 513406492, 516297299, 519183247, 522064308, 524940455, 527811662, 530677900, 533539143, 536395365, 539246537, 542092635, 544933629, 547769495, 550600205, 553425732, 556246050, 559061133, 561870953, 564675486, 567474703, 570268578, 573057087, 575840201, 578617895, 581390144, 584156920, 586918197, 589673950, 592424154, 595168781, 597907806, 600641203, 603368947, 606091011, 608807371, 611518001, 614222874, 616921967, 619615253, 622302706, 624984303, 627660016, 630329822, 632993695, 635651611, 638303543, 640949467, 643589358, 646223192, 648850943, 651472587, 654088098, 656697454, 659300628, 661897597, 664488336, 667072820, 669651025, 672222928, 674788503, 677347727, 679900576, 682447025, 684987050, 687520628, 690047735, 692568347, 695082441, 697589992, 700090976, 702585372, 705073154, 707554300, 710028786, 712496590, 714957686, 717412054, 719859669, 722300508, 724734549, 727161768, 729582143, 731995650, 734402268, 736801974, 739194744, 741580557, 743959390, 746331220, 748696026, 751053784, 753404474, 755748072, 758084557, 760413906, 762736098, 765051111, 767358923, 769659512, 771952857, 774238936, 776517727, 778789210, 781053362, 783310163, 785559591, 787801625, 790036244, 792263427, 794483152, 796695400, 798900149, 801097378, 803287068, 805469196, 807643743, 809810688, 811970011, 814121691, 816265708, 818402043, 820530674, 822651582, 824764747, 826870150, 828967769, 831057585, 833139580, 835213733, 837280024, 839338434, 841388945, 843431535, 845466188, 847492882, 849511599, 851522321, 853525027, 855519700, 857506321, 859484870, 861455329, 863417680, 865371905, 867317984, 869255899, 871185633, 873107167, 875020482, 876925562, 878822388, 880710942, 882591207, 884463164, 886326796, 888182086, 890029016, 891867568, 893697726, 895519472, 897332790, 899137661, 900934069, 902721997, 904501429, 906272346, 908034734, 909788575, 911533853, 913270551, 914998653, 916718143, 918429004, 920131220, 921824776, 923509655, 925185842, 926853321, 928512076, 930162091, 931803351, 933435841, 935059545, 936674448, 938280534, 939877789, 941466198, 943045745, 944616416, 946178195, 947731069, 949275023, 950810041, 952336110, 953853216, 955361343, 956860478, 958350607, 959831716, 961303790, 962766816, 964220780, 965665668, 967101468, 968528164, 969945745, 971354195, 972753503, 974143656, 975524639, 976896440, 978259046, 979612445, 980956623, 982291568, 983617267, 984933708, 986240878, 987538766, 988827358, 990106643, 991376609, 992637244, 993888536, 995130473, 996363043, 997586235, 998800037, 1000004439, 1001199428, 1002384993, 1003561124, 1004727808, 1005885036, 1007032796, 1008171077, 1009299869, 1010419161, 1011528943, 1012629204, 1013719933, 1014801121, 1015872757, 1016934832, 1017987335, 1019030256, 1020063585, 1021087314, 1022101431, 1023105928, 1024100795, 1025086023, 1026061603, 1027027525, 1027983780, 1028930359, 1029867253, 1030794455, 1031711953, 1032619741, 1033517810, 1034406151, 1035284755, 1036153615, 1037012722, 1037862069, 1038701647, 1039531448, 1040351464, 1041161689, 1041962114, 1042752731, 1043533533, 1044304514, 1045065665, 1045816979, 1046558450, 1047290070, 1048011833, 1048723731, 1049425759, 1050117909, 1050800175, 1051472550, 1052135028, 1052787603, 1053430269, 1054063020, 1054685850, 1055298752, 1055901722, 1056494753, 1057077839, 1057650977, 1058214159, 1058767381, 1059310637, 1059843923, 1060367233, 1060880562, 1061383906, 1061877260, 1062360620, 1062833979, 1063297335, 1063750683, 1064194019, 1064627337, 1065050636, 1065463909, 1065867154, 1066260366, 1066643543, 1067016680, 1067379774, 1067732821, 1068075818, 1068408762, 1068731650, 1069044478, 1069347245, 1069639946, 1069922579, 1070195142, 1070457631, 1070710046, 1070952382, 1071184638, 1071406811, 1071618900, 1071820903, 1072012817, 1072194641, 1072366373, 1072528012, 1072679556, 1072821003, 1072952352, 1073073602, 1073184752, 1073285801, 1073376748, 1073457591, 1073528331, 1073588967, 1073639497, 1073679922, 1073710241, 1073730454, 1073740560}, // WORD32 cosine_array_1024[512]; { 2147483008, 2147432448, 1647099, 14823777, 2147301120, 2147088896, 27999896, 41174960, 2146795776, 2146421888, 54348476, 67519944, 2145967232, 2145431680, 80688872, 93854760, 2144815488, 2144118400, 107017112, 120175440, 2143340672, 2142482304, 133329240, 146478032, 2141543168, 2140523392, 159621296, 172758544, 2139423104, 2138242176, 185889296, 199013056, 2136980864, 2135639040, 212129312, 225237600, 2134216832, 2132714240, 238337392, 251428208, 2131131264, 2129468160, 264509568, 277580960, 2127724928, 2125901568, 290641920, 303691904, 2123998080, 2122014720, 316730496, 329757120, 2119951360, 2117808256, 342771360, 355772672, 2115585408, 2113282944, 368760608, 381734656, 2110900864, 2108439296, 394694336, 407639136, 2105898368, 2103278208, 420568608, 433482240, 2100578816, 2097800320, 446379552, 459260064, 2094942848, 2092006528, 472123296, 484968736, 2088991488, 2085897728, 497795904, 510604352, 2082725376, 2079474688, 523393568, 536163072, 2076145792, 2072738560, 548912384, 561641024, 2069253376, 2065690368, 574348544, 587034432, 2062049536, 2058331008, 599698240, 612339456, 2054535040, 2050661632, 624957632, 637552256, 2046711040, 2042683520, 650122880, 662668992, 2038578944, 2034397696, 675190208, 687685952, 2030139904, 2025805568, 700155840, 712599360, 2021394944, 2016908288, 725016064, 737405504, 2012345728, 2007707392, 749767104, 762100544, 2002993408, 1998204032, 774405248, 786680768, 1993339392, 1988399744, 798926720, 811142592, 1983385216, 1978296064, 823327936, 835482240, 1973132416, 1967894528, 847605120, 859696064, 1962582400, 1957196544, 871754688, 883780416, 1951736832, 1946203776, 895772928, 907731712, 1940597376, 1934918016, 919656256, 931546240, 1929165696, 1923340800, 943401152, 955220544, 1917443456, 1911473920, 967003968, 978750976, 1905432448, 1899319168, 990461120, 1002134016, 1893134464, 1886878464, 1013769152, 1025366080, 1880551424, 1874153600, 1036924480, 1048443776, 1867685120, 1861146496, 1059923648, 1071363584, 1854537600, 1847859072, 1082763264, 1094122112, 1841110784, 1834293376, 1105439744, 1116715776, 1827406720, 1820451328, 1127949696, 1139141248, 1813427456, 1806335232, 1150289920, 1161395200, 1799175040, 1791947136, 1172456832, 1183474304, 1784651776, 1777289216, 1194447232, 1205375104, 1769859712, 1762363520, 1216257664, 1227094400, 1754801024, 1747172480, 1237884928, 1248628992, 1739478144, 1731718400, 1259325824, 1269975424, 1723893376, 1716003456, 1280577152, 1291130624, 1708048896, 1700030080, 1301635584, 1312091392, 1691947136, 1683800704, 1322497920, 1332854656, 1675590656, 1667317632, 1343161088, 1353417088, 1658981888, 1650583680, 1363622016, 1373775744, 1642123264, 1633601024, 1383877632, 1393927424, 1625017216, 1616372352, 1403924864, 1413869312, 1607666560, 1598900352, 1423760512, 1433598208, 1590073856, 1581187456, 1443381888, 1453111296, 1572241536, 1563236480, 1462785920, 1472405376, 1554172544, 1545050112, 1481969536, 1491477888, 1535869440, 1526631040, 1500930048, 1510325760, 1517335040, 1507982080, 1519664512, 1528946048, 1498572160, 1489105920, 1538170112, 1547336192, 1479583616, 1470005632, 1556444032, 1565493376, 1460372352, 1450683904, 1574483712, 1583414656, 1440941056, 1431143808, 1592286080, 1601097600, 1421292672, 1411388032, 1609848832, 1618539392, 1401430400, 1391419904, 1627169024, 1635737344, 1381356928, 1371242112, 1644244224, 1652689152, 1361075584, 1350857728, 1661071744, 1669391872, 1340589184, 1330270080, 1677649152, 1685843328, 1319900928, 1309481984, 1693973888, 1702040832, 1299013760, 1288496768, 1710043648, 1717981952, 1277931136, 1267317376, 1725855744, 1733664512, 1256656000, 1245947264, 1741408000, 1749085824, 1235191680, 1224389504, 1756697984, 1764243840, 1213541248, 1202647296, 1771723392, 1779136128, 1191708032, 1180723968, 1786481920, 1793760512, 1169695488, 1158622848, 1800971520, 1808114816, 1147506688, 1136347264, 1815189888, 1822196736, 1125145088, 1113900544, 1829134848, 1836004224, 1102614144, 1091286144, 1842804480, 1849535232, 1079917056, 1068507264, 1856196480, 1862787712, 1057057344, 1045567552, 1869308928, 1875759744, 1034038400, 1022470400, 1882139904, 1888449152, 1010863808, 999219200, 1894687360, 1900854272, 987536960, 975817536, 1906949632, 1912973056, 964061376, 952268928, 1918924544, 1924803840, 940440640, 928576960, 1930610688, 1936344704, 916678272, 904745088, 1942005888, 1947593984, 892777856, 880777024, 1953108736, 1958549888, 868742976, 856676288, 1963917440, 1969211008, 844577280, 832446528, 1974430336, 1979575424, 820284416, 808091392, 1984645888, 1989641728, 795867968, 783614592, 1994562688, 1999408512, 771331712, 759019776, 2004178944, 2008874112, 746679232, 734310592, 2013493504, 2018037120, 721914368, 709490880, 2022504832, 2026896256, 697040768, 684564352, 2031211520, 2035450240, 672062144, 659534720, 2039612288, 2043697664, 646982400, 634405696, 2047705984, 2051637248, 621805184, 609181184, 2055491328, 2059267840, 596534336, 583864960, 2062967040, 2066588416, 571173632, 558460736, 2070132096, 2073597696, 545726912, 532972480, 2076985344, 2080294784, 520197984, 507403936, 2083525888, 2086678528, 494590752, 481758976, 2089752576, 2092748032, 468909024, 456041440, 2095664640, 2098502400, 443156704, 430255264, 2101261056, 2103940736, 417337632, 404404288, 2106541056, 2109062144, 391455712, 378492384, 2111503872, 2113865984, 365514816, 352523488, 2116148608, 2118351488, 339518912, 326501504, 2120474752, 2122518016, 313471840, 300430368, 2124481408, 2126364928, 287377600, 274313984, 2128168320, 2129891456, 261240048, 248156272, 2131534592, 2133097344, 235063168, 221961200, 2134579840, 2135982080, 208850896, 195732704, 2137303808, 2138545024, 182607152, 169474736, 2139705728, 2140785920, 156335920, 143191232, 2141785472, 2142704384, 130041152, 116886168, 2143542656, 2144300288, 103726792, 90563504, 2144977152, 2145573120, 77396808, 64227204, 2146088448, 2146523008, 51055176, 37881228, 2146876672, 2147149568, 24705852, 11529547, 2147341568, 2147452672, }, // const WORD32 low_overlap_win_480[480] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7027573, 21081516, 35131847, 49176158, 63212044, 77237098, 91248918, 105245103, 119223254, 133180978, 147115881, 161025577, 174907682, 188759818, 202579610, 216364692, 230112700, 243821280, 257488083, 271110766, 284686996, 298214446, 311690798, 325113744, 338480984, 351790226, 365039191, 378225608, 391347219, 404401774, 417387037, 430300783, 443140798, 455904885, 468590854, 481196532, 493719760, 506158392, 518510295, 530773355, 542945470, 555024554, 567008537, 578895366, 590683004, 602369432, 613952647, 625430664, 636801517, 648063257, 659213956, 670251701, 681174602, 691980787, 702668405, 713235624, 723680634, 734001645, 744196888, 754264618, 764203108, 774010655, 783685580, 793226225, 802630954, 811898156, 821026244, 830013654, 838858844, 847560301, 856116533, 864526073, 872787481, 880899342, 888860265, 896668886, 904323868, 911823899, 919167693, 926353993, 933381566, 940249210, 946955747, 953500027, 959880930, 966097363, 972148260, 978032584, 983749328, 989297511, 994676183, 999884422, 1004921336, 1009786063, 1014477767, 1018995646, 1023338926, 1027506861, 1031498739, 1035313874, 1038951614, 1042411335, 1045692444, 1048794379, 1051716608, 1054458631, 1057019978, 1059400211, 1061598920, 1063615730, 1065450295, 1067102300, 1068571463, 1069857532, 1070960286, 1071879537, 1072615126, 1073166929, 1073534850, 1073718826, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823, 1073741823}, // WORD32 window_sine_480[480]; {1756905, 5270696, 8784431, 12298072, 15811582, 19324922, 22838055, 26350943, 29863549, 33375836, 36887765, 40399299, 43910400, 47421031, 50931154, 54440732, 57949727, 61458101, 64965817, 68472837, 71979124, 75484640, 78989348, 82493210, 85996188, 89498246, 92999345, 96499448, 99998518, 103496516, 106993407, 110489151, 113983713, 117477053, 120969136, 124459923, 127949377, 131437461, 134924138, 138409369, 141893118, 145375348, 148856021, 152335099, 155812547, 159288325, 162762398, 166234728, 169705277, 173174009, 176640887, 180105873, 183568930, 187030021, 190489109, 193946157, 197401129, 200853986, 204304692, 207753211, 211199504, 214643536, 218085269, 221524666, 224961691, 228396307, 231828477, 235258165, 238685333, 242109944, 245531963, 248951353, 252368076, 255782097, 259193379, 262601885, 266007578, 269410423, 272810383, 276207421, 279601501, 282992587, 286380642, 289765631, 293147516, 296526261, 299901832, 303274190, 306643301, 310009128, 313371635, 316730785, 320086544, 323438875, 326787743, 330133110, 333474943, 336813204, 340147858, 343478869, 346806202, 350129821, 353449690, 356765774, 360078037, 363386445, 366690960, 369991549, 373288175, 376580804, 379869400, 383153928, 386434352, 389710639, 392982751, 396250655, 399514316, 402773698, 406028767, 409279487, 412525825, 415767744, 419005212, 422238191, 425466650, 428690551, 431909862, 435124547, 438334573, 441539904, 444740507, 447936347, 451127389, 454313601, 457494947, 460671394, 463842908, 467009454, 470170999, 473327508, 476478949, 479625287, 482766489, 485902520, 489033348, 492158939, 495279259, 498394275, 501503954, 504608262, 507707166, 510800633, 513888630, 516971123, 520048080, 523119468, 526185253, 529245403, 532299886, 535348668, 538391717, 541429001, 544460486, 547486140, 550505931, 553519827, 556527795, 559529802, 562525818, 565515810, 568499745, 571477593, 574449320, 577414895, 580374287, 583327463, 586274392, 589215043, 592149384, 595077383, 597999010, 600914232, 603823019, 606725340, 609621163, 612510457, 615393193, 618269337, 621138861, 624001732, 626857921, 629707397, 632550130, 635386088, 638215242, 641037560, 643853014, 646661573, 649463207, 652257885, 655045578, 657826256, 660599890, 663366449, 666125903, 668878224, 671623382, 674361348, 677092091, 679815584, 682531796, 685240699, 687942263, 690636460, 693323261, 696002637, 698674559, 701338999, 703995929, 706645319, 709287141, 711921368, 714547970, 717166920, 719778190, 722381752, 724977578, 727565639, 730145909, 732718360, 735282964, 737839694, 740388522, 742929421, 745462364, 747987323, 750504272, 753013184, 755514032, 758006789, 760491428, 762967923, 765436247, 767896374, 770348277, 772791930, 775227308, 777654383, 780073131, 782483524, 784885538, 787279146, 789664323, 792041044, 794409282, 796769013, 799120211, 801462851, 803796908, 806122357, 808439173, 810747332, 813046807, 815337576, 817619614, 819892895, 822157396, 824413092, 826659959, 828897974, 831127111, 833347348, 835558661, 837761025, 839954418, 842138815, 844314194, 846480531, 848637802, 850785986, 852925058, 855054996, 857175777, 859287379, 861389778, 863482952, 865566879, 867641537, 869706903, 871762955, 873809671, 875847029, 877875008, 879893585, 881902740, 883902450, 885892694, 887873451, 889844699, 891806418, 893758587, 895701184, 897634188, 899557580, 901471339, 903375443, 905269873, 907154608, 909029628, 910894913, 912750443, 914596199, 916432160, 918258306, 920074619, 921881079, 923677666, 925464361, 927241145, 929007999, 930764904, 932511841, 934248792, 935975738, 937692661, 939399541, 941096361, 942783103, 944459749, 946126280, 947782678, 949428927, 951065008, 952690904, 954306597, 955912071, 957507308, 959092290, 960667001, 962231424, 963785543, 965329340, 966862800, 968385905, 969898639, 971400986, 972892931, 974374457, 975845548, 977306188, 978756362, 980196055, 981625250, 983043933, 984452089, 985849701, 987236756, 988613239, 989979134, 991334427, 992679104, 994013151, 995336552, 996649294, 997951362, 999242743, 1000523424, 1001793389, 1003052626, 1004301121, 1005538861, 1006765832, 1007982022, 1009187417, 1010382005, 1011565772, 1012738706, 1013900794, 1015052024, 1016192384, 1017321862, 1018440444, 1019548120, 1020644877, 1021730705, 1022805590, 1023869522, 1024922488, 1025964479, 1026995483, 1028015488, 1029024484, 1030022460, 1031009406, 1031985310, 1032950162, 1033903952, 1034846670, 1035778306, 1036698849, 1037608290, 1038506619, 1039393827, 1040269903, 1041134839, 1041988625, 1042831253, 1043662712, 1044482995, 1045292092, 1046089995, 1046876695, 1047652184, 1048416454, 1049169495, 1049911301, 1050641864, 1051361174, 1052069226, 1052766010, 1053451521, 1054125750, 1054788690, 1055440334, 1056080675, 1056709706, 1057327421, 1057933812, 1058528874, 1059112600, 1059684984, 1060246020, 1060795701, 1061334021, 1061860976, 1062376559, 1062880765, 1063373588, 1063855024, 1064325066, 1064783710, 1065230952, 1065666785, 1066091206, 1066504210, 1066905793, 1067295950, 1067674677, 1068041971, 1068397826, 1068742240, 1069075208, 1069396727, 1069706794, 1070005405, 1070292558, 1070568248, 1070832474, 1071085231, 1071326518, 1071556333, 1071774671, 1071981532, 1072176913, 1072360812, 1072533226, 1072694155, 1072843595, 1072981547, 1073108008, 1073222976, 1073326452, 1073418433, 1073498918, 1073567907, 1073625399, 1073671393, 1073705890, 1073728887, 1073740386}, // UWORD8 re_arr_tab_16[240]; { 0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 16, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211, 226, 1, 32, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212, 227, 2, 17, 48, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213, 228, 3, 18, 33, 64, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214, 229, 4, 19, 34, 49, 80, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230, 5, 20, 35, 50, 65, 96, 111, 126, 141, 156, 171, 186, 201, 216, 231, 6, 21, 36, 51, 66, 81, 112, 127, 142, 157, 172, 187, 202, 217, 232, 7, 22, 37, 52, 67, 82, 97, 128, 143, 158, 173, 188, 203, 218, 233, 8, 23, 38, 53, 68, 83, 98, 113, 144, 159, 174, 189, 204, 219, 234, 9, 24, 39, 54, 69, 84, 99, 114, 129, 160, 175, 190, 205, 220, 235, 10, 25, 40, 55, 70, 85, 100, 115, 130, 145, 176, 191, 206, 221, 236, 11, 26, 41, 56, 71, 86, 101, 116, 131, 146, 161, 192, 207, 222, 237, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177, 208, 223, 238, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 224, 239, 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209}, // UWORD8 re_arr_tab_sml_240[MDCT_LEN >> 1] = {0, 160, 80, 96, 16, 176, 192, 112, 32, 48, 208, 128, 144, 64, 224, 225, 145, 65, 81, 1, 161, 177, 97, 17, 33, 193, 113, 129, 49, 209, 210, 130, 50, 66, 226, 146, 162, 82, 2, 18, 178, 98, 114, 34, 194, 195, 115, 35, 51, 211, 131, 147, 67, 227, 3, 163, 83, 99, 19, 179, 180, 100, 20, 36, 196, 116, 132, 52, 212, 228, 148, 68, 84, 4, 164, 165, 85, 5, 21, 181, 101, 117, 37, 197, 213, 133, 53, 69, 229, 149, 150, 70, 230, 6, 166, 86, 102, 22, 182, 198, 118, 38, 54, 214, 134, 135, 55, 215, 231, 151, 71, 87, 7, 167, 183, 103, 23, 39, 199, 119, 120, 40, 200, 216, 136, 56, 72, 232, 152, 168, 88, 8, 24, 184, 104, 105, 25, 185, 201, 121, 41, 57, 217, 137, 153, 73, 233, 9, 169, 89, 90, 10, 170, 186, 106, 26, 42, 202, 122, 138, 58, 218, 234, 154, 74, 75, 235, 155, 171, 91, 11, 27, 187, 107, 123, 43, 203, 219, 139, 59, 60, 220, 140, 156, 76, 236, 12, 172, 92, 108, 28, 188, 204, 124, 44, 45, 205, 125, 141, 61, 221, 237, 157, 77, 93, 13, 173, 189, 109, 29, 30, 190, 110, 126, 46, 206, 222, 142, 62, 78, 238, 158, 174, 94, 14, 15, 175, 95, 111, 31, 191, 207, 127, 47, 63, 223, 143, 159, 79, 239}, // WORD32 cosine_array_960[480] = { 2147482880, 2147425408, 1756906, 15812012, 2147275904, 2147034496, 29866440, 43919588, 2146701056, 2146275712, 57970856, 72019640, 2145758336, 2145149056, 86065336, 100107352, 2144447872, 2143654912, 114145072, 128177912, 2142770048, 2141793536, 142205248, 156226512, 2140725120, 2139565056, 170241056, 184248336, 2138313344, 2136969984, 198247712, 212238592, 2135535104, 2134008832, 226220384, 240192480, 2132391040, 2130681984, 254154288, 268105216, 2128881536, 2126990080, 282044640, 295972000, 2125007360, 2122933632, 309886688, 323788096, 2120769024, 2118513536, 337675616, 351548704, 2116167296, 2113730432, 365406720, 379249056, 2111202944, 2108585088, 393075168, 406884448, 2105876864, 2103078528, 420676288, 434450112, 2100189952, 2097211520, 448205344, 461941344, 2094143232, 2090985216, 475657568, 489353408, 2087737600, 2084400640, 503028320, 516681664, 2080974336, 2077458944, 530312864, 543921344, 2073854464, 2070161280, 557506560, 571067840, 2066379264, 2062508800, 584604672, 598116480, 2058550016, 2054503040, 611602688, 625062656, 2050368000, 2046145152, 638495872, 651901696, 2041834752, 2037436800, 665279680, 678629120, 2032951552, 2028379264, 691949440, 705240192, 2023720064, 2018974208, 718500672, 731730432, 2014141824, 2009223168, 744928832, 758095296, 2004218368, 1999127808, 771229312, 784330240, 1993951616, 1988690048, 797397632, 810430848, 1983343232, 1977911424, 823429312, 836392576, 1972394880, 1966793856, 849319936, 862210944, 1961108608, 1955339392, 875065024, 887881600, 1949486464, 1943549824, 900660160, 913400192, 1937530112, 1931427328, 926100992, 938762176, 1925241856, 1918973824, 951383168, 963963392, 1912623616, 1906191616, 976502272, 988999360, 1899677824, 1893082624, 1001454080, 1013865920, 1886406400, 1879649408, 1026234304, 1038558720, 1872811776, 1865894016, 1050838720, 1063073600, 1858896256, 1851819008, 1075262976, 1087406336, 1844662272, 1837426560, 1099503104, 1111552768, 1830112256, 1822719360, 1123554816, 1135508736, 1815248512, 1807699840, 1147414016, 1159270016, 1800073856, 1792370688, 1171076480, 1182832768, 1784590720, 1776734336, 1194538496, 1206192896, 1768801792, 1760793472, 1217795712, 1229346304, 1752709760, 1744551040, 1240844288, 1252289024, 1736317440, 1728009600, 1263680256, 1275017216, 1719627648, 1711172096, 1286299648, 1297526912, 1702643200, 1694041344, 1308698624, 1319814272, 1685367040, 1676620416, 1330873472, 1341875584, 1667801984, 1658912128, 1352820224, 1363706880, 1649951232, 1640919680, 1374535168, 1385304576, 1631817728, 1622646016, 1396014592, 1406664832, 1613404672, 1604094336, 1417254784, 1427784064, 1594715136, 1585267712, 1438252160, 1448658688, 1575752448, 1566169600, 1459003136, 1469285120, 1556519680, 1546803072, 1479504128, 1489659776, 1537020160, 1527171456, 1499751552, 1509779200, 1517257344, 1507278336, 1519742080, 1529639936, 1497234560, 1487126784, 1539472128, 1549238528, 1476955264, 1466720512, 1558938496, 1568571648, 1456422784, 1446062848, 1578137728, 1587636096, 1435640832, 1425157376, 1597066496, 1606428416, 1414612992, 1404007808, 1615721600, 1624945536, 1393342592, 1382617728, 1634099840, 1643184256, 1371833472, 1360990592, 1652198144, 1661141376, 1350089344, 1339130368, 1670013440, 1678813824, 1328113920, 1317040640, 1687542400, 1696198656, 1305910912, 1294725248, 1704782336, 1713292928, 1283484032, 1272188032, 1721730176, 1730093568, 1260837376, 1249432832, 1738382848, 1746597760, 1237974656, 1226463488, 1754737792, 1762802688, 1214899712, 1203283968, 1770792064, 1778705536, 1191616768, 1179898368, 1786542976, 1794303744, 1168129536, 1156310656, 1801987584, 1809594368, 1144442112, 1132524672, 1817123584, 1824574976, 1120558720, 1108544640, 1831948160, 1839243008, 1096483200, 1084374784, 1846458880, 1853595776, 1072219904, 1060019072, 1860653312, 1867630976, 1047772800, 1035481728, 1874528768, 1881346176, 1023146240, 1010766912, 1888083072, 1894739072, 998344320, 985878976, 1901313920, 1907807232, 973371392, 960822080, 1914219008, 1920548608, 948231616, 935600576, 1926796032, 1932960896, 922929408, 910218752, 1939042944, 1945041920, 897469056, 884680960, 1950957568, 1956789632, 871854912, 858991552, 1962537856, 1968202112, 846091392, 833155008, 1973782016, 1979277312, 820182912, 807175680, 1984687872, 1990013440, 794133888, 781058048, 1995253760, 2000408576, 767948800, 754806592, 2005477632, 2010460928, 741632064, 728425792, 2015357952, 2020168832, 715188352, 701920192, 2024893056, 2029530496, 688622016, 675294336, 2034081024, 2038544512, 661937728, 648552768, 2042920576, 2047209216, 635140032, 621700032, 2051410048, 2055523072, 608233472, 594740864, 2059548032, 2063484800, 581222720, 567679680, 2067333120, 2071092864, 554112384, 540521280, 2074763904, 2078346112, 526907072, 513270272, 2081839360, 2085243264, 499611488, 485931296, 2088557952, 2091783168, 472230304, 458509088, 2094918784, 2097964544, 444768224, 431008288, 2100920576, 2103786496, 417229920, 403433664, 2106562432, 2109248000, 389620128, 375789888, 2111843328, 2114348160, 361943552, 348081728, 2116762368, 2119085952, 334204992, 320313920, 2121318656, 2123460608, 306409152, 292491232, 2125511552, 2127471488, 278560800, 264618448, 2129340288, 2131117824, 250664736, 236700304, 2132804096, 2134398976, 222725728, 208741600, 2135902464, 2137314432, 194748544, 180747136, 2138634880, 2139863680, 166737984, 152721696, 2141000832, 2142046208, 138698864, 124670096, 2142999936, 2143861760, 110635984, 96597136, 2144631808, 2145309952, 82554144, 68507616, 2145896320, 2146390656, 54458156, 40406360, 2146793088, 2147103488, 26352836, 12298181, 2147321984, 2147448448, }, // WORD32 w_16[24] = { 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x00000000, 0x7fffffff, 0x30fbc54d, 0x7641af3d, 0x5a82799a, 0x5a82799a, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0x5a82799a, 0x7fffffff, 0x00000000, 0x5a82799a, 0xa57d8667, 0x7641af3d, 0x30fbc54d, 0x5a82799a, 0xa57d8667, 0xcf043ab3, 0x89be50c5, }, // WORD32 window_sine_480_eld[1920]; {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 72, 118, 176, 239, 307, 378, 451, 524, 597, 669, 741, 812, 883, 954, 1024, 1095, 1165, 1235, 1305, 1375, 1444, 1514, 1583, 1652, 1722, 1792, 1863, 1933, 2005, 2077, 2150, 2224, 2299, 2374, 2451, 2529, 2607, 2686, 2766, 2847, 2928, 3009, 3091, 3174, 3256, 3339, 3423, 3507, 3591, 3676, 3760, 3846, 3932, 4018, 4104, 4191, 4278, 4366, 4454, 4542, 4631, 4720, 4809, 4899, 4988, 5078, 5168, 5257, 5347, 5436, 5524, 5613, 5702, 5790, 5878, 5967, 6056, 6144, 6233, 6321, 6410, 6498, 6586, 6673, 6761, 6848, 6934, 7020, 7106, 7192, 7276, 7361, 7445, 7529, 7614, 7698, 7781, 7865, 7947, 8030, 8112, 8193, 8274, 8354, 8434, 8514, 8594, 8673, 8751, 8830, 8908, 8985, 9063, 9139, 9216, 9292, 9367, 9442, 9517, 9621, 9695, 9769, 9842, 9915, 9988, 10060, 10132, 10203, 10274, 10345, 10415, 10485, 10554, 10623, 10691, 10760, 10827, 10895, 10962, 11029, 11095, 11161, 11226, 11291, 11356, 11420, 11484, 11548, 11611, 11674, 11736, 11798, 11859, 11921, 11981, 12042, 12102, 12161, 12220, 12279, 12337, 12395, 12452, 12509, 12565, 12621, 12677, 12732, 12787, 12841, 12895, 12948, 13000, 13053, 13104, 13156, 13206, 13257, 13306, 13356, 13404, 13452, 13500, 13547, 13594, 13639, 13685, 13730, 13774, 13818, 13861, 13904, 13946, 13988, 14029, 14069, 14109, 14148, 14187, 14225, 14263, 14300, 14336, 14372, 14408, 14443, 14477, 14511, 14544, 14577, 14609, 14641, 14673, 14704, 14734, 14764, 14794, 14823, 14852, 14881, 14909, 14938, 14966, 14994, 15021, 15049, 15076, 15104, 15131, 15159, 15186, 15213, 15239, 15265, 15289, 15312, 15333, 15351, 15372, 15382, 15386, 15392, 15398, 15404, 15411, 15418, 15425, 15431, 15438, 15444, 15451, 15458, 15464, 15471, 15478, 15485, 15492, 15499, 15505, 15512, 15519, 15526, 15534, 15541, 15548, 15555, 15562, 15569, 15577, 15584, 15592, 15599, 15606, 15614, 15621, 15629, 15637, 15644, 15652, 15660, 15668, 15675, 15683, 15691, 15699, 15707, 15715, 15723, 15731, 15740, 15748, 15756, 15764, 15773, 15781, 15789, 15798, 15806, 15815, 15824, 15832, 15841, 15849, 15858, 15867, 15876, 15884, 15893, 15902, 15911, 15920, 15929, 15938, 15947, 15956, 15965, 15974, 15983, 15993, 16002, 16011, 16020, 16030, 16039, 16048, 16057, 16067, 16076, 16086, 16095, 16104, 16114, 16123, 16133, 16142, 16152, 16161, 16171, 16181, 16190, 16200, 16209, 16219, 16229, 16238, 16248, 16258, 16267, 16277, 16287, 16296, 16306, 16316, 16326, 16335, 16345, 16355, 16365, 16374, 16394, 16403, 16413, 16423, 16433, 16443, 16452, 16462, 16472, 16482, 16492, 16502, 16511, 16521, 16531, 16541, 16551, 16561, 16570, 16580, 16590, 16600, 16610, 16619, 16629, 16639, 16649, 16659, 16668, 16678, 16688, 16698, 16707, 16717, 16727, 16737, 16746, 16756, 16766, 16775, 16785, 16795, 16804, 16814, 16823, 16833, 16842, 16852, 16861, 16871, 16880, 16890, 16899, 16909, 16918, 16927, 16937, 16946, 16955, 16964, 16974, 16983, 16992, 17001, 17010, 17019, 17028, 17037, 17046, 17055, 17064, 17072, 17081, 17090, 17099, 17107, 17116, 17125, 17133, 17142, 17150, 17159, 17167, 17175, 17184, 17192, 17200, 17209, 17217, 17225, 17233, 17241, 17249, 17257, 17265, 17273, 17281, 17289, 17297, 17305, 17312, 17320, 17328, 17335, 17343, 17351, 17358, 17366, 17373, 17381, 17388, 17396, 17403, 17411, 17418, 17426, 17433, 17440, 17446, 17452, 17454, 17449, 17444, 17437, 17428, 17418, 17407, 17396, 17385, 17374, 17363, 17352, 17340, 17329, 17316, 17304, 17291, 17278, 17264, 17250, 17236, 17221, 17207, 17193, 17179, 17165, 17150, 17136, 17121, 17107, 17091, 17076, 17059, 17042, 17024, 17005, 16986, 16966, 16945, 16923, 16901, 16878, 16855, 16831, 16807, 16783, 16759, 16734, 16709, 16684, 16658, 16633, 16607, 16581, 16554, 16527, 16500, 16471, 16443, 16414, 16384, 16353, 16322, 16290, 16257, 16224, 16190, 16155, 16120, 16085, 16050, 16016, 15981, 15947, 15912, 15878, 15843, 15807, 15771, 15735, 15697, 15659, 15621, 15581, 15542, 15502, 15461, 15421, 15380, 15339, 15299, 15259, 15219, 15180, 15140, 15099, 15058, 15016, 14974, 14931, 14887, 14844, 14800, 14757, 14714, 14671, 14628, 14584, 14541, 14497, 14453, 14408, 14364, 14319, 14274, 14229, 14184, 14139, 14094, 14049, 14004, 13958, 13912, 13865, 13819, 13772, 13725, 13678, 13631, 13584, 13537, 13491, 13444, 13396, 13349, 13301, 13253, 13205, 13156, 13106, 13057, 13008, 12960, 12912, 12864, 12817, 12770, 12723, 12675, 12626, 12576, 12526, 12475, 12424, 12373, 12321, 12270, 12220, 12170, 12120, 12071, 12022, 11974, 11926, 11878, 11829, 11780, 11730, 11679, 11627, 11575, 11521, 11467, 11414, 11360, 11307, 11255, 11203, 11152, 11101, 11051, 11001, 10952, 10903, 10853, 10804, 10755, 10705, 10656, 10605, 10554, 10503, 10450, 10397, 10343, 10289, 10234, 10179, 10124, 10069, 10014, 9960, 9907, 9854, 9803, 9752, 9703, 9654, 9606, 9559, 9513, 9466, 9419, 9371, 9322, 9271, 9219, 9165, 9109, 9053, 8996, 8939, 8883, 8828, 8775, 8723, 8674, 8625, 8578, 8532, 8486, 8440, 8392, 8344, 8295, 8244, 8192, 8140, 8088, 8036, 7983, 7931, 7879, 7829, 7779, 7731, 7682, 7634, 7586, 7537, 7488, 7439, 7390, 7340, 7290, 7241, 7192, 7144, 7096, 7049, 7001, 6953, 6904, 6856, 6807, 6757, 6708, 6659, 6610, 6561, 6513, 6465, 6418, 6370, 6323, 6277, 6230, 6183, 6137, 6090, 6044, 5997, 5951, 5905, 5858, 5812, 5766, 5720, 5674, 5628, 5583, 5537, 5491, 5446, 5401, 5355, 5310, 5265, 5221, 5175, 5130, 5084, 5037, 4991, 4945, 4899, 4853, 4807, 4761, 4716, 4671, 4626, 4581, 4536, 4491, 4447, 4403, 4359, 4315, 4271, 4228, 4185, 4142, 4099, 4056, 4014, 3972, 3929, 3887, 3846, 3804, 3762, 3721, 3680, 3639, 3598, 3558, 3517, 3477, 3437, 3397, 3357, 3318, 3278, 3239, 3199, 3160, 3122, 3083, 3044, 3006, 2967, 2929, 2891, 2853, 2815, 2778, 2741, 2704, 2668, 2620, 2585, 2550, 2515, 2481, 2447, 2413, 2380, 2347, 2314, 2281, 2248, 2215, 2183, 2151, 2119, 2087, 2055, 2024, 1993, 1962, 1931, 1901, 1870, 1840, 1810, 1781, 1751, 1722, 1693, 1664, 1636, 1608, 1579, 1552, 1524, 1497, 1470, 1443, 1416, 1390, 1364, 1338, 1312, 1287, 1261, 1236, 1212, 1187, 1163, 1139, 1115, 1092, 1068, 1045, 1022, 1000, 977, 955, 934, 912, 891, 869, 848, 828, 807, 787, 767, 747, 728, 709, 690, 671, 652, 634, 616, 598, 581, 563, 546, 529, 513, 496, 480, 464, 448, 433, 417, 402, 387, 372, 358, 344, 329, 316, 302, 289, 276, 263, 251, 238, 226, 214, 203, 191, 180, 169, 158, 147, 137, 127, 117, 107, 97, 88, 78, 70, 61, 52, 44, 36, 28, 21, 13, 6, -2, -9, -16, -23, -30, -37, -43, -49, -55, -60, -65, -69, -73, -78, -81, -85, -89, -93, -97, -101, -105, -109, -113, -116, -120, -123, -126, -129, -131, -133, -135, -137, -138, -139, -140, -141, -142, -143, -143, -144, -144, -145, -145, -146, -146, -147, -147, -147, -147, -147, -147, -147, -146, -146, -145, -144, -143, -141, -140, -139, -137, -135, -134, -132, -130, -129, -127, -125, -123, -122, -120, -118, -116, -114, -111, -109, -107, -104, -102, -99, -96, -94, -91, -88, -86, -83, -81, -78, -75, -72, -70, -67, -64, -61, -58, -55, -52, -49, -46, -44, -41, -38, -35, -32, -29, -26, -23, -20, -17, -14, -11, -9, -6, -3, 0, 0, 3, 6, 8, 11, 14, 17, 19, 22, 24, 27, 29, 32, 34, 37, 39, 42, 44, 46, 48, 50, 53, 55, 57, 59, 61, 62, 64, 66, 67, 69, 71, 72, 74, 75, 76, 78, 79, 80, 81, 82, 83, 84, 85, 86, 86, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 89, 89, 88, 88, 87, 86, 85, 85, 84, 83, 82, 81, 80, 78, 77, 76, 75, 74, 73, 72, 70, 69, 68, 66, 65, 63, 61, 59, 57, 55, 53, 51, 49, 47, 44, 42, 40, 38, 36, 34, 32, 30, 28, 26, 23, 21, 19, 16, 14, 11, 8, 6, 3, 1, -2, -4, -7, -9, -12, -14, -17, -20, -22, -25, -27, -30, -32, -35, -38, -40, -43, -45, -48, -50, -53, -55, -58, -60, -63, -65, -68, -70, -73, -75, -78, -80, -82, -85, -87, -90, -92, -94, -97, -99, -102, -104, -106, -109, -111, -113, -116, -118, -121, -123, -125, -128, -130, -133, -135, -138, -140, -143, -145, -148, -151, -153, -156, -159, -162, -165, -168, -170, -173, -176, -178, -181, -183, -185, -188, -190, -192, -194, -196, -197, -199, -201, -202, -204, -205, -206, -208, -209, -210, -211, -212, -213, -214, -214, -215, -216, -216, -217, -218, -218, -218, -219, -219, -219, -219, -219, -219, -220, -219, -219, -219, -219, -219, -218, -218, -218, -217, -217, -216, -216, -215, -214, -214, -213, -212, -214, -214, -213, -212, -211, -211, -210, -209, -208, -207, -206, -204, -203, -202, -201, -199, -198, -196, -195, -193, -192, -190, -189, -187, -185, -184, -182, -180, -178, -176, -175, -173, -171, -169, -167, -165, -163, -162, -160, -158, -156, -154, -152, -150, -149, -147, -145, -143, -142, -140, -139, -137, -135, -134, -133, -131, -130, -129, -127, -126, -125, -123, -122, -120, -118, -117, -115, -113, -111, -109, -107, -105, -103, -100, -98, -96, -94, -91, -89, -87, -84, -82, -79, -77, -75, -72, -70, -67, -65, -63, -60, -58, -56, -53, -51, -49, -47, -44, -42, -40, -38, -36, -34, -32, -30, -28, -26, -25, -23, -21, -20, -18, -16, -15, -13, -12, -10, -9, -8, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8, -9, -9, -10, -10, -10, -11, -11, -12, -12, -13, -13, -13, -14, -14, -15, -15, -15, -16, -16, -16, -17, -17, -17, -18, -18, -18, -19, -19, -19, -19, -20, -20, -20, -20, -21, -21, -21, -21, -21, -22, -22, -22, -22, -22, -22, -22, -22, -22, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -22, -22, -22, -22, -22, -22, -22, -22, -22, -21, -21, -21, -21, -21, -21, -20, -20, -20, -20, -20, -19, -19, -19, -19, -19, -18, -18, -18, -18, -17}, // WORD16 window_sine_512_eld[2048]; {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 93, 139, 192, 251, 314, 380, 447, 515, 583, 651, 718, 784, 849, 914, 979, 1044, 1109, 1174, 1239, 1304, 1368, 1433, 1498, 1563, 1628, 1693, 1758, 1824, 1890, 1956, 2022, 2090, 2157, 2226, 2295, 2365, 2436, 2508, 2580, 2653, 2727, 2802, 2877, 2952, 3029, 3105, 3182, 3260, 3338, 3416, 3494, 3573, 3652, 3731, 3811, 3891, 3971, 4052, 4133, 4214, 4296, 4378, 4460, 4542, 4625, 4708, 4791, 4874, 4957, 5041, 5125, 5209, 5293, 5377, 5460, 5544, 5627, 5710, 5794, 5877, 5960, 6042, 6125, 6208, 6291, 6373, 6456, 6538, 6620, 6702, 6784, 6865, 6947, 7028, 7108, 7189, 7269, 7349, 7428, 7507, 7586, 7665, 7743, 7821, 7899, 7976, 8054, 8131, 8207, 8283, 8359, 8434, 8510, 8584, 8659, 8733, 8807, 8880, 8953, 9026, 9099, 9171, 9243, 9314, 9385, 9456, 9526, 9583, 9653, 9723, 9792, 9860, 9929, 9997, 10064, 10132, 10199, 10265, 10331, 10397, 10463, 10528, 10593, 10657, 10721, 10785, 10849, 10912, 10974, 11037, 11099, 11161, 11222, 11283, 11344, 11404, 11464, 11524, 11583, 11642, 11701, 11759, 11817, 11875, 11932, 11989, 12045, 12102, 12157, 12213, 12268, 12322, 12377, 12431, 12484, 12537, 12590, 12642, 12694, 12746, 12797, 12848, 12898, 12948, 12997, 13046, 13095, 13143, 13191, 13238, 13285, 13331, 13377, 13422, 13467, 13512, 13556, 13599, 13642, 13685, 13727, 13769, 13810, 13850, 13891, 13930, 13969, 14008, 14046, 14084, 14121, 14158, 14194, 14230, 14265, 14300, 14334, 14368, 14401, 14434, 14466, 14498, 14530, 14561, 14591, 14621, 14651, 14680, 14709, 14738, 14766, 14794, 14821, 14849, 14876, 14902, 14929, 14955, 14981, 15007, 15033, 15059, 15085, 15111, 15137, 15162, 15188, 15213, 15238, 15262, 15285, 15307, 15327, 15345, 15361, 15384, 15388, 15394, 15400, 15406, 15412, 15418, 15425, 15431, 15437, 15443, 15449, 15456, 15462, 15468, 15475, 15481, 15487, 15494, 15500, 15507, 15513, 15520, 15526, 15533, 15540, 15546, 15553, 15560, 15567, 15574, 15580, 15587, 15594, 15601, 15608, 15615, 15622, 15630, 15637, 15644, 15651, 15658, 15666, 15673, 15680, 15688, 15695, 15703, 15710, 15718, 15725, 15733, 15741, 15748, 15756, 15764, 15772, 15780, 15787, 15795, 15803, 15811, 15819, 15827, 15835, 15843, 15852, 15860, 15868, 15876, 15884, 15893, 15901, 15909, 15918, 15926, 15935, 15943, 15952, 15960, 15969, 15977, 15986, 15994, 16003, 16012, 16020, 16029, 16038, 16046, 16055, 16064, 16073, 16081, 16090, 16099, 16108, 16117, 16126, 16135, 16144, 16152, 16161, 16170, 16179, 16188, 16197, 16206, 16215, 16224, 16233, 16242, 16251, 16261, 16270, 16279, 16288, 16297, 16306, 16315, 16324, 16334, 16343, 16352, 16361, 16370, 16379, 16389, 16398, 16407, 16416, 16425, 16435, 16444, 16453, 16462, 16472, 16481, 16490, 16499, 16508, 16518, 16527, 16536, 16545, 16554, 16564, 16573, 16582, 16591, 16600, 16610, 16619, 16628, 16637, 16646, 16656, 16665, 16674, 16683, 16692, 16701, 16710, 16720, 16729, 16738, 16747, 16756, 16765, 16774, 16783, 16792, 16801, 16810, 16819, 16828, 16837, 16846, 16855, 16864, 16873, 16882, 16890, 16899, 16908, 16917, 16926, 16934, 16943, 16952, 16960, 16969, 16978, 16986, 16995, 17003, 17012, 17020, 17029, 17037, 17045, 17054, 17062, 17070, 17078, 17087, 17095, 17103, 17111, 17119, 17127, 17135, 17143, 17151, 17159, 17167, 17175, 17183, 17191, 17198, 17206, 17214, 17221, 17229, 17237, 17244, 17252, 17259, 17267, 17274, 17282, 17289, 17296, 17304, 17311, 17318, 17325, 17333, 17340, 17347, 17354, 17361, 17368, 17375, 17382, 17389, 17396, 17403, 17410, 17417, 17424, 17431, 17438, 17444, 17449, 17446, 17444, 17440, 17434, 17426, 17417, 17408, 17398, 17388, 17377, 17367, 17357, 17347, 17336, 17326, 17315, 17303, 17292, 17280, 17267, 17254, 17241, 17228, 17215, 17202, 17188, 17175, 17162, 17149, 17135, 17122, 17108, 17094, 17080, 17065, 17049, 17033, 17016, 16999, 16980, 16962, 16942, 16922, 16901, 16880, 16858, 16836, 16814, 16792, 16769, 16746, 16723, 16699, 16676, 16652, 16628, 16604, 16579, 16555, 16529, 16504, 16478, 16451, 16424, 16397, 16368, 16340, 16310, 16280, 16249, 16218, 16186, 16154, 16121, 16088, 16055, 16023, 15990, 15958, 15926, 15894, 15861, 15828, 15795, 15761, 15727, 15692, 15656, 15620, 15583, 15546, 15508, 15471, 15433, 15395, 15357, 15319, 15281, 15244, 15207, 15169, 15132, 15094, 15055, 15016, 14976, 14936, 14895, 14855, 14814, 14773, 14733, 14692, 14652, 14611, 14570, 14530, 14488, 14447, 14406, 14364, 14322, 14280, 14238, 14195, 14153, 14111, 14068, 14025, 13983, 13940, 13897, 13854, 13810, 13767, 13723, 13680, 13636, 13593, 13549, 13505, 13462, 13418, 13374, 13330, 13286, 13241, 13195, 13150, 13104, 13058, 13013, 12968, 12923, 12879, 12835, 12792, 12748, 12703, 12658, 12612, 12565, 12518, 12471, 12423, 12376, 12328, 12281, 12233, 12187, 12140, 12095, 12049, 12004, 11959, 11915, 11870, 11825, 11779, 11732, 11684, 11635, 11586, 11536, 11486, 11435, 11385, 11336, 11287, 11239, 11191, 11143, 11096, 11050, 11003, 10957, 10911, 10865, 10819, 10773, 10727, 10680, 10633, 10585, 10537, 10488, 10439, 10389, 10338, 10287, 10236, 10184, 10133, 10081, 10030, 9979, 9929, 9880, 9832, 9784, 9737, 9691, 9646, 9602, 9558, 9514, 9470, 9426, 9381, 9334, 9286, 9237, 9186, 9134, 9081, 9028, 8974, 8921, 8869, 8818, 8769, 8721, 8675, 8630, 8586, 8542, 8499, 8455, 8410, 8365, 8318, 8270, 8222, 8173, 8124, 8074, 8026, 7976, 7926, 7878, 7831, 7784, 7738, 7693, 7647, 7602, 7556, 7509, 7463, 7416, 7369, 7322, 7275, 7228, 7182, 7137, 7091, 7046, 7001, 6955, 6909, 6863, 6817, 6770, 6723, 6676, 6629, 6583, 6537, 6491, 6446, 6401, 6356, 6311, 6267, 6222, 6178, 6133, 6089, 6045, 6000, 5956, 5912, 5868, 5824, 5780, 5736, 5692, 5648, 5604, 5560, 5516, 5473, 5429, 5386, 5343, 5300, 5257, 5214, 5171, 5128, 5085, 5043, 5000, 4958, 4915, 4873, 4831, 4789, 4747, 4705, 4664, 4622, 4581, 4539, 4498, 4457, 4416, 4375, 4334, 4293, 4253, 4212, 4172, 4132, 4092, 4052, 4012, 3972, 3933, 3893, 3854, 3815, 3776, 3737, 3699, 3660, 3622, 3583, 3545, 3507, 3469, 3432, 3394, 3357, 3319, 3282, 3245, 3208, 3171, 3135, 3098, 3062, 3025, 2989, 2953, 2917, 2881, 2846, 2810, 2775, 2740, 2706, 2671, 2638, 2604, 2572, 2539, 2507, 2475, 2443, 2411, 2380, 2349, 2318, 2287, 2256, 2226, 2195, 2165, 2135, 2105, 2075, 2046, 2016, 1987, 1958, 1929, 1901, 1872, 1844, 1816, 1788, 1760, 1733, 1706, 1679, 1652, 1625, 1599, 1572, 1546, 1521, 1495, 1470, 1444, 1419, 1395, 1370, 1346, 1322, 1298, 1274, 1250, 1227, 1204, 1181, 1158, 1136, 1114, 1092, 1070, 1048, 1027, 1005, 984, 964, 943, 923, 903, 883, 863, 843, 824, 805, 786, 767, 749, 730, 712, 694, 677, 659, 642, 625, 608, 592, 575, 559, 543, 527, 512, 496, 481, 466, 451, 436, 422, 408, 394, 380, 366, 352, 339, 326, 313, 301, 288, 276, 264, 252, 241, 229, 218, 207, 196, 185, 175, 165, 155, 145, 135, 125, 116, 107, 98, 89, 80, 72, 63, 55, 48, 40, 33, 25, 18, 11, 4, -3, -9, -16, -23, -29, -35, -41, -47, -53, -58, -62, -67, -71, -75, -79, -82, -86, -89, -93, -97, -101, -104, -108, -112, -115, -118, -122, -125, -127, -130, -132, -134, -136, -137, -138, -139, -140, -141, -142, -143, -143, -144, -144, -145, -145, -146, -146, -146, -147, -147, -147, -147, -147, -147, -147, -146, -146, -145, -144, -143, -142, -141, -140, -138, -137, -135, -134, -132, -130, -129, -127, -126, -124, -122, -121, -119, -117, -115, -113, -111, -109, -106, -104, -102, -99, -97, -94, -92, -89, -87, -85, -82, -80, -77, -74, -72, -69, -67, -64, -61, -59, -56, -53, -50, -48, -45, -42, -39, -37, -34, -31, -28, -26, -23, -20, -17, -15, -12, -9, -7, -4, -1, 1, 4, 7, 9, 12, 14, 17, 19, 22, 24, 27, 29, 31, 34, 36, 38, 40, 43, 45, 47, 49, 51, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 70, 71, 73, 74, 76, 77, 78, 79, 81, 82, 83, 84, 84, 85, 86, 86, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 90, 91, 91, 91, 91, 90, 90, 90, 89, 89, 88, 88, 87, 86, 85, 84, 83, 83, 82, 81, 80, 79, 78, 77, 75, 74, 73, 72, 71, 70, 68, 67, 66, 64, 62, 61, 59, 57, 55, 53, 51, 49, 47, 44, 42, 40, 38, 36, 34, 33, 31, 29, 27, 25, 23, 20, 18, 16, 13, 11, 8, 6, 3, 1, -1, -4, -6, -9, -11, -13, -16, -18, -21, -23, -25, -28, -30, -33, -35, -38, -40, -43, -45, -47, -50, -52, -55, -57, -59, -62, -64, -66, -69, -71, -73, -76, -78, -80, -83, -85, -87, -89, -92, -94, -96, -99, -101, -103, -105, -107, -110, -112, -114, -116, -119, -121, -123, -125, -128, -130, -132, -135, -137, -139, -142, -144, -146, -149, -151, -154, -156, -159, -162, -164, -167, -170, -172, -175, -178, -180, -182, -185, -187, -189, -191, -193, -195, -197, -199, -201, -202, -204, -205, -207, -208, -209, -210, -211, -213, -214, -214, -215, -216, -217, -218, -219, -219, -220, -220, -221, -221, -222, -222, -222, -222, -223, -223, -223, -223, -223, -223, -223, -223, -222, -222, -222, -222, -221, -221, -220, -220, -219, -219, -218, -217, -217, -216, -215, -215, -214, -213, -213, -212, -211, -210, -210, -209, -208, -207, -206, -205, -204, -202, -201, -200, -199, -197, -196, -195, -193, -192, -190, -189, -187, -185, -184, -182, -181, -179, -177, -176, -174, -172, -170, -169, -167, -165, -163, -162, -160, -158, -156, -154, -153, -151, -149, -148, -146, -144, -143, -141, -140, -138, -137, -135, -134, -133, -131, -130, -129, -128, -127, -125, -124, -123, -121, -120, -118, -116, -115, -113, -111, -109, -107, -105, -103, -101, -99, -97, -95, -93, -91, -88, -86, -84, -82, -79, -77, -75, -73, -70, -68, -66, -64, -61, -59, -57, -55, -53, -51, -49, -46, -44, -42, -40, -39, -37, -35, -33, -31, -29, -28, -26, -24, -22, -21, -19, -18, -16, -15, -13, -12, -11, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1, 0, 0, 0, -1, -1, -1, -2, -2, -2, -3, -3, -3, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8, -9, -9, -9, -10, -10, -11, -11, -11, -12, -12, -13, -13, -13, -14, -14, -14, -15, -15, -16, -16, -16, -17, -17, -17, -18, -18, -18, -18, -19, -19, -19, -19, -20, -20, -20, -20, -21, -21, -21, -21, -21, -22, -22, -22, -22, -22, -22, -22, -22, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -22, -22, -22, -22, -22, -22, -22, -22, -21, -21, -21, -21, -21, -21, -20, -20, -20, -20, -20, -20, -19, -19, -19, -19, -18, -18, -18, -18, -18} };