view libtwamr/q_plsf3_tab.c @ 514:67b13a6a63c9

libgsmhr1: implement validation for *.dec frames
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 25 Aug 2024 19:14:40 +0000
parents e42075184628
children
line wrap: on
line source

/*
 * In ETSI EFR code there was only q_plsf_5.tab that was problematically
 * multi-included in many source files; in the AMR version there is also
 * q_plsf_3.tab with a similar situation.  Handle it similarly.
 */

#include "tw_amr.h"
#include "typedef.h"
#include "namespace.h"
#include "q_plsf3_tab.h"

/* initalization table for MA predictor in dtx mode */
const Word16 past_rq_init[80] = {
  -258, -318, -439, -634, -656, -773, -711, -502, -268, -193,
    -2,  125,  122,  -39,   -9,  105,  129,  283,  372,  575,
  -277, -324, -197, -487, -445, -362, -292,  -27,  177,  543,
   342,  517,  516,  130,   27, -104, -120, -140,  -74,  -56,
  -564, -943,-1520, -965, -814, -526, -322,   -2,  159,  657,
  -312, -284, -386, -597, -493, -526, -418, -229,  105,  449,
  -557, -870,-1075, -919, -950, -752, -709, -316,   62,  486,
  -314, -191, -203, -330, -160, -103,  -51,  131,  338,  515
};

const Word16 mean_lsf3[10] = {
     1546,
     2272,
     3778,
     5488,
     6972,
     8382,
    10047,
    11229,
    12766,
    13714 
};

const Word16 pred_fac[10] = {
     9556,
    10769,
    12571,
    13292,
    14381,
    11651,
    10588,
     9767,
     8593,
     6484 
};

/* first codebook from IS641 */

const Word16 dico1_lsf3[] = {
  6, 82, -131,
  154, -56, -735,
  183, -65, -265,
  9, -210, -361,
  113, 718, 1817,
  1010, 1214, 1573,
  857, 1333, 2276,
  827, 1568, 1933,
  717, 1989, 2206,
  838, 1172, 1823,
  721, 1000, 2154,
  286, 476, 1509,
  -247, -531, 230,
  147, -82, 569,
  26, -177, -944,
  -27, -273, 692,
  -164, -264, -183,
  224, 790, 1039,
  899, 946, 601,
  485, 771, 1150,
  524, 677, 903,
  -140, 375, 778,
  410, 676, 429,
  301, 530, 1009,
  719, 646, 38,
  226, 367, 40,
  145, -45, -505,
  290, 121, -121,
  302, 127, 166,
  -124, -383, -956,
  -358, -455, -977,
  715, 878, 894,
  978, 923, 211,
  477, 272, 64,
  188, -78, 17,
  -143, -65, 38,
  643, 586, 621,
  -134, -426, -651,
  347, 545, 2820,
  1188, 2726, 2442,
  142, -80, 1735,
  283, 130, 461,
  -262, -399, -1145,
  -411, 155, 430,
  329, 375, 779,
  53, -226, -139,
  -129, -236, 1682,
  285, 744, 1327,
  738, 697, 1664,
  312, 409, 266,
  325, 720, 135,
  1, 221, 453,
  8, 203, 145,
  299, 640, 760,
  29, 468, 638,
  103, 429, 379,
  420, 954, 932,
  1326, 1210, 1258,
  704, 1012, 1152,
  -166, -444, -266,
  -316, -130, -376,
  191, 1151, 1904,
  -240, -543, -1260,
  -112, 268, 1207,
  70, 1062, 1583,
  278, 1360, 1574,
  -258, -272, -768,
  19, 563, 2240,
  -3, -265, 135,
  -295, -591, -388,
  140, 354, -206,
  -260, -504, -795,
  -433, -718, -1319,
  109, 331, 962,
  -429, -87, 652,
  -296, 426, 1019,
  -239, 775, 851,
  489, 1334, 1073,
  -334, -332, 25,
  543, 1206, 1807,
  326, 61, 727,
  578, 849, 1405,
  -208, -277, 329,
  -152, 64, 669,
  -434, -678, -727,
  -454, -71, 251,
  605, 480, 254,
  -482, 11, 996,
  -289, 395, 486,
  722, 1049, 1440,
  -30, -316, -786,
  -106, -115, -619,
  861, 1474, 1412,
  1055, 1366, 1184,
  812, 1237, 925,
  42, -251, -576,
  342, 141, -454,
  -168, -80, 1359,
  -342, -656, -1763,
  100, 821, 725,
  990, 747, 800,
  332, 440, 568,
  663, 379, 852,
  112, 165, -369,
  597, 910, 282,
  -8, 834, 1281,
  -352, 572, 695,
  462, 2246, 1806,
  345, 190, 1374,
  416, 915, 2166,
  168, -82, 280,
  -516, -446, 840,
  47, 533, 44,
  -362, -711, -1143,
  22, 193, 1472,
  -85, 233, 1813,
  -62, 579, 1504,
  550, 944, 1749,
  723, 650, 1148,
  972, 884, 1395,
  -425, 643, 0,
  1000, 952, 1098,
  249, 1446, 672,
  -334, -87, 2172,
  -554, 1882, 2672,
  140, 1826, 1853,
  920, 1749, 2590,
  1076, 1933, 2038,
  -137, -443, -1555,
  1269, 1174, 468,
  -493, -122, 1521,
  -451, 1033, 1214,
  482, 1695, 1118,
  815, 649, 384,
  -446, -692, 107,
  -319, -605, -118,
  -207, -505, 525,
  -468, -12, 2736,
  75, 1934, 1305,
  880, 2358, 2267,
  1285, 1575, 2004,
  -48, -304, -1186,
  -435, -461, -251,
  -366, -404, -547,
  -289, -605, -597,
  -538, -810, -165,
  -120, 3, 356,
  639, 1241, 1502,
  96, 177, 750,
  -435, -585, -1174,
  -356, 109, -79,
  -485, 288, 2005,
  9, 1116, 731,
  880, 2134, 946,
  -265, 1585, 1065,
  1157, 1210, 843,
  -498, -668, 431,
  374, 321, -229,
  1440, 2101, 1381,
  449, 461, 1155,
  -105, 39, -384,
  -263, 367, 182,
  -371, -660, 773,
  -188, 1151, 971,
  1333, 1632, 1435,
  774, 1267, 1221,
  -482, -832, -1489,
  -237, -210, 860,
  890, 1615, 1064,
  472, 1062, 1192,
  185, 1077, 989,
  -568, -992, -1704,
  -449, -902, -2043,
  -142, -377, -458,
  -210, -554, -1029,
  -11, 1133, 2265,
  -329, -675, -893,
  -250, 657, 1187,
  519, 1510, 1779,
  520, 539, 1403,
  527, 1421, 1302,
  -563, -871, -1248,
  -147, -463, 879,
  -76, 2334, 2840,
  563, 2573, 2385,
  632, 1926, 2920,
  719, 2023, 1840,
  -545, -723, 1108,
  129, -125, 884,
  1417, 1632, 925,
  -94, 1566, 1751,
  -341, 1533, 1551,
  591, 395, -274,
  -76, 981, 2831,
  153, 2985, 1844,
  1032, 2565, 2749,
  1508, 2832, 1879,
  791, 1199, 538,
  -190, -453, 1489,
  -278, -548, 1158,
  -245, 1941, 2044,
  1024, 1560, 1650,
  512, 253, 466,
  -62, -323, 1151,
  -473, -376, 507,
  -433, 1380, 2162,
  899, 1943, 1445,
  134, 704, 440,
  460, 525, -28,
  -450, 279, 1338,
  0, 971, 252,
  -445, -627, -991,
  -348, -602, -1424,
  398, 712, 1656,
  -107, 314, -178,
  93, 2226, 2238,
  518, 849, 656,
  -462, -711, -447,
  174, -34, 1191,
  -119, 42, 1005,
  -372, 274, 758,
  1036, 2352, 1838,
  675, 1724, 1498,
  430, 1286, 2133,
  -129, -439, 0,
  -373, 800, 2144,
  6, 1587, 2478,
  478, 596, 2128,
  -428, -736, 1505,
  385, 178, 980,
  139, 449, 1225,
  -526, -842, -982,
  145, 1554, 1242,
  623, 1448, 656,
  349, 1016, 1482,
  31, -280, 415,
  -316, 724, 1641,
  360, 1058, 556,
  -436, -358, 1201,
  -355, 1123, 1939,
  401, 1584, 2248,
  -527, -1012, 355,
  233, 238, 2233,
  -550, -897, -639,
  -365, -501, 1957,
  389, 1860, 1621,
  162, 1132, 1264,
  -237, 1174, 1390,
  -640, -411, 116,
  -228, 1694, 2298,
  1639, 2186, 2267,
  562, 1273, 2658,
  323, 338, 1774,
  578, 1107, 852,
  22, 594, 934,
  -143, 718, 446
};

