Worked at 10am 2/28

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player

Files at this revision

API Documentation at this revision

Comitter:
Josahty
Date:
Wed Feb 28 16:56:18 2018 +0000
Parent:
0:0871fbbffcad
Commit message:
Working at 2/28 10am

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
cylonbyc.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
wave_player.lib Show annotated file Show diff for this revision Revisions of this file
diff -r 0871fbbffcad -r d988c10dcf0b 4DGL-uLCD-SE.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Wed Feb 28 16:56:18 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/users/sparkfun/code/4DGL-uLCD-SE/#e39a44de229a
diff -r 0871fbbffcad -r d988c10dcf0b SDFileSystem.lib
--- a/SDFileSystem.lib	Mon Feb 26 21:06:19 2018 +0000
+++ b/SDFileSystem.lib	Wed Feb 28 16:56:18 2018 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/SDFileSystem/#8db0d3b02cec
+https://os.mbed.com/teams/418012/code/SDFileSystem/#d2d4d300ade6
diff -r 0871fbbffcad -r d988c10dcf0b cylonbyc.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cylonbyc.h	Wed Feb 28 16:56:18 2018 +0000
@@ -0,0 +1,2030 @@
+/**********************************************************************
+* Written by WAVToCode
+* Date:             Sat Oct 21 11:58:26 AM
+* FileName:         cylonbyc.C
+* Interleaved:      Yes
+* Signed:           No
+* No. of channels:  1
+* No. of samples:   16128
+* Bits/Sample:      16
+**********************************************************************/
+
+#define NUM_ELEMENTS 16128
+
+const unsigned short sound_data[NUM_ELEMENTS] = { 
+32768, 32768, 32768, 32769, 32766, 32771, 32765, 32770, // 0-7
+32768, 32767, 32769, 32767, 32769, 32767, 32769, 32768, // 8-15
+32766, 32771, 32764, 32773, 32764, 32770, 32767, 32768, // 16-23
+32770, 32765, 32770, 32767, 32768, 32769, 32767, 32768, // 24-31
+32769, 32767, 32768, 32769, 32767, 32769, 32767, 32769, // 32-39
+32767, 32769, 32767, 32769, 32768, 32767, 32769, 32767, // 40-47
+32770, 32765, 32771, 32765, 32772, 32764, 32771, 32766, // 48-55
+32768, 32770, 32766, 32769, 32769, 32765, 32771, 32766, // 56-63
+32769, 32768, 32767, 32769, 32767, 32769, 32768, 32767, // 64-71
+32769, 32767, 32769, 32768, 32767, 32769, 32768, 32767, // 72-79
+32769, 32767, 32770, 32765, 32771, 32766, 32769, 32768, // 80-87
+32768, 32767, 32770, 32766, 32769, 32768, 32768, 32767, // 88-95
+32769, 32767, 32769, 32768, 32767, 32770, 32765, 32771, // 96-103
+32765, 32772, 32764, 32771, 32766, 32768, 32770, 32766, // 104-111
+32769, 32768, 32767, 32769, 32768, 32767, 32769, 32768, // 112-119
+32766, 32771, 32765, 32770, 32767, 32768, 32769, 32767, // 120-127
+32769, 32766, 32770, 32767, 32770, 32766, 32769, 32768, // 128-135
+32766, 32772, 32764, 32772, 32765, 32769, 32768, 32767, // 136-143
+32770, 32766, 32769, 32768, 32767, 32770, 32765, 32771, // 144-151
+32766, 32769, 32768, 32767, 32769, 32767, 32769, 32768, // 152-159
+32766, 32771, 32765, 32770, 32767, 32768, 32769, 32767, // 160-167
+32769, 32766, 32771, 32765, 32771, 32766, 32768, 32770, // 168-175
+32765, 32770, 32769, 32765, 32771, 32766, 32768, 32769, // 176-183
+32768, 32767, 32769, 32767, 32768, 32769, 32767, 32769, // 184-191
+32767, 32769, 32767, 32769, 32767, 32770, 32765, 32771, // 192-199
+32765, 32771, 32766, 32768, 32769, 32767, 32769, 32767, // 200-207
+32769, 32767, 32768, 32769, 32767, 32769, 32768, 32766, // 208-215
+32771, 32766, 32769, 32768, 32767, 32770, 32766, 32770, // 216-223
+32767, 32767, 32771, 32764, 32772, 32765, 32769, 32768, // 224-231
+32768, 32768, 32767, 32769, 32767, 32770, 32765, 32772, // 232-239
+32763, 32773, 32764, 32771, 32766, 32770, 32765, 32771, // 240-247
+32765, 32771, 32767, 32766, 32771, 32765, 32770, 32768, // 248-255
+32767, 32769, 32767, 32769, 32768, 32767, 32769, 32767, // 256-263
+32769, 32767, 32769, 32768, 32767, 32769, 32767, 32768, // 264-271
+32769, 32767, 32769, 32767, 32769, 32766, 32770, 32767, // 272-279
+32768, 32770, 32764, 32772, 32765, 32770, 32767, 32769, // 280-287
+32766, 32771, 32764, 32773, 32762, 32775, 32762, 32772, // 288-295
+32766, 32769, 32767, 32769, 32768, 32767, 32769, 32768, // 296-303
+32766, 32772, 32763, 32772, 32765, 32770, 32767, 32769, // 304-311
+32766, 32769, 32769, 32766, 32770, 32766, 32769, 32768, // 312-319
+32769, 32766, 32770, 32766, 32769, 32768, 32768, 32769, // 320-327
+32766, 32770, 32766, 32769, 32769, 32766, 32771, 32764, // 328-335
+32772, 32764, 32771, 32768, 32765, 32771, 32765, 32771, // 336-343
+32767, 32767, 32768, 32770, 32765, 32772, 32763, 32772, // 344-351
+32766, 32770, 32765, 32771, 32765, 32771, 32766, 32769, // 352-359
+32767, 32769, 32767, 32769, 32768, 32768, 32767, 32769, // 360-367
+32767, 32769, 32768, 32768, 32768, 32767, 32769, 32767, // 368-375
+32770, 32766, 32769, 32767, 32769, 32768, 32767, 32769, // 376-383
+32767, 32769, 32768, 32768, 32767, 32770, 32765, 32772, // 384-391
+32764, 32772, 32764, 32771, 32766, 32769, 32768, 32767, // 392-399
+32770, 32765, 32772, 32764, 32770, 32768, 32768, 32768, // 400-407
+32767, 32769, 32767, 32770, 32766, 32769, 32768, 32767, // 408-415
+32769, 32768, 32768, 32768, 32768, 32767, 32769, 32768, // 416-423
+32767, 32770, 32765, 32771, 32765, 32771, 32766, 32769, // 424-431
+32767, 32770, 32765, 32771, 32766, 32769, 32767, 32770, // 432-439
+32765, 32771, 32765, 32771, 32765, 32772, 32763, 32772, // 440-447
+32766, 32768, 32770, 32765, 32770, 32767, 32768, 32769, // 448-455
+32768, 32767, 32769, 32767, 32769, 32768, 32767, 32770, // 456-463
+32765, 32772, 32764, 32770, 32768, 32767, 32770, 32766, // 464-471
+32769, 32768, 32768, 32768, 32768, 32768, 32768, 32768, // 472-479
+32768, 32768, 32768, 32768, 32768, 32767, 32770, 32766, // 480-487
+32770, 32766, 32770, 32766, 32769, 32768, 32768, 32768, // 488-495
+32768, 32767, 32769, 32768, 32768, 32767, 32769, 32767, // 496-503
+32770, 32766, 32769, 32767, 32768, 32770, 32765, 32771, // 504-511
+32765, 32770, 32767, 32768, 32769, 32767, 32769, 32767, // 512-519
+32768, 32769, 32767, 32770, 32766, 32768, 32769, 32767, // 520-527
+32769, 32768, 32766, 32770, 32767, 32768, 32769, 32766, // 528-535
+32770, 32767, 32768, 32768, 32769, 32766, 32771, 32765, // 536-543
+32770, 32767, 32769, 32767, 32769, 32767, 32769, 32767, // 544-551
+32769, 32767, 32769, 32768, 32767, 32769, 32767, 32769, // 552-559
+32767, 32770, 32765, 32771, 32765, 32770, 32768, 32767, // 560-567
+32769, 32767, 32769, 32767, 32770, 32765, 32772, 32764, // 568-575
+32770, 32768, 32767, 32769, 32768, 32766, 32771, 32765, // 576-583
+32771, 32766, 32769, 32767, 32769, 32768, 32768, 32768, // 584-591
+32767, 32770, 32766, 32770, 32766, 32769, 32769, 32766, // 592-599
+32770, 32765, 32772, 32765, 32770, 32767, 32767, 32770, // 600-607
+32767, 32769, 32767, 32768, 32768, 32769, 32768, 32767, // 608-615
+32768, 32768, 32769, 32767, 32770, 32764, 32772, 32765, // 616-623
+32770, 32768, 32767, 32769, 32767, 32768, 32770, 32766, // 624-631
+32769, 32767, 32768, 32769, 32768, 32766, 32770, 32766, // 632-639
+32770, 32767, 32768, 32768, 32768, 32768, 32768, 32768, // 640-647
+32768, 32768, 32768, 32768, 32768, 32767, 32770, 32766, // 648-655
+32769, 32768, 32767, 32769, 32768, 32767, 32769, 32768, // 656-663
+32767, 32770, 32765, 32772, 32763, 32773, 32764, 32771, // 664-671
+32766, 32769, 32768, 32768, 32768, 32767, 32769, 32767, // 672-679
+32771, 32764, 32771, 32766, 32768, 32770, 32765, 32771, // 680-687
+32766, 32768, 32770, 32764, 32773, 32765, 32769, 32768, // 688-695
+32768, 32767, 32772, 32763, 32772, 32765, 32770, 32767, // 696-703
+32769, 32767, 32768, 32768, 32769, 32767, 32768, 32768, // 704-711
+32768, 32768, 32768, 32768, 32768, 32769, 32766, 32770, // 712-719
+32766, 32770, 32767, 32767, 32771, 32764, 32772, 32765, // 720-727
+32770, 32767, 32768, 32768, 32768, 32769, 32765, 32772, // 728-735
+32766, 32768, 32770, 32765, 32771, 32766, 32768, 32769, // 736-743
+32769, 32767, 32771, 32765, 32771, 32766, 32770, 32767, // 744-751
+32769, 32767, 32769, 32769, 32767, 32769, 32768, 32768, // 752-759
+32770, 32768, 32768, 32768, 32769, 32766, 32770, 32766, // 760-767
+32771, 32767, 32770, 32766, 32770, 32767, 32769, 32768, // 768-775
+32768, 32768, 32769, 32768, 32768, 32769, 32769, 32766, // 776-783
+32768, 32766, 32770, 32769, 32768, 32769, 32767, 32768, // 784-791
+32767, 32765, 32771, 32763, 32774, 32763, 32770, 32765, // 792-799
+32772, 32766, 32771, 32764, 32770, 32768, 32767, 32772, // 800-807
+32770, 32773, 32769, 32770, 32767, 32771, 32768, 32771, // 808-815
+32769, 32769, 32770, 32767, 32771, 32771, 32768, 32776, // 816-823
+32772, 32772, 32769, 32770, 32768, 32765, 32771, 32768, // 824-831
+32773, 32772, 32769, 32769, 32771, 32766, 32764, 32767, // 832-839
+32762, 32769, 32770, 32764, 32774, 32778, 32772, 32768, // 840-847
+32753, 32766, 32775, 32773, 32764, 32766, 32779, 32771, // 848-855
+32770, 32775, 32773, 32777, 32769, 32767, 32772, 32783, // 856-863
+32783, 32775, 32776, 32771, 32763, 32761, 32773, 32772, // 864-871
+32777, 32779, 32762, 32766, 32752, 32754, 32765, 32775, // 872-879
+32773, 32771, 32772, 32753, 32743, 32771, 32773, 32772, // 880-887
+32781, 32781, 32761, 32752, 32770, 32778, 32782, 32777, // 888-895
+32769, 32746, 32753, 32758, 32771, 32800, 32773, 32757, // 896-903
+32771, 32751, 32772, 32771, 32755, 32771, 32773, 32772, // 904-911
+32772, 32778, 32768, 32787, 32774, 32759, 32776, 32752, // 912-919
+32758, 32758, 32740, 32779, 32793, 32783, 32777, 32746, // 920-927
+32728, 32760, 32793, 32792, 32800, 32766, 32762, 32753, // 928-935
+32770, 32769, 32762, 32793, 32747, 32711, 32749, 32773, // 936-943
+32787, 32780, 32762, 32737, 32716, 32743, 32741, 32739, // 944-951
+32771, 32771, 32785, 32779, 32748, 32777, 32787, 32764, // 952-959
+32733, 32768, 32794, 32776, 32748, 32738, 32769, 32776, // 960-967
+32768, 32741, 32767, 32838, 32804, 32771, 32791, 32830, // 968-975
+32807, 32757, 32762, 32803, 32853, 32842, 32781, 32778, // 976-983
+32744, 32729, 32793, 32795, 32761, 32772, 32798, 32791, // 984-991
+32712, 32720, 32845, 32883, 32777, 32741, 32835, 32833, // 992-999
+32778, 32785, 32793, 32785, 32708, 32660, 32721, 32866, // 1000-1007
+32940, 32860, 32682, 32554, 32553, 32674, 32728, 32690, // 1008-1015
+32692, 32831, 32901, 32866, 32989, 33163, 33120, 32915, // 1016-1023
+32733, 32819, 32870, 32764, 32785, 32826, 32775, 32665, // 1024-1031
+32676, 32678, 32716, 32898, 33033, 32979, 32725, 32811, // 1032-1039
+33086, 33019, 32908, 32863, 33010, 32975, 32530, 32453, // 1040-1047
+32730, 32918, 32763, 32434, 32496, 32804, 32830, 32674, // 1048-1055
+32973, 33471, 33324, 32806, 32582, 32741, 32841, 32836, // 1056-1063
+32905, 32943, 32764, 32088, 31692, 31986, 32361, 32669, // 1064-1071
+32762, 32655, 32429, 32347, 32654, 33033, 33429, 33653, // 1072-1079
+33610, 33237, 32356, 31713, 31723, 32025, 32245, 32411, // 1080-1087
+32871, 33278, 33095, 32737, 32750, 33019, 32981, 32578, // 1088-1095
+32438, 32761, 33026, 33053, 33009, 33114, 33220, 32701, // 1096-1103
+32032, 31929, 32170, 32573, 32646, 32460, 32662, 32882, // 1104-1111
+32589, 32070, 32111, 32715, 32929, 32562, 32607, 33283, // 1112-1119
+33672, 33260, 32707, 32615, 32267, 31172, 30440, 30858, // 1120-1127
+31797, 32297, 32594, 33228, 33517, 33021, 32640, 33004, // 1128-1135
+33385, 33142, 33027, 33184, 32679, 31511, 31044, 31831, // 1136-1143
+32407, 32039, 32063, 32842, 32775, 31551, 31273, 32784, // 1144-1151
+34071, 33717, 33095, 33504, 33633, 32295, 31179, 31980, // 1152-1159
+33173, 32578, 31426, 31662, 32457, 32053, 31249, 31819, // 1160-1167
+32918, 32784, 32031, 32195, 33139, 33448, 33149, 33145, // 1168-1175
+32962, 31952, 31187, 31597, 32466, 33078, 33520, 33484, // 1176-1183
+32190, 29856, 28473, 29705, 32195, 34061, 35559, 36839, // 1184-1191
+36017, 32335, 28380, 27229, 28729, 30552, 32552, 35682, // 1192-1199
+37783, 36345, 33066, 30568, 28943, 27958, 28364, 30406, // 1200-1207
+33133, 35121, 36000, 35928, 34540, 32576, 31376, 30205, // 1208-1215
+29004, 29830, 32100, 33144, 32991, 33033, 33401, 33465, // 1216-1223
+32153, 30485, 31279, 33446, 33658, 32861, 33410, 34276, // 1224-1231
+33306, 30892, 29989, 31582, 31936, 30111, 30481, 33193, // 1232-1239
+34131, 33802, 34307, 34151, 32531, 31287, 31782, 33055, // 1240-1247
+32904, 31653, 32017, 33221, 32105, 30122, 31250, 34055, // 1248-1255
+33374, 29870, 30059, 34269, 35211, 31791, 31265, 35049, // 1256-1263
+35149, 28952, 26078, 31700, 36361, 33980, 32194, 34746, // 1264-1271
+34682, 28786, 23350, 25376, 32110, 34679, 34746, 39263, // 1272-1279
+41292, 33820, 26081, 25385, 27952, 31054, 34071, 36674, // 1280-1287
+38849, 37636, 33748, 31384, 28339, 24920, 26878, 30227, // 1288-1295
+30783, 33914, 37436, 36418, 36494, 38321, 36419, 34208, // 1296-1303
+34461, 33738, 31888, 30664, 31305, 32901, 29637, 24483, // 1304-1311
+28111, 35408, 35494, 33118, 33688, 33849, 32841, 31579, // 1312-1319
+31335, 35108, 39672, 39732, 37269, 34058, 28928, 24271, // 1320-1327
+22580, 24472, 29984, 35552, 37263, 35367, 31889, 29107, // 1328-1335
+27394, 25817, 27089, 32717, 37710, 39400, 40709, 42503, // 1336-1343
+42162, 37947, 32456, 28887, 25022, 20771, 21440, 25247, // 1344-1351
+27915, 31439, 33800, 32978, 35324, 40018, 40203, 39019, // 1352-1359
+39673, 38997, 37766, 36300, 32798, 29427, 26269, 23782, // 1360-1367
+25572, 26638, 24245, 26827, 31975, 31965, 33505, 38734, // 1368-1375
+39564, 38138, 38439, 37124, 35506, 35176, 33563, 32572, // 1376-1383
+32304, 29866, 28103, 27548, 26018, 25896, 26723, 26915, // 1384-1391
+28553, 29444, 29247, 34055, 39973, 36737, 30234, 33232, // 1392-1399
+40340, 38151, 30252, 30305, 36991, 35906, 25879, 19988, // 1400-1407
+21959, 25850, 29583, 33604, 36129, 34245, 28915, 25049, // 1408-1415
+24244, 25285, 28528, 33150, 36183, 36195, 34834, 33718, // 1416-1423
+31699, 26645, 20815, 20355, 23184, 24391, 28352, 33287, // 1424-1431
+34077, 36345, 38684, 36951, 36637, 36304, 32601, 29762, // 1432-1439
+28823, 28343, 27969, 26586, 23066, 21845, 28662, 34717, // 1440-1447
+31807, 29693, 34889, 40134, 38235, 34567, 39002, 45766, // 1448-1455
+45696, 41618, 37372, 32090, 23300, 16019, 18797, 26955, // 1456-1463
+31893, 33022, 33016, 32276, 28604, 24372, 22804, 25020, // 1464-1471
+32136, 38461, 42219, 47118, 49512, 48392, 43947, 34948, // 1472-1479
+25481, 17711, 13831, 14390, 16380, 20323, 23540, 27016, // 1480-1487
+32851, 35103, 37583, 42415, 43400, 44270, 45602, 44566, // 1488-1495
+41048, 34163, 30375, 28334, 22865, 20488, 20293, 20953, // 1496-1503
+25040, 25923, 26877, 34869, 39582, 37797, 42250, 48024, // 1504-1511
+41084, 35314, 38945, 37528, 34715, 33214, 28144, 30004, // 1512-1519
+30939, 21216, 19182, 26139, 29572, 31808, 29132, 23723, // 1520-1527
+37284, 54439, 35241, 13404, 35108, 54765, 36884, 19926, // 1528-1535
+30698, 49725, 43508, 20419, 17928, 27401, 26359, 24530, // 1536-1543
+30859, 39974, 40363, 32317, 27803, 27038, 27194, 28033, // 1544-1551
+30305, 35720, 38256, 38210, 37847, 32263, 26825, 23905, // 1552-1559
+19023, 16172, 18760, 25199, 30177, 33257, 38792, 42163, // 1560-1567
+41334, 39213, 36603, 35014, 29888, 22923, 22976, 25544, // 1568-1575
+22746, 17631, 20013, 27567, 29152, 28569, 28893, 31100, // 1576-1583
+37479, 34750, 28267, 35166, 44148, 46443, 43388, 36275, // 1584-1591
+29513, 19295, 12114, 15896, 22079, 29423, 34561, 34999, // 1592-1599
+36289, 32048, 26001, 25809, 25416, 30035, 38936, 42506, // 1600-1607
+47273, 52275, 49283, 43609, 37477, 27890, 20573, 17306, // 1608-1615
+13333, 14746, 21872, 24376, 27252, 33471, 37244, 40836, // 1616-1623
+42631, 43046, 44759, 43932, 42621, 40048, 35559, 31485, // 1624-1631
+24241, 22133, 25408, 21801, 20680, 25525, 27496, 29582, // 1632-1639
+35254, 44061, 45643, 41036, 46250, 48317, 40396, 38766, // 1640-1647
+38214, 35658, 33415, 27680, 28040, 29209, 22765, 22411, // 1648-1655
+24839, 26634, 34600, 29444, 19823, 40727, 54291, 27703, // 1656-1663
+20450, 46606, 49281, 29916, 25068, 38689, 48460, 34377, // 1664-1671
+20320, 28979, 32612, 19586, 16751, 32517, 43045, 36351, // 1672-1679
+30865, 32000, 30579, 28384, 25672, 28065, 36031, 37378, // 1680-1687
+37848, 38365, 31319, 27142, 24199, 17956, 19111, 23664, // 1688-1695
+25586, 28970, 33934, 40319, 42591, 39421, 41458, 44059, // 1696-1703
+37457, 30237, 26732, 24790, 27590, 26681, 19101, 21020, // 1704-1711
+29645, 31549, 30525, 30764, 33682, 35418, 30592, 30556, // 1712-1719
+37959, 42090, 44058, 44132, 39855, 30739, 16811, 9378, // 1720-1727
+12906, 20897, 31406, 36627, 34332, 32723, 29868, 24910, // 1728-1735
+23202, 25910, 33025, 40547, 44851, 49070, 53023, 50724, // 1736-1743
+41491, 33094, 28821, 22793, 14954, 13260, 18634, 23256, // 1744-1751
+23946, 26454, 34008, 40503, 41181, 41477, 43533, 41803, // 1752-1759
+39561, 40434, 39093, 36443, 33789, 28305, 23316, 19409, // 1760-1767
+17215, 21397, 24975, 23399, 27168, 36106, 39573, 40016, // 1768-1775
+43296, 45230, 43581, 41430, 39705, 38138, 34773, 30112, // 1776-1783
+30184, 31983, 28486, 25894, 25743, 23035, 27579, 36099, // 1784-1791
+28991, 24431, 42611, 49735, 33135, 31385, 46003, 44922, // 1792-1799
+32432, 29963, 37138, 41485, 37275, 32426, 31354, 23834, // 1800-1807
+14602, 22122, 38157, 43921, 42590, 38930, 31439, 25271, // 1808-1815
+21673, 20279, 27282, 37225, 39508, 39860, 41170, 36140, // 1816-1823
+28984, 23977, 17147, 15081, 20306, 21231, 21287, 30694, // 1824-1831
+39412, 40490, 42404, 43669, 38992, 35471, 32841, 24395, // 1832-1839
+20261, 26416, 25908, 16279, 18138, 29782, 30556, 24727, // 1840-1847
+29299, 37970, 36123, 28836, 30064, 38683, 43389, 43604, // 1848-1855
+44376, 39872, 26714, 15049, 10812, 12419, 21497, 33307, // 1856-1863
+38110, 37063, 33393, 26221, 21693, 22495, 23412, 28245, // 1864-1871
+39720, 47951, 50675, 52633, 50361, 43912, 38280, 31294, // 1872-1879
+22752, 17266, 15363, 17252, 20830, 21928, 26388, 37131, // 1880-1887
+43205, 42719, 43458, 43382, 41733, 42729, 42569, 39698, // 1888-1895
+37583, 32301, 23297, 17754, 16600, 18686, 23384, 25948, // 1896-1903
+28399, 33970, 35643, 35268, 41222, 45699, 43912, 44924, // 1904-1911
+46724, 42100, 35256, 30501, 29772, 31217, 26135, 20323, // 1912-1919
+25426, 28055, 22267, 27057, 36223, 30157, 26078, 38088, // 1920-1927
+43757, 35502, 32992, 40698, 45699, 40645, 31814, 32644, // 1928-1935
+42852, 45860, 34952, 21476, 17438, 24210, 33232, 39167, // 1936-1943
+46272, 49890, 39060, 23071, 19303, 24953, 30423, 36665, // 1944-1951
+43142, 46198, 46527, 42381, 33998, 29072, 27499, 21951, // 1952-1959
+17381, 21226, 25389, 26666, 33288, 40650, 42052, 43773, // 1960-1967
+44679, 37916, 30392, 26749, 20942, 17329, 19406, 17659, // 1968-1975
+16453, 24359, 29418, 26951, 29431, 37131, 39500, 35762, // 1976-1983
+32601, 35104, 41296, 43487, 42780, 41450, 31958, 18839, // 1984-1991
+13620, 13772, 17636, 28493, 37938, 38595, 36274, 31868, // 1992-1999
+25554, 24977, 27681, 29927, 37044, 46170, 49838, 50301, // 2000-2007
+48959, 43404, 38132, 33845, 26614, 20030, 16699, 16348, // 2008-2015
+18930, 20944, 23114, 31675, 42713, 46882, 46074, 44019, // 2016-2023
+41846, 41646, 40204, 37071, 37093, 36296, 29752, 23069, // 2024-2031
+20591, 21042, 23493, 25802, 28468, 33600, 35851, 33692, // 2032-2039
+37070, 43060, 41978, 41609, 44124, 40950, 34541, 31765, // 2040-2047
+31640, 29603, 27715, 26661, 25342, 25453, 24029, 24984, // 2048-2055
+30997, 30678, 25100, 30472, 43220, 41093, 27697, 28087, // 2056-2063
+40196, 40183, 28314, 27271, 40240, 47817, 38188, 22636, // 2064-2071
+16111, 17667, 23539, 33423, 47389, 54627, 43550, 26563, // 2072-2079
+16950, 18498, 27575, 36015, 45345, 50488, 48137, 44194, // 2080-2087
+37139, 27794, 22650, 23466, 20064, 15818, 26738, 37535, // 2088-2095
+38820, 45859, 52427, 51282, 48675, 43353, 36637, 32088, // 2096-2103
+26559, 21371, 21843, 21468, 16089, 18456, 27265, 28486, // 2104-2111
+27799, 34196, 41344, 39873, 31852, 29635, 37690, 46342, // 2112-2119
+48107, 47587, 43694, 30042, 16307, 13046, 17139, 24696, // 2120-2127
+33020, 36417, 34943, 31569, 24932, 21240, 25807, 30854, // 2128-2135
+34157, 41081, 49281, 53378, 53764, 51060, 46595, 39752, // 2136-2143
+27472, 17376, 13432, 11445, 12455, 15608, 20966, 28967, // 2144-2151
+35858, 40638, 45990, 48579, 44157, 43068, 46623, 44106, // 2152-2159
+39282, 34814, 29466, 26338, 21596, 16505, 20875, 27610, // 2160-2167
+26423, 26808, 32362, 35896, 37152, 39088, 42880, 44552, // 2168-2175
+42356, 38341, 33914, 32454, 32726, 30134, 26641, 26610, // 2176-2183
+25246, 21849, 23204, 25487, 27041, 27133, 23556, 26112, // 2184-2191
+36217, 42331, 37115, 28302, 30995, 37885, 33291, 27204, // 2192-2199
+35844, 49586, 48869, 31591, 15758, 14545, 16312, 20035, // 2200-2207
+35858, 50324, 49032, 31806, 14102, 12226, 18115, 24695, // 2208-2215
+34712, 45181, 50255, 46044, 38024, 31218, 24201, 20136, // 2216-2223
+18635, 15307, 17003, 26572, 33298, 38541, 47426, 51096, // 2224-2231
+48787, 46540, 41525, 34135, 29120, 26977, 26843, 26740, // 2232-2239
+24776, 23302, 25269, 27907, 29495, 35628, 43711, 45430, // 2240-2247
+41619, 34874, 32947, 39934, 45714, 47956, 46408, 37139, // 2248-2255
+24641, 14718, 13746, 21330, 29845, 35910, 36520, 33649, // 2256-2263
+28987, 23000, 22894, 27159, 31773, 38382, 44544, 49459, // 2264-2271
+52736, 53407, 51839, 45368, 36030, 28423, 20647, 13622, // 2272-2279
+12177, 14865, 18157, 23804, 32433, 38430, 41351, 44887, // 2280-2287
+45346, 44557, 47556, 47446, 43576, 42116, 35233, 23461, // 2288-2295
+21759, 22732, 19280, 21258, 24446, 27424, 29481, 28191, // 2296-2303
+35389, 43708, 42773, 41533, 43496, 44565, 37853, 30930, // 2304-2311
+36009, 42004, 36689, 28962, 27837, 25731, 19983, 19698, // 2312-2319
+26699, 28383, 22072, 25304, 34781, 38430, 37819, 31567, // 2320-2327
+29741, 35101, 35086, 33757, 38913, 47106, 51490, 44020, // 2328-2335
+26023, 15119, 14228, 15669, 27818, 43788, 47980, 40351, // 2336-2343
+24916, 13816, 14155, 19147, 27057, 38259, 45126, 46443, // 2344-2351
+43296, 32906, 24722, 21238, 17468, 15736, 15584, 20752, // 2352-2359
+29183, 34642, 40598, 46405, 47304, 44142, 43405, 39919, // 2360-2367
+29756, 25150, 25561, 24307, 21566, 18929, 19478, 19800, // 2368-2375
+19629, 24977, 34222, 41120, 43061, 38776, 33945, 38169, // 2376-2383
+45409, 48419, 49791, 46654, 36109, 22294, 13844, 16665, // 2384-2391
+26741, 34087, 35951, 35857, 31155, 24283, 20931, 21279, // 2392-2399
+27523, 35858, 42191, 49005, 54329, 56276, 55716, 51121, // 2400-2407
+41395, 32786, 26297, 16234, 12218, 14418, 14030, 19197, // 2408-2415
+26727, 33972, 40500, 40732, 45308, 45618, 41010, 46674, // 2416-2423
+47877, 43146, 37559, 31569, 28546, 22636, 22048, 23388, // 2424-2431
+23253, 25299, 23859, 30385, 37336, 37675, 43009, 45834, // 2432-2439
+45758, 43963, 40914, 39983, 38438, 40231, 41346, 37388, // 2440-2447
+32927, 27660, 21982, 21535, 24326, 24316, 26208, 28961, // 2448-2455
+31204, 38078, 43732, 37669, 28172, 33649, 39734, 37260, // 2456-2463
+40278, 44662, 51638, 51178, 32778, 18764, 16690, 19690, // 2464-2471
+24905, 33662, 44676, 43507, 28765, 16905, 16841, 21448, // 2472-2479
+25472, 33020, 43991, 50225, 46786, 39006, 31111, 25566, // 2480-2487
+19526, 12069, 11897, 16010, 22725, 32283, 38776, 42992, // 2488-2495
+43773, 43653, 44636, 41054, 34174, 28255, 23490, 20666, // 2496-2503
+19134, 15943, 15025, 17671, 20834, 23123, 25799, 35777, // 2504-2511
+44144, 40149, 33070, 36372, 46869, 48402, 47163, 46554, // 2512-2519
+37382, 22237, 8518, 10122, 20346, 28953, 35368, 35551, // 2520-2527
+34758, 28020, 23171, 25067, 26070, 34398, 40990, 47943, // 2528-2535
+55190, 54955, 57963, 53583, 44207, 36674, 26546, 21987, // 2536-2543
+17264, 14918, 17064, 17301, 21565, 28163, 34509, 41253, // 2544-2551
+45136, 43437, 41370, 42043, 41238, 40324, 35841, 31494, // 2552-2559
+31253, 26593, 23327, 22682, 20162, 20790, 20931, 24805, // 2560-2567
+35694, 38255, 37173, 43015, 45157, 41860, 39196, 39864, // 2568-2575
+40849, 37666, 35270, 32923, 30996, 28979, 22100, 20301, // 2576-2583
+21536, 17115, 19814, 28572, 28240, 32447, 45750, 41145, // 2584-2591
+27995, 30275, 37085, 39091, 37925, 41013, 51877, 53080, // 2592-2599
+38031, 24933, 21105, 21040, 26746, 37960, 47051, 45228, // 2600-2607
+35127, 26827, 20718, 21679, 29536, 35792, 42466, 49009, // 2608-2615
+52263, 48616, 37159, 29507, 26429, 16839, 9834, 13915, // 2616-2623
+17511, 24482, 36873, 43577, 45618, 44013, 44467, 46364, // 2624-2631
+41804, 35812, 30818, 27071, 21806, 15918, 13758, 13457, // 2632-2639
+18860, 24985, 28046, 34892, 43023, 44802, 37455, 32706, // 2640-2647
+38783, 45719, 45437, 40803, 36371, 27467, 12817, 6549, // 2648-2655
+15102, 25360, 31138, 32499, 30394, 30196, 26217, 23195, // 2656-2663
+25179, 27583, 36644, 42229, 45012, 51593, 54120, 55162, // 2664-2671
+48834, 40282, 34205, 24927, 21341, 19882, 20248, 21954, // 2672-2679
+20477, 24103, 31061, 37669, 40482, 41843, 45931, 46500, // 2680-2687
+44752, 42306, 39656, 35129, 29614, 29251, 28913, 26620, // 2688-2695
+23692, 21315, 23510, 28586, 33491, 35378, 37895, 42553, // 2696-2703
+41714, 37034, 35831, 37663, 38112, 37047, 34726, 30327, // 2704-2711
+26988, 26107, 25243, 25406, 26090, 23852, 25477, 31278, // 2712-2719
+31068, 32284, 42014, 46002, 35259, 26950, 31941, 35461, // 2720-2727
+33537, 34517, 42093, 50742, 44412, 26854, 17739, 17970, // 2728-2735
+21829, 31799, 42075, 43820, 37740, 26187, 16050, 14981, // 2736-2743
+22495, 32581, 40917, 47552, 49004, 45198, 37250, 28825, // 2744-2751
+27029, 24343, 20496, 19715, 17094, 19475, 29271, 40288, // 2752-2759
+46095, 45066, 45889, 48560, 47035, 38540, 30258, 29145, // 2760-2767
+25529, 18398, 12695, 10717, 16943, 23052, 26445, 34429, // 2768-2775
+44420, 50423, 47509, 39164, 37097, 42439, 45487, 43090, // 2776-2783
+38223, 31058, 21888, 12362, 10182, 19556, 29107, 32472, // 2784-2791
+31277, 28895, 29729, 28619, 27084, 31778, 35563, 38052, // 2792-2799
+44231, 46584, 45545, 47986, 48496, 42999, 32141, 22605, // 2800-2807
+21841, 19870, 14930, 16266, 19547, 21598, 27022, 35890, // 2808-2815
+38916, 38429, 43645, 46026, 43816, 41248, 37611, 35118, // 2816-2823
+30709, 26851, 26537, 27550, 28657, 25885, 24666, 29359, // 2824-2831
+33184, 34557, 37993, 42515, 44125, 42800, 38188, 36066, // 2832-2839
+38168, 37185, 35694, 33091, 28228, 25106, 24260, 27374, // 2840-2847
+27864, 24761, 27956, 34720, 34693, 29343, 34210, 45791, // 2848-2855
+44461, 34406, 30288, 34719, 37799, 34012, 35991, 46225, // 2856-2863
+48912, 37596, 21396, 15098, 22329, 31214, 38662, 46468, // 2864-2871
+44440, 32884, 21845, 15656, 19638, 30160, 39841, 49232, // 2872-2879
+52933, 46679, 37173, 30288, 25883, 23145, 22538, 22726, // 2880-2887
+22061, 22772, 29325, 38195, 42832, 45259, 47134, 48140, // 2888-2895
+45630, 38266, 31950, 25975, 22926, 25747, 21967, 12064, // 2896-2903
+13007, 24927, 28569, 24027, 31299, 47217, 54873, 47783, // 2904-2911
+36928, 37530, 40748, 38792, 37954, 35052, 25805, 15796, // 2912-2919
+12070, 15511, 23936, 31903, 33686, 32785, 32134, 30316, // 2920-2927
+29773, 31741, 34644, 39569, 44428, 45354, 44033, 42026, // 2928-2935
+40874, 38913, 32032, 24902, 20841, 16227, 10553, 9332, // 2936-2943
+13950, 18282, 23058, 31000, 36964, 38461, 38961, 40208, // 2944-2951
+40650, 39472, 36415, 32949, 31192, 28689, 23122, 19151, // 2952-2959
+20964, 24701, 27481, 29414, 30672, 34036, 38586, 41066, // 2960-2967
+41941, 43473, 43488, 39677, 36308, 33744, 32052, 32300, // 2968-2975
+29794, 26110, 26491, 28370, 25233, 21771, 26535, 33400, // 2976-2983
+34573, 32028, 35438, 44484, 44956, 37547, 35260, 41226, // 2984-2991
+43103, 36758, 36146, 41433, 43431, 38903, 29908, 23537, // 2992-2999
+19823, 21416, 32262, 43020, 44301, 36968, 28446, 21229, // 3000-3007
+17458, 24508, 37510, 45277, 47781, 46878, 41009, 31784, // 3008-3015
+22829, 18687, 20724, 22391, 21140, 24287, 34049, 40728, // 3016-3023
+41154, 43315, 48346, 50734, 47793, 42502, 37191, 28611, // 3024-3031
+22184, 25606, 27604, 16031, 8821, 23079, 34146, 24333, // 3032-3039
+19223, 36804, 56676, 53748, 37291, 32808, 40543, 44885, // 3040-3047
+44725, 44953, 38987, 24226, 11676, 11458, 22785, 34715, // 3048-3055
+37749, 34161, 33605, 35086, 30209, 25403, 30519, 40553, // 3056-3063
+47026, 48381, 47353, 46082, 43895, 39847, 35085, 30606, // 3064-3071
+26876, 22689, 16707, 13902, 17793, 22710, 24363, 26997, // 3072-3079
+32986, 36777, 36443, 37377, 40195, 39469, 35677, 33572, // 3080-3087
+32186, 28720, 23454, 20115, 20988, 21247, 19862, 22209, // 3088-3095
+27286, 29986, 31440, 35151, 39003, 38757, 35370, 34120, // 3096-3103
+35898, 35515, 31637, 29614, 29986, 27462, 25076, 27436, // 3104-3111
+28080, 24033, 22728, 27057, 30635, 30134, 30496, 35464, // 3112-3119
+39443, 35876, 31231, 34921, 41171, 40087, 35046, 33780, // 3120-3127
+36692, 40758, 40577, 32521, 23872, 22489, 26881, 32636, // 3128-3135
+37325, 39697, 38230, 31829, 24663, 25124, 32541, 37826, // 3136-3143
+40481, 42640, 39698, 32429, 27201, 24483, 23565, 25488, // 3144-3151
+27594, 27536, 28360, 33168, 39621, 44851, 49028, 49054, // 3152-3159
+44364, 40857, 39742, 36260, 27940, 23792, 28667, 26161, // 3160-3167
+14051, 17433, 36298, 37745, 20174, 20866, 45048, 58759, // 3168-3175
+47781, 31258, 28767, 35766, 41701, 47442, 47196, 33123, // 3176-3183
+15617, 9457, 15341, 25910, 34853, 37402, 34446, 30858, // 3184-3191
+28437, 28632, 31775, 35590, 40363, 46268, 49540, 47570, // 3192-3199
+44797, 46025, 45515, 39479, 33364, 28222, 23199, 19299, // 3200-3207
+17129, 19086, 22843, 25263, 29540, 34497, 35956, 37201, // 3208-3215
+40240, 39686, 36361, 36072, 37172, 35978, 32049, 27676, // 3216-3223
+24476, 21469, 19914, 22077, 27314, 31680, 32570, 33364, // 3224-3231
+35692, 36544, 36170, 36247, 35479, 34829, 34824, 32793, // 3232-3239
+30848, 28898, 25273, 23968, 23930, 22521, 22339, 24167, // 3240-3247
+25257, 25830, 28596, 30922, 34093, 36837, 31461, 28486, // 3248-3255
+36837, 43138, 38782, 31476, 30803, 35591, 39970, 39769, // 3256-3263
+33989, 27781, 23650, 23205, 29233, 36697, 39415, 37725, // 3264-3271
+32693, 27747, 29047, 34044, 38393, 42140, 42139, 37905, // 3272-3279
+32178, 28228, 26597, 26316, 28440, 27687, 26852, 32321, // 3280-3287
+36732, 37701, 38986, 44280, 48781, 44620, 39302, 35916, // 3288-3295
+32664, 29005, 24534, 26476, 26671, 18080, 18621, 30901, // 3296-3303
+33015, 23332, 26356, 44327, 56181, 49885, 31968, 23445, // 3304-3311
+28219, 36775, 46840, 49879, 40402, 23099, 8496, 7453, // 3312-3319
+18341, 32135, 39324, 39001, 35673, 28559, 23050, 24695, // 3320-3327
+30562, 37807, 43265, 45084, 45315, 45090, 42532, 38630, // 3328-3335
+36485, 33673, 28804, 24687, 21656, 19124, 17856, 20321, // 3336-3343
+27554, 34546, 38204, 39904, 40743, 41370, 40465, 40047, // 3344-3351
+41572, 41493, 39992, 35757, 28982, 25104, 24125, 24037, // 3352-3359
+24774, 28827, 35271, 37689, 36731, 35460, 35701, 39136, // 3360-3367
+41892, 40820, 39430, 38573, 33481, 28012, 27373, 28907, // 3368-3375
+29139, 23489, 18758, 22060, 24636, 22990, 23629, 27939, // 3376-3383
+26933, 25678, 31468, 28375, 23386, 31775, 39368, 35774, // 3384-3391
+26499, 25833, 33740, 37921, 37160, 32003, 28285, 25476, // 3392-3399
+21552, 27385, 36023, 38362, 37133, 31654, 30296, 33695, // 3400-3407
+33154, 35772, 42618, 44132, 39320, 30485, 26259, 27562, // 3408-3415
+25965, 27301, 29808, 29877, 32219, 32040, 34311, 40908, // 3416-3423
+44545, 45016, 41432, 38792, 35591, 31248, 30367, 26912, // 3424-3431
+26638, 27507, 21032, 21647, 32320, 37047, 31053, 31893, // 3432-3439
+47266, 56074, 47087, 31055, 24048, 29232, 37219, 45766, // 3440-3447
+49853, 39512, 18832, 5730, 9384, 22696, 35675, 40645, // 3448-3455
+39561, 34920, 27058, 25143, 29182, 34252, 40409, 44477, // 3456-3463
+45530, 43240, 39801, 38365, 38162, 37761, 32538, 25243, // 3464-3471
+22800, 21454, 19247, 18741, 20207, 25990, 34536, 39160, // 3472-3479
+39559, 39844, 41278, 41807, 39728, 37812, 38927, 39116, // 3480-3487
+33509, 27439, 25675, 24592, 23214, 23811, 28964, 34758, // 3488-3495
+37644, 40783, 40476, 38924, 39988, 40607, 41797, 40220, // 3496-3503
+37458, 33770, 28346, 29119, 27664, 21041, 19818, 23261, // 3504-3511
+26554, 23281, 19611, 27130, 34745, 28345, 25759, 37559, // 3512-3519
+32816, 20356, 33315, 50746, 46604, 24124, 12549, 26990, // 3520-3527
+42720, 47302, 39405, 24181, 13330, 11228, 24673, 40647, // 3528-3535
+43991, 37656, 26868, 23053, 26158, 31172, 38635, 41697, // 3536-3543
+38747, 33438, 29096, 27635, 24898, 21598, 24210, 29994, // 3544-3551
+32600, 32639, 31211, 32941, 38781, 42247, 42642, 41800, // 3552-3559
+41866, 37555, 29260, 27182, 26043, 26399, 28618, 23171, // 3560-3567
+22363, 32895, 37583, 29488, 27266, 42372, 55347, 51842, // 3568-3575
+36893, 24751, 26224, 34743, 44860, 50941, 42173, 23132, // 3576-3583
+9054, 9062, 21501, 34433, 37643, 35803, 32824, 27894, // 3584-3591
+26717, 29158, 34168, 41121, 43522, 43561, 43386, 40989, // 3592-3599
+39493, 38654, 34993, 30084, 27240, 26022, 24308, 20030, // 3600-3607
+19156, 25391, 29154, 32373, 37192, 37580, 40985, 44605, // 3608-3615
+40878, 38995, 39160, 38037, 37650, 32379, 26175, 25392, // 3616-3623
+23273, 23064, 27424, 28293, 29824, 34857, 36139, 35847, // 3624-3631
+39007, 41103, 41794, 41637, 38343, 38520, 34964, 28696, // 3632-3639
+34291, 31723, 20656, 22353, 29035, 31476, 21619, 13820, // 3640-3647
+28658, 43589, 35808, 23295, 31025, 34578, 25736, 40111, // 3648-3655
+57315, 49431, 26895, 9199, 23175, 50361, 58336, 48828, // 3656-3663
+28089, 11076, 10664, 22052, 38306, 50212, 43812, 27474, // 3664-3671
+20842, 21552, 28569, 35570, 35374, 36602, 32359, 24497, // 3672-3679
+23187, 22718, 23392, 25693, 28456, 28787, 27175, 29407, // 3680-3687
+32496, 37666, 40843, 37663, 37354, 36743, 32280, 31465, // 3688-3695
+31069, 24828, 21503, 26724, 29785, 28653, 31066, 33750, // 3696-3703
+28382, 23824, 35389, 51759, 53372, 39765, 24776, 24304, // 3704-3711
+35258, 43377, 45708, 40961, 26226, 12587, 12936, 22917, // 3712-3719
+32215, 34440, 32648, 32818, 31235, 27489, 29079, 36180, // 3720-3727
+39715, 40332, 43512, 45290, 44682, 38794, 31871, 33789, // 3728-3735
+33099, 27618, 26233, 23914, 22481, 24739, 24213, 24869, // 3736-3743
+32206, 36261, 36602, 40265, 41007, 40078, 39702, 38594, // 3744-3751
+38200, 33183, 29509, 31147, 30059, 27246, 25163, 25547, // 3752-3759
+27367, 30253, 35015, 34355, 33473, 39457, 42753, 41877, // 3760-3767
+39146, 36523, 39212, 35895, 32006, 38959, 32410, 20866, // 3768-3775
+24438, 27336, 27617, 19458, 16397, 35977, 41188, 24914, // 3776-3783
+17890, 30936, 42606, 33858, 36854, 51375, 44521, 26998, // 3784-3791
+16265, 25763, 49308, 59757, 50165, 30536, 15911, 12779, // 3792-3799
+22104, 39455, 49682, 44221, 28948, 21267, 24828, 29321, // 3800-3807
+32529, 35366, 37110, 34064, 29520, 27957, 26781, 26361, // 3808-3815
+27787, 32684, 34577, 32187, 31685, 30711, 34646, 38440, // 3816-3823
+35712, 35313, 32906, 29408, 27850, 25143, 23407, 22166, // 3824-3831
+26097, 27871, 24518, 30907, 34453, 25954, 23108, 32359, // 3832-3839
+45384, 47659, 37239, 28984, 28482, 31718, 36667, 41366, // 3840-3847
+39338, 26618, 15524, 18211, 27055, 31289, 31347, 32222, // 3848-3855
+33493, 31945, 31534, 35178, 38094, 38603, 40547, 43391, // 3856-3863
+44379, 41290, 34710, 34593, 36862, 30963, 26125, 24823, // 3864-3871
+25180, 27498, 26515, 25347, 26696, 32937, 37904, 34517, // 3872-3879
+35518, 39018, 37963, 37134, 35340, 34292, 32493, 29962, // 3880-3887
+28927, 26455, 26506, 28326, 28393, 28810, 29655, 30864, // 3888-3895
+31694, 34208, 39700, 42312, 39332, 36897, 37494, 37338, // 3896-3903
+36683, 34944, 31580, 27990, 26683, 29348, 25540, 16499, // 3904-3911
+19737, 31583, 36542, 31657, 22450, 22420, 35779, 39593, // 3912-3919
+34868, 43522, 47174, 36456, 27928, 25397, 34446, 48234, // 3920-3927
+53164, 45456, 28742, 19601, 22013, 30748, 41389, 44308, // 3928-3935
+37696, 27128, 23485, 27982, 32072, 35434, 36600, 34824, // 3936-3943
+32396, 31316, 32212, 31913, 30576, 31712, 35995, 36823, // 3944-3951
+34133, 33133, 33285, 37655, 38475, 33012, 33741, 33851, // 3952-3959
+29660, 27947, 26950, 26522, 25087, 25526, 28936, 30231, // 3960-3967
+32374, 31051, 25389, 28200, 35718, 39342, 38861, 33444, // 3968-3975
+28611, 28011, 31236, 34688, 33434, 30616, 23832, 18338, // 3976-3983
+21780, 24628, 28659, 31161, 26188, 26235, 30657, 33051, // 3984-3991
+33057, 32624, 36385, 38879, 36791, 36831, 41108, 40159, // 3992-3999
+35121, 34106, 31974, 31199, 29707, 26931, 31101, 31262, // 4000-4007
+29476, 32136, 34465, 36680, 32891, 33871, 41343, 38884, // 4008-4015
+36051, 36614, 34537, 33719, 31819, 30069, 32916, 33417, // 4016-4023
+29666, 28108, 27831, 31103, 35203, 34208, 34830, 34307, // 4024-4031
+33713, 36663, 36532, 35562, 32867, 31629, 32824, 30664, // 4032-4039
+30670, 29603, 26020, 21335, 18620, 27700, 35979, 34848, // 4040-4047
+29306, 21360, 22336, 34225, 41550, 36739, 34123, 37607, // 4048-4055
+36946, 35894, 31646, 30303, 41802, 47462, 40816, 31970, // 4056-4063
+26011, 26431, 30094, 35370, 40649, 37384, 26843, 22278, // 4064-4071
+25982, 31752, 35218, 32832, 30711, 31737, 32090, 32301, // 4072-4079
+31807, 33386, 35428, 34395, 34444, 35103, 35744, 36926, // 4080-4087
+37115, 36269, 34185, 32546, 32343, 31049, 29350, 30412, // 4088-4095
+29656, 29694, 32870, 27514, 27353, 38366, 37587, 31838, // 4096-4103
+32361, 36121, 40505, 37446, 33076, 32548, 32307, 31942, // 4104-4111
+30608, 33628, 33352, 24852, 22532, 24146, 25440, 30211, // 4112-4119
+32604, 32256, 30822, 29066, 30653, 32259, 34102, 37496, // 4120-4127
+37488, 36033, 36361, 37071, 36281, 33656, 32266, 32347, // 4128-4135
+31113, 28797, 27691, 27154, 26801, 27541, 28165, 31405, // 4136-4143
+32368, 28219, 30552, 33807, 33034, 33532, 31898, 32785, // 4144-4151
+33795, 30854, 31140, 32647, 34538, 33057, 28960, 31204, // 4152-4159
+33806, 35774, 37954, 35299, 33120, 33487, 36067, 37912, // 4160-4167
+34391, 32301, 33033, 32380, 31434, 30666, 30156, 26952, // 4168-4175
+23761, 26470, 31128, 33891, 31029, 24923, 24389, 29210, // 4176-4183
+37803, 39316, 31036, 31907, 38655, 41055, 39224, 32000, // 4184-4191
+31359, 39483, 44845, 42872, 34895, 27955, 25358, 29941, // 4192-4199
+38616, 39949, 34034, 27092, 25767, 30331, 32647, 32587, // 4200-4207
+33574, 34557, 34140, 33317, 33424, 35039, 36493, 35160, // 4208-4215
+34341, 34803, 34269, 35017, 36723, 35808, 32664, 31617, // 4216-4223
+32711, 33273, 31100, 28462, 28755, 27593, 31769, 35142, // 4224-4231
+23115, 24705, 42376, 39663, 24661, 21328, 32041, 45958, // 4232-4239
+44152, 27220, 21560, 28152, 26823, 29965, 38669, 35001, // 4240-4247
+26467, 19224, 20390, 31513, 37017, 36026, 33866, 32293, // 4248-4255
+32336, 33088, 34549, 36788, 39340, 38054, 35535, 35734, // 4256-4263
+36469, 36645, 34743, 32341, 29729, 29840, 31499, 27920, // 4264-4271
+25951, 25622, 25545, 28006, 27423, 29068, 31306, 29745, // 4272-4279
+30223, 30377, 31237, 33020, 32586, 32686, 32348, 31203, // 4280-4287
+32652, 35008, 34364, 35002, 37251, 36182, 35809, 37883, // 4288-4295
+38375, 35115, 33282, 36329, 37729, 35225, 29730, 27110, // 4296-4303
+29502, 30255, 30499, 27386, 23608, 25768, 28341, 31232, // 4304-4311
+31936, 28493, 24883, 26109, 36021, 40353, 34433, 30785, // 4312-4319
+33738, 40013, 40140, 36381, 34143, 33046, 37578, 41346, // 4320-4327
+38407, 33021, 29502, 30693, 33362, 35256, 35615, 32882, // 4328-4335
+29560, 29417, 31731, 32525, 31658, 32098, 34781, 34178, // 4336-4343
+31118, 32897, 34651, 34690, 34810, 34798, 36228, 33515, // 4344-4351
+32487, 38125, 39666, 36873, 34375, 35713, 38535, 34424, // 4352-4359
+30902, 32828, 33929, 37988, 35804, 23537, 31611, 46326, // 4360-4367
+34204, 23122, 25854, 33502, 46605, 42824, 26579, 19999, // 4368-4375
+19507, 26987, 39146, 40135, 27978, 18636, 20671, 25617, // 4376-4383
+32512, 35624, 30537, 30498, 31814, 31754, 36048, 33282, // 4384-4391
+31078, 37129, 36807, 35445, 36083, 33558, 34133, 33962, // 4392-4399
+31654, 31227, 30877, 29259, 25505, 24713, 27097, 28492, // 4400-4407
+28095, 25123, 25851, 28972, 29517, 30909, 31368, 30749, // 4408-4415
+29836, 29569, 33206, 34783, 33160, 32935, 33288, 34810, // 4416-4423
+36656, 37816, 37400, 34672, 35102, 36818, 36138, 36290, // 4424-4431
+34089, 31905, 32574, 30797, 28917, 28561, 28865, 27076, // 4432-4439
+21418, 21836, 29132, 32667, 28600, 23498, 24129, 26989, // 4440-4447
+32631, 40003, 39274, 31272, 27814, 36727, 46823, 44775, // 4448-4455
+36951, 32116, 34167, 40921, 43746, 40204, 33067, 29163, // 4456-4463
+32283, 34826, 36171, 36699, 31405, 28010, 27864, 28541, // 4464-4471
+33580, 32678, 29733, 30857, 26878, 28351, 32835, 30903, // 4472-4479
+32834, 32103, 28855, 31463, 32858, 33170, 33502, 35868, // 4480-4487
+38563, 36115, 35343, 34791, 35624, 38702, 33590, 34068, // 4488-4495
+42591, 35242, 23672, 34729, 49092, 38400, 22951, 23315, // 4496-4503
+33873, 47505, 45527, 30399, 22980, 20687, 27404, 43751, // 4504-4511
+45040, 30548, 22243, 22974, 29907, 37819, 36627, 33625, // 4512-4519
+32956, 32067, 34964, 36854, 35788, 35283, 36192, 37604, // 4520-4527
+35583, 33392, 35493, 38083, 34927, 29093, 28049, 29768, // 4528-4535
+30947, 27739, 23923, 25813, 26646, 25776, 25812, 26696, // 4536-4543
+28516, 27186, 26630, 29363, 30400, 29431, 29269, 30261, // 4544-4551
+31562, 33273, 32125, 31782, 35493, 36808, 36915, 35336, // 4552-4559
+33667, 36947, 36775, 33908, 35584, 36318, 33248, 30901, // 4560-4567
+30260, 29883, 29919, 26373, 21467, 22569, 27608, 31317, // 4568-4575
+27705, 20877, 21339, 26625, 31589, 35683, 38978, 35474, // 4576-4583
+26716, 29342, 43121, 51375, 44698, 32641, 31210, 37646, // 4584-4591
+44106, 45496, 39380, 32172, 29969, 32067, 34689, 39155, // 4592-4599
+37442, 28568, 27776, 28431, 29074, 32618, 30543, 31055, // 4600-4607
+29945, 25667, 29345, 30883, 29322, 30499, 31656, 31394, // 4608-4615
+28818, 29725, 33494, 34285, 33923, 33130, 33933, 36389, // 4616-4623
+34051, 32154, 35398, 34303, 34222, 36361, 28004, 25424, // 4624-4631
+38619, 43012, 30002, 18251, 20596, 33826, 44201, 38566, // 4632-4639
+24913, 17388, 19896, 32830, 42765, 38507, 27617, 21768, // 4640-4647
+25763, 34714, 39801, 35553, 31891, 35206, 37065, 37954, // 4648-4655
+37932, 36900, 38127, 38935, 38738, 37899, 37600, 37314, // 4656-4663
+36269, 35570, 34318, 32998, 30073, 29610, 31113, 28835, // 4664-4671
+27867, 27380, 27407, 29247, 28757, 28737, 28892, 29236, // 4672-4679
+30025, 30160, 32436, 32931, 31908, 32796, 32504, 33684, // 4680-4687
+36545, 37133, 38100, 36613, 33227, 35437, 36551, 34517, // 4688-4695
+35217, 36297, 35729, 31441, 29839, 33911, 32793, 27719, // 4696-4703
+24850, 26157, 30585, 31365, 28611, 25836, 23266, 24345, // 4704-4711
+30180, 34336, 34792, 32844, 27853, 27149, 36385, 45028, // 4712-4719
+41687, 34649, 31754, 32540, 40634, 44179, 39311, 35549, // 4720-4727
+29880, 30391, 36177, 36571, 35767, 32915, 29228, 28462, // 4728-4735
+31294, 32708, 27846, 27446, 29687, 29371, 32048, 31142, // 4736-4743
+27470, 27175, 28222, 32183, 34191, 31089, 30157, 30499, // 4744-4751
+31761, 34672, 33201, 32987, 34961, 31690, 31096, 33893, // 4752-4759
+34267, 36526, 33340, 22428, 27486, 44678, 39914, 20914, // 4760-4767
+16601, 25804, 38046, 41572, 28787, 16117, 17794, 25451, // 4768-4775
+34997, 40468, 29887, 19325, 22288, 29238, 36547, 36119, // 4776-4783
+29413, 30683, 34803, 35770, 35774, 35731, 36826, 35703, // 4784-4791
+35303, 38373, 38270, 36709, 36447, 35808, 36514, 36398, // 4792-4799
+33562, 31332, 32473, 33570, 31683, 30639, 30081, 30039, // 4800-4807
+30808, 30381, 32129, 32444, 29819, 31060, 33692, 34806, // 4808-4815
+33867, 31527, 32718, 35472, 35306, 35227, 36936, 36153, // 4816-4823
+33656, 33909, 35064, 34500, 33506, 33340, 33259, 32528, // 4824-4831
+30415, 29981, 32810, 28909, 21769, 25003, 30886, 31328, // 4832-4839
+28663, 25302, 24996, 26508, 29306, 33470, 35677, 35107, // 4840-4847
+31546, 29503, 33719, 41986, 45753, 39481, 33618, 33818, // 4848-4855
+38196, 44934, 43523, 38366, 36081, 33105, 34503, 37276, // 4856-4863
+37616, 36519, 32095, 29771, 31327, 33260, 32240, 28659, // 4864-4871
+27358, 29374, 31483, 30565, 31312, 30475, 25437, 28609, // 4872-4879
+34006, 34361, 33584, 29918, 29292, 32667, 33586, 33711, // 4880-4887
+35087, 33872, 31398, 34918, 37070, 35069, 35582, 29158, // 4888-4895
+24193, 37801, 45752, 31236, 17631, 19523, 32731, 43649, // 4896-4903
+36419, 19787, 13763, 20936, 30511, 36080, 33930, 22909, // 4904-4911
+16938, 20935, 28250, 34026, 29966, 25127, 28103, 30609, // 4912-4919
+30845, 31103, 32943, 33272, 31249, 31593, 33389, 34787, // 4920-4927
+34433, 34344, 35400, 33589, 30410, 29471, 31281, 33060, // 4928-4935
+33046, 31298, 29368, 29403, 29441, 30860, 32203, 30383, // 4936-4943
+30024, 30555, 31940, 34308, 33322, 32247, 33836, 35745, // 4944-4951
+36624, 37108, 36891, 35496, 36008, 37291, 37903, 39299, // 4952-4959
+38621, 36353, 34426, 32852, 32651, 33336, 34426, 32472, // 4960-4967
+28232, 27945, 30572, 31533, 28531, 25296, 25098, 27116, // 4968-4975
+31463, 32534, 30736, 31453, 33079, 33723, 31717, 34445, // 4976-4983
+42570, 42840, 37164, 32967, 35715, 43136, 42489, 38000, // 4984-4991
+37498, 36003, 34021, 34128, 35135, 36542, 33232, 28591, // 4992-4999
+30020, 29841, 29699, 30693, 28377, 32167, 32458, 26149, // 5000-5007
+29231, 31538, 29429, 32278, 33615, 34408, 37370, 31918, // 5008-5015
+29064, 37641, 35857, 32610, 38070, 34563, 32398, 37122, // 5016-5023
+36724, 34263, 35799, 35029, 27508, 30985, 42552, 39993, // 5024-5031
+26290, 18036, 28558, 43045, 41745, 29703, 17799, 19466, // 5032-5039
+29897, 36205, 37828, 31499, 22541, 20034, 25338, 33552, // 5040-5047
+34953, 31752, 30698, 30599, 31881, 32779, 31621, 33850, // 5048-5055
+35235, 32888, 34495, 35281, 33291, 33880, 33898, 32966, // 5056-5063
+31117, 28170, 28588, 30497, 30086, 28948, 27178, 26691, // 5064-5071
+27818, 26573, 27439, 29658, 27968, 27045, 28827, 30116, // 5072-5079
+28250, 28339, 30848, 30454, 32567, 34379, 34275, 34758, // 5080-5087
+32667, 33903, 36774, 37783, 38730, 38514, 37587, 33704, // 5088-5095
+32732, 35569, 35566, 33178, 29413, 31146, 34810, 31395, // 5096-5103
+26656, 25687, 26433, 27775, 32273, 33713, 30114, 27278, // 5104-5111
+29016, 38560, 36036, 27189, 37435, 44009, 38632, 32577, // 5112-5119
+29042, 38258, 44290, 38249, 35046, 33071, 29869, 29612, // 5120-5127
+32668, 37520, 37338, 29784, 27122, 28860, 26451, 28672, // 5128-5135
+32267, 31983, 33531, 30997, 26097, 26890, 30512, 31102, // 5136-5143
+31798, 35010, 32680, 29741, 30648, 31737, 35835, 37216, // 5144-5151
+34596, 33369, 33473, 34789, 36581, 35590, 31627, 34229, // 5152-5159
+35107, 28612, 33659, 39922, 33049, 24509, 26498, 39445, // 5160-5167
+41938, 30989, 23241, 22040, 27572, 34964, 39265, 37510, // 5168-5175
+29051, 21156, 21986, 31142, 36466, 37029, 36309, 32997, // 5176-5183
+32850, 33838, 34691, 36230, 35407, 35152, 35624, 36974, // 5184-5191
+36958, 34283, 33861, 33118, 31201, 30569, 29200, 26985, // 5192-5199
+26808, 28137, 26653, 25418, 26796, 26733, 27062, 29077, // 5200-5207
+29375, 28544, 29472, 30417, 29371, 29175, 30419, 31808, // 5208-5215
+33555, 33937, 33326, 33414, 32509, 32610, 34979, 35775, // 5216-5223
+36764, 39114, 38310, 34274, 32458, 34675, 35191, 32065, // 5224-5231
+29889, 31050, 31769, 28778, 26077, 26026, 27832, 28948, // 5232-5239
+29251, 32612, 33698, 29086, 26981, 37364, 46539, 34023, // 5240-5247
+29116, 44317, 46302, 38994, 35617, 35112, 42698, 46202, // 5248-5255
+38960, 34093, 33118, 30357, 30868, 37082, 39959, 35233, // 5256-5263
+29017, 25701, 24034, 25875, 29768, 31332, 32951, 32320, // 5264-5271
+29999, 29917, 28771, 29219, 30283, 28858, 30600, 33084, // 5272-5279
+32095, 31862, 33224, 33255, 33524, 35318, 35505, 35133, // 5280-5287
+35992, 33911, 30971, 34725, 37652, 31728, 28157, 33351, // 5288-5295
+37688, 33051, 27287, 32495, 38994, 34036, 24300, 20546, // 5296-5303
+25313, 31431, 35969, 39550, 34548, 23455, 17361, 18924, // 5304-5311
+27047, 34817, 37729, 38850, 36864, 33822, 33940, 33794, // 5312-5319
+33693, 35863, 37599, 39295, 40311, 38057, 36366, 35495, // 5320-5327
+32030, 29789, 29595, 27975, 26637, 25963, 23688, 23813, // 5328-5335
+28038, 29297, 28890, 29775, 27729, 28152, 31336, 29423, // 5336-5343
+29433, 33737, 32778, 30484, 33132, 34533, 33932, 33488, // 5344-5351
+31365, 32940, 36902, 34842, 33944, 38774, 38373, 32220, // 5352-5359
+29924, 32997, 35866, 30944, 23614, 27803, 33080, 25234, // 5360-5367
+18515, 21814, 23701, 24619, 28987, 27954, 26110, 27869, // 5368-5375
+20611, 23237, 45170, 43252, 26121, 35034, 45001, 39995, // 5376-5383
+37532, 34684, 38315, 48269, 45920, 37982, 31898, 26721, // 5384-5391
+29347, 37026, 45051, 46954, 34903, 22749, 21933, 23841, // 5392-5399
+25836, 29572, 31744, 34185, 38216, 36956, 31422, 30594, // 5400-5407
+29948, 26778, 28821, 31060, 31580, 34664, 34201, 35230, // 5408-5415
+39297, 36046, 33869, 34349, 31516, 33774, 34347, 30959, // 5416-5423
+35001, 34616, 29533, 34225, 37682, 34959, 33975, 32833, // 5424-5431
+33586, 34559, 30140, 26930, 28154, 30678, 35223, 39352, // 5432-5439
+36722, 27303, 19474, 17999, 20272, 25839, 33686, 39720, // 5440-5447
+41282, 37827, 34820, 36273, 35358, 31683, 32970, 36215, // 5448-5455
+38442, 42659, 44189, 41745, 39386, 35011, 31232, 30169, // 5456-5463
+27195, 26006, 28317, 30197, 32805, 32555, 30046, 31688, // 5464-5471
+31852, 29766, 30794, 31099, 30847, 31586, 31328, 30842, // 5472-5479
+30358, 31820, 33120, 30924, 30697, 32399, 33381, 35105, // 5480-5487
+35720, 37534, 39781, 35706, 31250, 34773, 39199, 35187, // 5488-5495
+28952, 30292, 32405, 27988, 22509, 20622, 24318, 28416, // 5496-5503
+25730, 23608, 23630, 22480, 24936, 24111, 26039, 40324, // 5504-5511
+40114, 27320, 31453, 37795, 36160, 38051, 36356, 35857, // 5512-5519
+42935, 41179, 32682, 30115, 29283, 29802, 34749, 39117, // 5520-5527
+38923, 33445, 24497, 19190, 20803, 23166, 25636, 29904, // 5528-5535
+32786, 36569, 37706, 32738, 30573, 29331, 26354, 27159, // 5536-5543
+28407, 31171, 36180, 36539, 38412, 44000, 41532, 35422, // 5544-5551
+35623, 35381, 31983, 31737, 33567, 34831, 34979, 32294, // 5552-5559
+32032, 36366, 35387, 30545, 30738, 31328, 30252, 30384, // 5560-5567
+29920, 31193, 33725, 33201, 32550, 30938, 24376, 18835, // 5568-5575
+18501, 20358, 24954, 32357, 37909, 38304, 37245, 38190, // 5576-5583
+36185, 32216, 32097, 33986, 37965, 42205, 42598, 42695, // 5584-5591
+42197, 38328, 34919, 32601, 28387, 25312, 26508, 27220, // 5592-5599
+26901, 29227, 30204, 30031, 31440, 30971, 31698, 33112, // 5600-5607
+30992, 32072, 34296, 32579, 31798, 31352, 32746, 35722, // 5608-5615
+33464, 31859, 36004, 37459, 34209, 36008, 42881, 41951, // 5616-5623
+34911, 35078, 41887, 42569, 34390, 31721, 34787, 31829, // 5624-5631
+28509, 25581, 21330, 24538, 26591, 24058, 26193, 24236, // 5632-5639
+20453, 23540, 24789, 30163, 42292, 40323, 26861, 26110, // 5640-5647
+37527, 42203, 37257, 33576, 35284, 38504, 38290, 34117, // 5648-5655
+30537, 28703, 27712, 31221, 36731, 36311, 30434, 23106, // 5656-5663
+19898, 22594, 23088, 24473, 31063, 33075, 33593, 37308, // 5664-5671
+34534, 28543, 27238, 26828, 26200, 27538, 31754, 35604, // 5672-5679
+36646, 39966, 42743, 40549, 38175, 35863, 33026, 31044, // 5680-5687
+30488, 31271, 31407, 32062, 31455, 31414, 35405, 34017, // 5688-5695
+29541, 31337, 32959, 33650, 36412, 35714, 33916, 34913, // 5696-5703
+34593, 34125, 30961, 22074, 19704, 23407, 23493, 26982, // 5704-5711
+32336, 32982, 34988, 36127, 34242, 35491, 34494, 31245, // 5712-5719
+34605, 38512, 40135, 42721, 43078, 42799, 41157, 37383, // 5720-5727
+34274, 28793, 24288, 25567, 27439, 27169, 27886, 30523, // 5728-5735
+33194, 34480, 33155, 31644, 33105, 34177, 32149, 30446, // 5736-5743
+32559, 33224, 30628, 32248, 34111, 32792, 33993, 35057, // 5744-5751
+34210, 34912, 38266, 39827, 36089, 36467, 43161, 44748, // 5752-5759
+38950, 32055, 33636, 40410, 36077, 27601, 26160, 26071, // 5760-5767
+27858, 27715, 23316, 22704, 22505, 22751, 25835, 28323, // 5768-5775
+34747, 39272, 33005, 26742, 30611, 39464, 40937, 35602, // 5776-5783
+34856, 37663, 38069, 36536, 33993, 31303, 29328, 29396, // 5784-5791
+32194, 35391, 34713, 28313, 22539, 22064, 23559, 26291, // 5792-5799
+30025, 33108, 34511, 33820, 33468, 32024, 28350, 25545, // 5800-5807
+23483, 23216, 24977, 28344, 33075, 36028, 38678, 40094, // 5808-5815
+37952, 36510, 34648, 30629, 27330, 25342, 25890, 28436, // 5816-5823
+29589, 28925, 29532, 32218, 32331, 30342, 31387, 33267, // 5824-5831
+34292, 35782, 35587, 34656, 35475, 37283, 35882, 29310, // 5832-5839
+23602, 21327, 21857, 25212, 28306, 32785, 37265, 37864, // 5840-5847
+37504, 36768, 35700, 33923, 32083, 34232, 38628, 42630, // 5848-5855
+45238, 45780, 45425, 41483, 35481, 32151, 27639, 22265, // 5856-5863
+22296, 24383, 25379, 27643, 30098, 32249, 33229, 32497, // 5864-5871
+33715, 35999, 34003, 29887, 30750, 32742, 31650, 31825, // 5872-5879
+31636, 31138, 32102, 31761, 31961, 33305, 35052, 36997, // 5880-5887
+37559, 37551, 39312, 42258, 40087, 35000, 35172, 37718, // 5888-5895
+37399, 32357, 27311, 27046, 26530, 24462, 23060, 21593, // 5896-5903
+21244, 23442, 26534, 29630, 34007, 36575, 36508, 34707, // 5904-5911
+30902, 34016, 42373, 43382, 41111, 41369, 41056, 41792, // 5912-5919
+41378, 35233, 30623, 31262, 32636, 34595, 35333, 33086, // 5920-5927
+29070, 25604, 24790, 24859, 27289, 31414, 35178, 39446, // 5928-5935
+39598, 37293, 34743, 29433, 25664, 23050, 22556, 26319, // 5936-5943
+29257, 32773, 36570, 37911, 39322, 39071, 36265, 32272, // 5944-5951
+27591, 24329, 22584, 22190, 23053, 23591, 23418, 24654, // 5952-5959
+28767, 30220, 27899, 28929, 32085, 34256, 36587, 36165, // 5960-5967
+34453, 36631, 38490, 34181, 27281, 21161, 16647, 18388, // 5968-5975
+24319, 28251, 32684, 37082, 37387, 36013, 33744, 32023, // 5976-5983
+32686, 32074, 33968, 40217, 44643, 48031, 48362, 46329, // 5984-5991
+44840, 38223, 31395, 27509, 22954, 22808, 25673, 28014, // 5992-5999
+30584, 33194, 34369, 33885, 37110, 39329, 35788, 34169, // 6000-6007
+34482, 34826, 35489, 34238, 32700, 31914, 30678, 30371, // 6008-6015
+32097, 32216, 31724, 34164, 35618, 36041, 38622, 41741, // 6016-6023
+40637, 35769, 35588, 38396, 37383, 34161, 29865, 26405, // 6024-6031
+26606, 25704, 20803, 19614, 21169, 20364, 24209, 30112, // 6032-6039
+31135, 30905, 32325, 33550, 30618, 29955, 36021, 40866, // 6040-6047
+43241, 41897, 39043, 41120, 40536, 34872, 32581, 32548, // 6048-6055
+32059, 34838, 38160, 36863, 34263, 31916, 28383, 25888, // 6056-6063
+26636, 29645, 33469, 38356, 41072, 39444, 36685, 32571, // 6064-6071
+28046, 25512, 23242, 22424, 25512, 31233, 35727, 37166, // 6072-6079
+39268, 40831, 38659, 36691, 33069, 27126, 24645, 21335, // 6080-6087
+19112, 23356, 22938, 19050, 23957, 30265, 29208, 25647, // 6088-6095
+25751, 31723, 37450, 35992, 33165, 33910, 34625, 34634, // 6096-6103
+33207, 27408, 19184, 14069, 15026, 20919, 27475, 30804, // 6104-6111
+32132, 32652, 32085, 31899, 31663, 31551, 32592, 35480, // 6112-6119
+40629, 44917, 45938, 45288, 44502, 40446, 34077, 29671, // 6120-6127
+23503, 19321, 21886, 24307, 27356, 31237, 32589, 34209, // 6128-6135
+36133, 38712, 40014, 37111, 35206, 36075, 36009, 34211, // 6136-6143
+32330, 31834, 30810, 29163, 30005, 30720, 30177, 31836, // 6144-6151
+33513, 35104, 39155, 42219, 41416, 37637, 36359, 39413, // 6152-6159
+39259, 34325, 30060, 28805, 28629, 26782, 24287, 21737, // 6160-6167
+19149, 19908, 24274, 29302, 32691, 32246, 31092, 34257, // 6168-6175
+36521, 33321, 33125, 39660, 44502, 44429, 42110, 40101, // 6176-6183
+39508, 36072, 31345, 30284, 30292, 32313, 35939, 37123, // 6184-6191
+37234, 35182, 30385, 26021, 24581, 27308, 31856, 35411, // 6192-6199
+37377, 39601, 40599, 36575, 31878, 29614, 27388, 26054, // 6200-6207
+27744, 32425, 37822, 40945, 42505, 44705, 44357, 42025, // 6208-6215
+40041, 33890, 28861, 27677, 23829, 23487, 26370, 22556, // 6216-6223
+18782, 26134, 34541, 30883, 25589, 28649, 35314, 39413, // 6224-6231
+37326, 34503, 35028, 36069, 36350, 33687, 27788, 20376, // 6232-6239
+14342, 13766, 18994, 25641, 29804, 32039, 32051, 31116, // 6240-6247
+30422, 27777, 27024, 29535, 33060, 38037, 41554, 42982, // 6248-6255
+42633, 39183, 34304, 29250, 23517, 18266, 17255, 19741, // 6256-6263
+22034, 24612, 28253, 32096, 33554, 34272, 37028, 38150, // 6264-6271
+38029, 37466, 35687, 35911, 35239, 32029, 30534, 30128, // 6272-6279
+29755, 30057, 29934, 30088, 32258, 34829, 36441, 38751, // 6280-6287
+40089, 38662, 38216, 40135, 40835, 38399, 35048, 33254, // 6288-6295
+32543, 30639, 27438, 24276, 21061, 20668, 24250, 27436, // 6296-6303
+30806, 33216, 31569, 30708, 32285, 33356, 32645, 32434, // 6304-6311
+36914, 42488, 44292, 42338, 39133, 37380, 33503, 28006, // 6312-6319
+27166, 29345, 30975, 33964, 38188, 38998, 35881, 30738, // 6320-6327
+24886, 22521, 24337, 27890, 32229, 37432, 40683, 38320, // 6328-6335
+35823, 34471, 28513, 22630, 22689, 26177, 29266, 33074, // 6336-6343
+38746, 42348, 43867, 44625, 42367, 37965, 34338, 31211, // 6344-6351
+27630, 25970, 26470, 27775, 26696, 23526, 29088, 37214, // 6352-6359
+33516, 27666, 29181, 35604, 41438, 40590, 37604, 37693, // 6360-6367
+37581, 37534, 37394, 32602, 24421, 17093, 14154, 19102, // 6368-6375
+27257, 32261, 34014, 34074, 34241, 33034, 30720, 30255, // 6376-6383
+31073, 33737, 37624, 41017, 43843, 44811, 44201, 40636, // 6384-6391
+33498, 26764, 21114, 17213, 17445, 19982, 23121, 26563, // 6392-6399
+29068, 31584, 34499, 35517, 34928, 34300, 33306, 33025, // 6400-6407
+33877, 33099, 30230, 28209, 28094, 28329, 28417, 29202, // 6408-6415
+30325, 31589, 33557, 35519, 37378, 37975, 36499, 36704, // 6416-6423
+39444, 40586, 38280, 34711, 33241, 31825, 28400, 25897, // 6424-6431
+23067, 19836, 21163, 24551, 26919, 30805, 33653, 31492, // 6432-6439
+28224, 31869, 38178, 34358, 29732, 38415, 48335, 47939, // 6440-6447
+41742, 37905, 39173, 38029, 32687, 30402, 31170, 32010, // 6448-6455
+34034, 38711, 42974, 39525, 29818, 24176, 23862, 24676, // 6456-6463
+27402, 30441, 32608, 35746, 37890, 36383, 31056, 25645, // 6464-6471
+24495, 25483, 26218, 27577, 30383, 35260, 38603, 39017, // 6472-6479
+41262, 42251, 36412, 29746, 28265, 28380, 25423, 23496, // 6480-6487
+26537, 26465, 23681, 29384, 36718, 34238, 28691, 29215, // 6488-6495
+35582, 41598, 42018, 38897, 37090, 38310, 40120, 38469, // 6496-6503
+32795, 24672, 17466, 17409, 24398, 31295, 34915, 36565, // 6504-6511
+37356, 37370, 35835, 33177, 31529, 32825, 36611, 40526, // 6512-6519
+43320, 45080, 45727, 44579, 40348, 34024, 27972, 22791, // 6520-6527
+20389, 21627, 23738, 25539, 27689, 30359, 32471, 32685, // 6528-6535
+32866, 33235, 32220, 31368, 30995, 30690, 30856, 30098, // 6536-6543
+29048, 28530, 27142, 26670, 28280, 29161, 28698, 29078, // 6544-6551
+32280, 35517, 34160, 33109, 37166, 39722, 37141, 33871, // 6552-6559
+32698, 32140, 29566, 26624, 25444, 23482, 21637, 22773, // 6560-6567
+25133, 27973, 30525, 30690, 29279, 28702, 32283, 36403, // 6568-6575
+32772, 29080, 36900, 47189, 46166, 37627, 35042, 39284, // 6576-6583
+39830, 36119, 33012, 29728, 29248, 34163, 39793, 42748, // 6584-6591
+41013, 34156, 27107, 24470, 26527, 29312, 30289, 32627, // 6592-6599
+36177, 37791, 38012, 35923, 31548, 29023, 28962, 29722, // 6600-6607
+30931, 32351, 34516, 36653, 38035, 38968, 37213, 32590, // 6608-6615
+29254, 28364, 27673, 26157, 25727, 26941, 26418, 25396, // 6616-6623
+29500, 35205, 34537, 30115, 30377, 35277, 38124, 37205, // 6624-6631
+35715, 35423, 36671, 38209, 36644, 30652, 23355, 19426, // 6632-6639
+20444, 24607, 29410, 33296, 36039, 37024, 35626, 33614, // 6640-6647
+31651, 29324, 29218, 32531, 36919, 40665, 42810, 43049, // 6648-6655
+41391, 38344, 35647, 32623, 28673, 26538, 26642, 28182, // 6656-6663
+30583, 31632, 32169, 33548, 33649, 33148, 33212, 33108, // 6664-6671
+33193, 33056, 32647, 31976, 30488, 30563, 31791, 31283, // 6672-6679
+31459, 32656, 32494, 32649, 33585, 34729, 35791, 35053, // 6680-6687
+34292, 35080, 35589, 35136, 33077, 30835, 30269, 28453, // 6688-6695
+25424, 23323, 20989, 20878, 23850, 25187, 24928, 26001, // 6696-6703
+27719, 27271, 25251, 27354, 31996, 32066, 31323, 35412, // 6704-6711
+40217, 40948, 37629, 34573, 34840, 35555, 34461, 32063, // 6712-6719
+30067, 31582, 35315, 37756, 38732, 37271, 32969, 28542, // 6720-6727
+26331, 27044, 28803, 29846, 31689, 34184, 35566, 35841, // 6728-6735
+34665, 32162, 30188, 29748, 30177, 30359, 31259, 33948, // 6736-6743
+36153, 36334, 36319, 36211, 34237, 31432, 30722, 30829, // 6744-6751
+28921, 27258, 28758, 31027, 31535, 32212, 34597, 35693, // 6752-6759
+34404, 34112, 34835, 34128, 33089, 33200, 34285, 35643, // 6760-6767
+35944, 34564, 31555, 28712, 28024, 28046, 28735, 31655, // 6768-6775
+34559, 35836, 35929, 35189, 35086, 34545, 32507, 32325, // 6776-6783
+34804, 37235, 37772, 37101, 37760, 38005, 35565, 34070, // 6784-6791
+33822, 32168, 30651, 30156, 30771, 32251, 32358, 31810, // 6792-6799
+31856, 32101, 32770, 32532, 31866, 32601, 32533, 31758, // 6800-6807
+31679, 31018, 31514, 33543, 33972, 33110, 32495, 33035, // 6808-6815
+34249, 33957, 33630, 34311, 33997, 33533, 33259, 32631, // 6816-6823
+32766, 32305, 31241, 31061, 29726, 27272, 26322, 27007, // 6824-6831
+27817, 27082, 26254, 27261, 27730, 27386, 28158, 28873, // 6832-6839
+29342, 30299, 31324, 32625, 33732, 34454, 35244, 35242, // 6840-6847
+34622, 34360, 34068, 33432, 32352, 31984, 33530, 34584, // 6848-6855
+33532, 32434, 32098, 31290, 29739, 28365, 27715, 27645, // 6856-6863
+28424, 29849, 31008, 31804, 32184, 31576, 30855, 31365, // 6864-6871
+32204, 32026, 32050, 33362, 34589, 34802, 34619, 34336, // 6872-6879
+34009, 33508, 32942, 32693, 32545, 32456, 32492, 32573, // 6880-6887
+32985, 33367, 33533, 33862, 33557, 33086, 33781, 33999, // 6888-6895
+32567, 31288, 31403, 32098, 31727, 30614, 30242, 29815, // 6896-6903
+29145, 29316, 29858, 30628, 31527, 31884, 32672, 33830, // 6904-6911
+34146, 34242, 34576, 35057, 35617, 35987, 37021, 38347, // 6912-6919
+38650, 38644, 38358, 37344, 36512, 35534, 34288, 33909, // 6920-6927
+34086, 34303, 34214, 33557, 33191, 33200, 33224, 33315, // 6928-6935
+33009, 32955, 33710, 33878, 33511, 33522, 33489, 33199, // 6936-6943
+33082, 33589, 34368, 34373, 34058, 34204, 34226, 33923, // 6944-6951
+33526, 33069, 32900, 32833, 32633, 32573, 32386, 31667, // 6952-6959
+30621, 29710, 29312, 29200, 28961, 28854, 29127, 29574, // 6960-6967
+30009, 30220, 30323, 30730, 31299, 31788, 32360, 32858, // 6968-6975
+33012, 33116, 33240, 33339, 33346, 33039, 32648, 32322, // 6976-6983
+31930, 31578, 31187, 30710, 30505, 30405, 30186, 30037, // 6984-6991
+29859, 29593, 29657, 30078, 30507, 30821, 31140, 31409, // 6992-6999
+31503, 31675, 31986, 31863, 31473, 31580, 31932, 32155, // 7000-7007
+32476, 32735, 32601, 32493, 32493, 32248, 31982, 31895, // 7008-7015
+31700, 31578, 31800, 32042, 32112, 32273, 32629, 32912, // 7016-7023
+32920, 32755, 32568, 32602, 32902, 33178, 33294, 33262, // 7024-7031
+32850, 32314, 32203, 32253, 32164, 32162, 32114, 32055, // 7032-7039
+32442, 32918, 33106, 33433, 33856, 33944, 33924, 34193, // 7040-7047
+34503, 34573, 34791, 35306, 35481, 35164, 35011, 34855, // 7048-7055
+34489, 34468, 34530, 34154, 34004, 34272, 34335, 34266, // 7056-7063
+34419, 34441, 34151, 34094, 34632, 34958, 34634, 34497, // 7064-7071
+34395, 33910, 33867, 34299, 34334, 34503, 34948, 34993, // 7072-7079
+35099, 35562, 35670, 35544, 35469, 35128, 34619, 34129, // 7080-7087
+33735, 33675, 33631, 33180, 32398, 31596, 30920, 30226, // 7088-7095
+29979, 30507, 30639, 30184, 30443, 30736, 30340, 30532, // 7096-7103
+30953, 30421, 30375, 31022, 30910, 31021, 31992, 32335, // 7104-7111
+32207, 32574, 32932, 32585, 31919, 31731, 31540, 31035, // 7112-7119
+31319, 32254, 32821, 33354, 33675, 32967, 31893, 31218, // 7120-7127
+30624, 30622, 31393, 32067, 32563, 32724, 32364, 32255, // 7128-7135
+31854, 30886, 30656, 30748, 30538, 31027, 32039, 32488, // 7136-7143
+32340, 31873, 31203, 30560, 29915, 29755, 30511, 31223, // 7144-7151
+31817, 32671, 32819, 32780, 33332, 33589, 33789, 34281, // 7152-7159
+34591, 34303, 33344, 32935, 33323, 33551, 34410, 35833, // 7160-7167
+35595, 33914, 32639, 31181, 30187, 31524, 33218, 34431, // 7168-7175
+35865, 35455, 33496, 32100, 31308, 30969, 31362, 32689, // 7176-7183
+33663, 33580, 33314, 32520, 32080, 32023, 31272, 31073, // 7184-7191
+31269, 31346, 31670, 31697, 32393, 33038, 32811, 32960, // 7192-7199
+32659, 32663, 33451, 33082, 32799, 33333, 33296, 33011, // 7200-7207
+32870, 32990, 33315, 33260, 33036, 33490, 33943, 33754, // 7208-7215
+33996, 34221, 33918, 33716, 33134, 33098, 33729, 33325, // 7216-7223
+32872, 32903, 32607, 31621, 30914, 32173, 33461, 33520, // 7224-7231
+33315, 32518, 32323, 32432, 32211, 33234, 34120, 34555, // 7232-7239
+34861, 33509, 33135, 33979, 33421, 33586, 34664, 35026, // 7240-7247
+34997, 33503, 31898, 31664, 30905, 30675, 31770, 32399, // 7248-7255
+32680, 32012, 30230, 29139, 28743, 28648, 28746, 29767, // 7256-7263
+31311, 31193, 31127, 31436, 30691, 31095, 31537, 31908, // 7264-7271
+33690, 33559, 32768, 33568, 33775, 33643, 33134, 32219, // 7272-7279
+31737, 31384, 31944, 32346, 31992, 33067, 33777, 31711, // 7280-7287
+30810, 32909, 33075, 32437, 33944, 33596, 32443, 31947, // 7288-7295
+29783, 29799, 32897, 34894, 34833, 34436, 33894, 30956, // 7296-7303
+29398, 30857, 31718, 35137, 37232, 34532, 34035, 32493, // 7304-7311
+29507, 30135, 30788, 32040, 33731, 33587, 34017, 33600, // 7312-7319
+33203, 33772, 32714, 32341, 33171, 33011, 32599, 32750, // 7320-7327
+33196, 33401, 33622, 33264, 32379, 31949, 31607, 32351, // 7328-7335
+32877, 31930, 32107, 32285, 31650, 31723, 31823, 30821, // 7336-7343
+28762, 29077, 30684, 29658, 29762, 30644, 29049, 27144, // 7344-7351
+26038, 28247, 32617, 34439, 34513, 31730, 26812, 25217, // 7352-7359
+27359, 32370, 37809, 38962, 36694, 33411, 29725, 28966, // 7360-7367
+32126, 34043, 34743, 38936, 41044, 36475, 33167, 33366, // 7368-7375
+32346, 31485, 32487, 36046, 41296, 40611, 32754, 25939, // 7376-7383
+23681, 25975, 31936, 38666, 42367, 38546, 29837, 23586, // 7384-7391
+22483, 26539, 32238, 36215, 38275, 36413, 31647, 27827, // 7392-7399
+26543, 28217, 30529, 31639, 32017, 31692, 31115, 31205, // 7400-7407
+32364, 33035, 32827, 33273, 33167, 32579, 32271, 30896, // 7408-7415
+29912, 31455, 34079, 33228, 30004, 30689, 32636, 32838, // 7416-7423
+33092, 32728, 33648, 33807, 30384, 29680, 32625, 35148, // 7424-7431
+36160, 35357, 33918, 31299, 28926, 30196, 33042, 35268, // 7432-7439
+36872, 37304, 35670, 32793, 32154, 33308, 34083, 34924, // 7440-7447
+36725, 39417, 39297, 36453, 35166, 34964, 35311, 34918, // 7448-7455
+33646, 35352, 36159, 32922, 31102, 32265, 34306, 34818, // 7456-7463
+32974, 31607, 32018, 33079, 33086, 32130, 31910, 31806, // 7464-7471
+31431, 31083, 29836, 28483, 28880, 30637, 30981, 29417, // 7472-7479
+28494, 29093, 29851, 29765, 29478, 29834, 30519, 31571, // 7480-7487
+31793, 30016, 28487, 29126, 31047, 31854, 30733, 30600, // 7488-7495
+31291, 30011, 28526, 29314, 30957, 30936, 29383, 30659, // 7496-7503
+35393, 35898, 30458, 27653, 30481, 33548, 32956, 30843, // 7504-7511
+32018, 35430, 35640, 32748, 30311, 28648, 27415, 28921, // 7512-7519
+34099, 38553, 38024, 34109, 31012, 30012, 29904, 30781, // 7520-7527
+33218, 35872, 36940, 35805, 33619, 32130, 32100, 33119, // 7528-7535
+33836, 33926, 34532, 35543, 35271, 33697, 33028, 33797, // 7536-7543
+34374, 34279, 34057, 33398, 32513, 33018, 34902, 34565, // 7544-7551
+30619, 28151, 30874, 34292, 33174, 30153, 30549, 33139, // 7552-7559
+32682, 29202, 27472, 29318, 32989, 36992, 39052, 36294, // 7560-7567
+29976, 25632, 26996, 32383, 37605, 40183, 39351, 35649, // 7568-7575
+32272, 32381, 34771, 36314, 36825, 37951, 38950, 37562, // 7576-7583
+34400, 32456, 32692, 33113, 32284, 31021, 30617, 31034, // 7584-7591
+31207, 30756, 30319, 30297, 30327, 30449, 31402, 32998, // 7592-7599
+33553, 32399, 31365, 32060, 33335, 33168, 31664, 30433, // 7600-7607
+30577, 31648, 32232, 31487, 30774, 32074, 34294, 34273, // 7608-7615
+32220, 31870, 33913, 34969, 33684, 32409, 31739, 29604, // 7616-7623
+26649, 26409, 29216, 31498, 31353, 29808, 27532, 25693, // 7624-7631
+26541, 29247, 30091, 29319, 31165, 34405, 32143, 25221, // 7632-7639
+23647, 29704, 33017, 28280, 24658, 30193, 38561, 39375, // 7640-7647
+32072, 23118, 18378, 22217, 34886, 47504, 48779, 38031, // 7648-7655
+24818, 17846, 19088, 26004, 34074, 38836, 39237, 37599, // 7656-7663
+34847, 30876, 28497, 30443, 33693, 33885, 32685, 34564, // 7664-7671
+38448, 39396, 37217, 35442, 34951, 34594, 33779, 32351, // 7672-7679
+31097, 32099, 35370, 36571, 33200, 29913, 32039, 37502, // 7680-7687
+39658, 37304, 35332, 35031, 33184, 29057, 25544, 26487, // 7688-7695
+33212, 42645, 47721, 40941, 24802, 12847, 14055, 24182, // 7696-7703
+34025, 39415, 41118, 38965, 32775, 26112, 23211, 24607, // 7704-7711
+28351, 32403, 35134, 37020, 39410, 40495, 38317, 34853, // 7712-7719
+32029, 29476, 27379, 26834, 28160, 30015, 31238, 32677, // 7720-7727
+34299, 34787, 34929, 34938, 33546, 31875, 31883, 34233, // 7728-7735
+37212, 37129, 34751, 32910, 31456, 32028, 33974, 32729, // 7736-7743
+31294, 34397, 36262, 31992, 28748, 32419, 37944, 39952, // 7744-7751
+38568, 36589, 34644, 28945, 23568, 26817, 33919, 36612, // 7752-7759
+32994, 28035, 28938, 29625, 26411, 28993, 34559, 34116, // 7760-7767
+31524, 36522, 45864, 38353, 19513, 21942, 39106, 40077, // 7768-7775
+25166, 19667, 35026, 49250, 42824, 24800, 10598, 10211, // 7776-7783
+21220, 36480, 50535, 48299, 31238, 18612, 15352, 19113, // 7784-7791
+23036, 24574, 31242, 38123, 39916, 37475, 30865, 26693, // 7792-7799
+24761, 24240, 26634, 26266, 29181, 35561, 36061, 38336, // 7800-7807
+40669, 36407, 33419, 31831, 31226, 33174, 32868, 32543, // 7808-7815
+35150, 35945, 32361, 30793, 35062, 37993, 38566, 39175, // 7816-7823
+38270, 38400, 36330, 32074, 34036, 39390, 43778, 46222, // 7824-7831
+41978, 31454, 21016, 17024, 20889, 29723, 35707, 34675, // 7832-7839
+36613, 37636, 29699, 26581, 26755, 25529, 31724, 37033, // 7840-7847
+39969, 44901, 44912, 43740, 39878, 31414, 25853, 22490, // 7848-7855
+23669, 24971, 22351, 25820, 29620, 30271, 31595, 29319, // 7856-7863
+32044, 37415, 35665, 36129, 39769, 41810, 38442, 29821, // 7864-7871
+26848, 27346, 28684, 26395, 15346, 20069, 35552, 31677, // 7872-7879
+24715, 28019, 33994, 40343, 41323, 42367, 40922, 31308, // 7880-7887
+29482, 31965, 31247, 35586, 34652, 25450, 21908, 23444, // 7888-7895
+24767, 25237, 26611, 32379, 36011, 31630, 34423, 45050, // 7896-7903
+36064, 21099, 30747, 39864, 33630, 32330, 34698, 39322, // 7904-7911
+45211, 37148, 22806, 18466, 20928, 26905, 37068, 45016, // 7912-7919
+44110, 34542, 20819, 13036, 15368, 20189, 28967, 40151, // 7920-7927
+42259, 40928, 41393, 35957, 25200, 17633, 18615, 19952, // 7928-7935
+18986, 26623, 34851, 36772, 39778, 39885, 37622, 35104, // 7936-7943
+29745, 27929, 26486, 23662, 25521, 23869, 19445, 20528, // 7944-7951
+22490, 26171, 30996, 30278, 31793, 40325, 43178, 37451, // 7952-7959
+33450, 34605, 38903, 42235, 41069, 35020, 24270, 17493, // 7960-7967
+18334, 20051, 26102, 33655, 36549, 37983, 33348, 28361, // 7968-7975
+29988, 30007, 32046, 37030, 41899, 48363, 49444, 48722, // 7976-7983
+48475, 44672, 39151, 27292, 18917, 17633, 15265, 21493, // 7984-7991
+24268, 22460, 30209, 29235, 33432, 46883, 41958, 41239, // 7992-7999
+44869, 40681, 44479, 35243, 23554, 32847, 34304, 25966, // 8000-8007
+16414, 12714, 25969, 27358, 18236, 25827, 37101, 44189, // 8008-8015
+48068, 44078, 36500, 32786, 34430, 32597, 36038, 45493, // 8016-8023
+37450, 27979, 26098, 15581, 16499, 24280, 19978, 25760, // 8024-8031
+37451, 35136, 31932, 39460, 45359, 33512, 22315, 30906, // 8032-8039
+35670, 31262, 33782, 38148, 44044, 45870, 31818, 19136, // 8040-8047
+18616, 21740, 31319, 42405, 44319, 41520, 33129, 18546, // 8048-8055
+12186, 17055, 23958, 33556, 44613, 48625, 47085, 43332, // 8056-8063
+34871, 26353, 20580, 16517, 17600, 18873, 21826, 34312, // 8064-8071
+42789, 43861, 46791, 44530, 40390, 36689, 27555, 24235, // 8072-8079
+24189, 20568, 21678, 21205, 19867, 24183, 25532, 26951, // 8080-8087
+30704, 32759, 35894, 35001, 32029, 33742, 36539, 40917, // 8088-8095
+43222, 39611, 33221, 22761, 14239, 12591, 13930, 20929, // 8096-8103
+30895, 36500, 37576, 34167, 30041, 28253, 27209, 31029, // 8104-8111
+39126, 45525, 51681, 54055, 50685, 50772, 47288, 34097, // 8112-8119
+25364, 21765, 19787, 21270, 19956, 20469, 25676, 31751, // 8120-8127
+37999, 36834, 38986, 47202, 42517, 41458, 48100, 40401, // 8128-8135
+30948, 29412, 30898, 28819, 17520, 17276, 26991, 25890, // 8136-8143
+22810, 24555, 32648, 42486, 42049, 40954, 39847, 33341, // 8144-8151
+31696, 31997, 31981, 34512, 35007, 31648, 23109, 18398, // 8152-8159
+21319, 19504, 18086, 23905, 31385, 38364, 37923, 34854, // 8160-8167
+40366, 40199, 29275, 26944, 32364, 34646, 38388, 40657, // 8168-8175
+39515, 42192, 39720, 30226, 26531, 25881, 26817, 34278, // 8176-8183
+42651, 45199, 40166, 32121, 25004, 19536, 20478, 27352, // 8184-8191
+36045, 43052, 45432, 46593, 44264, 35596, 26741, 19967, // 8192-8199
+18754, 22502, 24367, 28101, 35374, 41680, 45087, 43877, // 8200-8207
+41704, 38989, 33396, 29132, 26859, 26006, 25373, 22742, // 8208-8215
+22061, 22469, 23087, 27214, 30118, 31235, 34237, 35849, // 8216-8223
+35020, 33771, 34342, 36711, 37161, 35104, 31312, 25966, // 8224-8231
+19677, 14671, 15914, 19948, 22553, 27513, 31001, 30809, // 8232-8239
+31644, 30051, 27660, 29910, 31854, 34558, 41484, 44662, // 8240-8247
+42705, 42372, 41326, 36626, 31087, 25494, 21828, 20203, // 8248-8255
+17648, 18636, 23972, 26731, 29110, 34408, 38812, 40317, // 8256-8263
+41008, 42801, 42626, 39375, 36992, 35196, 33315, 31536, // 8264-8271
+28425, 26256, 25631, 26083, 27980, 28643, 29982, 34437, // 8272-8279
+38219, 39071, 37485, 36591, 36672, 34298, 33430, 35325, // 8280-8287
+34137, 30732, 27335, 23998, 22478, 22235, 22597, 24067, // 8288-8295
+26876, 31145, 34436, 34984, 34780, 35257, 35360, 34106, // 8296-8303
+33179, 34615, 36657, 36893, 36585, 37392, 37984, 36776, // 8304-8311
+33962, 31503, 30881, 31467, 32929, 34772, 35197, 33754, // 8312-8319
+31113, 28611, 27489, 27655, 30116, 33848, 35287, 35130, // 8320-8327
+35558, 35241, 32441, 28672, 27491, 28829, 29889, 31038, // 8328-8335
+33406, 35701, 36257, 35654, 35739, 35534, 33463, 30979, // 8336-8343
+29812, 29467, 28856, 28402, 28510, 28139, 27499, 28149, // 8344-8351
+30073, 32239, 33738, 34518, 34702, 34016, 33265, 33622, // 8352-8359
+34349, 33976, 32700, 31552, 30283, 28086, 26064, 25856, // 8360-8367
+26904, 27752, 28797, 30981, 33049, 33247, 32713, 33981, // 8368-8375
+36914, 39290, 40435, 41116, 41501, 40864, 39303, 37538, // 8376-8383
+35513, 33004, 30543, 28441, 27009, 26685, 27565, 28850, // 8384-8391
+29584, 30099, 31328, 32563, 32415, 31350, 31044, 31532, // 8392-8399
+31335, 30533, 30527, 30974, 30224, 28386, 27621, 28614, // 8400-8407
+29739, 29996, 30224, 31148, 32275, 32913, 33139, 33046, // 8408-8415
+32744, 32719, 32955, 32613, 31390, 29953, 28750, 27508, // 8416-8423
+26469, 26553, 27592, 28374, 28651, 29437, 30932, 32151, // 8424-8431
+32846, 33919, 35463, 36277, 36073, 36035, 36841, 37777, // 8432-8439
+38227, 38533, 39015, 39298, 39055, 38306, 37091, 35630, // 8440-8447
+34623, 34465, 34541, 33946, 32764, 31713, 31209, 31250, // 8448-8455
+31728, 32382, 32935, 33600, 34646, 35579, 35514, 34538, // 8456-8463
+33679, 33443, 33345, 33059, 33067, 33756, 34778, 35556, // 8464-8471
+35842, 35615, 34929, 34067, 33275, 32435, 31267, 29967, // 8472-8479
+29065, 28780, 28879, 29064, 29431, 30269, 31596, 32928, // 8480-8487
+33498, 33106, 32445, 32403, 32954, 33265, 32855, 32130, // 8488-8495
+31652, 31267, 30500, 29229, 28063, 27658, 28228, 29306, // 8496-8503
+30217, 30697, 31026, 31563, 32147, 32316, 32023, 31845, // 8504-8511
+32391, 33557, 34586, 34783, 34163, 33312, 32668, 32065, // 8512-8519
+31143, 30044, 29441, 29742, 30470, 30776, 30379, 29820, // 8520-8527
+29757, 30193, 30575, 30537, 30311, 30413, 30912, 31293, // 8528-8535
+31066, 30443, 30188, 30749, 31822, 32654, 32981, 33145, // 8536-8543
+33619, 34232, 34469, 34071, 33495, 33404, 33806, 33987, // 8544-8551
+33288, 31781, 30197, 29115, 28411, 27648, 26836, 26608, // 8552-8559
+27391, 28720, 29784, 30103, 30071, 30409, 31344, 32384, // 8560-8567
+33080, 33607, 34476, 35701, 36672, 36722, 35806, 34712, // 8568-8575
+34090, 33940, 33792, 33429, 33142, 33429, 34088, 34468, // 8576-8583
+34125, 33339, 32814, 32883, 33245, 33431, 33395, 33616, // 8584-8591
+34425, 35382, 35862, 35613, 35070, 34882, 35058, 35097, // 8592-8599
+34766, 34388, 34496, 35093, 35654, 35694, 35134, 34529, // 8600-8607
+34327, 34224, 33894, 33293, 32813, 33027, 33661, 34056, // 8608-8615
+34023, 33625, 33140, 32910, 32878, 32606, 32064, 31970, // 8616-8623
+32555, 33279, 33671, 33498, 32862, 32375, 32256, 31986, // 8624-8631
+31293, 30855, 31282, 32216, 33216, 34017, 34292, 34430, // 8632-8639
+34746, 34900, 34868, 34711, 34658, 35175, 35771, 35962, // 8640-8647
+35791, 35341, 34750, 34024, 33237, 32498, 31596, 31007, // 8648-8655
+31146, 31414, 31598, 31442, 30914, 30811, 30831, 30368, // 8656-8663
+29716, 29161, 29106, 29352, 29595, 30053, 30125, 30273, // 8664-8671
+31227, 31849, 32204, 32685, 32657, 32918, 33401, 33585, // 8672-8679
+34563, 35279, 34274, 33060, 32926, 32679, 30847, 28803, // 8680-8687
+27851, 26913, 26499, 26649, 25719, 25063, 26280, 27460, // 8688-8695
+26906, 26492, 27723, 28582, 29499, 31800, 33135, 33733, // 8696-8703
+34375, 34250, 34942, 35400, 34555, 34550, 34403, 33804, // 8704-8711
+34003, 34489, 34799, 33866, 33554, 34762, 34104, 32895, // 8712-8719
+32470, 32060, 33573, 34299, 33132, 33942, 35542, 35743, // 8720-8727
+34415, 33271, 34109, 33858, 32568, 32557, 32621, 33732, // 8728-8735
+34882, 35472, 37267, 36616, 34306, 35027, 35325, 33139, // 8736-8743
+32446, 34177, 34980, 34233, 33923, 32984, 32975, 34795, // 8744-8751
+34045, 32800, 33396, 32980, 32764, 33806, 36129, 37011, // 8752-8759
+33686, 32062, 32215, 32019, 34306, 33060, 30253, 32943, // 8760-8767
+33436, 32142, 33320, 32893, 33053, 33244, 32196, 33645, // 8768-8775
+34734, 34480, 33967, 32499, 33469, 35263, 34348, 32861, // 8776-8783
+31915, 31373, 31307, 31987, 31721, 30020, 30262, 31138, // 8784-8791
+32334, 34406, 32818, 31481, 32171, 30851, 31249, 31120, // 8792-8799
+31216, 34550, 31693, 29227, 33957, 33618, 30795, 29728, // 8800-8807
+27896, 30200, 33126, 34198, 34816, 33038, 33815, 34925, // 8808-8815
+34293, 36752, 35958, 32093, 31132, 30512, 31956, 32875, // 8816-8823
+29086, 25933, 27634, 31580, 29513, 26182, 30795, 32754, // 8824-8831
+31281, 33513, 33350, 32519, 32638, 33395, 37674, 36748, // 8832-8839
+32680, 34388, 36203, 36377, 35072, 34519, 37037, 34463, // 8840-8847
+30154, 30012, 30641, 32343, 29184, 24168, 26363, 27276, // 8848-8855
+27102, 29606, 29894, 30915, 31170, 30010, 29848, 27695, // 8856-8863
+28302, 29145, 28686, 35174, 36537, 30632, 31848, 33282, // 8864-8871
+32997, 35677, 34535, 31714, 31717, 30549, 28177, 32510, // 8872-8879
+39031, 30003, 22053, 38751, 49793, 32667, 19103, 32182, // 8880-8887
+47803, 41884, 31416, 31875, 36462, 40483, 36599, 34363, // 8888-8895
+40169, 29091, 17608, 32600, 41900, 36339, 36467, 36680, // 8896-8903
+35844, 37703, 37146, 33513, 32091, 37590, 38909, 33773, // 8904-8911
+38219, 41916, 36637, 39803, 42925, 32784, 27673, 31364, // 8912-8919
+29205, 27851, 32801, 34430, 34605, 33684, 32185, 37770, // 8920-8927
+35464, 25595, 31237, 39263, 40083, 39164, 28834, 28123, // 8928-8935
+39379, 34431, 27755, 31329, 34247, 40298, 38401, 26568, // 8936-8943
+23854, 24991, 24776, 30246, 38347, 42252, 37787, 32353, // 8944-8951
+30920, 24829, 19802, 24610, 28994, 29117, 32936, 37622, // 8952-8959
+36126, 33472, 33075, 30217, 26433, 28833, 37687, 36299, // 8960-8967
+21752, 23680, 38780, 39441, 36975, 38779, 40175, 44924, // 8968-8975
+37017, 20804, 19267, 24460, 34341, 47980, 53023, 54805, // 8976-8983
+45851, 23157, 12228, 13342, 16667, 26517, 35324, 40266, // 8984-8991
+42619, 35787, 28053, 26516, 21833, 16759, 19597, 24652, // 8992-8999
+28317, 29530, 28897, 37291, 45032, 36786, 31604, 32209, // 9000-9007
+27246, 29743, 27894, 20550, 37503, 43490, 14672, 14863, // 9008-9015
+48197, 49066, 21993, 16100, 32751, 41953, 33369, 19408, // 9016-9023
+18711, 35397, 45247, 40768, 43157, 41632, 19160, 4303, // 9024-9031
+14939, 31117, 42227, 48872, 47741, 42499, 35848, 26678, // 9032-9039
+22044, 23637, 27625, 36126, 42819, 43745, 48678, 52213, // 9040-9047
+46688, 41410, 35652, 28462, 27146, 26499, 24904, 27596, // 9048-9055
+29759, 30392, 34783, 39185, 36529, 28525, 25690, 34453, // 9056-9063
+41211, 33950, 29890, 39633, 40488, 23916, 15643, 25412, // 9064-9071
+34536, 36142, 38423, 39314, 31460, 21881, 23411, 34592, // 9072-9079
+45635, 50978, 45424, 32161, 25892, 25241, 21072, 21059, // 9080-9087
+28660, 34898, 35462, 33468, 31934, 31834, 33241, 32154, // 9088-9095
+26529, 24137, 33335, 42358, 36217, 30033, 34515, 37440, // 9096-9103
+36058, 35820, 40633, 49194, 50012, 37547, 22771, 15003, // 9104-9111
+15441, 24512, 35379, 43531, 45993, 36823, 25716, 22168, // 9112-9119
+24181, 31404, 40013, 45770, 49541, 47344, 36186, 26834, // 9120-9127
+24027, 19825, 16181, 18465, 24455, 29611, 29866, 30630, // 9128-9135
+37509, 40284, 39558, 41099, 32580, 27695, 35092, 26271, // 9136-9143
+19514, 36282, 34017, 12435, 17993, 35802, 34664, 26654, // 9144-9151
+25670, 39973, 51118, 29644, 8147, 16862, 28653, 34165, // 9152-9159
+46589, 49986, 30751, 10298, 3055, 7415, 24268, 41373, // 9160-9167
+47306, 45919, 39462, 31671, 24177, 17956, 27131, 42275, // 9168-9175
+43902, 44622, 46513, 43597, 41203, 37687, 35311, 32257, // 9176-9183
+26141, 23039, 20674, 18385, 22894, 31216, 35680, 39929, // 9184-9191
+40564, 34542, 33430, 34993, 35820, 37982, 37350, 37799, // 9192-9199
+39057, 31788, 19740, 19011, 29537, 35654, 35235, 34290, // 9200-9207
+31710, 28641, 29072, 32082, 40903, 50841, 48871, 40475, // 9208-9215
+32876, 27672, 27171, 28086, 28725, 30811, 35431, 33807, // 9216-9223
+25929, 23929, 24515, 23866, 24420, 25813, 27834, 31767, // 9224-9231
+33817, 32225, 39023, 46747, 41386, 35116, 37611, 43945, // 9232-9239
+46022, 46467, 44774, 32553, 20036, 18808, 25775, 34882, // 9240-9247
+41770, 42454, 35350, 25731, 18998, 19571, 28818, 38603, // 9248-9255
+45136, 47912, 40105, 33658, 33279, 26000, 25754, 28838, // 9256-9263
+28963, 34804, 28733, 26234, 36673, 39559, 41861, 42399, // 9264-9271
+40273, 34877, 29108, 29638, 22135, 22506, 38745, 36349, // 9272-9279
+20797, 27598, 37959, 24320, 17152, 29275, 42463, 41129, // 9280-9287
+21947, 13482, 20839, 27782, 37034, 53122, 55833, 26507, // 9288-9295
+1873,   0, 3213, 20771, 39224, 47414, 46617, 35099, // 9296-9303
+22149, 12578, 11315, 20810, 34153, 45568, 50527, 49292, // 9304-9311
+45543, 38995, 34071, 36359, 33620, 21926, 15834, 18627, // 9312-9319
+23675, 24474, 25295, 30686, 35274, 36623, 32316, 30949, // 9320-9327
+37177, 36238, 33087, 39490, 43175, 33952, 21004, 19431, // 9328-9335
+29289, 37551, 37238, 33269, 31465, 26272, 23084, 30864, // 9336-9343
+37858, 46832, 56282, 49289, 37289, 29280, 23738, 26028, // 9344-9351
+29891, 30636, 34318, 39396, 36539, 30561, 27252, 23341, // 9352-9359
+25311, 29171, 27076, 27887, 33202, 34426, 32197, 36026, // 9360-9367
+38902, 32597, 32153, 36346, 38223, 46877, 48468, 37167, // 9368-9375
+26726, 15905, 18131, 32866, 38989, 46309, 47357, 27288, // 9376-9383
+16944, 23564, 24582, 35610, 51882, 49389, 48056, 39470, // 9384-9391
+24789, 29161, 23961, 18896, 29407, 26165, 21535, 30107, // 9392-9399
+38090, 40665, 46433, 47498, 42563, 44917, 38760, 32630, // 9400-9407
+31611, 22165, 26654, 34931, 24670, 17405, 28982, 32664, // 9408-9415
+19047, 23453, 40419, 47305, 38729, 19817, 15535, 20923, // 9416-9423
+30337, 50433, 61181, 46406, 19162, 3971, 3380, 13642, // 9424-9431
+34073, 51730, 51928, 37124, 24446, 14745, 11578, 16500, // 9432-9439
+23637, 38246, 45964, 46942, 49267, 43086, 38820, 37733, // 9440-9447
+33692, 27512, 16882, 12583, 18974, 22894, 21196, 26012, // 9448-9455
+31552, 28715, 29484, 35866, 39700, 36534, 32685, 37350, // 9456-9463
+41274, 32941, 17088, 12698, 23135, 30400, 32151, 35016, // 9464-9471
+34801, 29449, 26636, 31604, 40735, 48197, 52216, 53270, // 9472-9479
+46069, 30356, 20199, 23239, 28276, 26628, 26192, 31324, // 9480-9487
+34108, 30521, 25479, 24051, 27059, 31269, 30098, 26885, // 9488-9495
+30608, 36312, 36249, 34353, 37788, 40220, 37092, 35925, // 9496-9503
+34350, 41819, 56063, 47672, 32909, 23938, 13886, 22110, // 9504-9511
+34208, 43902, 52998, 37807, 21034, 18747, 23014, 36586, // 9512-9519
+45871, 50843, 53789, 47643, 38553, 30325, 25367, 27138, // 9520-9527
+27980, 20407, 16078, 21595, 31909, 39997, 41872, 45859, // 9528-9535
+45271, 42800, 43444, 37582, 39196, 36283, 25216, 32439, // 9536-9543
+33594, 19974, 22449, 34930, 33162, 25278, 30104, 41770, // 9544-9551
+44818, 30891, 14915, 15881, 26109, 38313, 52485, 53542, // 9552-9559
+34087, 14082, 2944, 5476, 22995, 37454, 48807, 46040, // 9560-9567
+25210, 17791, 19553, 17925, 22239, 31003, 36496, 42017, // 9568-9575
+51277, 51468, 45685, 44274, 40144, 29528, 16574, 11566, // 9576-9583
+15601, 19439, 18041, 19498, 26973, 25965, 27208, 39550, // 9584-9591
+44153, 40986, 39543, 41850, 43325, 35328, 21755, 15165, // 9592-9599
+18490, 23710, 26656, 27243, 25813, 21713, 19231, 26928, // 9600-9607
+38064, 44798, 49042, 50453, 46023, 33869, 23100, 24251, // 9608-9615
+33295, 35363, 28488, 29193, 32137, 26900, 23922, 23501, // 9616-9623
+25683, 28320, 26050, 27498, 23382, 21692, 39651, 38222, // 9624-9631
+23946, 39366, 48409, 37763, 35129, 33549, 44595, 58112, // 9632-9639
+40484, 24605, 22549, 15553, 22583, 36426, 45297, 49857, // 9640-9647
+34437, 17731, 19828, 29607, 38791, 41592, 45601, 53453, // 9648-9655
+49450, 37303, 28949, 29769, 35297, 25751, 14921, 23020, // 9656-9663
+29336, 30951, 38164, 43702, 44429, 42331, 41205, 40523, // 9664-9671
+40243, 39201, 32104, 28730, 35643, 30395, 14422, 25179, // 9672-9679
+42422, 35582, 30012, 35970, 47897, 44774, 24439, 21608, // 9680-9687
+28383, 35615, 45979, 48946, 44832, 28660, 10600, 6332, // 9688-9695
+12887, 26124, 41397, 48691, 40238, 27279, 20706, 19167, // 9696-9703
+19533, 23738, 31949, 38104, 50657, 57884, 49228, 47146, // 9704-9711
+46398, 37673, 26470, 15993, 15547, 18116, 13673, 12723, // 9712-9719
+20552, 22391, 23085, 36757, 46066, 44007, 45112, 48700, // 9720-9727
+44011, 34555, 27076, 20157, 19121, 24180, 29149, 27518, // 9728-9735
+19666, 16096, 17668, 25518, 36612, 43333, 47804, 47264, // 9736-9743
+38328, 27864, 25658, 29381, 33633, 37316, 37095, 34035, // 9744-9751
+28707, 25629, 27973, 29658, 27371, 25260, 29644, 32843, // 9752-9759
+24127, 15850, 33909, 47780, 24660, 24029, 50252, 50756, // 9760-9767
+34876, 21261, 30787, 52641, 49491, 31260, 21587, 20947, // 9768-9775
+18175, 23278, 39664, 51337, 48259, 27059, 14949, 22356, // 9776-9783
+30697, 35880, 40402, 49670, 53441, 43576, 29873, 25622, // 9784-9791
+29556, 24813, 19702, 20967, 24118, 29618, 31556, 38235, // 9792-9799
+47429, 46210, 43468, 42613, 37510, 32862, 27745, 21612, // 9800-9807
+27906, 31070, 15682, 10016, 25099, 35040, 29550, 29907, // 9808-9815
+42035, 49561, 39253, 21718, 25000, 35080, 39231, 47402, // 9816-9823
+48367, 40847, 25106, 9788, 9644, 20315, 36914, 47931, // 9824-9831
+49567, 41861, 27262, 19408, 17737, 21309, 28068, 35763, // 9832-9839
+46928, 55129, 54765, 50187, 50637, 46487, 33452, 26854, // 9840-9847
+23401, 17353, 12210, 11704, 15783, 16693, 18877, 30204, // 9848-9855
+41745, 44488, 44570, 47525, 46274, 35862, 26769, 26190, // 9856-9863
+26493, 27097, 28607, 27412, 23493, 16252, 17217, 29898, // 9864-9871
+41195, 47942, 49111, 45815, 39943, 31362, 28650, 30111, // 9872-9879
+31841, 37116, 37130, 32721, 27975, 22450, 27036, 30703, // 9880-9887
+25103, 24818, 29304, 34801, 29988, 16081, 29433, 52797, // 9888-9895
+34235, 17824, 44067, 56812, 43089, 25028, 18775, 42526, // 9896-9903
+52428, 35024, 23430, 18053, 16692, 18622, 33948, 54024, // 9904-9911
+55734, 41283, 21558, 16751, 23250, 32457, 45399, 51482, // 9912-9919
+52982, 48350, 37991, 26658, 19422, 19912, 18108, 16225, // 9920-9927
+15424, 19644, 28936, 33741, 41281, 46025, 47518, 47828, // 9928-9935
+39170, 33612, 29210, 19425, 20359, 30103, 25157, 11433, // 9936-9943
+13285, 24927, 28900, 28343, 38745, 49946, 43440, 28319, // 9944-9951
+19552, 24493, 33650, 41491, 49317, 45169, 30301, 14604, // 9952-9959
+7357, 14997, 30909, 45026, 52558, 49025, 34052, 23840, // 9960-9967
+18799, 17631, 27970, 35351, 41411, 47514, 45800, 47197, // 9968-9975
+49776, 44784, 35302, 29748, 26951, 20969, 12108, 10445, // 9976-9983
+19454, 19527, 20352, 34558, 45684, 49816, 48376, 49931, // 9984-9991
+48125, 36888, 29724, 29885, 36197, 33228, 23719, 21424, // 9992-9999
+21308, 18507, 12284, 21584, 39120, 46683, 43962, 33622, // 10000-10007
+36111, 38727, 36589, 37596, 34306, 40774, 39181, 28666, // 10008-10015
+27506, 25964, 30086, 30562, 23310, 20128, 21759, 26364, // 10016-10023
+26472, 20167, 22748, 47045, 45531, 18414, 33290, 55729, // 10024-10031
+50263, 37300, 26823, 40041, 56710, 47331, 27866, 15687, // 10032-10039
+10199, 11076, 26736, 47523, 57174, 48390, 26594, 12219, // 10040-10047
+11277, 20925, 38103, 52606, 55883, 51402, 46739, 37689, // 10048-10055
+25599, 20246, 20464, 17763, 13777, 17413, 26626, 37098, // 10056-10063
+44148, 45177, 46739, 47051, 41970, 37439, 34105, 25743, // 10064-10071
+19057, 22347, 25378, 19418, 13378, 19977, 28433, 27955, // 10072-10079
+36619, 51581, 50734, 36616, 23829, 22384, 28645, 37693, // 10080-10087
+48201, 47357, 31575, 12958, 2081, 3606, 16101, 33440, // 10088-10095
+44225, 42806, 33117, 22016, 15857, 15382, 23176, 35462, // 10096-10103
+41520, 44758, 48389, 49021, 48305, 46393, 40018, 31372, // 10104-10111
+24713, 17651, 11964, 10884, 11382, 12798, 18579, 32281, // 10112-10119
+42791, 43228, 47997, 54524, 47405, 34490, 30414, 37008, // 10120-10127
+46972, 39814, 22480, 23224, 24723, 18366, 17661, 23111, // 10128-10135
+38596, 42581, 33887, 33169, 31224, 33423, 40038, 39203, // 10136-10143
+37721, 40485, 40795, 36251, 32343, 27422, 30300, 33150, // 10144-10151
+25330, 26702, 26980, 25507, 29462, 21925, 21540, 40952, // 10152-10159
+53711, 36998, 23241, 40985, 48671, 38246, 32167, 35467, // 10160-10167
+50986, 56596, 40988, 22369, 15602, 15683, 23188, 43901, // 10168-10175
+58295, 58143, 42295, 17853, 9556, 13094, 21673, 37319, // 10176-10183
+48788, 50675, 45635, 36374, 24579, 17895, 18697, 18591, // 10184-10191
+18934, 21407, 23039, 30058, 41422, 48680, 52848, 51802, // 10192-10199
+46542, 41891, 35167, 28318, 22768, 22442, 26034, 21804, // 10200-10207
+14683, 15199, 21059, 24627, 28347, 39667, 49930, 44326, // 10208-10215
+27408, 22150, 28608, 36601, 49230, 54055, 44118, 26687, // 10216-10223
+11080, 6191, 12214, 27348, 39266, 41940, 36985, 25962, // 10224-10231
+18148, 12553, 17175, 30401, 36256, 42059, 48262, 50045, // 10232-10239
+47815, 44181, 44787, 40341, 27349, 18192, 17701, 15140, // 10240-10247
+9578, 6926, 11723, 31123, 37402, 28879, 39902, 52343, // 10248-10255
+45262, 28318, 23928, 39690, 48399, 41330, 28086, 20828, // 10256-10263
+23517, 20651, 14893, 26470, 44031, 38401, 31653, 36240, // 10264-10271
+31941, 32981, 36791, 40451, 45393, 37471, 35725, 36723, // 10272-10279
+31171, 30305, 27573, 28212, 29349, 25895, 25527, 25380, // 10280-10287
+26605, 26952, 21719, 27860, 51884, 52617, 29225, 29582, // 10288-10295
+37458, 32583, 30622, 31490, 40126, 53575, 50777, 31734, // 10296-10303
+20110, 17026, 15709, 29047, 47728, 57385, 53789, 35878, // 10304-10311
+21220, 15792, 16583, 27020, 43063, 55262, 55322, 46906, // 10312-10319
+38162, 29101, 20812, 17980, 18251, 20838, 23959, 23790, // 10320-10327
+33684, 48485, 51349, 50025, 47027, 43237, 39736, 34262, // 10328-10335
+30912, 28129, 26702, 24371, 18227, 16771, 22154, 24978, // 10336-10343
+25319, 35674, 47060, 46316, 39905, 30795, 25192, 29745, // 10344-10351
+40999, 50536, 50272, 40780, 25921, 12810, 8418, 16066, // 10352-10359
+32619, 42524, 40698, 35614, 27770, 18604, 16954, 22348, // 10360-10367
+30472, 38371, 42027, 45002, 46026, 43547, 42469, 42720, // 10368-10375
+38507, 22670, 14802, 22012, 14687, 3506, 11347, 24174, // 10376-10383
+28897, 24774, 26333, 41794, 44758, 27115, 21158, 34197, // 10384-10391
+47144, 46362, 32485, 26765, 23725, 11287, 9982, 23052, // 10392-10399
+37357, 39985, 33249, 34384, 35413, 32515, 36130, 44503, // 10400-10407
+50140, 46027, 39911, 36375, 30258, 27554, 28206, 29735, // 10408-10415
+31299, 28176, 25455, 23181, 21519, 26799, 30226, 29185, // 10416-10423
+36888, 52333, 51274, 31833, 26566, 31892, 29212, 28583, // 10424-10431
+32355, 41889, 53172, 49535, 34565, 23128, 17921, 18685, // 10432-10439
+30169, 45422, 54988, 52650, 36030, 22322, 14516, 11209, // 10440-10447
+23578, 40312, 50888, 53751, 46417, 35335, 26694, 20704, // 10448-10455
+15008, 14090, 16342, 18743, 26872, 35902, 43492, 48228, // 10456-10463
+46702, 43968, 42797, 42975, 40024, 34986, 30556, 25495, // 10464-10471
+21211, 14876, 12898, 17797, 21834, 27373, 35904, 46489, // 10472-10479
+50822, 44303, 35494, 30112, 32758, 39101, 46143, 50937, // 10480-10487
+42715, 28257, 14618, 6400, 15939, 32754, 39739, 41851, // 10488-10495
+40704, 31478, 22467, 18507, 23600, 35538, 38001, 39640, // 10496-10503
+48219, 52317, 50505, 44581, 44329, 41486, 25987, 21266, // 10504-10511
+22135, 16232, 15653, 18727, 26245, 29349, 25921, 36545, // 10512-10519
+43967, 36110, 31419, 31126, 40262, 50588, 46080, 36699, // 10520-10527
+25067, 13694, 8036, 9715, 22936, 33539, 35711, 35781, // 10528-10535
+31207, 27523, 29073, 37540, 46060, 44022, 42813, 41019, // 10536-10543
+29916, 23681, 23980, 26025, 28635, 24040, 20711, 20805, // 10544-10551
+16769, 19546, 29338, 35117, 34108, 35507, 49293, 53804, // 10552-10559
+39518, 30618, 30307, 31069, 31267, 30307, 38904, 52952, // 10560-10567
+51286, 35053, 20994, 15690, 19214, 30272, 44913, 56599, // 10568-10575
+56535, 42470, 25266, 15231, 14855, 24820, 37358, 47076, // 10576-10583
+53325, 46717, 32576, 25725, 24939, 22297, 16055, 15075, // 10584-10591
+21892, 27738, 31085, 36050, 41636, 44727, 45561, 43709, // 10592-10599
+43385, 43075, 35103, 27428, 26587, 26881, 17880, 5116, // 10600-10607
+8888, 22868, 30549, 32132, 41606, 55603, 50129, 35888, // 10608-10615
+28902, 30591, 38563, 41035, 45872, 43709, 24291, 10065, // 10616-10623
+6665, 13864, 24704, 34530, 46466, 44851, 34693, 27288, // 10624-10631
+21994, 26083, 31142, 32542, 41189, 51700, 53804, 49752, // 10632-10639
+45768, 43603, 36153, 27180, 26787, 23639, 16616, 17027, // 10640-10647
+23836, 29624, 27616, 33507, 45171, 41332, 37165, 37360, // 10648-10655
+36978, 44043, 49131, 47276, 37389, 17939, 7056, 11689, // 10656-10663
+17072, 23481, 34049, 39228, 39393, 32869, 26066, 33015, // 10664-10671
+39060, 39230, 42777, 43390, 40079, 34501, 28818, 26070, // 10672-10679
+24895, 24574, 21502, 19374, 19357, 16303, 19711, 27520, // 10680-10687
+29191, 30589, 33641, 41519, 49666, 41258, 28427, 28348, // 10688-10695
+30892, 27809, 25943, 33035, 44895, 46035, 32190, 20945, // 10696-10703
+18813, 21145, 32417, 44866, 52150, 53981, 42375, 25316, // 10704-10711
+16130, 16969, 24729, 34153, 43091, 48272, 45567, 36154, // 10712-10719
+29315, 29363, 28099, 21628, 18190, 22768, 28056, 33276, // 10720-10727
+37415, 38603, 44209, 46820, 44460, 43258, 40925, 38658, // 10728-10735
+30297, 25059, 31619, 25403, 5225, 5721, 27199, 32702, // 10736-10743
+28606, 37653, 48930, 51800, 36059, 20686, 27950, 35491, // 10744-10751
+38552, 43752, 41864, 29396, 15003, 10240, 13909, 25400, // 10752-10759
+36438, 42517, 47408, 39829, 29898, 29236, 30571, 35010, // 10760-10767
+38214, 40725, 45691, 48405, 47081, 44874, 44001, 37878, // 10768-10775
+33256, 31415, 21400, 15554, 20123, 28042, 30331, 26214, // 10776-10783
+33768, 43755, 38292, 32341, 35207, 38860, 42648, 48104, // 10784-10791
+45313, 32589, 19550, 12051, 15536, 25790, 32570, 34824, // 10792-10799
+38218, 39824, 32956, 30303, 34205, 34809, 39785, 45048, // 10800-10807
+41983, 37685, 36681, 34621, 27143, 23603, 25582, 24257, // 10808-10815
+21406, 18352, 20249, 25314, 25089, 27542, 30919, 29667, // 10816-10823
+34667, 42147, 38570, 32048, 32957, 32004, 26081, 25960, // 10824-10831
+33647, 41223, 39887, 31276, 23967, 19893, 20901, 29129, // 10832-10839
+41461, 49656, 47158, 38798, 27004, 16057, 15882, 22582, // 10840-10847
+31693, 39273, 42174, 43542, 38522, 32045, 29969, 28300, // 10848-10855
+27263, 24494, 25087, 29273, 32821, 36254, 37325, 42553, // 10856-10863
+45739, 44589, 43436, 37483, 37476, 32025, 24324, 35337, // 10864-10871
+30893, 8908, 10595, 31598, 38644, 26688, 28493, 47771, // 10872-10879
+50664, 32298, 20318, 25767, 33640, 38058, 41869, 42132, // 10880-10887
+32122, 14885, 7401, 13677, 23321, 30201, 37730, 44810, // 10888-10895
+42109, 33495, 29184, 30349, 32689, 33894, 36279, 41807, // 10896-10903
+45265, 44821, 46550, 41860, 34966, 34656, 26051, 18601, // 10904-10911
+20322, 23510, 27098, 25195, 28662, 35604, 36917, 37998, // 10912-10919
+34659, 37239, 45658, 47683, 46834, 39491, 29712, 24228, // 10920-10927
+20107, 22570, 33480, 38780, 33601, 31429, 33847, 35148, // 10928-10935
+34031, 32655, 37165, 43379, 44901, 42467, 40867, 39517, // 10936-10943
+34616, 29292, 25341, 26963, 28902, 25345, 25482, 27395, // 10944-10951
+28260, 29089, 28286, 29196, 32489, 36778, 38757, 38078, // 10952-10959
+36502, 34598, 31974, 27928, 30149, 38817, 44110, 40645, // 10960-10967
+31071, 24655, 20891, 20392, 29688, 40835, 45354, 44935, // 10968-10975
+36723, 24008, 17203, 15853, 21663, 31074, 36261, 37889, // 10976-10983
+34626, 32212, 28218, 23888, 25124, 23404, 26213, 26564, // 10984-10991
+24676, 33873, 35950, 37762, 42582, 42427, 43695, 38101, // 10992-10999
+36581, 35866, 26826, 29121, 34108, 24443, 12279, 20748, // 11000-11007
+35797, 33288, 29279, 34198, 45962, 49707, 33196, 22873, // 11008-11015
+30118, 38180, 43103, 47993, 45190, 31172, 16218, 8570, // 11016-11023
+12452, 23153, 33833, 42081, 43937, 40847, 34654, 28147, // 11024-11031
+27911, 32083, 34018, 37545, 44529, 48659, 50109, 45577, // 11032-11039
+41361, 41150, 31892, 23258, 20631, 21255, 26719, 25132, // 11040-11047
+24765, 30807, 32566, 32141, 31096, 36209, 45215, 47903, // 11048-11055
+47220, 43233, 35573, 27496, 24498, 29042, 34446, 38794, // 11056-11063
+39263, 32735, 28624, 29821, 31157, 33400, 35789, 39904, // 11064-11071
+44806, 44802, 42389, 38247, 33584, 30568, 27238, 25320, // 11072-11079
+25019, 26487, 26240, 24218, 26017, 26956, 27272, 29182, // 11080-11087
+30822, 32921, 34520, 38130, 38805, 35380, 35033, 33341, // 11088-11095
+31681, 34945, 40183, 43556, 41743, 36102, 29801, 26297, // 11096-11103
+26285, 29834, 37459, 43891, 44510, 37099, 26772, 22106, // 11104-11111
+22776, 26779, 31327, 34690, 37544, 38232, 34431, 27000, // 11112-11119
+23343, 23590, 23528, 25983, 26649, 27555, 34711, 37628, // 11120-11127
+35827, 36614, 37094, 35681, 31617, 29892, 29487, 22878, // 11128-11135
+23888, 31236, 22685, 14146, 24473, 31667, 26879, 27742, // 11136-11143
+35678, 41140, 40424, 33056, 26619, 28152, 34538, 40332, // 11144-11151
+43450, 41003, 31307, 20552, 15230, 17886, 27331, 36974, // 11152-11159
+42969, 43280, 38805, 35433, 32142, 29023, 31109, 35816, // 11160-11167
+41432, 46231, 45825, 43353, 40852, 38812, 36555, 30689, // 11168-11175
+25796, 24792, 25278, 25049, 25801, 31104, 34166, 34429, // 11176-11183
+34777, 33490, 37302, 42185, 41149, 36606, 31247, 29670, // 11184-11191
+29034, 28732, 30895, 33062, 34757, 32946, 31322, 32312, // 11192-11199
+32003, 33684, 37612, 40677, 41747, 43309, 46402, 45047, // 11200-11207
+40306, 35783, 31862, 29893, 28727, 29021, 28910, 25901, // 11208-11215
+24533, 25141, 26167, 28208, 30522, 34239, 35098, 33611, // 11216-11223
+36829, 37650, 35662, 39254, 41022, 39078, 39080, 37954, // 11224-11231
+39181, 41948, 36502, 32328, 32803, 29475, 31459, 36539, // 11232-11239
+39579, 42290, 35708, 28820, 26680, 25888, 30532, 29918, // 11240-11247
+30494, 37369, 35920, 32735, 29853, 25851, 26749, 25968, // 11248-11255
+24808, 27962, 32410, 36647, 36343, 33585, 34114, 34239, // 11256-11263
+32557, 29707, 26268, 27669, 28571, 25847, 26795, 24194, // 11264-11271
+18987, 23763, 29482, 28859, 29563, 31547, 32528, 32943, // 11272-11279
+30761, 27844, 27664, 30179, 32834, 33619, 32721, 28617, // 11280-11287
+23544, 20895, 21682, 28299, 34665, 36940, 37145, 34791, // 11288-11295
+34723, 35825, 33992, 32286, 34892, 42423, 45123, 42406, // 11296-11303
+42668, 42290, 38385, 33072, 30624, 29938, 25773, 24635, // 11304-11311
+27465, 29815, 33910, 35419, 34379, 36134, 38370, 40286, // 11312-11319
+39772, 36160, 34812, 33370, 30899, 31723, 32964, 32033, // 11320-11327
+30018, 28486, 28062, 27461, 27459, 28724, 32857, 37892, // 11328-11335
+38179, 37973, 40608, 41441, 39779, 36297, 33367, 32332, // 11336-11343
+29948, 28481, 29834, 29442, 27396, 26613, 27036, 28412, // 11344-11351
+30286, 32339, 33628, 33090, 32901, 34419, 35951, 37759, // 11352-11359
+40195, 40772, 39305, 38445, 38042, 37160, 37872, 37744, // 11360-11367
+33775, 32145, 32549, 31110, 34433, 40711, 40544, 34139, // 11368-11375
+28385, 28735, 30149, 29209, 31993, 35355, 34445, 33111, // 11376-11383
+32139, 30798, 29532, 29872, 32887, 33435, 32516, 34122, // 11384-11391
+34522, 34424, 34721, 35563, 38041, 34997, 28715, 28150, // 11392-11399
+29571, 29498, 29964, 30475, 28614, 25295, 25798, 31173, // 11400-11407
+34244, 32141, 30579, 31321, 34004, 36671, 34072, 28929, // 11408-11415
+26437, 28585, 32227, 30833, 26985, 23156, 19662, 21023, // 11416-11423
+25515, 29185, 30236, 29483, 30797, 32655, 32059, 30341, // 11424-11431
+30496, 33827, 37235, 38912, 39288, 37867, 35836, 33963, // 11432-11439
+32177, 30872, 30524, 29744, 26837, 27064, 31598, 33627, // 11440-11447
+34556, 36631, 36229, 34376, 34322, 34660, 34645, 35558, // 11448-11455
+34545, 33428, 34398, 33703, 32121, 30196, 30371, 33344, // 11456-11463
+33516, 32077, 31702, 34564, 38147, 37434, 37526, 38816, // 11464-11471
+38179, 35849, 33379, 32805, 30485, 28506, 29589, 30403, // 11472-11479
+29995, 27615, 27397, 30027, 31235, 31842, 31899, 32235, // 11480-11487
+31500, 29961, 32441, 35415, 35766, 37088, 38311, 36494, // 11488-11495
+34781, 34557, 33358, 34623, 37839, 37266, 35135, 34661, // 11496-11503
+35188, 36050, 36801, 36690, 35049, 33145, 31238, 29361, // 11504-11511
+30215, 33290, 34850, 33436, 31621, 31662, 31035, 29602, // 11512-11519
+30266, 32502, 33830, 32411, 31222, 32313, 32376, 32261, // 11520-11527
+33307, 33751, 32915, 31775, 33044, 33855, 30890, 28875, // 11528-11535
+29713, 30193, 29695, 30719, 33544, 34053, 31167, 29950, // 11536-11543
+32049, 34211, 35502, 34013, 30051, 29325, 31396, 33081, // 11544-11551
+32939, 29703, 27561, 27501, 26987, 27807, 30061, 32310, // 11552-11559
+33500, 32969, 32809, 32764, 31790, 31437, 31459, 32787, // 11560-11567
+35936, 37483, 36403, 34008, 32494, 32574, 31384, 30437, // 11568-11575
+30945, 29584, 28520, 30274, 31445, 31239, 32050, 32831, // 11576-11583
+31777, 30989, 32078, 33182, 32765, 32260, 32690, 32587, // 11584-11591
+31838, 32096, 33074, 33342, 33331, 33494, 33128, 33133, // 11592-11599
+33954, 34648, 35671, 36471, 36275, 35689, 34531, 33776, // 11600-11607
+33399, 31707, 30404, 30266, 30095, 30176, 30185, 30739, // 11608-11615
+31761, 31463, 30410, 30600, 32040, 32351, 32691, 35442, // 11616-11623
+36278, 33565, 32404, 34483, 36679, 35336, 32218, 32269, // 11624-11631
+33990, 34848, 34840, 33153, 32083, 32602, 33077, 33935, // 11632-11639
+34710, 34518, 32432, 29955, 30514, 32372, 33244, 32921, // 11640-11647
+32464, 33132, 33381, 32765, 31653, 31309, 32595, 32546, // 11648-11655
+31322, 31053, 31794, 33222, 33639, 33045, 33187, 33661, // 11656-11663
+33426, 33138, 33193, 32179, 31129, 32521, 33265, 31561, // 11664-11671
+31719, 33784, 34745, 34431, 33155, 33197, 34759, 34628, // 11672-11679
+33147, 32007, 31818, 32777, 32838, 31488, 30212, 28773, // 11680-11687
+27765, 28046, 29339, 31758, 33094, 32896, 32787, 32240, // 11688-11695
+32708, 33301, 32269, 32659, 34134, 35476, 36881, 36549, // 11696-11703
+35335, 34023, 32881, 32421, 30843, 29206, 28507, 27649, // 11704-11711
+28297, 29975, 30168, 29946, 30144, 30439, 31096, 31512, // 11712-11719
+31326, 30891, 30472, 30860, 31649, 31670, 31341, 30910, // 11720-11727
+30358, 30544, 31459, 32223, 32644, 33110, 33825, 34745, // 11728-11735
+35298, 34673, 33612, 33217, 33196, 32783, 31575, 30347, // 11736-11743
+30140, 30363, 30717, 31336, 31742, 31911, 31558, 31313, // 11744-11751
+31955, 32182, 31990, 33266, 35251, 35122, 33655, 34771, // 11752-11759
+37952, 38722, 36826, 35702, 36592, 37644, 37335, 35845, // 11760-11767
+34201, 33255, 33171, 33766, 34237, 33544, 31444, 29149, // 11768-11775
+28474, 29537, 31097, 31917, 31367, 30683, 31279, 32110, // 11776-11783
+31603, 30777, 31289, 32212, 32287, 32420, 33461, 34157, // 11784-11791
+33683, 33461, 34407, 35158, 34213, 32489, 32068, 32612, // 11792-11799
+32152, 31122, 31227, 31318, 30431, 30980, 33518, 34510, // 11800-11807
+33076, 32792, 34660, 35608, 34378, 32870, 32495, 32625, // 11808-11815
+32751, 33125, 33529, 33126, 31601, 30340, 30881, 32642, // 11816-11823
+33807, 33952, 33862, 33868, 33980, 33863, 33327, 32864, // 11824-11831
+33076, 33822, 34702, 35662, 35935, 35145, 34308, 33927, // 11832-11839
+33340, 32018, 31022, 30814, 30593, 30585, 30759, 30623, // 11840-11847
+30570, 31242, 32155, 32337, 32298, 32274, 31751, 31208, // 11848-11855
+31389, 31629, 31330, 30637, 29781, 29637, 30465, 31216, // 11856-11863
+31444, 31815, 32565, 32407, 31644, 31704, 32102, 31539, // 11864-11871
+30068, 29144, 28611, 27758, 27157, 27623, 28846, 29005, // 11872-11879
+28311, 28315, 29050, 29909, 30369, 30954, 31157, 31169, // 11880-11887
+33165, 35762, 35363, 33266, 34655, 38500, 38880, 36225, // 11888-11895
+35494, 37900, 39535, 38384, 36611, 35660, 35155, 34406, // 11896-11903
+34667, 35740, 35292, 33182, 31423, 31680, 32556, 32927, // 11904-11911
+33208, 32905, 32307, 31926, 31946, 31728, 31051, 30938, // 11912-11919
+30886, 31121, 32245, 33412, 33586, 32914, 32850, 33461, // 11920-11927
+34082, 34321, 33745, 32776, 31993, 31476, 31138, 31847, // 11928-11935
+32495, 31762, 32023, 33333, 33045, 31848, 32028, 33062, // 11936-11943
+33337, 32570, 31422, 31678, 32669, 32875, 32869, 32356, // 11944-11951
+31970, 31886, 31602, 32636, 34548, 35827, 36185, 35798, // 11952-11959
+35317, 35293, 35261, 34558, 34308, 35270, 36442, 37078, // 11960-11967
+37142, 37143, 36659, 35985, 36086, 35589, 33929, 32739, // 11968-11975
+32408, 32136, 32066, 32751, 33385, 33486, 33574, 33510, // 11976-11983
+33212, 33246, 33326, 32455, 31689, 31978, 32089, 31299, // 11984-11991
+29846, 28881, 29320, 30472, 31127, 30938, 31416, 32224, // 11992-11999
+31689, 31139, 31593, 32005, 30948, 29134, 28456, 28087, // 12000-12007
+27784, 27581, 26999, 26824, 26858, 27009, 27132, 26978, // 12008-12015
+27579, 29245, 30881, 30820, 30097, 32134, 34904, 32906, // 12016-12023
+30352, 34116, 38524, 36981, 32816, 32336, 35698, 36793, // 12024-12031
+34651, 32943, 32310, 31604, 31567, 33851, 35279, 33405, // 12032-12039
+30926, 30233, 31082, 31513, 32124, 33491, 33841, 33682, // 12040-12047
+34202, 34390, 33175, 32425, 33116, 33663, 33470, 33194, // 12048-12055
+33914, 34432, 34288, 34521, 34471, 34207, 33510, 32800, // 12056-12063
+32824, 32412, 31254, 30736, 32160, 32521, 30824, 31175, // 12064-12071
+32567, 32479, 31744, 31426, 32234, 32677, 31271, 30459, // 12072-12079
+31660, 32377, 32190, 32333, 32495, 32155, 31239, 31801, // 12080-12087
+33750, 35194, 36737, 37896, 38106, 37604, 37105, 37334, // 12088-12095
+37219, 37402, 38530, 39552, 39841, 38804, 37348, 36198, // 12096-12103
+35025, 33805, 32341, 31287, 30502, 29546, 29312, 29884, // 12104-12111
+30882, 31749, 31941, 31770, 31930, 32695, 33498, 33708, // 12112-12119
+33161, 32634, 32661, 32667, 32147, 31070, 30760, 31071, // 12120-12127
+31145, 31955, 32910, 33446, 33673, 33276, 32896, 32493, // 12128-12135
+32122, 31772, 31138, 29975, 28999, 28902, 28149, 27368, // 12136-12143
+26852, 26471, 27264, 27060, 26749, 27719, 28701, 29827, // 12144-12151
+29301, 29106, 32518, 34783, 32047, 30158, 33771, 37673, // 12152-12159
+37045, 33414, 32556, 35906, 37328, 35463, 33803, 32843, // 12160-12167
+31641, 31900, 34430, 35755, 34309, 31342, 29528, 29820, // 12168-12175
+30891, 32316, 32599, 32623, 33174, 33304, 32933, 31655, // 12176-12183
+31326, 31557, 31189, 31423, 31923, 32638, 32819, 33284, // 12184-12191
+34047, 33629, 33012, 32007, 31125, 30538, 29629, 29027, // 12192-12199
+29103, 29740, 29315, 28913, 29996, 31488, 32104, 31392, // 12200-12207
+31617, 32678, 33131, 32849, 32731, 33553, 33115, 32548, // 12208-12215
+32895, 32618, 32189, 31548, 32151, 33780, 34893, 36139, // 12216-12223
+37209, 37763, 37400, 37091, 37408, 37433, 37907, 38977, // 12224-12231
+39930, 39986, 39437, 38676, 37123, 35476, 33883, 32504, // 12232-12239
+32045, 31796, 31142, 30808, 31202, 32165, 33050, 33022, // 12240-12247
+33078, 33559, 33812, 34289, 34414, 34320, 34032, 33690, // 12248-12255
+33934, 33629, 33558, 33744, 33348, 33557, 33997, 34017, // 12256-12263
+33924, 33627, 32786, 31570, 30568, 29700, 29237, 28811, // 12264-12271
+27955, 27095, 26466, 26274, 26175, 25853, 25967, 26651, // 12272-12279
+27080, 27436, 28396, 29730, 30579, 29639, 29928, 33903, // 12280-12287
+35668, 32617, 30926, 34154, 37848, 36560, 32840, 32791, // 12288-12295
+35558, 35959, 33665, 32322, 32047, 30903, 30989, 32775, // 12296-12303
+33311, 32396, 30238, 28282, 28530, 29450, 30243, 30927, // 12304-12311
+31879, 32818, 32522, 31718, 30969, 30873, 31170, 31101, // 12312-12319
+31652, 32153, 32755, 34012, 34734, 34970, 34755, 34154, // 12320-12327
+33891, 33576, 32615, 31900, 32134, 32272, 32227, 31912, // 12328-12335
+31285, 31490, 32336, 32928, 32316, 32095, 33542, 33360, // 12336-12343
+32119, 32437, 32867, 32584, 31904, 31212, 30982, 31023, // 12344-12351
+31067, 31188, 31684, 31930, 32142, 32904, 33140, 32821, // 12352-12359
+32076, 31652, 32129, 32566, 33599, 34939, 35492, 35821, // 12360-12367
+35719, 35143, 34303, 33020, 32040, 31851, 31884, 31793, // 12368-12375
+31650, 32082, 33215, 33628, 33542, 33449, 33403, 33645, // 12376-12383
+33461, 33574, 33846, 33642, 33835, 33336, 32946, 33944, // 12384-12391
+34519, 34684, 35467, 36091, 35973, 35719, 35478, 35245, // 12392-12399
+34530, 33493, 32994, 32500, 32188, 31349, 30146, 29271, // 12400-12407
+27879, 27364, 27060, 26744, 26847, 26306, 26795, 27333, // 12408-12415
+28426, 29927, 29155, 30472, 34303, 35542, 33618, 33085, // 12416-12423
+36625, 38925, 36824, 33764, 34211, 36469, 36016, 33925, // 12424-12431
+32078, 31522, 31142, 30459, 31413, 31922, 30876, 29114, // 12432-12439
+27868, 28236, 28850, 29474, 30393, 31623, 32360, 31949, // 12440-12447
+31037, 30227, 30417, 30558, 30756, 31797, 32324, 32978, // 12448-12455
+34704, 36097, 35583, 35123, 35376, 34775, 33930, 32545, // 12456-12463
+31723, 31942, 31754, 31930, 31623, 30667, 30839, 31762, // 12464-12471
+31487, 30854, 31701, 32498, 32240, 31572, 31436, 31717, // 12472-12479
+31361, 30748, 30183, 30652, 31049, 31178, 32563, 33217, // 12480-12487
+33344, 33741, 34664, 35654, 34727, 34499, 34876, 34461, // 12488-12495
+34870, 35221, 35773, 36185, 35604, 34974, 34071, 32868, // 12496-12503
+31313, 29753, 29121, 28972, 28686, 28942, 30167, 30918, // 12504-12511
+31175, 31699, 31969, 32102, 32043, 31729, 31559, 31857, // 12512-12519
+32393, 31958, 31031, 31255, 32230, 32876, 32947, 33574, // 12520-12527
+35074, 35395, 35026, 35435, 35562, 35328, 34746, 34014, // 12528-12535
+33782, 33132, 32428, 31857, 30645, 29613, 29056, 28656, // 12536-12543
+28451, 28192, 27865, 27623, 27903, 29237, 30066, 29777, // 12544-12551
+31060, 33670, 34494, 32974, 32787, 36481, 38474, 35767, // 12552-12559
+33665, 34619, 36574, 36043, 33397, 32751, 32912, 32303, // 12560-12567
+32083, 31978, 32174, 31434, 29401, 28715, 29378, 30069, // 12568-12575
+30351, 31045, 32349, 32726, 32471, 32062, 31638, 31367, // 12576-12583
+31031, 31804, 32808, 33028, 33624, 34399, 34639, 34156, // 12584-12591
+33367, 32793, 32067, 30596, 29270, 29352, 29620, 29564, // 12592-12599
+29687, 29662, 30052, 30847, 31632, 31746, 31627, 32830, // 12600-12607
+33558, 32861, 32526, 32609, 32441, 31949, 31462, 31274, // 12608-12615
+31560, 31904, 32270, 33211, 33702, 33528, 33895, 34397, // 12616-12623
+34588, 34488, 34187, 34332, 34442, 34248, 34645, 35214, // 12624-12631
+35511, 35475, 34540, 33195, 32121, 30884, 29330, 28368, // 12632-12639
+27784, 27375, 27942, 28574, 29049, 29854, 30278, 30271, // 12640-12647
+29993, 29941, 29956, 29843, 30405, 30710, 30058, 29524, // 12648-12655
+29809, 30562, 31080, 31401, 32191, 33660, 34276, 33825, // 12656-12663
+33801, 33992, 34159, 33896, 33016, 32360, 31910, 31720, // 12664-12671
+31340, 30521, 29979, 29644, 29310, 28818, 28711, 29041, // 12672-12679
+28660, 29214, 30986, 31602, 31692, 32696, 34814, 36110, // 12680-12687
+35104, 35534, 38293, 39409, 37805, 35678, 35827, 37274, // 12688-12695
+37066, 35915, 35394, 35361, 35239, 34889, 34953, 34969, // 12696-12703
+33961, 32483, 31531, 31438, 31842, 31717, 31377, 31451, // 12704-12711
+31447, 31231, 30591, 29823, 29482, 29337, 30076, 31606, // 12712-12719
+32537, 33077, 33731, 34416, 35046, 35266, 34983, 34111, // 12720-12727
+32743, 31916, 31780, 31682, 31455, 31407, 31732, 31888, // 12728-12735
+31812, 31713, 31702, 32137, 32414, 32114, 31688, 31530, // 12736-12743
+31296, 30717, 30186, 29715, 29654, 29873, 30201, 31024, // 12744-12751
+31789, 32798, 33490, 33618, 34213, 34501, 34794, 35357, // 12752-12759
+35853, 36638, 36950, 36996, 37140, 37334, 37294, 35977, // 12760-12767
+34273, 33180, 32267, 31173, 30206, 29647, 29250, 29314, // 12768-12775
+29794, 30138, 30574, 31193, 31481, 31184, 30683, 29997, // 12776-12783
+29572, 29456, 29225, 29262, 29229, 29239, 29715, 29969, // 12784-12791
+30074, 30480, 30956, 31000, 30706, 30368, 30074, 29765, // 12792-12799
+28839, 27445, 26525, 26190, 25820, 25082, 24342, 24020, // 12800-12807
+24140, 24180, 24103, 24474, 25288, 26416, 27468, 28672, // 12808-12815
+30250, 31752, 33550, 35325, 36187, 36134, 36413, 37778, // 12816-12823
+38862, 38622, 37731, 37277, 37233, 36995, 36580, 35835, // 12824-12831
+35434, 35613, 35696, 35632, 34937, 33854, 33140, 32883, // 12832-12839
+33332, 34020, 34441, 34567, 34707, 35117, 34959, 33963, // 12840-12847
+32883, 32124, 31657, 31665, 32458, 33520, 34075, 34235, // 12848-12855
+34386, 34157, 33412, 32554, 31738, 31001, 30325, 30086, // 12856-12863
+30558, 31080, 31553, 32223, 32888, 33330, 33564, 33975, // 12864-12871
+34441, 34430, 33833, 33168, 32891, 32639, 31857, 30902, // 12872-12879
+30533, 30679, 30586, 30316, 30738, 31962, 33031, 33515, // 12880-12887
+33888, 34418, 34822, 34844, 34818, 34936, 35085, 35246, // 12888-12895
+35623, 36146, 36316, 35927, 35348, 34833, 34042, 32958, // 12896-12903
+32346, 32480, 32468, 32092, 32112, 32898, 33623, 33723, // 12904-12911
+33848, 34337, 34438, 33944, 33495, 33305, 33067, 32753, // 12912-12919
+32456, 31856, 31119, 30927, 31206, 31326, 31205, 31198, // 12920-12927
+31093, 30552, 30063, 29986, 29854, 29275, 28573, 28080, // 12928-12935
+27642, 27251, 26975, 26573, 25968, 25652, 25729, 25627, // 12936-12943
+25459, 25811, 26487, 26911, 27242, 27897, 28823, 29767, // 12944-12951
+30658, 31299, 31564, 31875, 32541, 32861, 32528, 32501, // 12952-12959
+33149, 33490, 33180, 33024, 33015, 32481, 31771, 31929, // 12960-12967
+32637, 32658, 32002, 31828, 32225, 32481, 32567, 32896, // 12968-12975
+33205, 33235, 33270, 33405, 33305, 33030, 32813, 32659, // 12976-12983
+32779, 33283, 33630, 33562, 33513, 33650, 33505, 33013, // 12984-12991
+32604, 32567, 32408, 31566, 30672, 30782, 31502, 31585, // 12992-12999
+31184, 31372, 32150, 32538, 32377, 32505, 33090, 33276, // 13000-13007
+32821, 32521, 32607, 32463, 31979, 31797, 31817, 31557, // 13008-13015
+31316, 31776, 32556, 32745, 32622, 33054, 33786, 34035, // 13016-13023
+34175, 34762, 35436, 35796, 36131, 36476, 36514, 36205, // 13024-13031
+35897, 35633, 35044, 33967, 32808, 32179, 32095, 31935, // 13032-13039
+31440, 31094, 31245, 31667, 32165, 32689, 33147, 33471, // 13040-13047
+33826, 34210, 34367, 34310, 34579, 35202, 35280, 34684, // 13048-13055
+34233, 34102, 33881, 33657, 33552, 33399, 33091, 32575, // 13056-13063
+31980, 31206, 30067, 29061, 28754, 28553, 27799, 26956, // 13064-13071
+26624, 26709, 26801, 26963, 27500, 28175, 28585, 28865, // 13072-13079
+29381, 30204, 30965, 31152, 31262, 32082, 32783, 32555, // 13080-13087
+32366, 32720, 32837, 32631, 32839, 33106, 32597, 31876, // 13088-13095
+32149, 32738, 32328, 31629, 31795, 32187, 31879, 31231, // 13096-13103
+31221, 31825, 31929, 31717, 32391, 33128, 32785, 32500, // 13104-13111
+32960, 33162, 32984, 33056, 33411, 33865, 34392, 35006, // 13112-13119
+35525, 35522, 35224, 35035, 34637, 34054, 33819, 33812, // 13120-13127
+33612, 33034, 32414, 32477, 32786, 32450, 31983, 31954, // 13128-13135
+32023, 32225, 32527, 32414, 32099, 32106, 32376, 32492, // 13136-13143
+32225, 32047, 32094, 31821, 31700, 32465, 33160, 33192, // 13144-13151
+33154, 33361, 33745, 33785, 32992, 32326, 32155, 31790, // 13152-13159
+31808, 32504, 32741, 32792, 33444, 33762, 33411, 33125, // 13160-13167
+33104, 33097, 32949, 32894, 33287, 33539, 33354, 33401, // 13168-13175
+33689, 33743, 33592, 33285, 33063, 33037, 32776, 32385, // 13176-13183
+32077, 31563, 31325, 31540, 31556, 31510, 31613, 31735, // 13184-13191
+32306, 32909, 32788, 32842, 33380, 33482, 33113, 32565, // 13192-13199
+32140, 32144, 31784, 30818, 30412, 30401, 30266, 30417, // 13200-13207
+30384, 30065, 30270, 30708, 30910, 31275, 31729, 32150, // 13208-13215
+32618, 33046, 33927, 35071, 35499, 35507, 35548, 35094, // 13216-13223
+34471, 34294, 34092, 33617, 33158, 33042, 32935, 32171, // 13224-13231
+31567, 31936, 31885, 30920, 30287, 30056, 29718, 29299, // 13232-13239
+28664, 28631, 29300, 29272, 28901, 29226, 29255, 28797, // 13240-13247
+28784, 28893, 29058, 29360, 29278, 29221, 29532, 29534, // 13248-13255
+29514, 30144, 31018, 31470, 31359, 31412, 32166, 32662, // 13256-13263
+32741, 33221, 33640, 33589, 33674, 33820, 33967, 34265, // 13264-13271
+34026, 33326, 33007, 32947, 32968, 32974, 32729, 32704, // 13272-13279
+33130, 33539, 33956, 34304, 34557, 35166, 35839, 36284, // 13280-13287
+36877, 37066, 36762, 36844, 36806, 36205, 35812, 35359, // 13288-13295
+34858, 35179, 35141, 33840, 32937, 33014, 32874, 32443, // 13296-13303
+32349, 32430, 32138, 31726, 31978, 32492, 32528, 32499, // 13304-13311
+32635, 32687, 32920, 33183, 33184, 33336, 33415, 33228, // 13312-13319
+33301, 33226, 32510, 31856, 31379, 30903, 31037, 31640, // 13320-13327
+31775, 31446, 31379, 31828, 32172, 32240, 32531, 32642, // 13328-13335
+32133, 32049, 32349, 31906, 31259, 31097, 30739, 30346, // 13336-13343
+30308, 30367, 30782, 31730, 32551, 33065, 33523, 33888, // 13344-13351
+34074, 34075, 34346, 35206, 35982, 36297, 36712, 37226, // 13352-13359
+37198, 36658, 36050, 35595, 35043, 34159, 33331, 32914, // 13360-13367
+32620, 32108, 31548, 31243, 31038, 30731, 30609, 30593, // 13368-13375
+30210, 29982, 30414, 30735, 30668, 31006, 31542, 31873, // 13376-13383
+32162, 32187, 31724, 31525, 31772, 31733, 31242, 30996, // 13384-13391
+31019, 30599, 29676, 29212, 29445, 29708, 29861, 30028, // 13392-13399
+30021, 29951, 30060, 30076, 30140, 30594, 30891, 30792, // 13400-13407
+31110, 31589, 31590, 31745, 32058, 31701, 31332, 31551, // 13408-13415
+31473, 31329, 31863, 32364, 32695, 33506, 34121, 34213, // 13416-13423
+34790, 35721, 36150, 36447, 36852, 36640, 36048, 35949, // 13424-13431
+36024, 35588, 34803, 33972, 33168, 32586, 32063, 31436, // 13432-13439
+31160, 31387, 31737, 31870, 31479, 31026, 31245, 31487, // 13440-13447
+31249, 31355, 31877, 32098, 32071, 31912, 31847, 31978, // 13448-13455
+31642, 31212, 31790, 32271, 31635, 31092, 31091, 31140, // 13456-13463
+31136, 30701, 30188, 30548, 31051, 30900, 30859, 31180, // 13464-13471
+31388, 31619, 32068, 32482, 32882, 33359, 33771, 34080, // 13472-13479
+34432, 34501, 34240, 34484, 34761, 34063, 33561, 33830, // 13480-13487
+33613, 33420, 33757, 33244, 32562, 32968, 33099, 32932, // 13488-13495
+33745, 34693, 35353, 36231, 36453, 35934, 35709, 35606, // 13496-13503
+35322, 34876, 34043, 33487, 33428, 32852, 31836, 31179, // 13504-13511
+30838, 30644, 30515, 30408, 30647, 30804, 30372, 30206, // 13512-13519
+30932, 31905, 32291, 32257, 32308, 32063, 31500, 31263, // 13520-13527
+30857, 30179, 30320, 30263, 29375, 29397, 29600, 28601, // 13528-13535
+28187, 28456, 27977, 27812, 28138, 28010, 28167, 28445, // 13536-13543
+28328, 28761, 29309, 29419, 30081, 30900, 31269, 32120, // 13544-13551
+33046, 33014, 32869, 33054, 33057, 32868, 32588, 32506, // 13552-13559
+33247, 34139, 33973, 33781, 34948, 36109, 36006, 35858, // 13560-13567
+35916, 35202, 34755, 35206, 34874, 33952, 33923, 34049, // 13568-13575
+33851, 33854, 33265, 32651, 33052, 32638, 31040, 30736, // 13576-13583
+31204, 30980, 31058, 31984, 32786, 32736, 32210, 32854, // 13584-13591
+33996, 33567, 33001, 33721, 34029, 33751, 33900, 34144, // 13592-13599
+34308, 34101, 33321, 32881, 32537, 31324, 30016, 29484, // 13600-13607
+29605, 29650, 29509, 29872, 30531, 31251, 32608, 33222, // 13608-13615
+33208, 35633, 38388, 37365, 35639, 36857, 38818, 38854, // 13616-13623
+36679, 34543, 35088, 35931, 34035, 32066, 32381, 32917, // 13624-13631
+32221, 31079, 30516, 30774, 30964, 30808, 31142, 31768, // 13632-13639
+32099, 32617, 33316, 33576, 33758, 34323, 34638, 34097, // 13640-13647
+33587, 33860, 33828, 32736, 31784, 31441, 31186, 31023, // 13648-13655
+30590, 29968, 29983, 29997, 29679, 29762, 29910, 30607, // 13656-13663
+32491, 33146, 32169, 32647, 34469, 35153, 34451, 33647, // 13664-13671
+33821, 33939, 32321, 30682, 30784, 30884, 30097, 29591, // 13672-13679
+29216, 28209, 27131, 26710, 26833, 27487, 28727, 29687, // 13680-13687
+30168, 30652, 30498, 30279, 31451, 32446, 32199, 32465, // 13688-13695
+33002, 32501, 31797, 31170, 30493, 30001, 29020, 27825, // 13696-13703
+27690, 27701, 26928, 26871, 28377, 30103, 31087, 31678, // 13704-13711
+32330, 33063, 33380, 33220, 33795, 35150, 35674, 35458, // 13712-13719
+35493, 35114, 34292, 33506, 32493, 31880, 31592, 30713, // 13720-13727
+30275, 30949, 31361, 31361, 31745, 32434, 32947, 33044, // 13728-13735
+33373, 34373, 35169, 35794, 36395, 36148, 35725, 35817, // 13736-13743
+35254, 34022, 33361, 33137, 32349, 30986, 30437, 30838, // 13744-13751
+30304, 29012, 29369, 31187, 32509, 32824, 33148, 34299, // 13752-13759
+35429, 35474, 35397, 36174, 36849, 36889, 37388, 38048, // 13760-13767
+37157, 35305, 34364, 33500, 31712, 30289, 29854, 29863, // 13768-13775
+30247, 30503, 30186, 30052, 30460, 31054, 31973, 33169, // 13776-13783
+33752, 33840, 34491, 35278, 35287, 35079, 34913, 34167, // 13784-13791
+33471, 33484, 33250, 32356, 31830, 32000, 31402, 29663, // 13792-13799
+28759, 29465, 30279, 30407, 30630, 31602, 32645, 32865, // 13800-13807
+33248, 34934, 36911, 38091, 38314, 37687, 36675, 35204, // 13808-13815
+33724, 33303, 33216, 33071, 33276, 32124, 29591, 28390, // 13816-13823
+28026, 26886, 25918, 26114, 27572, 29087, 28985, 28729, // 13824-13831
+30054, 31515, 31813, 31581, 31651, 31981, 31742, 31411, // 13832-13839
+32191, 33179, 32980, 31372, 29378, 28063, 26851, 25644, // 13840-13847
+25561, 25951, 26392, 27531, 28248, 28488, 29481, 30406, // 13848-13855
+31235, 32629, 33449, 33947, 34981, 35780, 36302, 36292, // 13856-13863
+35134, 34248, 33952, 33201, 32539, 32224, 31940, 32058, // 13864-13871
+32043, 31561, 31645, 32146, 32392, 32665, 33010, 33327, // 13872-13879
+34038, 34995, 35600, 35870, 35935, 35543, 35134, 35257, // 13880-13887
+35354, 34909, 34270, 33659, 33204, 32707, 31767, 30761, // 13888-13895
+29977, 29340, 29169, 29569, 30215, 31033, 31650, 31909, // 13896-13903
+32358, 33161, 34062, 34744, 35235, 35848, 36221, 35791, // 13904-13911
+34792, 33810, 33381, 33309, 32736, 31781, 31088, 30621, // 13912-13919
+30333, 30190, 30359, 31110, 31863, 32426, 33128, 33498, // 13920-13927
+33718, 34583, 35433, 35578, 35472, 35569, 35565, 34742, // 13928-13935
+33674, 33374, 32920, 31794, 30966, 30573, 30332, 29990, // 13936-13943
+29428, 29947, 31491, 32503, 33372, 34501, 35016, 35264, // 13944-13951
+35384, 34995, 34439, 33999, 33815, 33807, 33236, 32456, // 13952-13959
+31841, 30978, 30286, 29892, 29328, 28739, 28169, 27772, // 13960-13967
+27895, 28101, 28339, 28739, 29267, 30326, 31147, 31260, // 13968-13975
+31881, 32613, 32705, 32977, 32924, 32424, 32481, 32140, // 13976-13983
+31204, 30582, 29538, 28500, 27974, 26820, 25832, 25629, // 13984-13991
+24903, 24512, 25471, 26609, 27645, 28641, 29529, 31114, // 13992-13999
+32830, 33562, 33934, 34352, 34579, 34973, 35430, 35324, // 14000-14007
+35105, 35527, 35838, 35171, 34406, 34107, 33810, 33625, // 14008-14015
+33517, 33210, 33134, 33160, 33306, 34108, 34634, 34428, // 14016-14023
+34686, 35116, 34889, 34653, 34549, 34288, 34151, 33829, // 14024-14031
+32966, 32506, 32603, 32448, 32081, 31816, 31243, 30615, // 14032-14039
+30388, 30471, 30949, 31435, 31393, 31652, 32463, 32926, // 14040-14047
+33230, 33757, 34269, 34768, 34940, 34629, 34474, 34210, // 14048-14055
+33560, 32844, 32258, 32085, 31819, 31140, 31213, 31924, // 14056-14063
+32085, 32201, 32658, 33109, 33481, 33370, 33490, 34395, // 14064-14071
+34494, 33921, 34025, 33976, 33313, 32681, 32095, 31709, // 14072-14079
+31266, 30348, 29712, 29485, 29454, 29765, 29992, 30348, // 14080-14087
+31096, 31520, 31749, 32161, 33005, 34486, 35415, 35422, // 14088-14095
+35616, 35624, 35162, 34836, 34031, 33105, 32579, 31359, // 14096-14103
+29968, 29298, 28953, 28959, 28771, 28096, 28151, 28860, // 14104-14111
+29306, 29993, 30856, 31568, 32476, 32852, 32984, 33684, // 14112-14119
+33997, 33848, 33671, 33275, 33110, 32766, 31490, 30393, // 14120-14127
+29844, 28957, 27849, 26974, 26378, 26079, 25998, 25845, // 14128-14135
+25796, 26387, 27724, 29210, 30352, 31450, 32536, 33456, // 14136-14143
+34048, 34367, 35252, 35995, 35403, 35126, 35379, 34672, // 14144-14151
+33619, 32918, 32323, 31571, 30205, 28620, 28297, 28920, // 14152-14159
+28971, 28982, 29394, 29980, 31412, 32929, 33551, 34157, // 14160-14167
+35329, 35881, 35831, 36022, 35880, 36069, 36530, 35990, // 14168-14175
+35454, 35113, 34212, 33358, 32899, 32322, 31718, 31592, // 14176-14183
+31493, 31634, 31726, 31472, 31939, 32564, 32805, 32851, // 14184-14191
+32874, 33229, 33197, 33161, 33307, 33036, 32809, 33057, // 14192-14199
+33244, 32754, 32164, 31879, 31645, 31306, 30671, 30650, // 14200-14207
+30841, 30418, 30422, 31084, 31732, 32014, 32100, 32529, // 14208-14215
+33277, 33557, 33327, 33352, 33382, 33354, 33023, 32391, // 14216-14223
+32523, 32833, 32688, 32618, 32337, 31932, 32037, 31752, // 14224-14231
+31149, 31415, 31518, 31546, 32135, 32108, 32385, 32985, // 14232-14239
+32847, 32964, 33532, 33684, 33300, 32961, 32582, 32329, // 14240-14247
+32083, 31184, 30515, 30006, 29532, 29677, 29851, 30197, // 14248-14255
+30641, 31308, 32183, 32894, 33882, 34603, 35016, 35221, // 14256-14263
+34809, 34555, 34278, 33763, 33518, 33145, 32140, 31086, // 14264-14271
+30417, 29555, 28688, 28188, 27644, 27315, 27288, 27345, // 14272-14279
+27682, 28400, 29143, 30125, 31122, 31474, 31805, 32556, // 14280-14287
+33099, 33325, 33543, 33391, 33058, 33210, 32760, 31925, // 14288-14295
+31685, 31134, 30510, 30258, 29815, 29577, 29833, 29817, // 14296-14303
+30044, 30982, 31115, 31253, 32450, 33065, 33429, 34347, // 14304-14311
+34938, 35251, 35994, 36286, 36244, 36585, 36251, 35918, // 14312-14319
+35429, 34443, 34023, 33371, 32774, 32151, 31401, 31313, // 14320-14327
+31065, 31030, 31106, 31036, 31419, 32044, 32398, 32264, // 14328-14335
+32941, 33323, 32917, 33101, 32943, 33167, 33377, 32837, // 14336-14343
+32863, 32673, 32169, 32129, 32156, 31889, 31752, 31816, // 14344-14351
+31755, 31901, 31861, 31884, 32129, 32198, 32529, 32710, // 14352-14359
+32941, 33111, 32937, 32697, 32577, 32731, 32235, 32025, // 14360-14367
+32116, 31942, 32537, 32467, 32263, 32754, 32787, 32914, // 14368-14375
+33021, 33265, 33452, 33760, 34100, 33763, 33930, 34057, // 14376-14383
+34160, 34433, 33918, 33754, 33674, 33342, 32857, 31861, // 14384-14391
+31593, 31747, 31484, 31075, 30858, 30875, 31043, 31335, // 14392-14399
+31439, 31700, 32125, 32338, 32492, 32642, 32812, 32811, // 14400-14407
+32773, 32428, 31947, 31973, 31888, 31584, 30839, 29847, // 14408-14415
+29439, 29242, 28977, 28728, 28575, 28473, 28543, 28985, // 14416-14423
+29538, 29998, 30522, 31276, 31788, 32270, 32911, 32931, // 14424-14431
+32811, 32794, 32394, 31989, 31938, 31481, 31114, 31025, // 14432-14439
+29815, 29333, 29601, 29119, 29270, 29218, 28974, 29365, // 14440-14447
+29924, 30756, 31563, 32746, 33364, 33407, 34030, 34463, // 14448-14455
+34906, 34945, 35010, 35310, 34937, 34788, 34327, 33630, // 14456-14463
+32853, 32077, 32143, 31899, 31525, 31557, 31781, 31984, // 14464-14471
+31973, 32398, 32581, 32623, 33076, 33402, 33654, 33628, // 14472-14479
+33666, 34087, 34449, 34383, 34069, 33854, 33513, 33129, // 14480-14487
+32504, 31940, 31777, 31596, 31248, 30696, 31126, 31912, // 14488-14495
+31896, 32143, 32575, 32526, 32521, 32946, 32989, 32936, // 14496-14503
+33188, 32957, 33132, 33015, 32628, 32935, 32822, 32712, // 14504-14511
+32410, 32145, 32245, 32200, 32695, 32822, 32857, 33012, // 14512-14519
+32799, 32721, 32533, 32819, 32829, 32744, 33208, 33325, // 14520-14527
+33525, 32982, 32665, 32949, 32590, 32733, 32815, 32766, // 14528-14535
+32644, 32527, 32997, 33102, 33300, 33400, 33719, 34144, // 14536-14543
+33738, 33827, 34194, 34345, 34115, 33604, 33490, 33038, // 14544-14551
+32766, 32547, 32318, 32066, 31457, 31333, 30720, 30259, // 14552-14559
+30599, 30219, 30141, 30149, 30044, 30562, 30752, 30831, // 14560-14567
+31230, 31515, 31721, 32013, 32174, 32096, 32148, 31810, // 14568-14575
+31152, 30876, 30362, 29906, 29825, 29170, 28798, 28735, // 14576-14583
+28303, 28495, 28678, 28661, 29057, 29592, 30168, 30694, // 14584-14591
+31846, 32657, 32778, 33441, 33571, 33532, 33616, 33351, // 14592-14599
+33421, 33244, 32839, 32299, 31948, 32050, 31727, 31343, // 14600-14607
+31181, 30983, 30972, 31103, 31140, 31474, 31936, 32078, // 14608-14615
+32783, 33139, 32840, 33434, 33851, 33609, 33678, 34186, // 14616-14623
+34521, 34593, 34309, 33646, 33821, 33482, 32775, 32992, // 14624-14631
+32275, 31937, 32271, 32042, 31880, 31747, 32293, 32440, // 14632-14639
+32271, 32711, 32836, 32831, 32660, 32944, 33202, 32743, // 14640-14647
+32967, 33189, 32934, 32769, 32705, 32808, 32753, 32669, // 14648-14655
+32718, 33024, 32827, 32740, 33291, 33337, 33460, 33648, // 14656-14663
+33847, 33924, 33516, 33610, 33777, 33705, 33420, 33177, // 14664-14671
+33109, 32859, 32941, 32378, 32008, 32459, 32371, 32790, // 14672-14679
+32953, 32746, 32992, 32698, 32713, 32764, 32610, 32697, // 14680-14687
+32718, 33055, 33080, 33023, 33220, 33024, 32997, 32868, // 14688-14695
+32438, 32361, 32066, 31594, 31386, 30979, 30490, 30354, // 14696-14703
+30531, 30626, 30652, 31093, 31149, 30940, 31261, 31515, // 14704-14711
+31897, 32238, 32143, 31884, 31910, 32299, 32065, 32085, // 14712-14719
+32162, 31690, 32086, 31931, 31219, 31224, 30869, 30537, // 14720-14727
+30471, 30212, 30048, 30184, 30358, 30385, 30803, 31337, // 14728-14735
+31621, 31729, 31759, 32028, 32247, 32282, 32394, 32629, // 14736-14743
+32650, 32554, 32797, 32702, 32413, 32543, 32661, 32670, // 14744-14751
+32409, 32380, 32694, 32413, 32271, 32385, 32094, 32422, // 14752-14759
+32970, 32828, 32783, 32944, 32777, 32767, 33039, 32954, // 14760-14767
+32997, 32978, 32237, 32202, 32195, 31611, 31726, 31775, // 14768-14775
+31580, 31522, 31854, 32283, 31907, 31992, 32190, 32100, // 14776-14783
+32428, 32457, 32761, 33090, 33145, 33390, 33597, 33894, // 14784-14791
+33704, 33712, 33838, 33575, 33727, 33380, 33047, 33208, // 14792-14799
+33190, 33105, 32945, 33084, 32894, 32863, 32969, 32552, // 14800-14807
+33109, 33376, 33366, 33627, 33033, 33203, 33500, 33339, // 14808-14815
+33643, 33651, 33664, 33514, 33212, 32792, 32577, 33010, // 14816-14823
+32960, 32821, 32298, 32111, 32815, 32166, 31774, 32284, // 14824-14831
+32072, 32014, 32088, 32262, 32575, 32772, 32755, 32416, // 14832-14839
+32355, 31990, 31842, 32039, 31450, 31279, 31378, 31033, // 14840-14847
+30885, 30944, 31178, 31119, 30867, 30893, 30999, 31043, // 14848-14855
+30988, 31226, 31342, 31004, 30852, 31019, 31182, 31147, // 14856-14863
+31496, 31558, 31154, 31586, 31935, 31923, 32007, 31557, // 14864-14871
+31169, 31385, 31548, 31468, 31775, 31618, 31102, 31653, // 14872-14879
+31766, 31790, 32659, 32443, 32098, 32221, 32207, 32606, // 14880-14887
+32706, 32532, 32710, 32537, 32091, 32306, 32362, 31874, // 14888-14895
+32207, 32553, 32171, 32180, 32407, 32666, 32972, 32805, // 14896-14903
+32815, 33152, 32919, 32892, 33247, 32969, 32615, 32788, // 14904-14911
+32920, 32823, 32713, 32657, 32887, 33085, 32707, 32727, // 14912-14919
+32784, 32205, 32253, 32279, 32329, 32857, 32917, 33185, // 14920-14927
+33296, 33116, 33279, 33071, 33105, 33412, 33479, 33653, // 14928-14935
+33674, 33503, 33310, 33363, 33465, 33224, 32999, 32454, // 14936-14943
+31576, 31275, 31227, 31125, 31159, 31444, 31932, 32084, // 14944-14951
+32527, 33204, 33289, 33510, 33674, 33737, 34120, 33944, // 14952-14959
+33888, 34114, 33609, 32988, 32865, 32934, 32660, 32665, // 14960-14967
+33003, 32767, 32635, 32605, 32233, 32272, 32243, 31901, // 14968-14975
+32179, 32366, 32351, 32569, 32367, 32329, 32519, 32266, // 14976-14983
+32073, 32032, 32303, 32265, 31887, 32000, 31950, 31983, // 14984-14991
+32077, 31686, 31483, 31366, 31284, 31316, 31255, 31135, // 14992-14999
+31349, 31644, 31350, 31538, 31776, 31492, 31809, 32006, // 15000-15007
+31999, 32208, 32064, 32047, 32196, 31817, 31483, 31901, // 15008-15015
+32045, 31779, 31889, 31922, 31806, 31919, 32009, 32103, // 15016-15023
+32504, 32562, 32431, 32877, 32618, 32414, 32843, 32616, // 15024-15031
+32738, 32910, 32596, 32551, 32601, 32701, 32675, 32772, // 15032-15039
+32980, 32890, 32690, 32693, 32938, 32886, 32935, 32892, // 15040-15047
+32646, 32812, 32780, 32821, 32882, 32727, 32792, 32759, // 15048-15055
+32759, 32476, 32322, 32424, 32282, 32357, 32214, 31940, // 15056-15063
+31622, 31372, 31698, 31728, 31846, 32330, 32437, 32424, // 15064-15071
+32659, 32831, 32625, 32715, 32884, 32646, 32622, 32643, // 15072-15079
+32645, 32461, 32004, 32115, 32375, 32064, 31915, 32223, // 15080-15087
+32042, 31828, 32059, 32198, 32510, 32831, 32830, 32835, // 15088-15095
+33024, 33388, 33656, 33827, 33769, 33607, 33808, 33777, // 15096-15103
+33320, 33199, 33154, 32832, 32800, 32761, 32569, 32616, // 15104-15111
+32714, 32705, 32580, 32684, 32785, 32755, 32801, 32576, // 15112-15119
+32787, 33039, 32711, 32942, 33049, 32729, 32719, 32831, // 15120-15127
+32726, 32682, 32787, 32500, 32195, 31804, 31354, 31378, // 15128-15135
+31155, 30831, 30910, 31204, 31313, 31241, 31469, 31535, // 15136-15143
+31730, 32099, 32244, 32587, 32695, 32788, 32797, 32608, // 15144-15151
+32844, 32848, 32685, 32470, 32179, 32183, 32079, 31888, // 15152-15159
+31723, 31770, 31702, 31595, 31976, 32049, 32179, 32747, // 15160-15167
+32914, 32717, 32665, 32737, 32786, 32831, 32762, 32875, // 15168-15175
+32987, 32782, 32735, 32709, 32593, 32471, 32664, 32880, // 15176-15183
+32678, 32851, 32920, 32728, 32879, 32856, 32908, 32889, // 15184-15191
+32843, 32921, 32735, 32801, 32955, 32843, 32784, 32775, // 15192-15199
+32623, 32664, 32706, 32577, 32722, 32544, 32294, 32484, // 15200-15207
+32696, 32919, 32625, 32529, 32835, 32705, 32839, 32843, // 15208-15215
+32785, 32759, 32462, 32572, 32278, 31899, 31883, 31508, // 15216-15223
+31325, 31451, 31489, 31208, 30982, 31084, 31208, 31385, // 15224-15231
+31473, 31685, 31878, 31917, 32223, 32479, 32704, 32959, // 15232-15239
+32996, 32949, 32887, 33064, 33085, 32937, 33069, 32909, // 15240-15247
+32714, 32781, 32502, 32318, 32288, 32106, 32014, 32105, // 15248-15255
+32135, 31947, 32132, 32650, 32677, 32610, 32868, 33101, // 15256-15263
+32924, 32792, 33104, 33354, 33684, 33744, 33429, 33280, // 15264-15271
+33061, 32977, 32776, 32790, 33018, 32757, 32630, 32263, // 15272-15279
+32157, 32424, 32306, 32719, 32978, 32830, 32876, 32949, // 15280-15287
+33137, 33054, 33175, 33241, 33156, 33465, 33198, 33038, // 15288-15295
+33026, 32679, 32514, 32623, 32773, 32474, 32335, 32401, // 15296-15303
+32288, 32396, 32388, 32369, 32269, 32340, 32361, 32076, // 15304-15311
+32292, 32367, 32478, 32696, 32595, 32804, 32728, 32763, // 15312-15319
+32805, 32653, 32766, 32569, 32735, 32900, 32647, 32890, // 15320-15327
+32866, 32713, 32824, 32756, 32774, 32837, 32824, 32950, // 15328-15335
+32934, 32687, 32755, 32547, 32350, 32571, 32234, 32023, // 15336-15343
+31960, 31728, 31800, 31816, 31984, 31913, 32015, 32240, // 15344-15351
+31785, 32165, 32555, 32253, 32472, 32130, 31846, 32286, // 15352-15359
+32071, 31888, 32212, 32123, 32002, 32132, 31908, 31787, // 15360-15367
+31888, 31577, 31285, 31541, 31847, 31751, 31937, 32118, // 15368-15375
+31708, 31915, 32304, 32367, 32686, 32489, 32528, 32876, // 15376-15383
+32675, 32851, 32791, 32661, 32899, 32484, 32157, 32128, // 15384-15391
+32069, 31894, 31632, 31916, 31976, 31858, 31999, 32102, // 15392-15399
+32458, 32704, 32820, 32801, 32994, 33473, 33473, 33538, // 15400-15407
+33553, 33588, 33716, 33622, 33700, 33348, 33217, 33172, // 15408-15415
+32817, 32865, 32620, 32859, 33044, 32692, 32956, 32688, // 15416-15423
+32605, 32869, 32632, 32396, 32301, 32631, 32446, 32409, // 15424-15431
+32742, 32615, 32935, 33019, 32964, 32970, 32833, 33066, // 15432-15439
+32800, 32654, 32753, 32798, 32771, 32588, 32974, 32768, // 15440-15447
+32621, 32679, 32161, 32644, 32846, 32685, 32876, 32697, // 15448-15455
+32732, 32672, 32783, 32769, 32575, 32782, 32635, 32798, // 15456-15463
+32833, 32604, 32870, 32711, 32477, 32703, 32779, 32702, // 15464-15471
+32900, 32734, 32430, 32852, 32851, 32770, 32942, 32893, // 15472-15479
+32961, 32837, 33020, 32919, 32653, 33002, 32791, 32737, // 15480-15487
+32675, 32558, 32900, 32707, 32662, 32727, 32626, 32692, // 15488-15495
+32509, 32378, 32275, 32020, 31938, 32132, 32060, 31912, // 15496-15503
+31812, 31414, 31694, 31848, 31477, 31566, 31423, 31605, // 15504-15511
+31713, 31423, 31451, 31345, 31527, 31472, 31425, 31849, // 15512-15519
+31612, 31685, 31833, 31677, 31833, 31635, 31838, 32271, // 15520-15527
+31964, 31808, 32130, 32299, 32143, 32176, 32294, 32190, // 15528-15535
+32323, 32661, 32769, 32666, 32795, 32898, 32727, 32784, // 15536-15543
+32780, 32716, 32804, 32770, 32799, 32816, 32782, 32831, // 15544-15551
+32778, 32839, 32851, 32758, 32760, 32767, 32855, 32796, // 15552-15559
+32734, 32838, 32758, 32780, 32802, 32738, 32768, 32788, // 15560-15567
+32753, 32757, 32834, 32827, 32815, 32817, 32725, 32759, // 15568-15575
+32793, 32685, 32724, 32776, 32788, 32781, 32764, 32772, // 15576-15583
+32708, 32714, 32739, 32741, 32840, 32653, 32368, 32649, // 15584-15591
+32673, 32341, 32652, 32891, 32649, 32674, 32825, 32748, // 15592-15599
+32749, 32759, 32737, 32795, 32773, 32717, 32585, 32405, // 15600-15607
+32580, 32699, 32585, 32681, 32821, 32752, 32747, 32784, // 15608-15615
+32713, 32772, 32778, 32756, 32778, 32732, 32799, 32752, // 15616-15623
+32764, 32775, 32727, 32795, 32712, 32785, 32733, 32688, // 15624-15631
+32785, 32667, 32849, 32645, 32373, 32346, 32132, 32364, // 15632-15639
+32347, 32235, 32283, 32211, 32277, 32214, 32316, 32195, // 15640-15647
+32301, 32680, 32307, 32426, 32588, 32464, 32545, 32466, // 15648-15655
+32556, 32473, 32517, 32485, 32292, 32475, 32257, 32210, // 15656-15663
+32296, 32218, 32331, 32227, 32265, 32283, 32253, 32251, // 15664-15671
+32240, 32530, 32515, 32520, 32543, 32453, 32569, 32451, // 15672-15679
+32554, 32717, 32562, 32721, 32800, 32713, 32750, 32735, // 15680-15687
+32764, 32773, 32745, 32739, 32768, 32768, 32759, 32763, // 15688-15695
+32769, 32776, 32765, 32762, 32762, 32769, 32787, 32763, // 15696-15703
+32758, 32780, 32768, 32747, 32790, 32768, 32769, 32764, // 15704-15711
+32542, 32481, 32585, 32671, 32591, 32373, 32631, 32862, // 15712-15719
+32610, 32630, 32602, 32441, 32558, 32494, 32492, 32556, // 15720-15727
+32485, 32525, 32463, 32496, 32550, 32450, 32614, 32646, // 15728-15735
+32699, 32882, 32650, 32668, 32878, 32713, 32765, 32807, // 15736-15743
+32753, 32813, 32729, 32788, 32786, 32745, 32787, 32686, // 15744-15751
+32853, 32706, 32372, 32664, 32630, 32447, 32561, 32465, // 15752-15759
+32574, 32781, 32792, 32777, 32761, 32779, 32796, 32797, // 15760-15767
+32769, 32730, 32741, 32791, 32756, 32749, 32758, 32703, // 15768-15775
+32832, 32651, 32379, 32663, 32603, 32441, 32583, 32468, // 15776-15783
+32469, 32535, 32510, 32540, 32500, 32571, 32539, 32467, // 15784-15791
+32553, 32661, 32866, 32617, 32366, 32673, 32614, 32447, // 15792-15799
+32551, 32498, 32534, 32550, 32500, 32525, 32509, 32547, // 15800-15807
+32513, 32507, 32529, 32494, 32532, 32514, 32526, 32510, // 15808-15815
+32504, 32533, 32515, 32529, 32481, 32507, 32520, 32453, // 15816-15823
+32520, 32462, 32535, 32746, 32765, 32745, 32751, 32789, // 15824-15831
+32778, 32737, 32775, 32765, 32756, 32752, 32766, 32763, // 15832-15839
+32730, 32744, 32756, 32746, 32754, 32781, 32752, 32772, // 15840-15847
+32778, 32763, 32797, 32769, 32766, 32794, 32757, 32769, // 15848-15855
+32781, 32768, 32745, 32766, 32747, 32738, 32752, 32745, // 15856-15863
+32788, 32754, 32785, 32749, 32548, 32497, 32526, 32743, // 15864-15871
+32824, 32738, 32873, 32656, 32405, 32647, 32669, 32421, // 15872-15879
+32646, 32894, 32632, 32671, 32811, 32754, 32794, 32728, // 15880-15887
+32750, 32778, 32792, 32711, 32587, 32798, 32804, 32768, // 15888-15895
+32820, 32753, 32775, 32758, 32754, 32781, 32761, 32750, // 15896-15903
+32744, 32782, 32758, 32782, 32772, 32745, 32769, 32756, // 15904-15911
+32777, 32752, 32755, 32771, 32763, 32796, 32775, 32772, // 15912-15919
+32792, 32758, 32771, 32769, 32767, 32764, 32785, 32778, // 15920-15927
+32773, 32788, 32769, 32759, 32751, 32779, 32771, 32765, // 15928-15935
+32794, 32784, 32771, 32774, 32777, 32778, 32764, 32777, // 15936-15943
+32774, 32779, 32755, 32760, 32776, 32762, 32755, 32791, // 15944-15951
+32782, 32764, 32799, 32772, 32760, 32785, 32759, 32774, // 15952-15959
+32779, 32769, 32788, 32776, 32765, 32748, 32766, 32744, // 15960-15967
+32748, 32799, 32773, 32767, 32774, 32765, 32755, 32757, // 15968-15975
+32785, 32766, 32759, 32773, 32749, 32756, 32780, 32783, // 15976-15983
+32767, 32792, 32785, 32766, 32768, 32749, 32771, 32745, // 15984-15991
+32776, 32786, 32746, 32775, 32756, 32753, 32769, 32749, // 15992-15999
+32780, 32769, 32763, 32772, 32762, 32755, 32763, 32778, // 16000-16007
+32767, 32767, 32776, 32774, 32765, 32779, 32791, 32760, // 16008-16015
+32768, 32783, 32754, 32769, 32783, 32764, 32759, 32768, // 16016-16023
+32779, 32786, 32791, 32796, 32784, 32780, 32771, 32763, // 16024-16031
+32774, 32768, 32760, 32781, 32773, 32769, 32783, 32766, // 16032-16039
+32775, 32760, 32771, 32765, 32751, 32764, 32760, 32777, // 16040-16047
+32767, 32769, 32777, 32768, 32761, 32765, 32759, 32745, // 16048-16055
+32769, 32763, 32763, 32778, 32763, 32753, 32771, 32769, // 16056-16063
+32759, 32770, 32779, 32771, 32767, 32770, 32762, 32778, // 16064-16071
+32785, 32784, 32784, 32784, 32782, 32769, 32788, 32771, // 16072-16079
+32764, 32790, 32762, 32774, 32777, 32764, 32766, 32765, // 16080-16087
+32759, 32752, 32760, 32766, 32760, 32769, 32757, 32755, // 16088-16095
+32765, 32769, 32758, 32767, 32775, 32763, 32764, 32765, // 16096-16103
+32760, 32765, 32779, 32768, 32773, 32779, 32773, 32766, // 16104-16111
+32771, 32767, 32761, 32766, 32765, 32781, 32763, 32778, // 16112-16119
+32776, 32772, 32772, 32770, 32768, 32770, 32768, 32776};// 16120-16127
diff -r 0871fbbffcad -r d988c10dcf0b main.cpp
--- a/main.cpp	Mon Feb 26 21:06:19 2018 +0000
+++ b/main.cpp	Wed Feb 28 16:56:18 2018 +0000
@@ -1,13 +1,342 @@
 #include "mbed.h"
 #include "rtos.h"