/* second codebook from IS641 */

const Word16 dico2_lsf3[] = {
  50, 71, -9,
  -338, -698, -1407,
  102, -138, -820,
  -310, -469, -1147,
  414, 67, -267,
  1060, 814, 1441,
  1548, 1360, 1272,
  1754, 1895, 1661,
  2019, 2133, 1820,
  1808, 2318, 1845,
  644, -93, 454,
  858, 329, -136,
  489, -258, -128,
  -198, -745, -41,
  -52, -265, -985,
  346, 137, 479,
  -1741, -748, -684,
  -1163, -1725, -367,
  -895, -1145, -784,
  -488, -946, -968,
  -85, -390, -725,
  215, -340, -171,
  1020, 916, 1969,
  564, 179, 746,
  662, 977, 1734,
  887, 622, 914,
  939, 856, 1165,
  309, 688, 803,
  917, 161, 570,
  118, -20, -283,
  -816, -42, 204,
  -1228, -325, -462,
  -963, -202, -143,
  -988, -484, -361,
  -702, -978, -477,
  -302, -790, -1188,
  -100, -786, -1088,
  -1054, -947, -1684,
  -202, -843, -782,
  -1039, -1378, -901,
  -624, -110, -85,
  356, 213, -10,
  -493, 364, 774,
  425, 822, 479,
  -83, 557, 520,
  -992, -1560, -572,
  -603, -741, -26,
  -502, -638, -903,
  209, 306, 147,
  -316, -593, -596,
  -85, -211, -225,
  -918, -529, 117,
  233, -439, -738,
  1101, 751, 633,
  1457, 1716, 1511,
  1765, 1457, 910,
  1122, 1156, 849,
  1354, 868, 470,
  -871, -1150, -1796,
  -871, -861, -992,
  -118, 155, 212,
  -1051, -849, -606,
  -1117, -1849, -2750,
  -1019, -1427, -1869,
  370, -184, -414,
  959, 493, 104,
  958, 1039, 543,
  154, 653, 201,
  1249, 507, 150,
  663, 503, 230,
  623, 777, 675,
  659, 88, -110,
  843, 244, 224,
  382, 541, 302,
  724, 433, 666,
  1166, 734, 341,
  -138, 20, -397,
  -1183, -424, -46,
  -321, -352, -124,
  1333, 1021, 1080,
  262, 366, 723,
  922, 283, -551,
  31, -636, -611,
  -689, -697, -415,
  -952, -779, -201,
  -1329, -598, -359,
  -953, -1285, 166,
  493, 305, 221,
  846, 703, 610,
  840, 936, 774,
  -723, -1324, -1261,
  -357, -1025, -1388,
  -1096, -1376, -365,
  -1416, -1881, -608,
  -1798, -1727, -674,
  -545, -1173, -703,
  678, 786, 148,
  -123, 696, 1288,
  644, 350, -10,
  414, 614, 15,
  137, 344, -211,
  -814, -1512, -819,
  -391, -930, -588,
  47, -591, -898,
  -909, -1097, -163,
  -1272, -1167, -157,
  -1464, -1525, -389,
  -1274, -1188, -624,
  671, 213, 454,
  124, -274, -525,
  -729, -496, -152,
  -1344, 122, 135,
  -2905, -589, -394,
  -1728, 441, -50,
  1476, 904, 787,
  316, 236, -440,
  -347, 217, 413,
  -911, -917, 121,
  -455, -932, 202,
  -92, -465, -375,
  488, 390, 474,
  876, 729, 316,
  -1815, -1312, -669,
  87, 962, 432,
  563, -249, -1058,
  250, 285, 1105,
  1141, 427, 696,
  -1038, -1664, -1582,
  -948, 346, 160,
  -309, -272, -858,
  670, 624, 1250,
  -944, -408, -666,
  -606, -320, -384,
  -492, 230, 65,
  334, -50, -16,
  -16, -690, -1397,
  1791, 1716, 1399,
  2478, 2063, 1404,
  1245, 1471, 1426,
  -382, -1037, -2,
  173, -398, 1145,
  1491, 2024, 1801,
  772, 1274, 1506,
  1429, 1735, 2001,
  1079, 1218, 1273,
  -1154, -1851, -1329,
  -808, -1133, -1096,
  -451, -1033, -1722,
  65, 578, -84,
  -1476, -2434, -1778,
  -765, -1366, -494,
  -218, -594, -931,
  337, -236, 562,
  2357, 2662, 1938,
  1489, 1276, 874,
  189, 358, 374,
  -1519, -2281, -2346,
  -967, -1271, -2095,
  -628, -1188, -1542,
  1661, 1043, 546,
  565, 1061, 732,
  -64, -836, -434,
  -436, -96, 203,
  1078, 1216, 1636,
  907, 1534, 986,
  326, 965, 845,
  142, -84, 197,
  470, 2379, 1570,
  1133, 470, 1214,
  395, 1376, 1200,
  1125, 1042, 348,
  -543, -1234, -376,
  -215, -181, 481,
  -1947, -1621, -210,
  -750, -1185, 390,
  29, -399, 27,
  820, 1236, 755,
  695, 979, 409,
  -174, 1197, 1035,
  912, 1356, 1846,
  -992, -1437, 484,
  -1485, -1700, 208,
  -412, 1204, 1432,
  -271, 896, 1144,
  -416, 1777, 1434,
  -1696, -2644, -204,
  -1789, -1551, 1033,
  -1656, -1559, 1303,
  -1253, -1589, 1081,
  -669, -1095, -66,
  -682, 320, -345,
  659, 305, 1069,
  -1292, -804, -19,
  -1635, -1291, 29,
  -1683, -497, 71,
  -287, -7, -100,
  -494, -962, -237,
  852, 1881, 1740,
  -1217, -1387, 227,
  -660, 302, 373,
  96, 1087, 1257,
  -1074, -1669, 160,
  485, 2076, 1798,
  -934, -220, 552,
  -596, -612, 237,
  336, 1720, 879,
  643, 629, 434,
  1267, 522, 1633,
  15, 244, -441,
  1475, 717, 184,
  1819, 1590, 1709,
  988, 261, 937,
  2093, 2345, 1520,
  2139, 1858, 1606,
  -577, -579, -1203,
  -956, 135, -488,
  -464, 51, -338,
  -629, -348, -723,
  1146, 2073, 1442,
  2192, 1466, 911,
  -1444, -1572, -2278,
  1400, 710, 1297,
  1335, 633, 928,
  1434, 2194, 2594,
  2422, 2204, 1881,
  982, 2242, 1854,
  380, 792, 1145,
  -63, -539, 414,
  -252, -964, -314,
  -1261, -683, -780,
  -831, -526, -1005,
  -1666, -1135, -424,
  -1611, -452, -299,
  1268, 1048, 642,
  1147, 853, 856,
  -675, -336, 139,
  2268, 1343, 1418,
  29, 768, 797,
  -1224, 423, 564,
  -1318, -1082, 245,
  -1302, -812, 573,
  -1298, -1617, 646,
  -968, 834, 723,
  993, 1652, 2027,
  -191, -817, 432,
  662, 60, 198,
  626, 997, 1330,
  1648, 1963, 1289,
  -1597, -93, -45,
  -1088, 37, -84,
  1653, 2607, 2337,
  1065, 2040, 2377,
  1139, 2326, 2118,
  859, 357, 1510,
  664, 1227, 1099,
  479, 1360, 912,
  1897, 1754, 2019,
  1168, 1909, 1784,
  399, 34, 256,
  -593, -304, -1053,
  547, 1694, 1407,
  647, -99, -341,
  1492, 1647, 1190,
  38, -644, -212,
  395, 846, 222,
  -704, -765, -716,
  -724, -1964, -2804,
  -150, 291, -82,
  1233, 1459, 1007,
  -140, -155, 153,
  439, 297, 1568,
  -1529, -410, -636,
  1536, 455, -237,
  -1328, -139, -260,
  531, 554, 868,
  269, 1264, 606,
  -233, 883, 463,
  742, 600, -120,
  -73, 421, 212,
  -439, -58, 804,
  -1286, -1241, 728,
  294, -490, 50,
  -591, -905, -1254,
  42, -687, 147,
  -25, 273, 596,
  -311, 1213, 601,
  -754, 849, 584,
  429, 607, 587,
  -602, -166, 461,
  -796, -823, 777,
  1380, 910, 1755,
  119, 1417, 972,
  -219, -880, -1596,
  -1049, -1010, 438,
  -713, -1379, 78,
  0, -447, -1179,
  -1136, -1319, -1573,
  2248, 1767, 1309,
  946, 1583, 1432,
  1150, 482, 436,
  -469, -1108, 618,
  -447, -966, 1088,
  -1252, -1515, -114,
  -1104, -2008, -579,
  210, 613, 497,
  -1975, -1437, 642,
  -1269, -856, 1011,
  -1646, -1185, 1063,
  -1555, -672, 1204,
  -1692, -1114, 623,
  -979, -1326, -1277,
  539, -147, 894,
  -1354, -897, -434,
  888, 475, 428,
  153, -384, 338,
  -1492, -511, 359,
  -974, -1115, -470,
  105, -550, 677,
  -937, -1145, 877,
  380, -260, 210,
  1685, 924, 1256,
  1775, 1190, 1095,
  1419, 631, 533,
  627, 299, -347,
  -411, -534, 647,
  -650, 29, -595,
  -378, -1367, 1563,
  1402, 1121, 1465,
  1089, 1410, 648,
  -2096, -1090, -6,
  311, -194, -869,
  -639, -831, 416,
  -1162, -1224, 1349,
  -1247, -941, 1813,
  -2193, -1987, 453,
  -619, -1367, -956,
  -1606, -1972, -1507,
  -1175, -1057, -1104,
  -377, 601, 201,
  1876, 825, 374,
  -430, -1323, 29,
  -1397, -1249, -1331,
  -1007, -1504, 960,
  -1401, -2009, 197,
  -1379, -1949, -236,
  -1077, 123, 422,
  615, 1269, 546,
  -306, 1526, 904,
  1194, 1788, 1177,
  -626, -884, -1526,
  199, 766, 1504,
  -1065, 862, 197,
  -1034, -1773, -887,
  -800, 145, 599,
  -1134, -519, 626,
  -1205, -1926, 500,
  -910, -1041, -1395,
  -1476, -1567, -969,
  -523, 842, 34,
  1794, 646, 862,
  -1207, -1888, -1002,
  -78, -9, -672,
  1044, 759, 80,
  -600, 1139, 1019,
  57, 2000, 1422,
  -833, 1414, 1121,
  -1202, 1630, 1260,
  -461, 1420, 1244,
  1537, 975, 253,
  -283, 324, -359,
  599, -195, 106,
  588, 62, -587,
  -757, 645, 205,
  51, 1201, 758,
  -1209, 673, -390,
  -624, 1581, 941,
  -151, 1023, 735,
  2820, 1301, 690,
  -302, 524, -99,
  -900, -1588, -1189,
  1084, 251, 238,
  2014, 1792, 1010,
  1245, 1633, 1741,
  -1227, -1540, -1208,
  -621, 456, -109,
  40, -65, 788,
  -805, -699, -1350,
  -583, 904, 832,
  -801, 532, 594,
  1972, 1408, 1351,
  -1177, -1880, -2114,
  -773, 568, 948,
  -1015, 1079, 1260,
  -1111, 482, -130,
  1778, 1044, 780,
  -1491, 245, 912,
  -316, -1141, -917,
  -536, -1442, -2346,
  -785, -1546, -1988,
  -2003, 257, 909,
  -1849, -633, -1209,
  -1538, -1918, -1054,
  1606, 2239, 1576,
  -567, -1500, -1544,
  -1279, 195, 1369,
  -817, 293, 1219,
  -525, 630, 1197,
  -1698, -2425, -1840,
  -303, 731, 747,
  -1169, -251, 269,
  -950, -75, 1684,
  -1182, -453, 1005,
  -1599, 585, 378,
  -2075, -571, -427,
  -529, -1159, -1171,
  -283, -205, -564,
  -796, 1246, 717,
  2277, 927, 539,
  -454, 559, 440,
  -717, 1460, 1615,
  -1030, 1052, 1610,
  -1169, -138, 847,
  226, 39, -612,
  -1251, -106, -729,
  -651, 968, 1302,
  -714, -636, 1727,
  353, 1069, 410,
  -798, -156, 1099,
  -574, 918, 446,
  -1310, 1012, 466,
  1408, 1591, 765,
  1429, 1380, 1757,
  1949, 1956, 2378,
  1578, 2047, 2148,
  916, 98, -7,
  1893, 1418, 2141,
  348, 1405, 1579,
  152, 1134, 1801,
  -267, 154, 1395,
  -1166, 469, 1054,
  -1142, -405, -1073,
  -1341, -2264, -1581,
  -364, 869, 1706,
  -1162, 549, 1550,
  -1225, -1932, -1666,
  -1485, -1977, -2055,
  -1727, -906, -98,
  -1897, 233, 1492,
  892, 108, -331,
  -1728, -1170, -1700,
  -1060, 1980, 1790,
  -1070, -1741, -1909,
  -11, 1539, 1317,
  -1600, 94, 497,
  421, 443, -197,
  -1578, -349, -994,
  -599, -539, 1140,
  -965, -1419, -129,
  -1341, 175, -447,
  -375, 1311, 2055,
  -371, -650, -307,
  -1073, 605, 365,
  -2057, -113, 430,
  652, 914, 967,
  -1012, -1586, -2323,
  1505, 1248, 559,
  262, -486, -401,
  -1727, 1342, 1546,
  50, 56, 432,
  -330, 119, -604,
  -1517, -1080, -810,
  946, 1127, 1055,
  -1400, -1703, -1712,
  -1270, -704, -1317,
  807, 1821, 1143,
  2760, 1606, 2171,
  1120, 409, -150,
  -147, 404, 959,
  2439, 1911, 2189,
  -906, -141, -866,
  -904, -142, -458,
  -557, -708, -1679,
  -830, -1431, -1583,
  -1842, -1346, -1086,
  -1604, -272, 915,
  -1196, 772, 1056,
  -638, -1234, -1897,
  -500, -81, -822,
  -1289, -1613, -735,
  -117, 785, 168,
  -1090, 1133, 922,
  -1096, -746, 1384,
  287, -547, -1063,
  -1376, -2201, -1204,
  -2176, -1570, -1757,
  -1511, -2241, -771,
  -1737, 1099, 830,
  -1588, 724, 1243,
  -1542, 693, 805,
  -1690, -240, 1665,
  -1700, -4, -668,
  2149, 816, 1042,
  -818, -1841, 22,
  -764, -507, 449,
  -1151, -617, 289,
  -843, -1596, -240,
  498, -234, -657,
  -752, 480, 1678,
  -319, -481, 193,
  -811, 171, -119,
  -2128, -202, -848,
  1717, 1140, 1700
};

/* third codebook from IS641 */

const Word16 dico3_lsf3[] = {
  67, -17, 66, -12,
  -1690, -581, -104, -272,
  -1076, -1186, -1845, -376,
  -1140, -926, -420, -58,
  -259, -656, -1134, -553,
  1788, 1227, 455, 129,
  462, 441, -240, -528,
  840, 514, 130, -75,
  1114, 623, 153, 216,
  1068, 564, -6, -276,
  1119, 727, 190, -68,
  704, 306, 119, -264,
  329, 61, -100, 156,
  364, 123, 183, -208,
  -171, -123, 220, -65,
  -306, -62, 402, 17,
  -660, -938, -266, 0,
  385, 235, 276, 285,
  320, 268, -336, -200,
  -724, 17, -84, 381,
  -544, 429, 494, 519,
  -117, 288, 304, 329,
  643, 157, 701, 508,
  1200, 625, 796, 608,
  998, 421, 492, 632,
  1204, 780, 446, 132,
  1257, 844, 547, 449,
  829, 658, 541, 470,
  1132, 1258, 918, 639,
  547, 51, 423, 279,
  9, 392, 83, 94,
  542, 543, 229, -147,
  -198, 129, 194, -185,
  -863, -1321, -302, 30,
  -597, -629, -19, 114,
  -900, -1081, 466, 353,
  -1483, -1573, 15, -143,
  -1708, -2059, -751, 196,
  -1876, -2067, -642, -258,
  -2335, -1470, -450, -564,
  -584, -186, -872, -414,
  -1805, -988, -1125, -1310,
  -726, -1129, 28, 169,
  -1039, -864, -718, -246,
  484, 36, -233, -49,
  265, 67, 289, 467,
  178, 543, 810, 540,
  84, 282, 672, 703,
  -975, -777, 129, 287,
  -938, -227, 955, 595,
  -1617, -289, 836, 649,
  -1847, -215, 1106, 718,
  -2034, -1085, 650, 440,
  -2101, -529, 907, 575,
  -2011, -336, 670, 204,
  -2389, -692, 360, 137,
  -2156, -2204, -9, 280,
  -266, 119, 39, 193,
  78, -59, -120, 226,
  -975, -858, -781, -1095,
  -619, -413, -451, -842,
  -1216, -1321, -813, -883,
  -1376, -1615, -394, -428,
  -737, -1113, -549, -790,
  -880, -975, -967, -642,
  -985, -886, -1273, -1361,
  -473, -804, -1401, -1407,
  160, -265, -919, -275,
  -248, -250, -718, -380,
  97, -103, -375, -229,
  -415, -193, -135, -555,
  628, 361, 119, 216,
  579, 364, 391, 209,
  634, 522, -154, -148,
  526, 389, 170, 33,
  105, 267, 64, 380,
  -1503, -1000, -30, -369,
  -1070, 58, 647, 223,
  -1520, -291, 621, 307,
  -1531, 156, 762, 404,
  -2029, 141, 734, 499,
  -1849, -650, 306, 512,
  -187, -104, -59, 438,
  134, -230, 156, -186,
  -61, -260, -16, 10,
  -569, -3, -421, -297,
  -1725, -521, -346, 178,
  -1362, -59, -44, 157,
  -2146, -461, -470, -349,
  -2170, -1, -369, -121,
  -1579, -373, -900, -1015,
  -1117, -591, -613, -784,
  -561, 122, -75, -449,
  -4, -171, -123, -372,
  192, 168, -76, -132,
  252, -107, 340, 210,
  392, 509, 272, 181,
  -109, 145, 218, 119,
  -416, -263, 485, 265,
  -181, -8, -286, 226,
  -244, -218, 69, -290,
  -158, 191, -1, -64,
  -592, -90, 213, -96,
  255, 435, 178, -80,
  -369, -18, -33, -80,
  -42, 415, 140, -222,
  1143, 651, 649, 329,
  767, 556, 249, 235,
  948, 413, 442, 279,
  141, 339, 356, 557,
  -470, -170, 99, 237,
  -569, -800, 352, 565,
  282, 473, 470, 332,
  -199, -690, -1284, -917,
  -193, -426, -800, -1122,
  -26, -371, -490, -193,
  637, 595, 519, 330,
  408, -115, 79, 12,
  477, 87, -103, -376,
  -666, -347, -277, -291,
  -510, -481, 169, 297,
  -829, -738, -205, -171,
  -320, -540, 328, 283,
  -859, -958, 442, -2,
  556, 686, 130, 56,
  1383, 1012, 755, 427,
  612, 741, 628, 553,
  -339, -796, 134, 277,
  -633, -1085, -2, -246,
  -880, -1035, -1607, -1064,
  -994, -474, -1138, -488,
  -414, -795, 73, -206,
  -8, -139, 439, 204,
  -176, -578, 23, 131,
  -269, -757, -191, 245,
  -109, -338, 112, 316,
  120, -406, -118, 611,
  -180, -186, -645, 115,
  -173, 34, -518, -489,
  -151, 61, -583, -844,
  220, -138, -681, -1020,
  391, -17, -598, -321,
  157, -295, 129, 155,
  -926, -875, -987, 285,
  241, -83, -125, -125,
  620, 597, 432, 92,
  393, 78, 409, 61,
  -393, -739, -413, -748,
  83, 54, 361, 27,
  -1084, 130, -337, -694,
  -1565, 297, 318, -19,
  -1873, 36, 51, -317,
  -2323, -246, 231, -84,
  -2306, -783, 40, -179,
  -2233, -930, -474, -462,
  -754, -86, -288, -626,
  -2411, -455, -63, 171,
  -1099, -1094, -26, -143,
  -1193, -455, -406, -381,
  -605, -210, -96, -51,
  -580, -476, -276, -15,
  -1195, -634, -1203, -881,
  -378, -221, -669, -952,
  594, 178, -403, -676,
  763, 327, 601, 290,
  172, 300, 203, 157,
  -56, -336, 356, 24,
  -228, -296, -259, -29,
  -186, 263, 416, 14,
  -353, 373, -12, -216,
  257, 96, 174, 57,
  -1526, -616, -954, -499,
  -497, -152, -333, 125,
  105, 200, 179, -97,
  -331, -224, 765, 697,
  760, 256, 301, 59,
  455, -85, 204, 288,
  -514, 240, 251, -109,
  256, 417, -34, -413,
  101, 430, 384, 156,
  -31, -10, 206, 426,
  589, 145, 143, 71,
  808, 906, 333, 349,
  986, 938, 589, 331,
  1300, 824, 187, 509,
  1062, 653, 379, 466,
  1462, 937, 401, 274,
  787, 861, 265, 2,
  609, 553, 28, 305,
  926, 340, 106, 386,
  241, -267, -147, 225,
  -178, -534, 347, 502,
  -643, -381, 397, 30,
  -651, -733, -435, 398,
  -407, -726, -484, -248,
  -789, -914, -438, -476,
  -498, -390, 75, -295,
  -964, -590, -606, 150,
  -121, -49, -155, -78,
  935, 550, 389, 38,
  -321, 127, 424, 315,
  -285, -113, 283, 259,
  658, 203, 322, 486,
  903, 505, 748, 417,
  611, 423, 555, 512,
  239, -83, -578, -19,
  -339, -731, 349, 13,
  -934, -1399, -114, -360,
  107, 692, 182, 90,
  -1243, -1538, -1551, -725,
  -568, -903, -1363, -525,
  -517, -853, -861, -1004,
  -168, -690, -835, 63,
  -137, -556, -547, 144,
  -286, -817, 485, 319,
  -147, -408, 526, 246,
  -347, -434, 297, -28,
  -290, -471, -1110, -1285,
  -460, -359, -988, -794,
  1347, 1299, 690, 523,
  1216, 1068, 1094, 757,
  825, 1140, 752, 494,
  1252, 1365, 1195, 898,
  521, 1053, 532, 432,
  -334, -216, -313, -263,
  -160, 52, -472, -155,
  127, 136, -380, 44,
  851, 410, -162, -489,
  123, -255, -796, -667,
  1090, 917, 789, 493,
  1397, 1197, 558, 202,
  -51, -118, -342, -701,
  83, 108, -42, -441,
  61, 95, 287, 256,
  -27, 89, 524, 531,
  351, 227, 592, 545,
  697, 155, -164, 307,
  638, 274, -489, -50,
  754, 240, -166, -124,
  -116, -579, -1212, -63,
  190, -295, -1040, -1296,
  147, -376, -177, -113,
  841, 1241, 1051, 668,
  2, 293, 551, 304,
  -1096, -953, -248, 376,
  -750, -965, 87, 516,
  -275, -516, 689, 391,
  -379, -643, 876, 594,
  -390, -1013, -645, 573,
  -107, -568, -689, -826,
  -1025, -27, -328, -203,
  861, 749, 548, 233,
  -1660, -1043, 451, 108,
  -660, -620, 430, 236,
  21, -396, -1158, -631,
  1372, 1298, 967, 577,
  1125, 1125, 589, 454,
  -323, -865, -467, 153,
  -468, -699, -804, -509,
  -392, -718, -204, -35,
  -603, -1093, -567, -162,
  -505, -1004, -102, 350,
  219, 224, 423, 252,
  395, 591, 608, 363,
  -746, -96, 373, 172,
  171, 295, 714, 339,
  233, 77, 107, 277,
  157, 153, -499, -356,
  1547, 1073, 576, 494,
  -292, -339, -504, -592,
  -903, -72, -619, -481,
  -1594, -1117, -567, -254,
  -793, -507, -564, -291,
  -492, -532, 502, 560,
  -382, 427, 600, 230,
  -227, 477, 251, 75,
  285, 842, 813, 476,
  -1310, -1333, 186, 377,
  -587, -917, 643, 381,
  -1186, -553, 411, 82,
  -1127, -820, -174, -540,
  -604, 119, 543, 205,
  -380, 657, 909, 567,
  112, -298, -374, 114,
  -857, -251, 56, 159,
  401, 345, -34, -140,
  -111, -607, 41, 614,
  355, -114, -77, 474,
  578, 56, 1450, 924,
  1098, 1420, 741, 400,
  246, 22, 588, 313,
  -121, 327, 831, 472,
  -1138, -608, 856, 552,
  -1241, -1072, 638, 600,
  -358, 254, -333, -303,
  -646, 739, 358, 74,
  1226, 1671, 1221, 849,
  2241, 1624, 983, 636,
  1841, 1477, 749, 384,
  350, 263, 87, 128,
  -1902, -941, -144, -64,
  -1734, -255, 288, -31,
  -2644, -1238, 366, 235,
  -1643, -1092, -1344, -304,
  -541, -1075, -1116, 123,
  -1178, -252, -816, -180,
  -1016, 533, 565, 233,
  -487, -430, -188, 334,
  867, 1236, 534, 171,
  -1590, -1607, 635, 630,
  -2196, 310, 924, 412,
  -2358, -328, 956, 529,
  -2639, -377, 630, 278,
  -2602, 317, 799, 299,
  -2406, 133, 340, 31,
  -2156, -1468, 131, 125,
  -1184, -490, -139, 46,
  -744, 447, 891, 564,
  67, -451, 646, 604,
  -553, -429, -876, 396,
  162, -66, 1305, 915,
  479, 579, 1088, 794,
  450, 278, 566, 324,
  -1057, -154, 148, -177,
  -2545, 168, 1070, 592,
  -2351, -42, 819, 345,
  -2344, -707, 721, 250,
  -2175, -1497, -309, 122,
  -78, -73, 120, 173,
  -4, 262, -263, -261,
  -431, -64, -405, -732,
  -2609, 116, -83, -193,
  -1525, -944, -477, -725,
  -508, 307, 170, 172,
  832, 417, 832, 686,
  -225, 177, 894, 818,
  -482, -389, 1279, 1039,
  -383, 201, -350, 40,
  730, 635, 226, 526,
  503, 462, 338, 398,
  535, 714, 40, -282,
  1482, 1471, 1085, 731,
  1561, 1072, 909, 693,
  1419, 1282, 889, 879,
  1153, 728, 1186, 840,
  -226, 1130, 949, 689,
  -494, -986, -1556, -128,
  -568, -721, -713, -26,
  317, 524, 70, 135,
  -405, -865, -1766, -652,
  -174, -801, 885, 773,
  -153, -91, 1099, 751,
  -506, -1149, 853, 646,
  241, 782, 519, 539,
  1853, 1700, 1101, 684,
  -1249, -1486, -464, 188,
  -893, -1409, -1312, -341,
  -135, 438, -175, 18,
  1111, 976, 319, 208,
  -1430, -1768, 83, 458,
  -530, -1000, 307, 129,
  -840, -15, -29, -356,
  -911, -924, -1147, -242,
  -119, -528, 127, -133,
  -761, -765, 190, -83,
  -315, 895, 522, 231,
  -222, 102, -63, -428,
  316, 699, 379, 70,
  25, 716, 314, -108,
  507, 874, 566, 238,
  108, 941, 519, 195,
  425, -60, -427, 257,
  139, -103, -630, 446,
  334, 370, 412, 48,
  -172, -690, -283, 557,
  187, -286, 158, 483,
  140, 270, -344, -631,
  924, 579, -116, 132,
  142, 466, -68, -64,
  230, -145, -302, -542,
  -803, -912, 1018, 737,
  -773, 1015, 630, 297,
  -2596, 95, 445, 336,
  -2122, 491, 510, 191,
  -1253, 161, -2, -324,
  -1450, -633, -712, -105,
  -842, -254, -411, 100,
  -640, -290, 1010, 763,
  -650, 313, 1169, 730,
  140, 505, 1030, 766,
  772, 287, 1067, 823,
  495, 749, 305, 323,
  -164, 462, 78, 399,
  -342, -874, 69, 597,
  -16, 620, 621, 337,
  -138, -444, -265, 218,
  84, -450, 953, 666,
  -222, -803, 541, 604,
  -921, -1376, 244, 116,
  -841, -723, 630, 588,
  140, 663, 294, 368,
  935, 1046, 881, 759,
  1746, 1464, 916, 628,
  436, 963, 281, 1,
  -119, 74, 542, 213,
  1, -567, 301, 241,
  260, 435, 222, 396,
  936, 957, 1108, 703,
  510, 506, 808, 478,
  601, 694, 960, 620,
  972, 741, 980, 600,
  834, 717, 767, 684,
  643, 972, 935, 638,
  501, 661, 720, 851,
  -105, -632, -303, -117,
  -429, 130, 789, 442,
  -522, -188, 704, 373,
  -759, 42, 814, 523,
  -531, -1137, 373, 578,
  -682, -1203, -455, 285,
  -1163, -1577, -1098, 44,
  81, -82, 712, 363,
  477, 246, 954, 622,
  1604, 1622, 1277, 891,
  1409, 859, 924, 892,
  774, 1041, 947, 1142,
  40, -546, -75, 288,
  -616, -106, -697, -26,
  -169, -160, -891, -739,
  -279, -384, -1029, -350,
  1781, 1308, 1046, 816,
  1580, 1533, 1472, 1178,
  1505, 1076, 1216, 899,
  890, 904, 564, 654,
  920, 692, 1021, 856,
  -493, 132, 177, 505,
  71, 195, -28, 97,
  456, 351, -164, 88,
  439, 278, -40, 350,
  1395, 949, 234, -95,
  -805, -472, 38, -163,
  367, -98, 489, 523,
  1025, 1178, 1212, 906,
  319, 1314, 814, 461,
  -123, -543, -804, 447,
  -748, -324, -897, -1127,
  -737, -501, -789, -713,
  715, 777, 1239, 922,
  1949, 1939, 1368, 865,
  730, 880, 758, 388,
  -871, 454, 17, -251,
  -381, -810, -1583, 239,
  -521, -966, -792, 259,
  -890, -1358, -770, -73,
  166, 349, -212, 323,
  -840, -301, 473, 435,
  -679, -464, 728, 351,
  -156, -199, 667, 432,
  29, -252, 415, 480,
  -731, -379, 145, 559,
  -528, -631, -1158, -159,
  445, 273, 123, 639,
  373, -126, 800, 568,
  84, -162, 720, 712,
  -830, -536, -185, 222,
  408, 452, 501, 771,
  -897, -1355, -67, 442,
  -792, -1406, 566, 602,
  167, -326, 509, 330,
  -95, -626, -730, -344,
  1668, 1217, 779, 455,
  1316, 828, 584, 719,
  404, -31, 1013, 789,
  89, 107, 891, 549,
  871, 1581, 917, 671,
  866, 1479, 1289, 854,
  391, 1068, 1122, 812,
  78, -562, 345, 563,
  429, -103, 417, 787,
  -122, -437, 411, 788,
  -913, -417, 602, 754,
  -226, -16, 151, 760,
  -700, 118, -104, -14,
  -1128, 48, 284, 393,
  -390, -419, -639, -116,
  -910, 306, 316, -13,
  1207, 984, 821, 669,
  -1195, -693, 140, -213,
  -884, -416, -199, -558,
  -616, 245, -404, -664,
  262, 56, -617, -724,
  -85, -491, -320, -656,
  -570, -831, -129, -528,
  -1506, -63, -367, -385,
  -358, -321, 4, 51,
  -366, -214, 319, 511,
  146, 671, -17, -291,
  -110, 464, -139, -496,
  -202, 220, -312, -631,
  -660, -73, -655, -820,
  -662, -653, -1288, -857,
  -430, -953, -959, -264,
  -49, -468, -72, -381,
  -350, -563, -193, -407,
  55, -408, -803, 11,
  -309, 649, 188, -198,
  -512, 461, -79, -458,
  -1318, -263, -134, -523,
  -1657, -435, -495, -765,
  57, -347, -414, 434,
  -1141, -242, -664, -857,
  34, -68, -707, -338
};