+#include "wave_player.h"
+#include "SDFileSystem.h"
+#include "uLCD_4DGL.h"
+RawSerial Blue(p28,p27);
+Serial pc(USBTX, USBRX);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+PwmOut led_red(p21);
+PwmOut led_green(p22);
+PwmOut led_blue(p23);
+SDFileSystem sd(p5, p6, p7, p8, "sd");
+uLCD_4DGL uLCD(p9,p10,p11);
 
-DigitalOut myled(LED1);
+float x = 0.0;
+bool gfxstatus = false;
+bool textstatus = false;
+int soundmode = 0;
+int gfxmode = 0;
+int rgbmode = 0;
+
+Mutex stdio_mutex;
+Mutex sound_mutex;
+Mutex sound_mutex_2;
+Mutex blue_mutex;
+AnalogOut DACout(p18);
+wave_player waver(&DACout);
+
+Thread t1;
+Thread t2;
+Thread t3;
+Thread t4;
+
+FILE *wave_file;
+
+#include "cylonbyc.h"
+Ticker sampletick;
+#define sample_freq 11025.0
+//get and set the frequency from wav conversion tool GUI
+int i=0;
+
+//interrupt routine to play next audio sample from array in flash
+void audio_sample ()
+{
+    sound_mutex_2.lock();
+    DACout.write_u16(sound_data[i]);
+    i++;
+    if (i>= NUM_ELEMENTS) {
+        i = 0;
+        sampletick.detach();
+    }
+    sound_mutex_2.unlock();
+}
+
+//global variables for main and interrupt routine
+volatile bool button_ready = 0;
+volatile int  bnum = 0;
+volatile int  bhit  ;
+//state used to remember previous characters read in a button message
+enum statetype {start = 0, got_exclm, got_B, got_num, got_hit};
+statetype state = start;
+
+//Interrupt routine to parse message with one new character per serial RX interrupt
+void parse_message()
+{
+
+    led2 = !led2;
 
-int main() {
-    while(1) {
-        myled = 1;
-        wait(0.2);
-        myled = 0;
-        wait(0.2);
+    while(Blue.readable()) {
+        blue_mutex.lock();
+        switch (state) {
+            case start:
+                if (Blue.getc()=='!') {
+                    state = got_exclm;
+                } else state = start;
+                break;
+            case got_exclm:
+                if (Blue.getc() == 'B') {
+                    state = got_B;
+                } else state = start;
+                break;
+            case got_B:
+                bnum = Blue.getc();
+                state = got_num;
+                break;
+            case got_num:
+                bhit = Blue.getc();
+                state = got_hit;
+                break;
+            case got_hit:
+                if (Blue.getc() == char(~('!' + ' B' + bnum + bhit))) button_ready = 1;
+                state = start;
+                break;
+            default:
+                Blue.getc();
+                state = start;
+        }
+        blue_mutex.unlock();
+    }
+
+    //pc.printf("Left interrupt\n");
+
+}
+
+inline float random_number()
+{
+    return (rand()/(float(RAND_MAX)));
+}
+
+// mode = 0 shows alternating orbs and SONIC SCREWDRIVER
+// mode = 1 shows a rectangle and TARDIS APPROACHING
+void LCD_write(int user, int LCD_mode)
+{
+    stdio_mutex.lock();
+
+    if(user == 0) {
+        if(LCD_mode == 0) {
+            uLCD.filled_rectangle(60,12,68,40, WHITE);
+            uLCD.filled_rectangle(56,12,72,16, WHITE);
+            uLCD.filled_rectangle(48,16,80,64, WHITE);
+            uLCD.filled_rectangle(56,24,60,32, WHITE);
+            uLCD.filled_rectangle(68,24,72,32, WHITE);
+            if(gfxstatus) {
+                uLCD.filled_circle(96, 32, 10, WHITE);
+                uLCD.filled_circle(32, 32, 10, BLUE);
+            } else {
+                uLCD.filled_circle(32, 32, 10, WHITE);
+                uLCD.filled_circle(96, 32, 10, BLUE);
+            }
+        } else if (LCD_mode == 1) {
+            uLCD.filled_circle(96, 32, 10, WHITE);
+            uLCD.filled_circle(32, 32, 10, WHITE);
+            if(gfxstatus) {
+                uLCD.filled_circle(64,58,10,WHITE);
+                uLCD.filled_rectangle(60,12,68,40, WHITE);
+                uLCD.filled_rectangle(56,12,72,16, BLUE);
+                uLCD.filled_rectangle(48,16,80,64, BLUE);
+                uLCD.filled_rectangle(56,24,60,32, WHITE);
+                uLCD.filled_rectangle(68,24,72,32, WHITE);
+            } else {
+                uLCD.filled_rectangle(56,12,72,16, WHITE);
+                uLCD.filled_rectangle(48,16,80,64, WHITE);
+                uLCD.filled_rectangle(60,12,68,40, BLUE);
+                uLCD.filled_circle(64,58,10,BLUE);
+            }
+        }
+    } else if (user == 1) {
+        if(LCD_mode == 0) {
+            if(textstatus) {
+                uLCD.locate(6, 9);      // Move cursor
+                uLCD.color(BLUE);
+                uLCD.printf("SONIC");
+                uLCD.locate(4,13);      // Move cursor
+                uLCD.color(WHITE);
+                uLCD.printf("SCREWDRIVER");
+
+            } else {
+                uLCD.locate(6, 9);      // Move cursor
+                uLCD.color(WHITE);
+                uLCD.printf("SONIC");
+                uLCD.locate(4,13);      // Move cursor
+                uLCD.color(BLUE);
+                uLCD.printf("SCREWDRIVER");
+            }
+        } else if(LCD_mode == 1) {
+            if(textstatus) {
+                uLCD.locate(6, 9);      // Move cursor
+                uLCD.color(BLUE);
+                uLCD.printf("TARDIS");
+                uLCD.locate(4,13);      // Move cursor
+                uLCD.color(WHITE);
+                uLCD.printf("APPROACHING");
+
+            } else {
+                uLCD.locate(6, 9);      // Move cursor
+                uLCD.color(WHITE);
+                uLCD.printf("TARDIS");
+                uLCD.locate(4,13);      // Move cursor
+                uLCD.color(BLUE);
+                uLCD.printf("APPROACHING");
+            }
+        }
+
+    }
+    stdio_mutex.unlock();
+}
+
+void LCD_thread_1()   // Displays two alternating circles on the LCD
+{
+    while (true) {
+        //led1 = !led1;
+        gfxstatus = !gfxstatus;
+        LCD_write(0,gfxmode);
+        Thread::wait(1000);
     }
 }
+
+void LCD_thread_2()   // Displays "Please seek shelter" on the LCD
+{
+    while (true) {
+        //led2 = !led2;
+        textstatus = !textstatus;
+        LCD_write(1,gfxmode);
+        Thread::wait(1000);
+    }
+}
+
+// mode = 0 gives Sonic Screwdriver (welding) lighting
+// mode = 1 gives Tardis (warmup/cooldown) lighting
+void RGB_write(int RGB_mode)
+{
+
+    if(RGB_mode == 0) {
+        for(int j = 0; j < 80; j++) {
+            //get a new random number for PWM
+            x = random_number();
+            //add some exponential brightness scaling
+            //for more of a fast flash effect
+            led_red = x*x*x;
+            led_green = x*x*x;
+            led_blue = x*x*x;
+            Thread::wait(20);
+        }
+        led_red = 0;
+        led_green = 0;
+        led_blue = 0;
+    } else if(RGB_mode == 1) {
+        //LED warm up effect using PWM
+        for(int j=0; j<25; j++) {
+            //led_red = i/25.0;
+            led_green = j/25.0;
+            led_blue = j/25.0;
+            Thread::wait(20);
+        }
+        //LED at full brightness level
+        //led_red = 1.0;
+        led_blue = 1.0;
+        led_green = 1.0;
+        Thread::wait(700);
+        //LED cool down effect using PWM
+        for(int j=25; j>0; j--) {
+            //led_red = i/25.0;
+            led_green = j/25.0;
+            led_blue = j/25.0;
+            Thread::wait(20);
+        }
+        //LED off
+        led_red = 0.0;
+        led_green = 0.0;
+        led_blue = 0.0;
+    }
+}
+void RGB_thread()
+{
+    while (true) {
+        //led3 = !led3;
+        RGB_write(rgbmode);
+        Thread::wait(1000);
+    }
+}
+void Sound_write(int snd_mode)
+{
+    stdio_mutex.lock();
+
+    if(soundmode == 0) {
+
+        //sampletick.attach(&audio_sample, 1.0 / sample_freq);
+
+        wave_file=fopen("/sd/sonic.wav","r");
+        waver.play(wave_file);
+        fclose(wave_file);
+    } else if(soundmode == 1) {
+
+        wave_file=fopen("/sd/tardis.wav","r");
+        waver.play(wave_file);
+        fclose(wave_file);
+    }
+    stdio_mutex.unlock();
+}
+
+void Sound_thread()
+{
+    while(true) {
+        led1 = !led1;
+        Sound_write(soundmode);
+        Thread::wait(1310);
+    }
+}
+
+
+int main()
+{
+    uLCD.background_color(WHITE);
+    uLCD.cls();
+    uLCD.textbackground_color(WHITE);
+
+    t1.start(LCD_thread_1);
+    t2.start(LCD_thread_2);
+    t3.start(RGB_thread);
+    t4.start(Sound_thread);
+
+    //pc.printf("hi\n");
+    Blue.attach(&parse_message,Serial::RxIrq);
+    //pc.printf("bye\n");
+
+
+
+    while (true) {
+
+        if(button_ready && (bnum=='5')) { // button 4 changed
+            pc.printf("Sound Mode Mode = 0\n");
+            soundmode = 0;
+            button_ready = 0; //reset flag after reading button message
+        } else if(button_ready && (bnum=='6')) { // button 4 changed
+            pc.printf("Sound Mode = 1\n");
+            soundmode = 1;
+            button_ready = 0; //reset flag after reading button message
+        } else if(button_ready && (bnum=='1')) { // button 4 changed
+            pc.printf("Graphics Mode = 0\n");
+            gfxmode = 0;
+            button_ready = 0; //reset flag after reading button message
+        } else if(button_ready && (bnum=='2')) { // button 4 changed
+            pc.printf("Graphics Mode = 1\n");
+            gfxmode = 1;
+            button_ready = 0; //reset flag after reading button message
+        } else if(button_ready && (bnum=='3')) { // button 4 changed
+            pc.printf("Light Mode = 0\n");
+            rgbmode = 0;
+            button_ready = 0; //reset flag after reading button message
+        } else if(button_ready && (bnum=='4')) { // button 4 changed
+            pc.printf("Light Mode = 1\n");
+            rgbmode = 1;
+            button_ready = 0; //reset flag after reading button message
+        }
+
+
+        Thread::wait(50);
+    }
+}
diff -r 0871fbbffcad -r d988c10dcf0b wave_player.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wave_player.lib	Wed Feb 28 16:56:18 2018 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/sravet/code/wave_player/#acc3e18e77ad