/* third codebook for MR475, MR515 */

const Word16 mr515_3_lsf[] = {
    419,   163,   -30,  -262, 
   -455,  -789, -1430,  -721, 
   1006,   664,   269,    25, 
    619,   260,   183,    96, 
   -968, -1358,  -388,   135, 
   -693,   835,   456,   154, 
   1105,   703,   569,   363, 
   1625,  1326,   985,   748, 
   -220,   219,    76,  -208, 
  -1455, -1662,    49,   149, 
   -964,  -172,  -752,  -336, 
    625,   209,  -250,   -66, 
  -1017,  -838,    -2,   317, 
  -2168, -1485,  -138,   123, 
  -1876, -2099,  -521,    85, 
   -967,  -366,  -695,  -881, 
   -921, -1011,  -763,  -949, 
   -124,  -256,  -352,  -660, 
    178,   463,   354,   304, 
  -1744,  -591,  -282,    79, 
  -2249,   175,   867,   499, 
   -138,  -180,  -181,   -21, 
  -2291, -1241,  -460,  -520, 
   -771,   451,   -10,  -308, 
    271,   -65,     4,   214, 
   -279,  -435,   -43,  -348, 
   -670,    35,   -65,  -211, 
    806,   535,    85,   297, 
     57,   239,   722,   493, 
    225,   661,   840,   547, 
   -540,  -376,    14,   349, 
    469,   721,   331,   162, 
   -544,  -752,   -62,   -10, 
    398,   -88,   724,   701, 
    -19,  -533,   -94,   601, 
    136,   -71,  -681,  -747, 
   -166,  -344,   261,   -50, 
    161,   -52,   485,   337, 
  -1675,    50,   190,   -93, 
  -2282,  -231,  -194,   -82, 
    -95,  -595,  -154,   128, 
    894,   501,   588,   457, 
   -345,   206,   122,   110, 
   -631,  -227,  -569,     3, 
    408,   239,   397,   226, 
   -197,    -2,   128,   491, 
   1281,   904,   292,   215, 
    538,   306,   259,   509, 
   -677, -1047,    13,   321, 
   -679,  -588,  -358,  -212, 
   -558,   243,   646,   479, 
    486,   342,   634,   532, 
    107,   802,   331,   136, 
   -112,  -398, -1031,  -286, 
   -326,  -705,   288,   272, 
   1299,  1144,  1178,   860, 
   -423,   121,  -385,  -148, 
   -295,  -302,  -834,  -819, 
     16,   -24,  -201,  -476, 
    555,    91,  -245,   294, 
    -38,  -379,  -962, -1221, 
  -1191, -1518,  -273,  -395, 
   -390, -1013,  -645,   573, 
  -1843, -1030,   505,   468, 
    744,   947,   609,   493, 
   -689, -1172,  -628,  -135, 
  -1026,   195,   411,   196, 
   1582,  1147,   575,   337, 
  -1239,  -777,  -648,  -142, 
    595,   825,   967,   735, 
  -1206,  -970,   -81,  -342, 
   -745,    13,   -72,   375, 
    454,    19,  1407,   921, 
  -1647,  -172,   861,   562, 
    928,  1537,  1063,   740, 
  -2472,  -952,   264,    82, 
   -502,  -965, -1334,   123, 
    867,  1236,   534,   171, 
  -2320,  -460,   780,   363, 
  -1190,  -617,   252,   -61, 
   -174,    34,  1011,   788, 
  -2333,   247,   423,   153, 
    -16,  -355,   262,   449, 
  -1576, -1073,  -544,  -371, 
   -615,  -305,  1051,   805, 
    687,   528,     6,  -182, 
    935,   875,  1002,   809, 
    199,   257,   126,    76, 
   -584, -1138,   599,   556, 
  -1105, -1391, -1591,  -519, 
   -977, -1325,   108,   347, 
   -722,  -975,   365,   101, 
   -145,   681,   249,  -153, 
      0,  -334,  -570,   159, 
    412,   285,  -336,  -617, 
   -953,  -966,   887,   689, 
  -1251,    84,  -185,  -398, 
   -592,   433,  1044,   653, 
     85,   329,   -40,   361, 
   -433,  -705,   466,   574, 
   -154,   654,   592,   290, 
   -167,    72,   349,   175, 
    674,   297,   977,   720, 
   1235,  1204,   757,   488, 
   -400,  -269,   538,   372, 
  -1350, -1387, -1194,   -91, 
   1262,   876,   775,   700, 
   -599,   -38,  -430,  -722, 
   1976,  1630,   991,   608, 
    111,   276,  -226,   -96, 
   -947,  -388,   -11,    -7, 
   -303,  -531,  -839,   338, 
   1734,  1710,  1405,  1013, 
   -516,  -855,  -645,   210, 
   -688,  -416,   513,   230, 
   -822,  -637, -1146,  -320, 
   -952,  -658,  -694,   183, 
   -114,  -623,   818,   674, 
   -191,  -204,   731,   635, 
     51,  1221,   883,   576, 
   -954,  -431,   826,   598, 
   -342,  -755,  -900,  -407, 
  -1126,  -354,  -206,  -512, 
   -547,  -810,  -357,  -620, 
     66,   515,   -73,  -410, 
   -872,  -945, -1444, -1227, 
    191,   -17,  -544,  -231, 
  -1540,  -544,  -901,  -886
};

/* first codebook for MR795 */

const Word16 mr795_1_lsf[] = {
   -890, -1550, -2541, 
   -819,  -970,   175, 
   -826, -1234,  -762, 
   -599,   -22,   634, 
   -811,  -987,  -902, 
   -323,   203,    26, 
   -383,  -235,  -781, 
   -399,  1262,   906, 
   -932, -1399, -1380, 
   -624,    93,    87, 
   -414,  -539,  -691, 
     37,   633,   510, 
   -387,  -476, -1330, 
    399,    66,   263, 
   -407,   -49,  -335, 
   -417,  1041,  1865, 
   -779, -1089, -1440, 
   -746,  -858,   832, 
   -581,  -759,  -371, 
   -673,  -506,  2088, 
   -560,  -634, -1179, 
    271,   241,    14, 
   -438,  -244,  -397, 
    463,  1202,  1047, 
   -606,  -797, -1438, 
    -51,  -323,   481, 
   -224,  -584,  -527, 
    494,   881,   682, 
   -433,  -306, -1002, 
    554,   659,   222, 
    171,  -160,  -353, 
    681,  1798,  1565, 
   -852, -1181, -1695, 
   -336,  -666,   114, 
   -581,  -756,  -744, 
   -195,   375,   497, 
   -465,  -804, -1098, 
    154,   282,  -131, 
    -50,  -191,  -719, 
    323,   732,  1542, 
   -722,  -819, -1404, 
    105,  -250,   185, 
   -178,  -502,  -742, 
    321,   510,  1111, 
   -323,  -567,  -966, 
    127,   484,   338, 
   -160,    52,  -338, 
    732,  1367,  1554, 
   -626,  -802, -1696, 
   -286,  -586,   676, 
   -695,  -343,  -370, 
   -490,   295,  1893, 
   -630,  -574, -1014, 
    -80,   645,   -69, 
     -6,  -318,  -364, 
    782,  1450,  1038, 
   -313,  -733, -1395, 
    120,    60,   477, 
   -264,  -585,  -123, 
    711,  1245,   633, 
    -91,  -355, -1016, 
    771,   758,   261, 
    253,    81,  -474, 
    930,  2215,  1720, 
   -808, -1099, -1925, 
   -560,  -782,   169, 
   -804, -1074,  -188, 
   -626,   -55,  1405, 
   -694,  -716, -1194, 
   -660,   354,   329, 
   -514,   -55,  -543, 
    366,  1033,  1182, 
   -658,  -959, -1357, 
    -55,  -184,    93, 
   -605,  -286,  -662, 
    404,   449,   827, 
   -286,  -350, -1263, 
    628,   306,   227, 
    -16,   147,  -623, 
    186,   923,  2146, 
   -674,  -890, -1606, 
   -443,  -228,   339, 
   -369,  -790,  -409, 
    231,    86,  1469, 
   -448,  -581, -1061, 
    594,   450,  -177, 
   -124,  -170,  -447, 
    671,  1159,  1404, 
   -476,  -667, -1511, 
    -77,  -138,   716, 
   -177,  -372,  -381, 
    451,   934,   915, 
   -250,  -432,  -822, 
    272,   828,   446, 
     26,    19,   -31, 
    698,  1692,  2168, 
   -646,  -977, -1924, 
   -179,  -473,   268, 
   -379,  -745,  -691, 
     11,   127,  1033, 
   -488,  -917,  -825, 
     61,   323,   135, 
    147,  -145,  -686, 
    685,   786,  1682, 
   -506,  -848, -1297, 
     35,    90,   222, 
    -23,  -346,  -670, 
    455,   591,  1287, 
   -203,  -593, -1086, 
    652,   352,   437, 
     39,    63,  -457, 
    841,  1265,  2105, 
   -520,  -882, -1584, 
   -328,  -711,  1421, 
   -596,  -342,   -70, 
    209,   173,  1928, 
   -423,  -598,  -921, 
    421,   605,   -38, 
     -2,  -245,  -127, 
    896,  1969,  1135, 
   -379,  -518, -1579, 
    173,   118,   753, 
    -55,  -381,   -52, 
    985,  1021,   753, 
     -2,  -291,  -891, 
    753,   992,   423, 
    264,   131,  -196, 
    895,  2274,  2543, 
   -635, -1088, -2499, 
   -529,  -982,   526, 
   -764,  -830,  -548, 
   -436,   316,   599, 
   -675,  -940,  -746, 
    -57,   236,   -11, 
   -201,   -81,  -798, 
     16,   845,  1558, 
   -737,  -985, -1212, 
   -468,    17,   290, 
   -279,  -584,  -700, 
    183,   822,   705, 
   -265,  -492, -1187, 
    421,   152,   468, 
   -390,   166,  -268, 
     39,  1550,  1868, 
   -635,  -966, -1571, 
   -453,  -492,   910, 
   -284, -1027,   -75, 
   -181,  -133,  1852, 
   -445,  -624, -1174, 
    420,   367,   -49, 
   -389,  -212,  -169, 
    707,  1073,  1208, 
   -539,  -710, -1449, 
     83,  -163,   484, 
   -236,  -543,  -355, 
    338,  1175,   814, 
   -246,  -309,  -958, 
    606,   760,    60, 
    166,    -8,  -163, 
   -306,  1849,  2563, 
   -747, -1025, -1783, 
   -419,  -446,   209, 
   -718,  -566,  -534, 
   -506,   693,   857, 
   -463,  -697, -1082, 
    325,   431,  -206, 
    -15,    -8,  -763, 
    545,   919,  1518, 
   -611,  -783, -1313, 
    256,   -55,   208, 
   -165,  -348,  -662, 
    321,   680,   930, 
   -326,  -429,  -951, 
    484,   446,   570, 
   -197,    72,   -73, 
    909,  1455,  1741, 
   -563,  -737, -1974, 
   -124,  -416,   718, 
   -478,  -404,  -314, 
    -16,   446,  1636, 
   -551,  -537,  -750, 
    -58,   638,   214, 
     55,  -185,  -271, 
   1148,  1301,  1212, 
   -483,  -671, -1264, 
    117,   285,   543, 
   -204,  -391,  -111, 
    513,  1538,   854, 
   -114,  -190,  -978, 
    877,   595,   464, 
    260,   260,  -311, 
    748,  2283,  2216, 
   -517,  -945, -2171, 
   -326,  -708,   378, 
   -812,  -691,  -232, 
   -560,   687,  1409, 
   -732,  -690,  -836, 
   -359,   645,   386, 
   -265,    62,  -678, 
    145,  1644,  1208, 
   -555,  -988, -1233, 
    -78,    14,   114, 
   -327,  -358,  -489, 
    392,   677,   697, 
   -201,  -236, -1140, 
    693,   449,   178, 
   -243,   256,  -433, 
    611,  1385,  2456, 
   -612,  -901, -1464, 
   -307,   -17,   499, 
   -315,  -667,  -254, 
    256,   428,  1463, 
   -486,  -422, -1056, 
    655,   370,    18, 
   -102,  -185,  -276, 
    755,  1578,  1335, 
   -488,  -603, -1418, 
    182,   -93,   870, 
    -73,  -458,  -348, 
    835,   862,   957, 
   -282,  -333,  -746, 
    547,   839,   428, 
    273,   -89,    13, 
    940,  1708,  2576, 
   -418, -1084, -1758, 
    -44,  -358,   259, 
   -497,  -643,  -560, 
     99,   557,   961, 
   -421,  -766,  -917, 
    295,   326,   184, 
    175,    15,  -626, 
    532,   878,  1981, 
   -443,  -768, -1275, 
    221,   156,   268, 
     39,  -363,  -505, 
    695,   772,  1140, 
   -162,  -459,  -912, 
    709,   444,   658, 
     25,   303,  -312, 
   1268,  1410,  1715, 
   -297,  -766, -1836, 
   -263,  -108,  1070, 
   -406,   -13,  -129, 
     57,   438,  2734, 
   -374,  -487,  -835, 
    304,   696,   164, 
    104,  -235,     5, 
   1611,  1900,  1399, 
   -229,  -582, -1325, 
    405,   192,   817, 
    -87,  -438,   111, 
   1028,  1199,   993, 
     68,  -175,  -934, 
   1033,  1117,   451, 
    478,   200,  -248, 
   2127,  2696,  2042, 
   -835, -1323, -2131, 
   -799,  -692,   466, 
   -812, -1032,  -469, 
   -622,   288,   920, 
   -701,  -841, -1070, 
   -411,   512,     8, 
   -390,   -91,  -744, 
    -30,  1043,  1161, 
   -822, -1148, -1156, 
   -294,   -46,   110, 
   -411,  -374,  -678, 
    214,   531,   668, 
   -406,  -420, -1194, 
    487,   232,   303, 
   -318,    91,  -472, 
    123,  1232,  2445, 
   -722,  -952, -1495, 
   -738,  -675,  1332, 
   -543,  -606,  -211, 
    -95,   -98,  1508, 
   -549,  -514, -1193, 
    473,   211,    73, 
   -288,  -112,  -389, 
    537,  1332,  1258, 
   -567,  -755, -1545, 
     71,  -283,   632, 
   -170,  -481,  -493, 
    681,  1002,   817, 
   -356,  -331,  -877, 
    419,   706,   346, 
    241,   -34,  -326, 
    377,  1950,  1883, 
   -727, -1075, -1625, 
   -233,  -543,   116, 
   -524,  -806,  -585, 
    -73,   478,   729, 
   -288,  -925, -1143, 
    173,   447,   -52, 
     68,  -229,  -606, 
    449,   529,  1797, 
   -591,  -875, -1363, 
    183,  -144,   324, 
   -103,  -452,  -666, 
    623,   488,  1176, 
   -238,  -511, -1004, 
    326,   552,   458, 
    136,   108,  -319, 
    626,  1343,  1883, 
   -490,  -646, -1730, 
   -186,  -449,   984, 
   -738,   -76,  -170, 
   -550,   755,  2560, 
   -496,  -510,  -947, 
    210,   694,   -52, 
     84,  -322,  -199, 
   1090,  1625,  1224, 
   -376,  -603, -1396, 
    343,    74,   632, 
   -175,  -502,   -32, 
    972,  1332,   734, 
     52,  -295, -1113, 
   1065,   918,   160, 
    393,   107,  -397, 
   1214,  2649,  1741, 
   -632, -1201, -1891, 
   -719,  -277,   353, 
   -651,  -880,  -122, 
   -211,   209,  1338, 
   -562,  -714, -1059, 
   -208,   388,   159, 
   -320,   -61,  -551, 
    293,  1092,  1443, 
   -648,  -865, -1253, 
    -49,  -143,   305, 
   -401,  -227,  -585, 
    561,   532,   927, 
   -117,  -443, -1188, 
    507,   436,   292, 
    -79,   233,  -458, 
    671,  1025,  2396, 
   -633,  -842, -1525, 
   -308,  -286,   640, 
   -373,  -621,  -407, 
    418,   253,  1305, 
   -315,  -581, -1137, 
    572,   685,  -281, 
     61,   -68,  -371, 
    991,  1101,  1498, 
   -493,  -683, -1362, 
    -47,   164,   704, 
   -256,  -314,  -268, 
    631,   949,  1052, 
   -118,  -348,  -833, 
     68,  1180,   568, 
    152,   117,    34, 
   1113,  1902,  2239, 
   -601,  -959, -1706, 
   -143,  -489,   480, 
   -332,  -655,  -574, 
     54,   353,  1192, 
   -462,  -652,  -796, 
    150,   549,   112, 
    195,  -111,  -515, 
    679,  1108,  1647, 
   -558,  -749, -1217, 
     -9,   272,   341, 
    -53,  -265,  -535, 
    489,   843,  1298, 
   -120,  -482, -1032, 
    632,   543,   408, 
    179,   306,  -526, 
   1124,  1464,  2244, 
   -417,  -786, -1562, 
   -224,  -384,  1364, 
   -377,  -459,   -25, 
    385,   489,  2174, 
   -332,  -651,  -829, 
    544,   553,    61, 
     22,  -113,   -89, 
   1128,  1725,  1524, 
   -216,  -373, -1653, 
    161,   316,   908, 
   -165,  -222,   -67, 
   1362,  1175,   789, 
     73,  -252,  -767, 
    738,   932,   616, 
    362,   246,  -126, 
    787,  2654,  3027, 
   -691, -1106, -2190, 
   -565,  -588,   524, 
   -590,  -979,  -490, 
   -263,   397,   982, 
   -577,  -837,  -945, 
    -22,   435,   -49, 
   -190,  -118,  -629, 
    -88,  1240,  1513, 
   -636, -1051, -1019, 
   -291,   189,   259, 
   -257,  -470,  -629, 
    145,   945,   894, 
   -326,  -364, -1094, 
    543,   260,   630, 
   -202,   189,  -209, 
    357,  1379,  2091, 
   -569, -1075, -1449, 
   -714,  -239,   919, 
   -420,  -705,   -84, 
   -109,  -114,  2407, 
   -413,  -529, -1177, 
    482,   368,   131, 
   -186,   -72,  -131, 
    861,  1255,  1220, 
   -611,  -658, -1341, 
    227,  -121,   631, 
   -176,  -489,  -218, 
    745,  1175,   957, 
   -321,  -148,  -936, 
    671,   966,   216, 
    340,    -3,  -143, 
    469,  1848,  2437, 
   -729,  -961, -1683, 
   -213,  -254,   321, 
   -511,  -438,  -521, 
   -126,   725,   903, 
   -340,  -685, -1032, 
    316,   480,    20, 
     23,   -89,  -551, 
    353,  1051,  1789, 
   -544,  -757, -1364, 
    298,   -25,   436, 
   -100,  -392,  -519, 
    467,   754,  1078, 
   -210,  -398, -1078, 
    620,   658,   630, 
     33,   147,  -178, 
    921,  1687,  1921, 
   -325,  -528, -1978, 
      2,  -285,   910, 
   -371,  -490,  -230, 
      0,   597,  2010, 
   -496,  -395,  -834, 
     37,   945,   245, 
    181,  -160,  -144, 
   1481,  1373,  1357, 
   -355,  -601, -1270, 
    298,   322,   672, 
   -193,  -336,    77, 
   1089,  1533,   922, 
    177,   -39, -1125, 
    996,   781,   536, 
    456,   366,  -432, 
   1415,  2440,  2279, 
   -466,  -758, -2325, 
   -303,  -509,   387, 
   -727,  -557,    66, 
   -145,   643,  1248, 
   -544,  -676,  -916, 
   -225,   862,   588, 
   -152,    40,  -533, 
    423,  1423,  1558, 
   -572,  -843, -1145, 
   -128,    85,   461, 
   -238,  -257,  -584, 
    605,   748,   861, 
     24,  -202, -1409, 
    797,   487,   303, 
   -181,   364,  -182, 
    616,  1378,  2942, 
   -494,  -852, -1441, 
   -292,    61,   812, 
    -84,  -723,  -182, 
    555,   532,  1506, 
   -365,  -493, -1057, 
    822,   588,    11, 
    -14,   -18,  -230, 
   1001,  1401,  1451, 
   -474,  -569, -1292, 
    302,    62,  1062, 
    -70,  -376,  -222, 
    982,   974,  1149, 
   -196,  -234,  -795, 
    479,  1098,   499, 
    362,    58,    70, 
   1147,  2069,  2857, 
   -487,  -878, -1824, 
     73,  -288,   348, 
   -358,  -500,  -508, 
    199,   721,  1242, 
    -78,  -697,  -795, 
    361,   536,   196, 
    374,   110,  -735, 
    847,  1051,  1896, 
   -366,  -713, -1182, 
    315,   320,   429, 
     72,  -215,  -450, 
    759,   886,  1363, 
    -30,  -428,  -834, 
    861,   627,   796, 
    118,   468,  -279, 
   1355,  1883,  1893, 
   -188,  -642, -1612, 
     63,  -175,  1198, 
   -418,  -211,    51, 
    414,   587,  2601, 
   -234,  -557,  -858, 
    424,   889,   222, 
    136,  -101,    83, 
   1413,  2278,  1383, 
    -84,  -445, -1389, 
    414,   313,  1045, 
     29,  -343,    65, 
   1552,  1647,   980, 
    183,   -91,  -829, 
   1273,  1413,   360, 
    553,   272,  -107, 
   1587,  3149,  2603
};