Repository navigation
Expand file tree
/
Copy pathpill_timer.c
More file actions
1309 lines (1134 loc) · 162 KB
/
Copy pathpill_timer.c
File metadata and controls
1309 lines (1134 loc) · 162 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
*
* PORTB = {buzzer, , , backlight, MISO, MOSI, SCK, SS}
* PORTF = {, , , , , , SPKR SPKR}
* PORTK = {R0, R1, R2, R3, C0, C1, C2, }
* PORTL = {D7, D6, D5, D4, phone_pwr, , RS, E}
* PORTA = {AUDIO7, AUDIO6, AUDIO5, AUDIO4, AUDIO3, AUDIO2, AUDIO1, AUDIO0}
*
* TIMER0:
* Misc. timing operations (2) DTMF samples
*
* TIMER1:
* Runs every second to update time (1) Runs every second to update time
*
* TIMER2:
* (1) Output PWM (fixed)
*
* TIMER3:
* Runs every 10ms to check keypad (2+1) Misc. timing operations
*
* TIMER4:
* (1) Runs every 10ms to check keypad
* Iterates over all 4 columns, even when not all of them are present
*
* TIMER5:
* (2) Audio playback
* Press * to stop alarm
*/
#define BUZZER_PERIOD 1.5
#define BUZZER_ON 0.75
#define BUZZER_TOTAL 20
#define BACKLIGHT_ON 120
#define BACKLIGHT_DIM 31
#define BACKLIGHT_BRIGHT 255
#define AUTO_HANGUP 120
#define MAX_SAMPLES_SINCE_RING 3
#define MAX_RINGS 4
#define MAX_TIME_SINCE_RING 7
#define HANGUP_WHEN_NO_DIAL_TONE
// #define TEST
// #define DTMF_DEBUG
// #define DTMF_DEBUG_PRINT
#define TIME_DEBUG
// #define SHOW_TIME
#define TIME(h,m,s) (3600UL*h+60*m+s)
#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>
#include <avr/pgmspace.h>
volatile uint8_t flags = 0b00000000; // {do_heartbeat,awaitDialTone,enRingCountdown,inCall,enableSets,buzzer,backlight,sendFromTx}
char txbuf[40];
volatile uint8_t txbuflen;
volatile uint8_t txidx;
volatile char lcdbuf[16];
volatile uint8_t lcdbuflen;
uint8_t waiting = 0;
const char symlut[16] = "123A456B789C*0#D";
volatile uint16_t mask = 0b0000000000000000;
volatile uint16_t lastmask = 0;
// Delay counters
volatile uint32_t set1;
volatile uint32_t set1_to_afterBreakfast;
volatile uint32_t afterBreakfast;
volatile uint32_t beforeDinner;
volatile uint32_t currentTime = 0; // COMPTIME is an argument to the compiler
volatile uint8_t timer_states = 0b00000000; // {,gab_second_try, set1_to_afterBreakfast, beforeDinner, afterBreakfast_b,afterBreakfast_a, set1_b,set1_a}
volatile uint16_t backlight_timer;
volatile uint16_t buzzer_timer;
volatile uint16_t call_timer;
uint8_t time_in_buf[4];
volatile uint8_t time_in_buflen;
char data[256];
uint32_t chunk_offset=0;
uint32_t data_len=0;
uint32_t fmt_len=0;
uint32_t riff_len=0;
uint32_t sample_rate=0;
uint16_t bytes_per_sample=0;
uint32_t data_offsets[4];
uint32_t data_lengths[4];
uint8_t volumes[4];
uint8_t data_chunks=0;
// Audio playback
volatile uint32_t curr_sample = 0;
volatile uint8_t curr_chunk = 0;
volatile char recv = 0;
volatile uint8_t finished = 0;
volatile uint8_t adc_sample_num=0;
// DTMF identification
#define NDTMFSAMPLES 250
#define NFREQ 11
float vx=1.0;
float vy=0.0;
float vt=1.0;
uint16_t freqs[NFREQ] = {697, 770, 852, 941, 1209, 1336, 1477};
const float cosines[NFREQ][NDTMFSAMPLES] PROGMEM = {
/* 350 */ {0.004, 0.0039036670477549896, 0.0036193082098640783, 0.0031606200495027615, 0.002549695958994759, 0.0018159619989581873, 0.0009947595486594198, 0.0001256430363125136, -0.0007495252583428984, -0.0015885915625391208, -0.002351141009169892, -0.0030004442785218385, -0.0035052267201754533, -0.0038411747427077717, -0.003992106913713087, -0.003950753362380551, -0.003719105943553006, -0.003308322297098249, -0.002738188423714757, -0.0020361656630014874, -0.0012360679774997903, -0.0003764332532740594, 0.0005013329342572169, 0.0013549516809811641, 0.002143307179915984, 0.0028284271247461896, 0.003377311702008059, 0.0037635230758169018, 0.003968458805257911, 0.003982247858412321, 0.0038042260651806148, 0.0034429681080157776, 0.0029158745096856463, 0.0022483335114085266, 0.0014724982107387182, 0.0006257378601609282, -0.00025116207811724735, -0.0011159644241569165, -0.0019270146964068561, -0.0026452474612946053, -0.003236067977499789, -0.003671018502735925, -0.003929149002914754, -0.003998026241462926, -0.0038743326445145245, -0.003564026096753474, -0.003082052971103159, -0.0024516282146119068, -0.001703117166260296, -0.0008725729655861739, -1.7145055188062944e-18, 0.0008725729655861705, 0.0017031171662602864, 0.002451628214611904, 0.0030820529711031567, 0.003564026096753469, 0.0038743326445145236, 0.003998026241462926, 0.003929149002914756, 0.0036710185027359265, 0.0032360679774997908, 0.0026452474612946074, 0.0019270146964068717, 0.0011159644241569267, 0.0002511620781172543, -0.0006257378601609107, -0.001472498210738702, -0.0022483335114085153, -0.0029158745096856367, -0.003442968108015769, -0.0038042260651806113, -0.00398224785841232, -0.003968458805257913, -0.003763523075816903, -0.0033773117020080607, -0.0028284271247461996, -0.002143307179915996, -0.001354951680981174, -0.0005013329342572239, 0.00037643325327405247, 0.001236067977499787, 0.0020361656630014722, 0.002738188423714756, 0.0033083222970982412, 0.003719105943553002, 0.00395075336238055, 0.003992106913713087, 0.0038411747427077765, 0.003505226720175454, 0.0030004442785218463, 0.0023511410091699007, 0.0015885915625391297, 0.0007495252583429044, -0.00012564303631249507, -0.0009947595486594174, -0.0018159619989581747, -0.0025496959589947498, -0.0031606200495027555, -0.003619308209864075, -0.0039036670477549883, -0.004, -0.0039036670477549927, -0.003619308209864078, -0.0031606200495027685, -0.0025496959589947662, -0.0018159619989581933, -0.000994759548659424, -0.00012564303631253034, 0.0007495252583428977, 0.0015885915625391104, 0.0023511410091698838, 0.003000444278521832, 0.003505226720175451, 0.003841174742707767, 0.003992106913713087, 0.003950753362380553, 0.0037191059435530104, 0.003308322297098253, 0.0027381884237147607, 0.0020361656630014905, 0.0012360679774997935, 0.00037643325327407345, -0.000501332934257217, -0.0013549516809811541, -0.0021433071799159664, -0.0028284271247461844, -0.00337731170200805, -0.003763523075816896, -0.003968458805257911, -0.003982247858412322, -0.003804226065180622, -0.0034429681080157793, -0.002915874509685661, -0.0022483335114085383, -0.0014724982107387282, -0.0006257378601609386, 0.0002511620781172262, 0.0011159644241569065, 0.001927014696406841, 0.002645247461294592, 0.0032360679774997786, 0.003671018502735918, 0.003929149002914752, 0.003998026241462927, 0.0038743326445145306, 0.003564026096753475, 0.003082052971103161, 0.0024516282146119206, 0.0017031171662602927, 0.0008725729655861842, 2.6459798629221887e-17, -0.0008725729655861602, -0.0017031171662602704, -0.002451628214611879, -0.0030820529711031454, -0.0035640260967534578, -0.003874332644514521, -0.003998026241462925, -0.003929149002914757, -0.0036710185027359335, -0.003236067977499793, -0.0026452474612946204, -0.0019270146964068871, -0.001115964424156957, -0.0002511620781172506, 0.0006257378601609144, 0.001472498210738692, 0.002248333511408495, 0.002915874509685634, 0.0034429681080157593, 0.00380422606518061, 0.003982247858412318, 0.003968458805257913, 0.003763523075816909, 0.003377311702008078, 0.0028284271247462018, 0.0021433071799159867, 0.0013549516809811773, 0.0005013329342572414, -0.0003764332532740207, -0.0012360679774997703, -0.0020361656630014818, -0.002738188423714743, -0.0033083222970982313, -0.0037191059435530012, -0.003950753362380547, -0.003992106913713088, -0.0038411747427077782, -0.003505226720175456, -0.0030004442785218485, -0.002351141009169915, -0.0015885915625391592, -0.0007495252583429217, 0.00012564303631250583, 0.0009947595486594003, 0.001815961998958159, 0.002549695958994747, 0.0031606200495027446, 0.0036193082098640735, 0.0039036670477549844, 0.004, 0.0039036670477549935, 0.0036193082098640913, 0.003160620049502788, 0.0025496959589947576, 0.0018159619989581966, 0.0009947595486594412, 0.00012564303631254798, -0.0007495252583428803, -0.0015885915625390942, -0.002351141009169881, -0.0030004442785218207, -0.0035052267201754494, -0.003841174742707766, -0.003992106913713084, -0.003950753362380558, -0.0037191059435530065, -0.0033083222970982547, -0.0027381884237147737, -0.002036165663001518, -0.0012360679774998105, -0.00037643325327406266, 0.0005013329342571997, 0.0013549516809811374, 0.002143307179915975, 0.0028284271247461723, 0.0033773117020080403, 0.003763523075816895, 0.003968458805257911, 0.003982247858412322, 0.0038042260651806234, 0.0034429681080157953, 0.002915874509685663, 0.0022483335114085296, 0.0014724982107387312, 0.000625737860160956, -0.0002511620781172369, -0.0011159644241568894, -0.0019270146964068503, -0.002645247461294589, -0.003236067977499785, -0.0036710185027359165, -0.003929149002914749, -0.003998026241462928, -0.0038743326445145245, -0.003564026096753477, -0.0030820529711031723, -0.0024516282146119345, -0.0017031171662603344, -0.0008725729655862014},
/* 440 */ {0.004, 0.003848110686344344, 0.0034039779271787672, 0.002701331232484098, 0.0017935328643601289, 0.0007495252583428981, -0.0003514047862029719, -0.0014256475148530033, -0.002391619932230076, -0.0031759615945913416, -0.003719105943553006, -0.003979804067925201, -0.0039382573381168216, -0.0035976210062654847, -0.002983764581696728, -0.0021433071799159854, -0.0011400770498799044, -5.0264159533411585e-05, 0.0010433660251595888, 0.0020577581351260256, 0.0029158745096856476, 0.0035525457952541783, 0.003919420209536988, 0.003988635601042455, 0.0037549354306154977, 0.003236067977499788, 0.002471438452361339, 0.0015191163820872013, 0.0004514255394939247, -0.0006505486607795351, -0.0017031171662602934, -0.0026263430230118244, -0.003350112160168567, -0.0038194581789865725, -0.0039987367571332, -0.0038743326445145245, -0.00345569366877134, -0.0027746132232512166, -0.0018828157286613306, -0.0008480284396882168, 0.00025116207811725743, 0.0013312781780919524, 0.0023102908136890714, 0.003113849206268096, 0.0036809273894634837, 0.003968458805257912, 0.003954606978951655, 0.0036404238827399803, 0.0030497700440457955, 0.0022275024659527496, 0.0012360679774997849, 0.00015076073067973097, -0.000945995988094894, -0.0019709093661931703, -0.0028461427088371464, -0.0035052267201754516, -0.0038981074911463094, -0.00399494782642407, -0.0037883932199789766, -0.0032941303905137075, -0.002549695958994754, -0.0016116257428546432, -0.000551161162738556, 0.0005511611627385506, 0.0016116257428546513, 0.002549695958994761, 0.0032941303905137127, 0.0037883932199789796, 0.00399494782642407, 0.003898107491146309, 0.003505226720175454, 0.00284614270883714, 0.0019709093661931625, 0.0009459959880948924, -0.0001507607306797469, -0.0012360679774997866, -0.0022275024659527513, -0.0030497700440457924, -0.003640423882739984, -0.003954606978951657, -0.00396845880525791, -0.003680927389463483, -0.0031138492062680856, -0.00231029081368907, -0.001331278178091944, -0.00025116207811724865, 0.0008480284396882255, 0.0018828157286613259, 0.0027746132232512283, 0.003455693668771341, 0.003874332644514525, 0.0039987367571332, 0.00381945817898657, 0.00335011216016857, 0.0026263430230118174, 0.0017031171662602916, 0.0006505486607795474, -0.0004514255394939299, -0.0015191163820872096, -0.0024714384523613435, -0.0032360679774997955, -0.003754935430615496, -0.003988635601042457, -0.003919420209536987, -0.0035525457952541822, -0.0029158745096856415, -0.0020577581351260183, -0.0010433660251595903, 5.0264159533423966e-05, 0.001140077049879906, 0.0021433071799159776, 0.0029837645816967323, 0.0035976210062654878, 0.003938257338116821, 0.003979804067925199, 0.0037191059435530056, 0.0031759615945913394, 0.00239161993223006, 0.001425647514852996, 0.000351404786202949, -0.0007495252583429101, -0.0017935328643601289, -0.00270133123248411, -0.0034039779271787694, -0.0038481106863443417, -0.004, -0.0038481106863443447, -0.0034039779271787755, -0.002701331232484097, -0.0017935328643601384, -0.0007495252583428929, 0.00035140478620299484, 0.0014256475148530124, 0.002391619932230074, 0.0031759615945913503, 0.003719105943553007, 0.0039798040679252, 0.003938257338116821, 0.003597621006265486, 0.0029837645816967397, 0.0021433071799159867, 0.0011400770498799164, 5.026415953340632e-05, -0.0010433660251595801, -0.0020577581351260334, -0.002915874509685663, -0.003552545795254184, -0.003919420209536988, -0.0039886356010424544, -0.0037549354306154947, -0.0032360679774997934, -0.0024714384523613297, -0.0015191163820872063, -0.00045142553949394066, 0.0006505486607795369, 0.0017031171662602819, 0.002626343023011831, 0.003350112160168564, 0.0038194581789865755, 0.003998736757133201, 0.0038743326445145206, 0.0034556936687713392, 0.0027746132232512257, 0.001882815728661348, 0.0008480284396881944, -0.00025116207811726627, -0.0013312781780919474, -0.002310290813689061, -0.003113849206268097, -0.003680927389463479, -0.003968458805257913, -0.003954606978951656, -0.003640423882739977, -0.0030497700440457903, -0.0022275024659527604, -0.0012360679774997563, -0.00015076073067971508, 0.0009459959880949096, 0.0019709093661931655, 0.0028461427088371325, 0.003505226720175456, 0.003898107491146313, 0.003994947826424069, 0.0037883932199789783, 0.0032941303905137027, 0.0025496959589947584, 0.0016116257428546612, 0.0005511611627385192, -0.0005511611627385735, -0.0016116257428546593, -0.0025496959589947567, -0.0032941303905137014, -0.0037883932199789683, -0.003994947826424071, -0.0038981074911463073, -0.003505226720175457, -0.002846142708837134, -0.0019709093661931672, -0.0009459959880948838, 0.0001507607306797415, 0.0012360679774998085, 0.0022275024659527583, 0.003049770044045789, 0.003640423882739976, 0.0039546069789516605, 0.003968458805257909, 0.0036809273894634793, 0.0031138492062680982, 0.002310290813689086, 0.0013312781780919491, 0.0002511620781172398, -0.0008480284396882203, -0.0018828157286613462, -0.0027746132232512244, -0.0034556936687713384, -0.0038743326445145197, -0.003998736757133199, -0.0038194581789865673, -0.003350112160168565, -0.002626343023011832, -0.0017031171662603094, -0.0006505486607795107, 0.0004514255394939387, 0.0015191163820872044, 0.00247143845236135, 0.0032360679774997925, 0.003754935430615494, 0.003988635601042457, 0.003919420209536982, 0.0035525457952541722, 0.002915874509685645, 0.002057758135126035, 0.0010433660251595819, -5.026415953340436e-05, -0.0011400770498799417, -0.0021433071799160093, -0.002983764581696739, -0.003597621006265485, -0.003938257338116829, -0.0039798040679251976, -0.003719105943552997, -0.0031759615945913338, -0.002391619932230076, -0.0014256475148530141, -0.00035140478620294014, 0.0007495252583429188, 0.0017935328643601369, 0.0027013312324840953, 0.0034039779271787594, 0.003848110686344336},
/* 480 */ {0.004, 0.0038194581789865716, 0.0032941303905137096, 0.002471438452361338, 0.001425647514853003, 0.0002511620781172541, -0.0009459959880948977, -0.0020577581351260243, -0.0029837645816967284, -0.0036404238827399825, -0.003968458805257911, -0.0039382573381168216, -0.003552545795254179, -0.0028461427088371434, -0.001882815728661333, -0.0007495252583428985, 0.0004514255394939263, 0.0016116257428546465, 0.002626343023011825, 0.0034039779271787664, 0.0038743326445145236, 0.00399494782642407, 0.0037549354306154964, 0.0031759615945913438, 0.0023102908136890736, 0.001236067977499791, 5.026415953341563e-05, -0.0011400770498799025, -0.002227502465952747, -0.0031138492062680917, -0.003719105943553006, -0.003988635601042455, -0.003898107491146309, -0.0034556936687713436, -0.0027013312324841044, -0.001703117166260296, -0.000551161162738555, 0.0006505486607795346, 0.0017935328643601256, 0.0027746132232512144, 0.003505226720175452, 0.003919420209536987, 0.003979804067925201, 0.0036809273894634824, 0.003049770044045791, 0.0021433071799159954, 0.0010433660251595951, -0.00015076073067973368, -0.0013312781780919385, -0.002391619932230071, -0.0032360679774997886, -0.0037883932199789775, -0.0039987367571332, -0.0038481106863443456, -0.003350112160168569, -0.0025496959589947654, -0.0015191163820872159, -0.00035140478620297483, 0.0008480284396882125, 0.0019709093661931572, 0.0029158745096856463, 0.0035976210062654826, 0.003954606978951655, 0.003954606978951658, 0.0035976210062654847, 0.00291587450968565, 0.001970909366193175, 0.0008480284396882183, -0.0003514047862029548, -0.0015191163820871972, -0.0025496959589947498, -0.003350112160168566, -0.003848110686344342, -0.0039987367571332, -0.003788393219978977, -0.0032360679774998, -0.0023916199322300815, -0.0013312781780919576, -0.00015076073067975374, 0.0010433660251595825, 0.0021433071799159785, 0.0030497700440457825, 0.00368092738946348, 0.0039798040679252, 0.00391942020953699, 0.0035052267201754546, 0.002774613223251224, 0.00179353286436015, 0.0006505486607795334, -0.0005511611627385352, -0.0017031171662602713, -0.0027013312324840897, -0.0034556936687713336, -0.0038981074911463047, -0.003988635601042457, -0.0037191059435530104, -0.0031138492062681043, -0.0022275024659527574, -0.0011400770498799148, 5.0264159533409756e-05, 0.001236067977499785, 0.0023102908136890515, 0.0031759615945913425, 0.0037549354306154904, 0.003994947826424069, 0.003874332644514527, 0.003403977927178775, 0.00262634302301184, 0.0016116257428546584, 0.0004514255394939533, -0.0007495252583428823, -0.0018828157286613248, -0.0028461427088371243, -0.003552545795254172, -0.003938257338116821, -0.003968458805257914, -0.003640423882739988, -0.0029837645816967297, -0.0020577581351260434, -0.0009459959880949086, 0.00025116207811725353, 0.001425647514852986, 0.002471438452361331, 0.003294130390513695, 0.003819458178986567, 0.004, 0.003819458178986579, 0.003294130390513718, 0.0024714384523613405, 0.0014256475148530234, 0.00025116207811726524, -0.0009459959880948972, -0.0020577581351260087, -0.0029837645816967033, -0.003640423882739983, -0.003968458805257909, -0.003938257338116828, -0.00355254579525419, -0.0028461427088371525, -0.0018828157286613601, -0.0007495252583429217, 0.0004514255394939134, 0.0016116257428546476, 0.0026263430230118096, 0.0034039779271787616, 0.0038743326445145245, 0.003994947826424071, 0.003754935430615509, 0.0031759615945913407, 0.0023102908136890844, 0.0012360679774998233, 5.026415953343572e-05, -0.00114007704987989, -0.0022275024659527244, -0.003113849206268079, -0.003719105943553001, -0.003988635601042454, -0.0038981074911463194, -0.003455693668771347, -0.0027013312324840983, -0.0017031171662603077, -0.0005511611627385891, 0.0006505486607795077, 0.0017935328643600887, 0.0027746132232512153, 0.0035052267201754425, 0.003919420209536984, 0.003979804067925204, 0.0036809273894634906, 0.0030497700440458176, 0.0021433071799159885, 0.0010433660251596075, -0.00015076073067972782, -0.0013312781780919197, -0.002391619932230038, -0.003236067977499785, -0.003788393219978978, -0.003998736757133199, -0.003848110686344353, -0.00335011216016858, -0.002549695958994792, -0.001519116382087208, -0.00035140478620299484, 0.0008480284396882069, 0.00197090936619314, 0.002915874509685613, 0.0035976210062654674, 0.003954606978951656, 0.003954606978951659, 0.0035976210062655, 0.002915874509685664, 0.0019709093661932045, 0.0008480284396882519, -0.000351404786202949, -0.0015191163820871918, -0.002549695958994734, -0.003350112160168555, -0.0038481106863443326, -0.0039987367571332, -0.0037883932199789835, -0.003236067977499795, -0.0023916199322300976, -0.0013312781780919897, -0.00015076073067977382, 0.0010433660251595906, 0.0021433071799159737, 0.00304977004404577, 0.0036809273894634724, 0.003979804067925196, 0.003919420209537, 0.0035052267201754646, 0.002774613223251228, 0.001793532864360155, 0.0006505486607795533, -0.0005511611627385153, -0.0017031171662602403, -0.002701331232484085, -0.003455693668771323, -0.0038981074911462964, -0.003988635601042457, -0.0037191059435530177, -0.0031138492062680904, -0.0022275024659527626, -0.0011400770498799341, 5.0264159533361245e-05, 0.0012360679774997257, 0.002310290813689047, 0.0031759615945913472, 0.003754935430615494, 0.0039949478264240685, 0.003874332644514536, 0.0034039779271788006, 0.0026263430230118443, 0.0016116257428546899, 0.0004514255394939309, -0.0007495252583428765, -0.0018828157286612944, -0.0028461427088371, -0.0035525457952541688, -0.003938257338116815, -0.003968458805257912, -0.0036404238827399903, -0.0029837645816967527, -0.002057758135126073, -0.0009459959880949143, 0.0002511620781172193, 0.0014256475148529536, 0.0024714384523613266, 0.0032941303905136914, 0.003819458178986557},
/* 620 */ {0.004, 0.003700308827337832, 0.002846142708837141, 0.00156549466734881, 5.026415953341022e-05, -0.0014724982107387119, -0.002774613223251219, -0.0036609646904836703, -0.0039987367571332, -0.0037373157698264484, -0.0029158745096856463, -0.0016575023239731375, -0.00015076073067974016, 0.0013785716926980655, 0.0027013312324840975, 0.0036193082098640774, 0.00399494782642407, 0.0037719621435714588, 0.0029837645816967293, 0.0017484630666037338, 0.00025116207811725326, -0.0012837744392288338, -0.0026263430230118244, -0.0035753656966050554, -0.003988635601042455, -0.0038042260651806148, -0.0030497700440457955, -0.0018383194424859484, -0.0003514047862029738, 0.0011881663263081342, 0.0025496959589947563, 0.0035291649057398126, 0.003979804067925201, 0.003834087156069504, 0.0031138492062680982, 0.0019270146964068594, 0.0004514255394939292, -0.001091807742069301, -0.0024714384523613336, -0.0034807350186781016, -0.003968458805257912, -0.0038615265553330947, -0.003175961594591347, -0.002014492806543049, -0.000551161162738556, 0.0009947595486594042, 0.0023916199322300768, 0.003430106624774611, 0.003954606978951655, 0.003886526931658697, 0.0032360679774997916, 0.002100698519845183, 0.0006505486607795466, -0.0008970830437975152, -0.0023102908136890758, -0.0033773117020080576, -0.0039382573381168216, -0.003909072494272774, -0.003294130390513716, -0.002185577386937084, -0.0007495252583429048, 0.0007988399220576241, 0.002227502465952751, 0.0033223835967832512, 0.003919420209536988, 0.003929149002914756, 0.00335011216016857, 0.002269075796507029, 0.0008480284396882331, -0.0007000922359010919, -0.00214330717991599, -0.00326535700286874, -0.0038981074911463077, -0.003946743776831472, -0.0034039779271787672, -0.002351141009169902, -0.0009459959880949076, 0.0006009023564830215, 0.002057758135126022, 0.0032062679394835136, 0.003874332644514525, 0.003961845702786606, 0.0034556936687713384, 0.0024317211907784264, 0.0010433660251596046, -0.000501332934257216, -0.0019709093661931555, -0.0031451537285464605, -0.0038481106863443417, -0.003974445242080036, -0.0035052267201754693, -0.0025107654451627906, -0.0011400770498799023, 0.00040144685940485025, 0.0018828157286613367, 0.0030820529711031545, 0.003819458178986567, 0.00398453443657269, 0.003552545795254183, 0.002588223846277773, 0.0012360679774997955, -0.00030130722211171314, -0.001793532864360128, -0.003017005522944407, -0.003788393219978969, -0.003992106913713087, -0.003597621006265493, -0.0026640474697370085, -0.0013312781780919333, 0.00020097727271908042, 0.0017031171662602819, 0.0029500524694327005, 0.003754935430615495, 0.003997157890562358, 0.0036404238827399825, 0.002738188423714763, 0.0014256475148530243, -0.00010052038177334366, -0.0016116257428546341, -0.002881236099551627, -0.003719105943553001, -0.0039996841768152646, -0.0036809273894634845, -0.002810599879195411, -0.0015191163820872072, 1.3723471918089416e-17, 0.0015191163820872063, 0.00281059987919539, 0.003680927389463484, 0.0039996841768152646, 0.0037191059435530117, 0.0028812360995516275, 0.0016116257428546612, 0.00010052038177337305, -0.0014256475148529968, -0.0027381884237147416, -0.0036404238827399704, -0.003997157890562356, -0.0037549354306155047, -0.00295005246943272, -0.001703117166260283, -0.0002009772727190814, 0.0013312781780919593, 0.002664047469737008, 0.00359762100626548, 0.003992106913713087, 0.0037883932199789788, 0.003017005522944426, 0.0017935328643601289, 0.00030130722211174247, -0.0012360679774997675, -0.002588223846277772, -0.0035525457952541696, -0.003984534436572687, -0.003819458178986576, -0.003082052971103173, -0.0018828157286613376, -0.00040144685940487953, 0.0011400770498799287, 0.0025107654451628127, 0.003505226720175455, 0.003974445242080032, 0.0038481106863443495, 0.003145153728546496, 0.001970909366193156, 0.000501332934257217, -0.0010433660251595765, -0.002431721190778403, -0.003455693668771323, -0.003961845702786598, -0.003874332644514525, -0.0032062679394835145, -0.0020577581351260473, -0.0006009023564830648, 0.0009459959880948514, 0.00235114100916989, 0.0034039779271787594, 0.003946743776831468, 0.0038981074911463172, 0.003265357002868765, 0.002143307179916039, 0.0007000922359011209, -0.000848028439688246, -0.0022690757965070393, -0.003350112160168569, -0.003929149002914753, -0.003919420209536991, -0.003322383596783236, -0.0022275024659527396, -0.0007988399220576251, 0.00074952525834289, 0.002185577386937059, 0.0032941303905136914, 0.003909072494272777, 0.0039382573381168216, 0.0033773117020080663, 0.0023102908136890883, 0.0008970830437975577, -0.0006505486607795456, -0.0021006985198451823, -0.0032360679774997825, -0.0038865269316586903, -0.003954606978951661, -0.003430106624774633, -0.002391619932230077, -0.0009947595486594326, 0.0005511611627385269, 0.0020144928065430113, 0.0031759615945913112, 0.0038615265553330795, 0.0039684588052579135, 0.003480735018678116, 0.002471438452361368, 0.0010918077420693497, -0.00045142553949392114, -0.001927014696406846, -0.0031138492062681112, -0.0038340871560695084, -0.0039798040679252, -0.0035291649057398165, -0.0025496959589947736, -0.001188166326308115, 0.00035140478620298703, 0.0018383194424859536, 0.003049770044045786, 0.003804226065180608, 0.003988635601042458, 0.0035753656966050493, 0.0026263430230118253, 0.001283774439228848, -0.0002511620781172311, -0.0017484630666037009, -0.0029837645816966976, -0.0037719621435714575, -0.003994947826424071, -0.0036193082098640887, -0.002701331232484124, -0.001378571692698113, 0.00015076073067973563, 0.0016575023239731237, 0.0029158745096856285, 0.003737315769826435, 0.003998736757133201, 0.003660964690483695, 0.0027746132232512313, 0.0014724982107387377, -5.026415953337105e-05, -0.001565494667348815, -0.0028461427088371373, -0.0037003088273378257},
/* 697 */ {0.004, 0.003622512078386312, 0.002561296879027357, 0.0010166523619185718, -0.0007198791487423596, -0.0023205378175673976, -0.0034832089875026944, -0.0039884454968187365, -0.0037408870056029877, -0.0027872586840188766, -0.0013075521186197694, 0.00041894701260901564, 0.002066372425309774, 0.003323782521955527, 0.00395384874054683, 0.0038376498874161708, 0.0029971177943446444, 0.0015908978177638382, -0.00011559451418067973, -0.0018002690796711965, -0.003145153728546476, -0.0038964096053494806, -0.00391224170031299, -0.0031896618011257277, -0.0018650524999597013, -0.00018842580283856775, 0.0015237651266285204, 0.002948354590756404, 0.003816459931561874, 0.003964231508623744, 0.0033637783291926735, 0.0021284323046335514, 0.0004913575365886536, -0.0012384579990842805, -0.002734522066717129, -0.003714461608564072, -0.003993318954145666, -0.00351846146355676, -0.0023795156203899118, -0.0007914505742289208, 0.0009459959880949005, 0.002504891520718305, 0.0035910039063298473, 0.003999335991387851, 0.00365281756083394, 0.002616851875743441, 0.0010869712027803105, -0.000648068720278568, -0.002260789586197034, -0.0034468000710658167, -0.003982247858412321, -0.003766070412047505, -0.0028390699194353847, -0.0013762121252214531, 0.0003463973964171816, 0.002003626501442834, 0.0032826832046086315, 0.003942153277662487, 0.0038575657269826415, 0.0030448859419193552, 0.0016575023239731278, -4.2724847646339376e-05, -0.0017348879622961543, -0.0030996014513860813, -0.003879283885618765, -0.003926774914185596, -0.0032331108922520804, -0.0019292167147871523, -0.00026119453331854137, 0.001456126538909719, 0.002898612520748196, 0.003794002894576344, 0.0039732981347695194, 0.003402657347539853, 0.0021897855352669884, 0.000563604927750329, -0.0011689527061602067, -0.0026808775763141847, -0.003686802994276356, -0.00399686661238429, -0.0035525457952541766, -0.0024377034137800834, -0.0008627592347167694, 0.0008750255395296709, 0.002447654527638111, 0.0035583035055133543, 0.0039973441860051235, 0.0036819102921220813, 0.0026715380663684075, 0.0011569291645221378, -0.0005760431302090162, -0.002200290762948947, -0.0034092468021631626, -0.003974728096569055, -0.0037900034668982494, -0.0028899385714133926, -0.0014444152234715218, 0.0002737327747981171, 0.0019402153649496596, 0.0032404940223023492, 0.003929149002914757, 0.0038762008381167893, 0.0030916431742498323, 0.0017235565322735458, 3.0159003721420806e-05, -0.0016689308546470735, -0.0030530200931967255, -0.0038608702269335355, -0.003940004421877699, -0.003275486576640189, -0.0019927404213579743, -0.00033387654608870885, 0.0013880045109097975, 0.002847908098901449, 0.003770286232292547, 0.0039810456088252314, 0.003440406668995557, 0.002250411747673372, 0.0006356651996490596, -0.0010990593159040905, -0.002626343023011841, -0.0036579203455189, -0.003999087293696799, -0.003585450666450036, -0.002495081879139949, -0.0009337814554236006, 0.0008037645787173507, 0.0023896049027149714, 0.0035244217326107115, 0.003994025245139781, 0.003709780613338647, 0.0027253372948515086, 0.0012265030207995206, -0.0005038262913397224, -0.0021390614336929334, -0.0033705616486417274, -0.003965888707882254, -0.0038126782242779425, -0.0029398477513414008, -0.0015121387696476116, 0.00020097727271910587, 0.0018761600686006104, 0.003197228982026838, 0.003914840233778851, 0.0038935490338814697, 0.0031373739677336217, 0.0017890385123834737, 0.00010303284217009276, -0.0016024196547677356, -0.0030054251191898693, -0.003841174742707773, -0.003951925831135797, -0.0033167747853803647, -0.002055602529527968, -0.0004064477104078919, 0.0013194216594354434, 0.0027962581593025514, 0.003745317818744491, 0.003987471358596135, 0.0034770137606225, 0.0023102908136890645, 0.0007075144279642851, -0.0010288010332224632, -0.002570936512516585, -0.003627823251455467, -0.003999980260807432, -0.0036171651525854043, -0.0025516319665719526, -0.0010044936566663263, 0.0007322367646038541, 0.0023307619186743135, 0.00348936983651642, 0.003989380270694482, 0.0037364192714169834, 0.002778231699617255, 0.0012956696727925584, -0.0004314421799722748, -0.0020771219268299525, -0.003330757454139054, -0.003955732627067026, -0.0038340871560694992, -0.0029887808891567607, -0.0015793602792407704, 0.00012815504532012883, 0.0018114818790298754, 0.003152902447961753, 0.003899231720827731, 0.0039096045546009785, 0.0031820631395503758, 0.0018539265240035574, 0.00017587247327144033, -0.001535376444662772, -0.002956832331101857, -0.0038202039719270565, -0.003962535184000662, -0.0033569618106095308, -0.0021177821688066296, -0.0004788839323370537, 0.001250400754288629, 0.002743679849953911, 0.0037191059435530143, 0.003992573250705641, 0.00351246646870865, 0.002369402853206351, 0.0007791287584427889, -0.0009582011841677394, -0.002514676440028595, -0.0035965217044508506, -0.0039995452172472655, -0.00364767872431438, -0.0026073349012034944, -0.0010748723616895595, 0.0006604658447314711, 0.002271145111640198, 0.003453159454610905, 0.003983410804820743, 0.0037618174222079108, 0.002830203719495395, 0.0013644061568750324, -0.00035891482794316964, -0.0020144928065430213, -0.0032898474338191337, -0.0039442632259859365, -0.003854223154415369, -0.0030367217388470266, -0.0016460574344204307, 5.529026989423197e-05, 0.0017462022696749777, 0.003107529136707365, 0.003882328646154927, 0.003924362069773329, 0.0032256958527025975, 0.0019181990240345515, 0.00024865371395434193, -0.0014678234829668397, -0.0029072578619476173, -0.0037979648769775605, -0.0039718289581214756, -0.003396034310062216, -0.0021792586952858717, -0.0005511611627385133, 0.0011809647107070185, 0.002690190627080555, 0.0036916593091735105, 0.003996349591303593, 0.00354675302280222, 0.002427728240773503, 0.0008504844148185588, -0.0008872832081937317, -0.0024575814841340873},
/* 770 */ {0.004, 0.003540925245329821, 0.0022690757965070254, 0.00047638864037947884, -0.0014256475148530033, -0.0030004442785218385, -0.003886526931658696, -0.003880506385960423, -0.002983764581696728, -0.0014021372807650366, 0.0005013329342572169, 0.0022897285023783668, 0.0035525457952541783, 0.003999921043424549, 0.0035291649057398126, 0.002248333511408521, 0.0004514255394939247, -0.0014491014668181817, -0.0030170055229444145, -0.003892394043928506, -0.0038743326445145245, -0.0029669670909549567, -0.001378571692698061, 0.000526257436369131, 0.0023102908136890714, 0.003564026096753472, 0.0039996841768152646, 0.003517265240762224, 0.0022275024659527496, 0.00042644461710104366, -0.001472498210738715, -0.00303344766115489, -0.0038981074911463094, -0.0038680059510497393, -0.002950052469432697, -0.0013549516809811606, 0.0005511611627385506, 0.002330761918674309, 0.0035753656966050545, 0.003999289409523236, 0.003505226720175454, 0.002206583482513715, 0.00040144685940485904, -0.001495836822951209, -0.003049770044045801, -0.0039036670477549883, -0.003861526555333095, -0.0029330213848902335, -0.001331278178091944, 0.0005760431302090045, 0.002351141009169895, 0.0035865641471409483, 0.0039987367571332, 0.003493049819239675, 0.0021855773869370724, 0.0003764332532740593, -0.0015191163820872096, -0.003065972027237408, -0.003909072494272772, -0.003854894713160039, -0.0029158745096856415, -0.0013075521186197562, 0.0006009023564830357, 0.0023714272806442376, 0.0035976210062654878, 0.003998026241462926, 0.003480735018678098, 0.0021644850085074893, 0.00035140478620297727, -0.0015423359691095887, -0.0030820529711031637, -0.003914323617301893, -0.0038481106863443447, -0.002898612520748184, -0.0012837744392288268, 0.0006257378601609144, 0.002391619932230074, 0.0036085358374728137, 0.003997157890562356, 0.00346828280465795, 0.0021433071799159867, 0.0003263624462726231, -0.001565494667348823, -0.003098012240794949, -0.003919420209536988, -0.00384117474270777, -0.0028812360995516166, -0.001259946078621224, 0.0006505486607795649, 0.0024117181667561065, 0.0036193082098640735, 0.003996131738712498, 0.0034556936687713392, 0.002122044737226951, 0.00030130722211171217, -0.0015885915625391204, -0.003113849206268097, -0.003924362069773339, -0.003834087156069506, -0.0028637459320873053, -0.0012360679774997834, 0.0006753337788509494, 0.002431721190778439, 0.003629937698164468, 0.003994947826424069, 0.0034429681080157667, 0.0021006985198451632, 0.0002762401028576212, -0.0016116257428546593, -0.003129563242306363, -0.003929149002914754, -0.003826848206235313, -0.002846142708837134, -0.0012121410785311056, 0.0007000922359011296, 0.00245162821461191, 0.003640423882739976, 0.003993606200435899, 0.0034301066247746097, 0.0020792693704828084, 0.0002511620781172398, -0.0016345962989453896, -0.0031451537285464935, -0.00393378081998132, -0.0038194581789865673, -0.0028284271247461744, -0.0011881663263081381, 0.0007248230545085583, 0.00247143845236135, 0.003650766349614021, 0.003992106913713087, 0.003417109726797175, 0.0020577581351260105, 0.0002260741379280728, -0.0016575023239731664, -0.0031606200495027516, -0.00393825733811682, -0.003811917366068876, -0.0028105998791953927, -0.0011641446673130746, 0.0007495252583429188, 0.002491151121952472, 0.0036609646904836846, 0.0039904500254448975, 0.0034039779271787707, 0.0020361656630014844, 0.00020097727271906965, -0.0016803429136472397, -0.003175961594591356, -0.003942578380595998, -0.00380422606518062, -0.002792661675973858, -0.001140077049879908, 0.0007741978722034449, 0.0025107654451628106, 0.003671018502735932, 0.003988635601042454, 0.003390711744340345, 0.002014492806543008, 0.00017587247327141098, -0.00170311716626029, -0.003191177758154288, -0.003946743776831474, -0.0037963845799611896, -0.0027746132232511988, -0.0011159644241568818, 0.0007988399220576712, 0.002530280647652494, 0.003680927389463482, 0.003986663712136119, 0.003377311702008051, 0.0019927404213579423, 0.00015076073067970625, -0.0017258241827238202, -0.0032062679394835, -0.003950753362380559, -0.0037883932199789575, -0.0027564552335493852, -0.0010918077420692819, 0.0008234504350795519, 0.0025496959589947415, 0.0036906909594804755, 0.003984534436572686, 0.003363778329192676, 0.0019709093661931594, 0.000125643036312498, -0.0017484630666037009, -0.0032212315428445056, -0.003954606978951661, -0.0037802523007192048, -0.002738188423714758, -0.0010676079572814994, 0.0008480284396882289, 0.0025690106127063514, 0.003700308827337842, 0.0039822478584123164, 0.003350112160168576, 0.001949000502901337, 0.00010052038177329467, -0.0017710329241556624, -0.0032360679774997973, -0.0039583044744106064, -0.0037719621435714484, -0.0027198135148896923, -0.001043366025159546, 0.0008725729655862195, 0.002588223846277778, 0.0037097806133386487, 0.003979804067925199, 0.003336313734452703, 0.001927014696406834, 7.53937588615942e-05, -0.00179353286436017, -0.003250776657732374, -0.003961845702786605, -0.003763523075816898, -0.0027013312324840836, -0.0010190829027335031, 0.0008970830437975577, 0.002607334901203503, 0.0037191059435530026, 0.00397720316158799, 0.0033223835967832152, 0.0019049528146717438, 5.0264159533388675e-05, -0.0018159619989582133, -0.0032653570028687243, -0.003965230524278032, -0.0037549354306154786, -0.002682742306146879, -0.0009947595486594098, 0.000921557706706379, 0.0026263430230118014, 0.0037282844498328555, 0.003974445242080029, 0.0033083222970982213, 0.0018828157286613326, 2.5132575862230804e-05, -0.001838319442486013, -0.0032798084373018206, -0.003968458805257914, -0.003746199546992757, -0.002664047469737017, -0.0009703969231816366, 0.0009459959880949543, 0.002645247461294656, 0.0037373157698264536, 0.003971530418279252, 0.0032941303905136927, 0.0018606043123098504},
/* 852 */ {0.004, 0.0034404066689955543, 0.0019181990240345432, -0.0001407143116209501, -0.0021602562520964632, -0.003575365696605055, -0.003990099741252521, -0.00328841718327625, -0.001666646462639071, 0.0004214463808155935, 0.0023916199322300755, 0.0036926262014579303, 0.003960447972571717, 0.0031201496070648997, 0.001406843785633253, -0.0007000922359011019, -0.0026111447842863352, -0.003791607728884727, -0.003911191474048719, -0.0029364368866331573, -0.0011400770498799053, 0.0009752725438453492, 0.0028177441318468104, 0.0038718203075190747, 0.0038425740717237147, 0.002738188423714754, 0.0008676667852336243, -0.0012456251265229128, -0.0030103952814125486, -0.003932866874719331, -0.003754935430615498, -0.0025263855738492922, -0.0005909614577471331, 0.001509811703672994, 0.0031881445848692, 0.003974445242080033, 0.003648709373335695, 0.002302076788545322, 0.00031133079458991396, -0.0017665245175599211, -0.003350112160168566, -0.003996349591303595, -0.0035244217326107106, -0.002066372425309781, -3.0159003721431583e-05, 0.0020144928065430313, 0.003495496246858552, 0.003998471493027512, 0.0033826877483416847, 0.0018204392512346163, -0.000251162078117255, -0.0022524890955113092, -0.003623577174901174, -0.003980800443563734, -0.0032242090220873884, -0.0015654946673488198, 0.0005312398751754698, 0.0024793352720438454, 0.0037337209271322996, 0.003943423916893277, 0.0030497700440457976, 0.0013028006823257346, -0.0008086879661230908, -0.0026939084182189005, -0.003825382277728692, -0.0038865269316587007, -0.0028602343097260253, -0.0010336576653769264, 0.0010821329470154025, 0.002895146369202755, 0.0038981074911463073, 0.0038103911352978842, 0.0026565400455338807, 0.0007593979092563725, -0.001350221229820429, -0.0030820529711031446, -0.003951536568170006, -0.0037153934098528, -0.002439695564429844, -0.00048137903523882416, 0.0016116257428546476, 0.0032537030120598563, 0.003985405027956205, 0.0036020040063545946, 0.0022107742746493423, 0.00020097727271906572, -0.0018650524999596874, -0.003409246802163162, -0.0039995452172472655, -0.003470784217020217, -0.001970909366193191, 8.041935330183335e-05, 0.0021092470059011106, 0.003547914379528737, 0.00399388714027683, 0.0033223835967832577, 0.0017212882013904695, -0.0003614178931197359, -0.002343000466282175, -0.003669019321708706, -0.003968458805257911, -0.0031575367479130317, -0.0014631464373013215, 0.0006406273676087115, 0.002565155771232386, 0.0037719621435714644, 0.003923386085738611, 0.0029770596836383007, 0.0011977619090548575, -0.0009166656537476937, -0.0027746132232512035, -0.0038562332648306857, -0.0038588920975117756, -0.002781845788776197, -0.0009264483043996351, 0.0011881663263081336, 0.00297033598085284, 0.003921415532533679, 0.0037752960941629574, 0.0025728613973618557, 0.0006505486607795533, -0.001453785421835801, -0.0031513551910658, -0.003967186286022443, -0.003673011886723849, -0.002351141009169872, -0.00037142871712467153, 0.0017122080914437783, 0.003316774785380377, 0.003993318954145665, 0.0035525457952541983, 0.0021177821688066396, 9.047015326695709e-05, -0.001962155109484344, -0.0034657759154037605, -0.0039996841768152646, -0.00341449414249188, -0.001873940032722368, 0.00019093624955394747, 0.002202389205881569, 0.0035976210062654787, 0.003986250445355531, 0.003259540301978349, 0.0016208216510375415, -0.00047139749323742326, -0.0024317211907784464, -0.003711657407708525, -0.003953084258475158, -0.0030884513152711042, -0.0013596799924882699, 0.0007495252583428611, 0.0026490158411800148, 0.0038073206247923957, 0.0039003497930900372, 0.0029020740949888086, 0.001091807742069295, -0.0010239427764506721, -0.00285319752045466, -0.0038841371122162694, -0.0038283080916262794, -0.0027013312324841027, -0.0008185309020758817, 0.001293291645343692, 0.0030432555028742625, 0.0039417266184292995, 0.0037373157698264554, 0.002487216430897275, 0.0005412022282207339, -0.001556238553274338, -0.003218248976837257, -0.003979804067925204, -0.003627823251455454, -0.00226078958619706, -0.0002611945333185937, 0.0018114818790298736, 0.003377311702008067, 0.003998180972402738, 0.0035003725386446856, 0.0020231715405583215, -2.010610831524363e-05, -0.0020577581351259766, -0.0035196562973184567, -0.0039967663638072574, -0.0033555945289113695, -0.0017755385340486, 0.0003013072221117181, 0.002293848222233391, 0.003644578138605997, 0.003975567244634318, 0.0031942058921340995, 0.001519116382087228, -0.0005810168261774409, -0.002518583463876981, -0.0037514588465947596, -0.003934688553266445, -0.0030170055229444405, -0.0012551744075007562, 0.0008578503217853223, 0.002730851391535906, 0.003839769347952616, 0.0038743326445145228, 0.002824870586094883, 0.000985019157210603, -0.0011304373473170072, -0.002929601251506225, -0.003909072494272772, -0.0037947982879353664, -0.0026187521743800827, -0.0007099879346565909, 0.0013974285617306204, 0.0031138492062681173, 0.003959025226014965, 0.0036964791888836677, 0.0023996706006043826, 0.00043144217997229036, -0.0016575023239731074, -0.0032826832046086315, -0.003989380270694479, -0.0035798620396196566, -0.002168710346901287, -0.00015076073067978263, 0.0019093712352747027, 0.003435267496393365, 0.0039999873669130164, 0.0034455241101194155, 0.0019270146964069112, -0.00013066700373406961, -0.00215178851193909, -0.0035708467696375203, -0.003990794008172008, -0.003294130390513717, -0.0016757800738601745, 0.00041144791957450265, 0.002383554157084501, 0.0036887498893981973, 0.003961845702786609, 0.0031264302993010418, 0.0014162501231458938, -0.0006901921149825985, -0.002603520900782985, -0.003788393219978965, -0.0039132857486136145, -0.0029432539736288506, -0.0011497095510965203, 0.0009655197701286835, 0.0028105998791954014, 0.0038692835140022724, 0.0038453545237085852, 0.0027455081600073457, 0.0008774777680269964},
/* 941 */ {0.004, 0.003320983359986547, 0.0015144652386537688, -0.0008062264315629348, -0.0028531975204546915, -0.003931484312529517, -0.0036749994705246483, -0.002170821732256348, 7.036804536439945e-05, 0.0022876672861213165, 0.0037282844498328434, 0.003903118023474418, 0.0027528105541782225, 0.0006679009983361899, -0.0016437665033817751, -0.003397361601053264, -0.003997524169095797, -0.003240494022302333, -0.0013832891940051659, 0.0009435538246321603, 0.002950052469432694, 0.0039549837564044395, 0.003617165152585424, 0.002051288884625258, -0.0002110170264024934, -0.002401680901303531, -0.0037769541282107605, -0.003869920004306684, -0.002649015841180026, -0.0005287487601431317, 0.001771032924155597, 0.0034695341956976593, 0.003990099741252521, 0.003155993226995468, 0.0012504007542885774, -0.001079713177841985, -0.003043255502874269, -0.003973587264774502, -0.003554853090011011, -0.0019292167147871764, 0.00035140478620296844, 0.0025127214385870086, 0.0038209482567114848, 0.0038319313513672237, 0.0025419418705391688, 0.0003889419756896198, -0.0018961069559064324, -0.00353741180034961, -0.003977735907284125, -0.0030675855789061737, -0.0011159644241569289, 0.0012145359374251216, 0.003132691243304153, 0.003987271808069222, 0.0034881404198665224, 0.0018047563377674076, -0.0004913575365886392, -0.002620651439174832, -0.0038602123743235505, -0.0037891990913965115, -0.002431721190778438, -0.0002486537139544026, 0.0020188337675577013, 0.0036009103882734613, 0.0039604479725717165, 0.0029753805192281072, 0.0009801466244206349, -0.0013478552042041738, -0.003218248976837278, -0.003996020445981008, -0.0034171097267971812, -0.001678061824989813, 0.0006307020278872604, 0.002725337294851518, 0.0038946978753890502, 0.0037417761233194758, 0.0023184902457804176, 0.00010805763994448713, -0.0021390614336928874, -0.003659951353586042, -0.003938257338116823, -0.0028794921900294162, -0.0008431154860326177, 0.0014795059401987462, 0.003299822790233268, 0.003999822348435799, 0.0033418489407955184, 0.0015492900135495073, -0.0007692657633999164, -0.00282664941337872, -0.0039243620697733276, -0.003689721152761068, -0.0022023892058816216, 3.2672200287633194e-05, 0.002256641122626334, 0.0037144616085640564, 0.00391119147404873, 0.0027800392929544625, 0.0007050406419565623, -0.0016093251729284973, -0.0033773117020080468, -0.003998672808999802, -0.0032624512283514406, -0.0014186003120616162, 0.000906877212937259, 0.0029244623789194467, 0.003949168235711803, 0.0036330986193737346, 0.0020835617943532996, -0.00017336159509816332, -0.0023714272806441877, -0.0037643736741206136, -0.003879283885618772, -0.002677144942281352, -0.0005660930171754415, 0.0017371521971591977, 0.0034506197874403315, 0.003992573250705643, 0.003179014877120075, 0.0012861545033270945, -0.001043366025159548, -0.0030186551072921806, -0.003969085665268341, -0.0035719786170664465, -0.0019621551094843883, 0.00031383638291137715, 0.002483277812187865, 0.0038096257633384828, 0.00384257407172371, 0.002570936512516613, 0.00042644461710106046, -0.0018628287738423834, -0.003519656297318417, -0.003981531224290796, -0.0030916431742498626, -0.0011521165440591143, 0.0011785632384570944, 0.003109110995863089, 0.003984089702349125, 0.0035064368072345283, 0.0018383194424859521, -0.0004539226678166966, -0.0025920542557559293, -0.003850161857957192, -0.0038011074760094486, -0.0024615454807167007, -0.0002862683146457046, 0.0019861993260018103, 0.0035843357702799927, 0.003965560398850365, 0.003000444278521863, 0.001016652361918567, -0.0013123014901105302, -0.0031957180678898827, -0.003994161773224814, -0.003436554325097118, -0.001712208091443865, 0.0005934470348374106, 0.00269762195530815, 0.0038859317777188585, 0.003754935430615502, 0.0023491072637301593, 0.00014573763622020188, -0.002107111131324627, -0.0036445781386059916, -0.003944680544915961, -0.002905531086458312, -0.0008799296501098952, 0.0014444152234714348, 0.003278369111139844, 0.003999289409523236, 0.0033624176792586536, 0.0015839771715480642, -0.0007322367646038079, -0.0027998502269578835, -0.0039168912424870595, -0.003704115092630372, -0.0022337610505632024, -5.026546922869454e-06, 0.0022254145112186817, 0.003700308827337798, 0.003918917509981391, 0.002807021092566233, 0.0007421176597904793, -0.0015747408929080602, -0.0033569618106094987, -0.003999466263664183, -0.0032841186446186453, -0.0014537854218358796, 0.0008701200471646493, 0.0028986125207481383, 0.003943001927061977, 0.0036487093733357364, 0.002115649630075403, -0.00013569076481462634, -0.002340963016102015, -0.0037514588465947392, -0.0038883031865057285, -0.0027050362438893315, -0.0006033869905527872, 0.0017031171662602455, 0.0034313988751816537, 0.003994692116717182, 0.003201754148761964, 0.0013217940086859112, -0.0010069261946739777, -0.0029937865773093427, -0.003964231508623738, -0.003588786860327575, -0.001994919214219398, 0.00027624010285759383, 0.00245361360669487, 0.003797964876977537, 0.0038528754724330232, 0.002599702789047668, 0.00046390937923594937, -0.0018293851245556293, -0.003501588158063925, -0.0039849728786725104, -0.003115426151970632, -0.001188166326308257, 0.0011424858526877923, 0.003085254579206163, 0.0039805537067452625, 0.003524421732610739, 0.0018717192570423178, -0.0004164474790086873, -0.002563226831090512, -0.0038397693479526027, -0.003812678224277972, -0.002491151121952486, -0.0003238574873301244, 0.00195338845873738, 0.0035674427708584054, 0.003970320581125111, 0.00302524152100593, 0.0010530677944753824, -0.001276631209810595, -0.0031729032967857175, -0.003991948315925281, -0.003455693668771383, -0.0017462022696749988, 0.000556139328390584, 0.0026696669973847063, 0.003876820509119315, 0.003767761202835158, 0.002379515620389962, 0.00018340468723634115, -0.002074973663162154, -0.003628881191122353},
/* 1209 */ {0.004, 0.0029003438803734045, 0.00020599731220972847, -0.0026016123584529753, -0.0039787825536811835, -0.0031683064569998677, -0.0006158065681723738, 0.002275281051253625, 0.003915355304738881, 0.003402657347539855, 0.001019082902733526, -0.0019248119172716812, -0.003810391135297882, -0.0036009103882734647, -0.0014115480689030995, 0.001553922986525463, 0.0036650035811734484, 0.003760962367576047, 0.0017890385123834794, -0.001166548917004162, -0.003480735018678105, -0.00388111533830806, -0.0021475495415644572, 0.0007667992529704562, 0.00325954030197834, 0.003960094630866231, 0.0024832778121878767, -0.00035891482794315306, -0.003003766024587965, -0.003997062375800484, -0.0027926616759738933, -5.2777225131619584e-05, 0.002716125625007102, 0.003991626392538982, 0.003072418965161613, 0.00046390937923584914, -0.0023996706006043536, -0.0039438443499232485, -0.0033195818121182085, -0.0008701200471647125, 0.0020577581351260347, 0.0038542231544153862, 0.003531528134625044, 0.001267099852397727, -0.001694015483263144, -0.003723713572467741, -0.0037060094528219754, -0.0016506373460813547, 0.0013123014901105245, 0.0035537001441048573, 0.0038411747427077735, 0.002016663685123824, -0.0009166656537476965, -0.0033459864947216317, -0.003935590073141268, -0.002361295797425183, 0.0005113051652344944, 0.0031027762009207707, 0.003988253818019902, 0.0026808775763141834, -0.00010052038177334366, -0.0028266494133787606, -0.003998607282253703, -0.0029720186671717812, -0.00031133079458989005, 0.0025205354847414713, 0.003966540628806883, 0.003231630434764781, 0.0007198791487423773, -0.002187681892933114, -0.003892394043928505, -0.003456958729721828, -0.0011207905042975705, 0.001831619789561804, 0.003776954128210768, 0.0036456131065417843, 0.001509811703673005, -0.0014561265389097151, -0.0036214455517610392, -0.0037955921831681044, -0.0018828157286613126, 0.0010651856449212652, 0.003427518062015845, 0.003905304873097191, 0.0022358454828241225, -0.0006629444913124981, -0.003197228982026829, -0.003973587264774504, -0.002565155771232368, 0.0002536703431252859, 0.0029330213848902335, 0.003999714969210067, 0.002867253032202918, 0.00015829492350583822, -0.0026376981758607513, -0.0039834108048207445, -0.0031389323995268488, -0.0005685808831159494, 0.002314392357105443, 0.003924847737972888, 0.0033773117020080663, 0.0009728349255434074, -0.0019665337905513986, -0.0038246470480300353, -0.003579862039619654, -0.0013667684315659167, 0.001597812811429775, 0.0036838717363721777, 0.0037444346119040474, 0.0017462022696749777, -0.001212141078531085, -0.003504015249308401, -0.0038692835140022633, -0.002107111131324675, 0.0008136100765001658, 0.0032869856345183702, 0.0039530842584751605, 0.0024456662343160444, -0.00040644771040789586, -0.0030350852991027867, -0.003994947826424071, -0.002758275941287286, -5.0265469227538075e-06, 0.0027509865839837945, 0.003994430098846173, 0.003041623862400114, 0.0004164474790087653, -0.0024377034137800673, -0.003951536568170014, -0.0032927040380017246, -0.0008234504350795386, 0.0020985593229148475, 0.0038667222799878514, 0.003508852828018276, 0.001221717633449003, -0.0017371521971592315, -0.003740887005602975, -0.00368777716977528, -0.0016070239676662936, 0.0013573161046581438, 0.0035753656966050484, 0.003827578904464573, 0.001975281829499977, -0.0009630806213629847, -0.0033719143227381987, -0.003926774914185593, -0.0023225844732427865, 0.0005586280823755395, 0.00313269124330418, 0.003984312855932718, 0.002645247461294619, -0.00014824921271321394, -0.002860234309726009, -0.003999582325610777, -0.0029398477513414073, -0.0002637023918054992, 0.002557433942184909, 0.003972421333643167, 0.0032032600104634087, 0.0006728564506530175, -0.0022275024659527856, -0.0039031180234744152, -0.0034326897709268337, -0.0010748723616896463, 0.0018739400327224284, 0.0037924076147361316, 0.003625703075918334, 0.0014654852494092995, -0.0015004974884674839, -0.003641464603505462, -0.0037802523007192065, -0.001840551209823775, 0.0011111365817561571, 0.0034518903024014403, 0.0038946978753890632, 0.002196091271992518, -0.0007099879346566372, -0.003225695852702601, -0.00396782567850935, -0.0025283336098239034, 0.00030130722211171217, 0.0029652808887059923, 0.003998859917461545, 0.0028337535563340423, 0.00011056997533841396, -0.002673408080671137, -0.003987471358596141, -0.0031091109958630483, -0.0005212741665304324, 0.002353173826416396, 0.0039337808199813255, 0.003351484737565137, 0.0009264483043996896, -0.002007975402491241, -0.0038383578896775436, -0.0035583035055133483, -0.0013217940086859554, 0.0016414749234101576, 0.0037022148831354473, 0.0037273732166544205, 0.0017031171662603094, -0.001257560491293507, -0.003526796103821476, -0.003856900257228248, -0.002066372425309774, 0.0008603049480685158, 0.003313962521002432, 0.003945510510719654, 0.002407706111354895, -0.0004539226678166849, -0.003065972027237422, -0.0039922639354803054, -0.002723497109815439, 4.272484764631831e-05, 0.002785455485020883, 0.003996664537370161, 0.0030103952814125065, 0.00036892622860475595, -0.002475388816690978, -0.003958665631622037, -0.003265357002868749, -0.0007766634686303182, 0.0021390614336929074, 0.0038786703381073757, 0.003485677455864851, 0.0011761613009292655, -0.0017800413401238239, -0.00375752730474913, -0.003669019321708697, -0.0015631815635957344, 0.0014021372807650667, 0.0035965217044508385, 0.0038134375773020545, 0.0019336184658061274, -0.0010093583351631896, -0.003397361601053268, -0.0039174001293520895, -0.0022835421450168657, 0.0006058713864149263, 0.003162159828957724, 0.003979804067925204, 0.0026092403577882817, -0.00019595691585786733, -0.0028934115786508918, -0.0039999873669130164, -0.00290725786194757, -0.00021603640737058658, 0.002593967925919998, 0.003977735907284124, 0.0031744330722965164},
/* 1336 */ {0.004, 0.002671538066368425, -0.0004314421799722282, -0.003247845169984816, -0.003906928822670405, -0.001970909366193167, 0.0012742491240968486, 0.0036730118867238475, 0.0036320464127063815, 0.001178563238457145, -0.002057758135126025, -0.003927252833141387, -0.0031881445848692073, -0.00033137197664083733, 0.00274550816000734, 0.0039987367571332, 0.0025958805720266466, -0.0005312398751754793, -0.0033054943464787033, -0.003884137112216258, -0.0018828157286613317, 0.0013691301666782848, 0.0037116574077085233, 0.0035887868603275484, 0.0010821329470154246, -0.002143307179915991, -0.0039450963065485725, -0.003126430299301005, -0.0002310924716665561, 0.002817744131846809, 0.003994947826424069, 0.002518583463877041, -0.000630702027887305, -0.00336105570189537, -0.003858892097511771, -0.001793532864360125, 0.0014631464373013356, 0.0037479585663210547, 0.003543260553247826, 0.0009850191572105642, -0.0022275024659527496, -0.003960447972571721, -0.0030627412933457465, -0.0001306670037340941, 0.0028882003560987773, 0.003988635601042455, 0.0024396955644298327, -0.0007297658156802072, -0.003414494142491856, -0.003831209723849315, -0.001703117166260281, 0.0015562385532743841, 0.003781892433971593, 0.0034954962468585504, 0.0008872832081936857, -0.002310290813689061, -0.003973298134769521, -0.0029971177943446323, -3.0159003721435507e-05, 0.0029568323311018703, 0.003979804067925198, 0.002359266700973147, -0.0008283686677425632, -0.0034657759154037484, -0.0038011074760094204, -0.0016116257428546484, 0.0016483477156216877, 0.003813437577302035, 0.003445524110119396, 0.000788986832085044, -0.002391619932230083, -0.003983638676704113, -0.0029296012515062043, 7.036804536441195e-05, 0.0030235967074296877, 0.003968458805257913, 0.0022773476741010435, -0.0009264483043996438, -0.003514868629964095, -0.00376860436721703, -0.00151911638208721, 0.0017394157462220835, 0.0038425740717237273, 0.00339337570650298, 0.0006901921149825869, -0.0024714384523613605, -0.003991463067067577, -0.0028602343097260297, 0.00017085064848455236, 0.003088451315271134, 0.003954606978951655, 0.0021939902256266504, -0.0010239427764507005, -0.0035617412781621715, -0.003733720927132301, -0.001425647514853016, 0.0018293851245555978, 0.0038692835140022746, 0.003339083974058772, 0.0005909614577470871, -0.002549695958994775, -0.0039967663638072574, -0.0027890607826512263, 0.00027122533867319967, 0.0031513551910657897, 0.003938257338116811, 0.002109247005901105, -0.0011207905042975761, -0.0036063642542287604, -0.0036964791888836612, -0.0013312781780919676, 0.0019181990240345497, 0.0038935490338814775, 0.0032826832046086263, 0.0004913575365886168, -0.0026263430230118352, -0.0039995452172472655, -0.0027161256250070845, 0.0003714287171246598, 0.0032122686033775817, 0.003919420209536978, 0.002023171540558297, -0.0012169303168396404, -0.0036487093733357048, -0.0036569026751512054, -0.0012360679774997647, 0.0020058013478963443, 0.003915355304738875, 0.0032242090220873537, 0.00039144326347857473, -0.002701331232484101, -0.003999797872204207, -0.002641474904202382, 0.00047139749323740375, 0.0032711530779896076, 0.0038981074911463125, 0.0019358181967070287, -0.00131230149011058, -0.003688749889398203, -0.0036150163833092667, -0.001140077049879887, 0.0020921367646356648, 0.003934688553266447, 0.0031636983600420027, 0.00029128174641335946, -0.002774613223251258, -0.003997524169095796, -0.002565155771232397, 0.0005710685245898243, 0.003327971422205643, 0.003874332644514531, 0.001847242148591504, -0.001406843785633283, -0.0037264605119681064, -0.0035708467696375125, -0.0010433660251595233, 0.0021771507429528374, 0.003951536568170011, 0.0031011894383036363, 0.0001909362495538946, -0.002846142708837133, -0.00399272554404165, -0.0024872164308973365, 0.0006703788568220612, 0.003382687748341732, 0.003848110686344337, 0.0017574993427422986, -0.001500497488467482, -0.003761817422207932, -0.0035244217326107466, -0.000945995988094842, 0.002260789586197112, 0.003965888707882254, 0.003036721738847004, 9.047015326696885e-05, -0.00291587450968571, -0.003985405027956204, -0.0024077061113548823, 0.0007692657633999991, 0.003435267496393348, 0.0038194581789865673, 0.0016666464626390307, -0.0015932034449273596, -0.0037947982879353533, -0.0034757705952772155, -0.0008480284396882806, 0.00234300046628215, 0.003977735907284134, 0.0029703359808528444, -1.0053085908070546e-05, -0.0029837645816967098, -0.003975567244634321, -0.0023266750330273502, 0.0008676667852336807, 0.0034856774558648957, 0.003788393219978975, 0.0015747408929080602, -0.001684903099943446, -0.003825382277728719, -0.0034249240867381798, -0.0007495252583428572, 0.0024237314570544023, 0.003987070683430544, 0.0029020740949887787, -0.00011056997533846492, -0.0030497700440458415, -0.003963218407830804, -0.002244174376880216, 0.0009655197701286492, 0.0035338857867452888, 0.003754935430615458, 0.0014818406830770774, -0.0017755385340486123, -0.0038535500740844563, -0.0033719143227381927, -0.0006505486607796132, 0.002502931567089481, 0.003993887140276836, 0.002831979196925004, -0.00021101702640254503, -0.0031138492062680657, -0.003948366317335638, -0.00216025625209645, 0.0010627629120426535, 0.0035798620396196926, 0.003719105943553009, 0.001388004510909779, -0.001865052499959743, -0.003879283885618783, -0.0033167747853803755, -0.0005511611627385269, 0.0025805507719003666, 0.003998180972402737, 0.0027600955601014268, -0.00031133079458993694, -0.0031759615945913785, -0.003931020354047565, -0.0020749736631622243, 0.001159334790122679, 0.003623577174901205, 0.0036809273894634438, 0.0012932916453437346, -0.0019533884587374824, -0.0039025674583046547, -0.003259540301978286, -0.00045142553949390943, 0.002656540045533916, 0.003999949467731864, 0.0026864685877640215, -0.00041144791957458847},
/* 1477 */ {0.004, 0.0023976593525532187, -0.0011256148145570403, -0.0037470797963007904, -0.0033664956446248597, -0.00028877508753144294, 0.003020303499922786, 0.0039096045546009916, 0.001666646462639075, -0.0019115793153278314, -0.003958304474410604, -0.0028337535563340835, 0.0005611166158229154, 0.0035064368072345044, 0.0036425038866784083, 0.0008603049480684585, -0.0026111447842863296, -0.003990622804525798, -0.0021729322606053895, 0.0013856471259732358, 0.0038340871560695027, 0.00321077033815387, 1.5079609018032163e-05, -0.003192692455356396, -0.0038425740717237195, -0.0014138993751170409, 0.002147549541564452, 0.0039884454968187365, 0.002633917282233655, -0.0008308272940191942, -0.0036299376981644635, -0.0035208497415755583, -0.0005909614577471492, 0.0028123876084925905, 0.00396253518400067, 0.0019380171633776105, -0.0016391826954101753, -0.0039031180234744183, -0.0030399910211410556, 0.00025868657171607915, 0.0033501121601685648, 0.0037575273047491075, 0.0011545230821843578, -0.002373450771880192, -0.003999886302695931, -0.0024217316295240404, 0.0010966425572448263, 0.0037364192714169865, 0.0033826877483417016, 0.0003188471868723323, -0.0030004442785218207, -0.003915868829978647, -0.0016940154832631555, 0.0018850327965707194, 0.003953848740546828, 0.0028549584091057114, -0.0005312398751754383, -0.0034918245366875227, -0.003654863003756372, -0.0008897336949410728, 0.002588223846277762, 0.003992573250705645, 0.002198191451376338, -0.0013573161046581375, -0.003825382277728682, -0.0032286656929856198, -4.523796979866482e-05, 0.003174433072296475, 0.0038508425422216124, 0.001442071245987232, -0.0021220447372269, -0.003986041451361469, -0.002656540045533916, 0.0008013024085582195, 0.003617165152585425, 0.0035350625203547856, 0.0006207727043091197, -0.0027908617802065616, -0.00396654062880689, -0.00196434483776402, 0.0016116257428546432, 0.0038964096053494715, 0.0030595057229675453, -0.00022858334991783175, -0.003333538226351765, -0.0037677612028351594, -0.0011833657167306594, 0.002349107263730091, 0.003999545217247265, 0.002445666234316111, -0.0010676079572814181, -0.0037255463361341797, -0.003398687550819764, -0.00034890116018046084, 0.002980414485908122, 0.0039219104934917915, 0.0017212882013905263, -0.0018583791162401198, -0.0039491682357118, -0.002876000961340134, 0.0005013329342571645, 0.0034770137606224593, 0.0036670143467991707, 0.0009191118616524604, -0.0025651557712323483, -0.0039942967244780405, -0.0022233256779263864, 0.0013289079217520513, 0.00381645993156187, 0.0032463775025248546, 7.539375886170786e-05, -0.0031559932269954304, -0.0038588920975117925, -0.0014701611370509912, 0.0020964192975065164, 0.0039834108048207376, 0.002679011788113524, -0.0007717319701354048, -0.003604186976043253, -0.0035490743355948606, -0.0006505486607795745, 0.002769177295190294, 0.003970320581125118, 0.001990560841794297, -0.001583977171547994, -0.003889479681590701, -0.00307884649601783, 0.00019846713346423567, 0.0033167747853803404, 0.0037777809087756625, 0.0012121410785311559, -0.002324630211998609, -0.003998976763044248, -0.0024694618062794577, 0.0010385126652448196, 0.0037144616085640525, 0.003414494142491907, 0.0003789352989278833, -0.002960215260748416, -0.003927729201679965, -0.0017484630666038084, 0.0018316197895616925, 0.003944263225985924, 0.002896880016796695, -0.0004713974932373298, -0.0034620053210120704, -0.003678957225019398, -0.0009484377780934719, 0.002541941870539171, 0.003995793127865825, 0.0022483335114085647, -0.0013004241922220164, -0.003807320624792371, -0.0032639047598791255, -0.00010554526189113101, 0.003137373967733584, 0.0038667222799878827, 0.0014981674514358888, -0.0020706746791749227, -0.003980553706745264, -0.00270133123248411, 0.000742117659790412, 0.003591003906329813, 0.0035628843907430405, 0.0006802876344355814, -0.002747335386177592, -0.003973874826070171, -0.002016663685123926, 0.001556238553274237, 0.0038823286461548766, 0.0030980122407949237, -0.00016833963442174261, -0.003299822790233266, -0.0037875858529638215, -0.0012408475317452626, 0.002300021008173097, 0.003998180972402736, 0.0024931169926678226, -0.0010093583351630266, -0.0037031657188584233, -0.003430106624774699, -0.00040894789571429706, 0.002939847751341406, 0.003933324623757468, 0.0017755385340486227, -0.0018047563377672903, -0.003939133990212364, -0.0029175943885291562, 0.00044143525390548865, 0.003446800071065761, 0.003690690959480513, 0.0009777097771253155, -0.0025185834638768835, -0.003997062375800483, -0.002273213530161296, 0.001271866535329581, 0.0037979648769775258, 0.003281246468647364, 0.00013569076481468706, -0.0031185763529907808, -0.003874332644514551, -0.0015260885970205449, 0.002044812345778968, 0.003977470319557184, 0.0027234971098154736, -0.0007124611610568094, -0.003577616692884874, -0.003576491900716201, -0.0007099879346566871, 0.0027253372948514176, 0.003977203161588003, 0.0020426518838413997, -0.001528411464936587, -0.003874956905568805, -0.003117001867752322, 0.00013820256549777838, 0.003282683204608616, 0.003797175478001757, 0.0012694834444497553, -0.0022752810512535263, -0.003997157890562352, -0.0025166304487157913, 0.000980146624420515, 0.0036916593091734606, 0.0034455241101194805, 0.00043893724436436986, -0.0029193131155524684, -0.003938696441632097, -0.001802513064521142, 0.0017777902880078361, 0.003933780819981298, 0.002938142898953525, -0.00041144791957438957, -0.003431398875181638, -0.0037022148831354633, -0.0010069261946741388, 0.0024950818791399042, 0.003998104396126984, 0.002297964319789052, -0.0012432365745390452, -0.003788393219978951, -0.0032984016429768678, -0.0001658285539012835, 0.003099601451385972, 0.0038817227584528467, 0.001553922986525576, -0.00201883376755759, -0.003974160818542966, -0.002745508160007408, 0.0006827641598664621},
};
const float sines[NFREQ][NDTMFSAMPLES] PROGMEM = {
/* 350 */ {0.0, 0.0008725729655861701, 0.0017031171662602906, 0.0024516282146119055, 0.003082052971103157, 0.003564026096753471, 0.0038743326445145245, 0.003998026241462926, 0.003929149002914755, 0.003671018502735925, 0.00323606797749979, 0.0026452474612946074, 0.0019270146964068624, 0.0011159644241569182, 0.00025116207811725434, -0.000625737860160923, -0.0014724982107387117, -0.0022483335114085196, -0.002915874509685644, -0.0034429681080157732, -0.0038042260651806143, -0.00398224785841232, -0.003968458805257912, -0.003763523075816902, -0.003377311702008062, -0.002828427124746191, -0.0021433071799159885, -0.0013549516809811656, -0.0005013329342572186, 0.00037643325327405415, 0.0012360679774997888, 0.00203616566300148, 0.0027381884237147546, 0.0033083222970982443, 0.003719105943553003, 0.0039507533623805505, 0.003992106913713087, 0.003841174742707772, 0.003505226720175457, 0.0030004442785218407, 0.0023511410091698933, 0.0015885915625391217, 0.0007495252583429028, -0.000125643036312511, -0.0009947595486594191, -0.0018159619989581825, -0.0025496959589947563, -0.0031606200495027607, -0.0036193082098640757, -0.0039036670477549888, -0.004, -0.003903667047754989, -0.00361930820986408, -0.003160620049502763, -0.002549695958994759, -0.001815961998958192, -0.0009947595486594224, -0.00012564303631251443, 0.0007495252583428925, 0.0015885915625391187, 0.0023511410091698907, 0.0030004442785218385, 0.0035052267201754485, 0.0038411747427077696, 0.003992106913713087, 0.003950753362380553, 0.0037191059435530095, 0.003308322297098252, 0.0027381884237147646, 0.0020361656630014952, 0.0012360679774997988, 0.0003764332532740646, -0.0005013329342572048, -0.0013549516809811626, -0.002143307179915986, -0.0028284271247461805, -0.0033773117020080546, -0.0037635230758168987, -0.003968458805257911, -0.003982247858412321, -0.003804226065180615, -0.0034429681080157823, -0.002915874509685645, -0.0022483335114085313, -0.00147249821073872, -0.0006257378601609299, 0.0002511620781172492, 0.0011159644241569011, 0.001927014696406861, 0.0026452474612945983, 0.0032360679774997834, 0.0036710185027359213, 0.003929149002914753, 0.003998026241462927, 0.003874332644514525, 0.0035640260967534777, 0.0030820529711031645, 0.0024516282146119133, 0.0017031171662602975, 0.0008725729655861756, 3.4290110376125887e-18, -0.000872572965586155, -0.0017031171662602912, -0.0024516282146118972, -0.003082052971103151, -0.003564026096753468, -0.003874332644514523, -0.003998026241462925, -0.003929149002914755, -0.00367101850273593, -0.003236067977499796, -0.002645247461294614, -0.001927014696406867, -0.0011159644241569352, -0.00025116207811725597, 0.0006257378601609091, 0.0014724982107387002, 0.002248333511408514, 0.0029158745096856406, 0.0034429681080157715, 0.003804226065180613, 0.003982247858412319, 0.003968458805257912, 0.0037635230758169057, 0.0033773117020080732, 0.0028284271247461957, 0.0021433071799160036, 0.0013549516809811823, 0.0005013329342572185, -0.0003764332532740437, -0.0012360679774997651, -0.002036165663001477, -0.002738188423714739, -0.003308322297098236, -0.003719105943552999, -0.003950753362380549, -0.003992106913713088, -0.003841174742707775, -0.0035052267201754654, -0.003000444278521852, -0.002351141009169908, -0.001588591562539138, -0.000749525258342913, 0.00012564303631250047, 0.000994759548659395, 0.0018159619989581797, 0.002549695958994754, 0.0031606200495027503, 0.003619308209864077, 0.0039036670477549866, 0.004, 0.003903667047754992, 0.003619308209864088, 0.0031606200495027824, 0.0025496959589947727, 0.0018159619989582142, 0.0009947595486594326, 0.00012564303631253915, -0.000749525258342889, -0.0015885915625391024, -0.002351141009169888, -0.0030004442785218264, -0.0035052267201754403, -0.003841174742707761, -0.003992106913713087, -0.003950753362380552, -0.0037191059435530134, -0.003308322297098266, -0.002738188423714767, -0.0020361656630015104, -0.001236067977499802, -0.00037643325327408223, 0.0005013329342572082, 0.001354951680981146, 0.0021433071799159585, 0.0028284271247461783, 0.0033773117020080602, 0.003763523075816898, 0.003968458805257908, 0.003982247858412323, 0.003804226065180621, 0.0034429681080157767, 0.002915874509685657, 0.002248333511408546, 0.001472498210738723, 0.0006257378601609473, -0.00025116207811721737, -0.0011159644241568979, -0.0019270146964068579, -0.0026452474612945957, -0.0032360679774997734, -0.0036710185027359087, -0.003929149002914751, -0.003998026241462926, -0.0038743326445145293, -0.003564026096753486, -0.0030820529711031667, -0.0024516282146119276, -0.0017031171662603005, -0.0008725729655861928, -6.8580220752251774e-18, 0.0008725729655861517, 0.0017031171662602624, 0.0024516282146118716, 0.003082052971103158, 0.003564026096753467, 0.003874332644514519, 0.003998026241462925, 0.003929149002914758, 0.0036710185027359365, 0.003236067977499798, 0.0026452474612946274, 0.00192701469640687, 0.0011159644241569384, 0.0002511620781172878, -0.0006257378601608777, -0.0014724982107387104, -0.002248333511408511, -0.0029158745096856285, -0.003442968108015755, -0.0038042260651806074, -0.00398224785841232, -0.0039684588052579135, -0.003763523075816912, -0.0033773117020080676, -0.0028284271247462083, -0.002143307179916018, -0.0013549516809811854, -0.0005013329342572219, 0.00037643325327404027, 0.0012360679774997619, 0.0020361656630014497, 0.0027381884237147364, 0.0033083222970982425, 0.0037191059435529978, 0.003950753362380546, 0.0039921069137130874, 0.0038411747427077804, 0.0035052267201754607, 0.0030004442785218546, 0.0023511410091698994, 0.0015885915625391412, 0.0007495252583429304, -0.00012564303631246862, -0.0009947595486594193, -0.0018159619989581766, -0.00254969595899474, -0.0031606200495027394, -0.0036193082098640575, -0.0039036670477549827},
/* 440 */ {0.0, 0.001091807742069301, 0.0021006985198451828, 0.0029500524694326953, 0.003575365696605055, 0.003929149002914755, 0.00398453443657269, 0.003737315769826448, 0.0032062679394835062, 0.0024317211907784212, 0.001472498210738711, 0.0004014468594048581, -0.0007000922359011026, -0.0017484630666037306, -0.0026640474697370072, -0.003377311702008061, -0.0038340871560695036, -0.0039996841768152646, -0.003861526555333095, -0.0034301066247746093, -0.0027381884237147533, -0.0018383194424859508, -0.0007988399220576252, 0.00030130722211173244, 0.001378571692698065, 0.002351141009169894, 0.003145153728546474, 0.0037003088273378335, 0.003974445242080034, 0.003946743776831472, 0.003619308209864077, 0.003017005522944416, 0.002185577386937076, 0.0011881663263081372, 0.00010052038177335224, -0.0009947595486594191, -0.0020144928065430456, -0.0028812360995516305, -0.0035291649057398126, -0.003909072494272774, -0.003992106913713086, -0.0037719621435714557, -0.0032653570028687347, -0.0025107654451627993, -0.0015654946673488044, -0.000501332934257216, 0.0006009023564830314, 0.0016575023239731414, 0.002588223846277772, 0.003322383596783252, 0.003804226065180616, 0.003997157890562358, 0.0038865269316586968, 0.0034807350186781007, 0.002810599879195392, 0.0019270146964068657, 0.0008970830437975206, -0.0002009772727190846, -0.0012837744392288392, -0.0022690757965070293, -0.0030820529711031606, -0.0036609646904836738, -0.003961845702786604, -0.003961845702786605, -0.0036609646904836703, -0.0030820529711031554, -0.0022690757965070215, -0.0012837744392288312, -0.00020097727271908286, 0.0008970830437975224, 0.001927014696406861, 0.002810599879195398, 0.003480735018678105, 0.003886526931658697, 0.003997157890562357, 0.0038042260651806156, 0.0033223835967832512, 0.0025882238462777763, 0.0016575023239731334, 0.0006009023564830226, -0.0005013329342572248, -0.001565494667348806, -0.0025107654451628114, -0.003265357002868736, -0.0037719621435714583, -0.003992106913713087, -0.003909072494272772, -0.003529164905739815, -0.0028812360995516197, -0.002014492806543044, -0.0009947595486594174, 0.00010052038177335396, 0.0011881663263081457, 0.0021855773869370715, 0.0030170055229444223, 0.0036193082098640774, 0.00394674377683147, 0.003974445242080033, 0.00370030882733783, 0.003145153728546471, 0.0023511410091698846, 0.0013785716926980702, 0.00030130722211171656, -0.0007988399220576304, -0.0018383194424859428, -0.00273818842371476, -0.0034301066247746136, -0.0038615265553330947, -0.0039996841768152646, -0.0038340871560695027, -0.0033773117020080663, -0.0026640474697370016, -0.0017484630666037243, -0.0007000922359011079, 0.00040144685940487215, 0.0014724982107387125, 0.002431721190778424, 0.003206267939483518, 0.0037373157698264506, 0.003984534436572692, 0.0039291490029147525, 0.003575365696605055, 0.0029500524694326844, 0.0021006985198451793, 0.001091807742069308, -8.82240879895365e-18, -0.001091807742069298, -0.00210069851984517, -0.0029500524694326966, -0.00357536569660505, -0.003929149002914756, -0.003984534436572687, -0.0037373157698264445, -0.0032062679394835075, -0.00243172119077841, -0.0014724982107387093, -0.0004014468594048688, 0.0007000922359011113, 0.0017484630666037273, 0.0026640474697369938, 0.0033773117020080602, 0.0038340871560695, 0.0039996841768152646, 0.0038615265553330978, 0.003430106624774605, 0.0027381884237147364, 0.00183831944248594, 0.000798839922057627, -0.0003013072221117483, -0.0013785716926980733, -0.0023511410091698872, -0.0031451537285464817, -0.0037003088273378313, -0.003974445242080032, -0.0039467437768314715, -0.003619308209864082, -0.0030170055229444106, -0.0021855773869370806, -0.0011881663263081288, -0.00010052038177332211, 0.0009947595486594345, 0.002014492806543047, 0.002881236099551622, 0.003529164905739804, 0.003909072494272779, 0.003992106913713086, 0.0037719621435714575, 0.0032653570028687426, 0.002510765445162798, 0.001565494667348816, 0.0005013329342572074, -0.000600902356483026, -0.0016575023239731495, -0.002588223846277779, -0.0033223835967832447, -0.003804226065180625, -0.003997157890562358, -0.0038865269316586933, -0.0034807350186781033, -0.002810599879195406, -0.0019270146964068579, -0.0008970830437975052, 0.0002009772727190863, 0.0012837744392288342, 0.0022690757965070363, 0.0030820529711031576, 0.0036609646904836655, 0.00396184570278661, 0.003961845702786602, 0.0036609646904836664, 0.0030820529711031584, 0.002269075796507038, 0.001283774439228863, 0.00020097727271905984, -0.000897083043797531, -0.0019270146964068561, -0.0028105998791954044, -0.0034807350186781025, -0.0038865269316586994, -0.003997157890562357, -0.0038042260651806083, -0.0033223835967832465, -0.0025882238462777807, -0.0016575023239731512, -0.0006009023564829999, 0.0005013329342572336, 0.0015654946673488142, 0.0025107654451627963, 0.0032653570028687248, 0.0037719621435714566, 0.0039921069137130874, 0.003909072494272773, 0.0035291649057398048, 0.002881236099551623, 0.0020144928065430486, 0.0009947595486594365, -0.00010052038177337698, -0.0011881663263081542, -0.0021855773869370793, -0.0030170055229444093, -0.0036193082098640696, -0.003946743776831476, -0.003974445242080032, -0.003700308827337832, -0.0031451537285464653, -0.002351141009169889, -0.0013785716926980754, -0.0003013072221117219, 0.000798839922057653, 0.0018383194424859634, 0.002738188423714756, 0.0034301066247746036, 0.0038615265553330973, 0.0039996841768152646, 0.0038340871560694927, 0.003377311702008046, 0.0026640474697369955, 0.001748463066603729, 0.0007000922359010572, -0.0004014468594048951, -0.0014724982107387338, -0.0024317211907784308, -0.0032062679394835062, -0.0037373157698264436, -0.003984534436572693, -0.003929149002914751, -0.003575365696605051, -0.002950052469432698, -0.0021006985198451958, -0.001091807742069327},
/* 480 */ {0.0, 0.0011881663263081396, 0.002269075796507026, 0.0031451537285464752, 0.003737315769826448, 0.003992106913713087, 0.003886526931658696, 0.0034301066247746097, 0.002664047469737007, 0.0016575023239731373, 0.0005013329342572182, -0.0007000922359011043, -0.0018383194424859495, -0.002810599879195395, -0.0035291649057398117, -0.003929149002914755, -0.003974445242080033, -0.003660964690483672, -0.003017005522944416, -0.0021006985198451845, -0.0009947595486594215, 0.0002009772727190754, 0.0013785716926980685, 0.002431721190778418, 0.0032653570028687334, 0.0038042260651806143, 0.0039996841768152646, 0.003834087156069504, 0.003322383596783254, 0.002510765445162804, 0.0014724982107387119, 0.0003013072221117349, -0.0008970830437975238, -0.002014492806543039, -0.0029500524694326897, -0.0036193082098640757, -0.003961845702786604, -0.003946743776831472, -0.0035753656966050567, -0.002881236099551633, -0.0019270146964068652, -0.0007988399220576297, 0.00040144685940485394, 0.0015654946673488072, 0.0025882238462777776, 0.0033773117020080546, 0.003861526555333094, 0.003997157890562358, 0.003771962143571461, 0.0032062679394835097, 0.002351141009169894, 0.0012837744392288372, 0.00010052038177336031, -0.001091807742069294, -0.002185577386937073, -0.0030820529711031515, -0.003700308827337828, -0.00398453443657269, -0.003909072494272775, -0.0034807350186781077, -0.0027381884237147546, -0.0017484630666037353, -0.0006009023564830362, 0.0006009023564830162, 0.00174846306660373, 0.0027381884237147503, 0.0034807350186780977, 0.003909072494272774, 0.003984534436572692, 0.003700308827337835, 0.0030820529711031645, 0.0021855773869370776, 0.0010918077420693064, -0.00010052038177334023, -0.0012837744392288383, -0.002351141009169878, -0.0032062679394835015, -0.003771962143571454, -0.003997157890562356, -0.003861526555333097, -0.003377311702008065, -0.0025882238462777876, -0.0015654946673488127, -0.00040144685940486684, 0.000798839922057617, 0.0019270146964068602, 0.002881236099551624, 0.0035753656966050445, 0.003946743776831472, 0.003961845702786607, 0.0036193082098640874, 0.002950052469432703, 0.0020144928065430564, 0.0008970830437975434, -0.0003013072221117219, -0.0014724982107386997, -0.0025107654451627884, -0.003322383596783247, -0.0038340871560695, -0.0039996841768152646, -0.003804226065180616, -0.003265357002868749, -0.0024317211907784204, -0.001378571692698084, -0.000200977272719099, 0.000994759548659409, 0.0021006985198451706, 0.003017005522944403, 0.003660964690483667, 0.0039744452420800306, 0.003929149002914758, 0.003529164905739816, 0.002810599879195414, 0.001838319442485964, 0.0007000922359011084, -0.0005013329342571947, -0.0016575023239731254, -0.002664047469737005, -0.0034301066247745984, -0.0038865269316586933, -0.003992106913713087, -0.003737315769826455, -0.0031451537285464804, -0.0022690757965070476, -0.001188166326308155, -5.878304635907295e-18, 0.0011881663263081166, 0.0022690757965070146, 0.0031451537285464735, 0.0037373157698264406, 0.003992106913713086, 0.0038865269316586963, 0.0034301066247746192, 0.002664047469737035, 0.0016575023239731362, 0.0005013329342572346, -0.0007000922359010688, -0.0018383194424859287, -0.0028105998791953858, -0.003529164905739797, -0.003929149002914751, -0.003974445242080036, -0.0036609646904836716, -0.003017005522944429, -0.0021006985198451927, -0.0009947595486594202, 0.00020097727271905887, 0.001378571692698033, 0.0024317211907784225, 0.003265357002868726, 0.0038042260651806035, 0.003999684176815264, 0.003834087156069508, 0.0033223835967832694, 0.00251076544516282, 0.0014724982107387238, 0.00030130722211176204, -0.0008970830437974765, -0.002014492806543034, -0.0029500524694326953, -0.00361930820986407, -0.0039618457027866, -0.003946743776831477, -0.0035753656966050753, -0.0028812360995516323, -0.0019270146964068828, -0.0007988399220576425, 0.0004014468594048269, 0.0015654946673487888, 0.0025882238462777464, 0.003377311702008059, 0.0038615265553330904, 0.003997157890562358, 0.0037719621435714674, 0.003206267939483534, 0.0023511410091698994, 0.0012837744392288361, 0.0001005203817733662, -0.0010918077420692678, -0.002185577386937056, -0.00308205297110313, -0.003700308827337831, -0.003984534436572687, -0.003909072494272777, -0.003480735018678117, -0.00273818842371479, -0.0017484630666037661, -0.0006009023564830279, 0.0006009023564830105, 0.0017484630666036991, 0.002738188423714736, 0.003480735018678081, 0.003909072494272767, 0.003984534436572692, 0.0037003088273378374, 0.0030820529711031775, 0.0021855773869370945, 0.0010918077420693393, -0.00010052038177334856, -0.0012837744392288194, -0.002351141009169885, -0.0032062679394834898, -0.0037719621435714427, -0.003997157890562355, -0.0038615265553330947, -0.003377311702008069, -0.0025882238462778028, -0.0015654946673488313, -0.00040144685940490094, 0.0007988399220575694, 0.0019270146964068425, 0.0028812360995516197, 0.003575365696605042, 0.003946743776831469, 0.0039618457027866105, 0.0036193082098641017, 0.0029500524694327074, 0.0020144928065430738, 0.0008970830437975769, -0.00030130722211171607, -0.001472498210738681, -0.0025107654451628062, -0.0033223835967832434, -0.003834087156069495, -0.0039996841768152646, -0.003804226065180635, -0.0032653570028687525, -0.002431721190778414, -0.0013785716926980763, -0.00020097727271910486, 0.0009947595486593758, 0.002100698519845129, 0.003017005522944399, 0.003660964690483653, 0.003974445242080033, 0.0039291490029147585, 0.003529164905739832, 0.0028105998791954387, 0.0018383194424859695, 0.0007000922359011421, -0.000501332934257217, -0.00165750232397312, -0.002664047469736979, -0.0034301066247745806, -0.003886526931658692, -0.003992106913713088, -0.0037373157698264666, -0.003145153728546484, -0.0022690757965070523, -0.0011881663263081876},
/* 620 */ {0.0, 0.0015191163820872044, 0.0028105998791953966, 0.003680927389463481, 0.0039996841768152646, 0.0037191059435530056, 0.0028812360995516284, 0.001611625742854651, 0.00010052038177334947, -0.0014256475148530024, -0.002738188423714755, -0.003640423882739982, -0.003997157890562357, -0.0037549354306154977, -0.002950052469432696, -0.001703117166260292, -0.00020097727271907735, 0.001331278178091943, 0.0026640474697370055, 0.003597621006265483, 0.003992106913713087, 0.0037883932199789788, 0.003017005522944416, 0.0017935328643601284, 0.0003013072221117349, -0.0012360679774997883, -0.0025882238462777724, -0.0035525457952541796, -0.00398453443657269, -0.003819458178986574, -0.003082052971103159, -0.0018828157286613308, -0.0004014468594048578, 0.0011400770498799018, 0.0025107654451627963, 0.003505226720175455, 0.003974445242080033, 0.003848110686344344, 0.0031451537285464783, 0.001970909366193168, 0.0005013329342572166, -0.0010433660251595903, -0.0024317211907784143, -0.003455693668771338, -0.003961845702786604, -0.0038743326445145284, -0.003206267939483506, -0.0020577581351260226, -0.0006009023564830362, 0.0009459959880948934, 0.00235114100916989, 0.0034039779271787672, 0.003946743776831471, 0.0038981074911463107, 0.0032653570028687317, 0.0021433071799159906, 0.0007000922359011065, -0.0008480284396882188, -0.0022690757965070168, -0.0033501121601685617, -0.003929149002914753, -0.003919420209536988, -0.0033223835967832517, -0.0022275024659527513, -0.0007988399220576247, 0.0007495252583428904, 0.0021855773869370715, 0.003294130390513708, 0.003909072494272771, 0.003938257338116823, 0.003377311702008058, 0.002310290813689065, 0.0008970830437975295, -0.000650548660779532, -0.0021006985198451828, -0.0032360679774997825, -0.0038865269316586937, -0.003954606978951657, -0.003430106624774611, -0.0023916199322300655, -0.0009947595486594185, 0.0005511611627385414, 0.0020144928065430486, 0.0031759615945913377, 0.0038615265553330913, 0.003968458805257912, 0.003480735018678109, 0.0024714384523613566, 0.001091807742069308, -0.00045142553949390754, -0.001927014696406834, -0.0031138492062681026, -0.003834087156069504, -0.003979804067925202, -0.0035291649057398095, -0.002549695958994762, -0.001188166326308155, 0.0003514047862029733, 0.0018383194424859417, 0.003049770044045795, 0.003804226065180612, 0.003988635601042457, 0.0035753656966050554, 0.0026263430230118352, 0.0012837744392288613, -0.0002511620781172457, -0.0017484630666037139, -0.0029837645816967267, -0.0037719621435714627, -0.00399494782642407, -0.003619308209864082, -0.0027013312324840927, -0.0013785716926980724, 0.00015076073067972191, 0.001657502323973137, 0.002915874509685638, 0.00373731576982644, 0.0039987367571332, 0.0036609646904836777, 0.0027746132232512205, 0.0014724982107387238, -5.026415953338575e-05, -0.0015654946673488025, -0.0028461427088371277, -0.003700308827337831, -0.004, -0.0037003088273378313, -0.002846142708837148, -0.0015654946673488033, -5.026415953341514e-05, 0.0014724982107386965, 0.00277461322325122, 0.0036609646904836655, 0.003998736757133199, 0.00373731576982645, 0.002915874509685659, 0.0016575023239731638, 0.0001507607306797513, -0.0013785716926980449, -0.002701331232484071, -0.0036193082098640817, -0.00399494782642407, -0.003771962143571453, -0.0029837645816967275, -0.0017484630666037403, -0.00025116207811724664, 0.0012837744392288333, 0.002626343023011813, 0.003575365696605055, 0.0039886356010424544, 0.0038042260651806217, 0.0030497700440457955, 0.0018383194424859677, 0.00035140478620300264, -0.001188166326308127, -0.0025496959589947393, -0.003529164905739809, -0.003979804067925198, -0.003834087156069496, -0.003113849206268085, -0.0019270146964068598, -0.00045142553949393676, 0.00109180774206928, 0.002471438452361311, 0.0034807350186781085, 0.003968458805257912, 0.0038615265553330986, 0.003175961594591356, 0.0020144928065430738, 0.0005511611627385987, -0.0009947595486594174, -0.0023916199322300646, -0.003430106624774596, -0.00395460697895165, -0.0038865269316587076, -0.0032360679774997916, -0.0021006985198451958, -0.000650548660779561, 0.000897083043797487, 0.0023102908136890293, 0.003377311702008027, 0.003938257338116819, 0.003909072494272768, 0.0032941303905137005, 0.0021855773869370724, 0.0007495252583429054, -0.0007988399220576098, -0.002227502465952774, -0.0033223835967832586, -0.003919420209536988, -0.003929149002914756, -0.003350112160168578, -0.0022690757965070523, -0.0008480284396882059, 0.0007000922359011054, 0.0021433071799159776, 0.003265357002868723, 0.0038981074911463008, 0.003946743776831471, 0.0034039779271787677, 0.0023511410091699024, 0.0009459959880949219, -0.000600902356482993, -0.0020577581351259853, -0.0032062679394835054, -0.003874332644514521, -0.003961845702786609, -0.00345569366877136, -0.0024317211907784607, -0.0010433660251596463, 0.0005013329342572015, 0.0019709093661931425, 0.003145153728546452, 0.0038481106863443295, 0.003974445242080035, 0.003505226720175463, 0.00251076544516278, 0.001140077049879889, -0.0004014468594048639, -0.001882815728661324, -0.0030820529711031446, -0.00381945817898658, -0.003984534436572689, -0.003552545795254177, -0.002588223846277784, -0.0012360679774998094, 0.00030130722211169845, 0.0017935328643601403, 0.0030170055229444158, 0.003788393219978974, 0.0039921069137130874, 0.003597621006265499, 0.002664047469737041, 0.0013312781780919474, -0.00020097727271906572, -0.0017031171662602687, -0.0029500524694326714, -0.00375493543061548, -0.003997157890562358, -0.0036404238827399886, -0.0027381884237147737, -0.0014256475148530382, 0.00010052038177330056, 0.0016116257428545949, 0.0028812360995516166, 0.0037191059435529956, 0.0039996841768152646, 0.0036809273894634793, 0.0028105998791954014, 0.0015191163820872208},
/* 697 */ {0.0, 0.0016962919094145575, 0.003072418965161607, 0.0038686454961659885, 0.0039346885532664435, 0.0032580829082820375, 0.0019665337905513986, 0.00030381329613159055, -0.0014162501231458767, -0.002869004884687609, -0.0037802523007192195, -0.003977999924663899, -0.0034249240867381867, -0.0022254145112187438, -0.0006058713864148497, 0.00112802630360052, 0.002649015841180021, 0.0036700196366551306, 0.003998329389669057, 0.003571978617066432, 0.002471438452361337, 0.0009044292052672256, -0.0008332855922984149, -0.0024137227666903628, -0.0035385843458075245, -0.00399555949984788, -0.0036983969282475306, -0.0027031842717738716, -0.0011977619090548575, 0.0005337307804827425, 0.0021644850085075075, 0.0033867057629195234, 0.003969706257550744, 0.003803448669892123, 0.002919313115552541, 0.0014841748409481976, -0.00023109247166656417, -0.0019027424758663542, -0.00321526132877569, -0.00392091902346283, -0.0038865269316586955, -0.0031185763529908224, -0.0017620133213809073, -7.288091649912574e-05, 0.0016300073212299337, 0.0030252415210058905, 0.003849479653709878, 0.0039471517495273094, 0.003299822790233294, 0.0020296722075499483, 0.0003764332532740515, -0.0013478552042041963, -0.0028177441318468148, -0.003755800871504432, -0.003984972878672501, -0.003462005321012079, -0.0022856051667294605, -0.000677810840437733, 0.0010579161885560153, 0.0025939679259200338, 0.0036404238827399864, 0.003999771816915759, 0.0036041869760432654, 0.0025283336098239286, 0.0009752725438453482, -0.0007618653249247573, -0.0023552057146671835, -0.0035040152493084086, -0.003991463067067577, -0.003725546336134179, -0.0027564552335493835, -0.00126709985239772, 0.00046141297363323054, 0.0021028368874530076, 0.003347363038204173, 0.003960094630866231, 0.0038253822777286886, 0.0029686521218923218, 0.0015516068063123778, -0.0001582949235058715, -0.0018383194424859545, -0.0031713722686630354, -0.003905847731659663, -0.003903118023474413, -0.0031636983600420335, -0.001827149737337193, -0.00014573763622014314, 0.0015631815635956975, 0.002977059683638296, 0.0038290357674325933, 0.003958304474410603, 0.003340467116808896, 0.0020921367646356795, 0.00044892823295549, -0.001279012791530737, -0.0027655478758208327, -0.003730102500227536, -0.003990622804525795, -0.0034979371546117375, -0.0023450369914828086, -0.000749525258342887, 0.0009874548407814406, 0.0025380588021388355, 0.00360961949241983, 0.003999886302695932, 0.003635198729424155, 0.0025843893496408504, 0.0010457920877393319, -0.0006901921149826178, -0.002295906724205044, -0.003468282804657954, -0.003986041451361473, -0.0037514588465947557, -0.0028088110403178667, -0.0013360171131333873, 0.0003889419756896149, 0.002040490615496895, 0.003306908974546121, 0.003949168235711809, 0.0038460458421766676, 0.0030170055229444023, 0.0016185236315355083, -8.544482074892393e-05, -0.0017732860791347218, -0.0031264302993010197, -0.0038894796815907118, -0.00391841326329923, -0.0032077700056145817, -0.0018916795317128398, -0.00021854597041837833, 0.0014958368229511974, 0.002927889449636284, 0.003807320624792408, 0.003968143025163642, 0.003380002393917426, 0.002153906723306643, 0.0005212741665304547, -0.0012097457411029788, -0.0027124334459914233, -0.0037031657188584754, -0.0039949478264240685, -0.0035327076580136873, -0.0024036902538571037, -0.0008209908306347598, 0.0009166656537476861, 0.002481307031906247, 0.0035776166928849053, 0.0039986728089998, 0.003665003581173428, 0.002639587061065151, 0.0011159644241569137, -0.0006182897582862297, -0.0022358454828241233, -0.0034313988751816975, -0.003979296452729324, -0.003776125856564188, -0.002860234309726024, -0.0014044908104345183, 0.0003163418473352715, 0.0019774668918699453, 0.0032653570028687404, 0.003936930699697719, 0.0038654325028436845, 0.0030643572651714523, 0.0016849030999434602, -1.2566349943555942e-05, -0.0017076639771693406, -0.0030804503416169767, -0.003871820307519076, -0.003932407573047646, -0.003250776657732369, -0.0019555812803382453, -0.00029128174641335946, 0.0014279954580403193, 0.0028777471437292433, 0.003784341435310195, 0.003976664135345198, 0.0034184154956766488, 0.0022149615756705864, 0.0005934470348374862, -0.0011400770498799192, -0.002658418476578005, -0.003674999470524658, -0.003997946508441427, -0.0035663052872610883, -0.0024615454807166946, -0.000892183830435642, 0.0008455721297697125, 0.0024237314570543507, 0.0035444261092024594, 0.0039961317387125, 0.003693591635952018, 0.002693908418218919, 0.0011857662555802228, -0.0005461821267277449, -0.0021750419311151637, -0.0033933757065029934, -0.00397123031053972, -0.0037995391764889634, -0.0029107079690269314, -0.0014724982107386902, 0.0002436366921253646, 0.00191378664071975, 0.0032227209186055194, 0.0039233860857386185, 0.003883535823274911, 0.003110691627591059, 0.0017507231732669644, 6.031629294413336e-05, -0.0016414749234101077, -0.0030334476611549054, -0.0038528754724330124, -0.003945096306548567, -0.00329270403800172, -0.002018833767557725, -0.0003639208156142788, 0.0013596799924883176, 0.0028266494133787506, 0.0037601058281757846, 0.003983864975910018, 0.003455693668771354, 0.0022752810512535943, 0.0006654228761734964, -0.0010700298481670703, -0.0026035209007829936, -0.003645613106541783, -0.003999617855002528, -0.0035987188877963164, -0.0025185834638770223, -0.0009630806213629541, 0.0007741978722034757, 0.0023653511929219435, 0.0035100587607891833, 0.003992263935480307, 0.0037209534024025474, 0.0027473353861776264, 0.0012551744075007358, -0.00047389316035122944, -0.00211351625611923, -0.003354225922477632, -0.0039618457027866105, -0.0038216910330460636, -0.002960215260748436, -0.0015400167352962629, 0.00017085064848461112, 0.0018494710041639785, 0.0031790148771200797, 0.003908538890704649, 0.00390034979309003, 0.0031559932269954725},
/* 770 */ {0.0, 0.0018606043123098335, 0.0032941303905137096, 0.003971530418279255, 0.003737315769826448, 0.0026452474612946074, 0.0009459959880948984, -0.0009703969231816304, -0.0026640474697370072, -0.003746199546992769, -0.003968458805257912, -0.003279808437301807, -0.0018383194424859508, 2.5132575862236815e-05, 0.0018828157286613315, 0.003308322297098248, 0.003974445242080034, 0.0037282844498328443, 0.0026263430230118266, 0.0009215577067063628, -0.0009947595486594191, -0.0026827423061468805, -0.003754935430615499, -0.0039652305242780265, -0.0032653570028687347, -0.0018159619989581858, 5.0264159533412446e-05, 0.0019049528146717586, 0.003322383596783252, 0.003977203161587995, 0.0037191059435530043, 0.002607334901203512, 0.0008970830437975206, -0.001019082902733533, -0.002701331232484096, -0.0037635230758169035, -0.003961845702786605, -0.0032507766577323724, -0.0017935328643601297, 7.539375886163927e-05, 0.001927014696406861, 0.0033363137344526884, 0.003979804067925201, 0.0037097806133386422, 0.0025882238462777655, 0.0008725729655861756, -0.0010433660251595895, -0.0027198135148896836, -0.0037719621435714583, -0.003958304474410605, -0.0032360679774997877, -0.0017710329241555965, 0.00010052038177335396, 0.0019490005029013393, 0.003350112160168569, 0.00398224785841232, 0.00370030882733783, 0.0025690106127063276, 0.0008480284396882265, -0.0010676079572815016, -0.00273818842371476, -0.0037802523007192243, -0.003954606978951655, -0.0032212315428444874, -0.0017484630666037243, 0.00012564303631251467, 0.001970909366193174, 0.0033637783291926853, 0.00398453443657269, 0.003690690959480458, 0.002549695958994751, 0.0008234504350795079, -0.001091807742069298, -0.002756455233549397, -0.003788393219978981, -0.003950753362380552, -0.0032062679394835075, -0.0017258241827238308, 0.0001507607306797513, 0.0019927404213579813, 0.0033773117020080602, 0.00398666371213612, 0.003680927389463476, 0.002530280647652481, 0.000798839922057627, -0.0011159644241569252, -0.0027746132232512313, -0.0037963845799611766, -0.003946743776831467, -0.003191177758154278, -0.0017031171662603005, 0.0001758724732714844, 0.002014492806543047, 0.0033907117443403236, 0.003988635601042457, 0.0036710185027359257, 0.002510765445162798, 0.0007741978722034286, -0.0011400770498798966, -0.0027926616759739106, -0.0038042260651806165, -0.003942578380595989, -0.003175961594591328, -0.0016803429136472245, 0.0002009772727190863, 0.0020361656630014987, 0.0034039779271787794, 0.003990450025444901, 0.0036609646904836664, 0.002491151121952437, 0.0007495252583429025, -0.001164144667313118, -0.0028105998791954044, -0.0038119173660688724, -0.003938257338116817, -0.0031606200495027585, -0.0016575023239731512, 0.0002260741379281178, 0.0020577581351260248, 0.003417109726797199, 0.0039921069137130874, 0.003650766349614014, 0.002471438452361315, 0.0007248230545085419, -0.0011881663263081542, -0.0028284271247462057, -0.003819458178986572, -0.003933780819981317, -0.0031451537285464653, -0.0016345962989453744, 0.0002511620781172565, 0.0020792693704828466, 0.003430106624774618, 0.003993606200435902, 0.0036404238827399695, 0.0024516282146119193, 0.0007000922359011131, -0.0012121410785310943, -0.0028461427088371455, -0.0038268482062353256, -0.003929149002914751, -0.0031295632423063353, -0.001611625742854618, 0.00027624010285766615, 0.0021006985198451776, 0.003442968108015775, 0.00399494782642407, 0.003629937698164461, 0.002431721190778403, 0.000675333778850905, -0.0012360679774997723, -0.002863745932087357, -0.0038340871560695023, -0.003924362069773335, -0.0031138492062680865, -0.0015885915625391052, 0.00030130722211175716, 0.0021220447372269167, 0.0034556936687713618, 0.003996131738712501, 0.0036193082098640783, 0.0024117181667560935, 0.0006505486607795203, -0.0012599460786211858, -0.002881236099551648, -0.0038411747427077826, -0.003919420209536979, -0.003098012240794939, -0.0015654946673488077, 0.00032636244627263974, 0.002143307179916001, 0.0034682828046579727, 0.0039971578905623585, 0.003608535837472819, 0.0023916199322300837, 0.0006257378601608698, -0.0012837744392288966, -0.002898612520748195, -0.003848110686344349, -0.003914323617301883, -0.003082052971103171, -0.0015423359691095473, 0.00035140478620302216, 0.0021644850085075036, 0.0034807350186781064, 0.003998026241462927, 0.003597621006265499, 0.002371427280644213, 0.0006009023564829911, -0.0013075521186198126, -0.0029158745096856432, -0.00385489471316004, -0.0039090724942727716, -0.003065972027237388, -0.001519116382087181, 0.00037643325327409, 0.002185577386937063, 0.0034930498192396763, 0.003998736757133202, 0.0035865641471409153, 0.002351141009169882, 0.0005760431302089882, -0.0013312781780919732, -0.0029330213848902257, -0.0038615265553331064, -0.0039036670477549788, -0.0030497700440457907, -0.0014958368229511935, 0.0004014468594048756, 0.0022065834825136933, 0.0035052267201754693, 0.003999289409523237, 0.0035753656966050346, 0.002330761918674307, 0.0005511611627385482, -0.0013549516809811763, -0.0029500524694327087, -0.003868005951049747, -0.0038981074911463008, -0.003033447661154897, -0.0014724982107387195, 0.00042644461710109554, 0.002227502465952805, 0.003517265240762232, 0.0039996841768152646, 0.003564026096753458, 0.002310290813689087, 0.0005262574363690863, -0.0013785716926981166, -0.002966967090954958, -0.003874332644514527, -0.0038923940439285027, -0.0030170055229444366, -0.001449101466818153, 0.000451425539493966, 0.0022483335114085613, 0.0035291649057398117, 0.003999921043424549, 0.0035525457952541462, 0.0022897285023783472, 0.0005013329342571898, -0.0014021372807650687, -0.002983764581696719, -0.0038805063859604218, -0.003886526931658682, -0.003000444278521795, -0.0014256475148529885, 0.0004763886403795015, 0.002269075796507051, 0.003540925245329812},
/* 852 */ {0.0, 0.002040490615496899, 0.0035100587607891877, 0.003997524169095797, 0.0033664956446248584, 0.001793532864360129, -0.00028125443082121284, -0.002277347674101057, -0.0036362466319781817, -0.0039777359072841224, -0.0032062679394835067, -0.0015376968935087237, 0.0005611166158229232, 0.0025029315670894304, 0.0037444346119040587, 0.0039382573381168216, 0.0030301687932348365, 0.0012742491240968542, -0.0008382012009825621, -0.002716125625007093, -0.003834087156069503, -0.0038792838856187644, -0.0028390699194353886, -0.0010044936566663307, 0.0011111365817560999, 0.0029158745096856467, 0.00390476047278221, 0.0038011074760094295, 0.002633917282233643, 0.0007297658156802087, -0.0013785716926980637, -0.003101189438303662, -0.003956104719981182, -0.003704115092630364, -0.0024157264137251127, -0.0004514255394939299, 0.001639182695410197, 0.0032711530779896037, 0.003987865737000183, 0.0035887868603275523, 0.0021855773869370776, 0.00017085064848454602, -0.0018916795317128416, -0.003424924086738183, -0.003999886302695932, -0.0034556936687713488, -0.0019446094693273965, 0.00011056997533842377, 0.0021348123095998534, 0.003561741278162179, 0.003992106913713087, 0.0033054943464786994, 0.0016940154832631334, -0.000391443263478603, -0.002367377490365718, -0.003680927389463477, -0.003964566079033562, -0.0031389323995268314, -0.001435035901395613, 0.0006703788568220844, 0.00258822384627777, 0.0037818924339715954, 0.003917400129352081, 0.002956832331101874, 0.0011689527061601965, -0.0009459959880948772, -0.00279625815930255, -0.003864136621653991, -0.003850842542221606, -0.0027600955601015166, -0.000897083043797531, 0.001216930316839589, 0.0029904506326764277, 0.003927252833141387, 0.003765222786309226, 0.0025496959589947736, 0.0006207727043090799, -0.001481840683077092, -0.0031698399885327563, -0.003970928635021352, -0.0036609646904836716, -0.002326675033027306, -0.0003413894596225848, 0.0017394157462221186, 0.003333538226351796, 0.003994947826424071, 0.003538584345807532, 0.0020921367646356804, 6.031629294415491e-05, -0.0019883804763886005, -0.0034807350186780886, -0.003999191509244652, -0.003398687550819757, -0.001847242148591575, 0.00022105544718772124, 0.002227502465952742, 0.00361070172234622, 0.003983638676704112, 0.003241966812754491, 0.0015932034449272915, -0.00050133293425722, -0.002455598030130093, -0.003722794985358776, -0.003948366317335656, -0.003069197919540736, -0.001331278178091929, 0.0007791287584428292, 0.002671538066368402, 0.003816459931561874, 0.003893549033881468, 0.0028812360995516427, 0.0010627629120426017, -0.0010530677944753455, -0.0028742536435513374, -0.0038912329073540483, -0.003819458178986574, -0.002679011788113482, -0.0007889868320850516, 0.0013217940086858908, 0.00306274129334575, 0.003946743776831469, 0.00372646051196812, 0.002463526021730364, 0.0005113051652344758, -0.0015839771715480335, -0.0032360679774998046, -0.003982717754008576, -0.0036150163833092728, -0.002235845482824105, -0.00023109247166658444, 0.001838319442485912, 0.003393375706502987, 0.003998976763044248, 0.003485677455864854, 0.0019970972195181742, -5.026415953341025e-05, -0.0020835617943532757, -0.003533885786745306, -0.003995440319740275, -0.003339083974058806, -0.0017484630666037432, 0.0003313719766407956, 0.0023184902457804076, 0.003656902675151191, 0.00397212592994853, 0.0031759615945913225, 0.0014911737953043677, -0.0006108394595930338, -0.0025419418705391723, -0.003761817422207928, -0.003929149002914762, -0.00299711779434465, -0.001226503020799558, 0.000887283208193701, 0.0027528105541781995, 0.003848110686344345, 0.0038667222799878566, 0.0028034378732676385, 0.0009557608976643997, -0.001159334790122662, -0.0029500524694326914, -0.0039153553047388745, -0.0037851547815227066, -0.0025958805720266718, -0.0006802876344355507, 0.0014256475148529848, 0.0031326912433041693, 0.003963218407830801, 0.003684850277189373, 0.0023754733261154397, 0.00040144685940483464, -0.0016849030999434886, -0.0032998227902332764, -0.0039914630670675735, -0.003566305287261089, -0.002143307179915976, -0.00012061887048343989, 0.0019358181967070562, 0.0034506197874403476, 0.003999949467731863, 0.0034301066247746387, 0.0019005313858883076, -0.00016080619745181888, -0.002177150742952835, -0.003584335770279976, -0.003988635601042457, -0.003276928490729804, -0.0016483477156216903, 0.0004414352539055919, 0.0024077061113549135, 0.003700308827337822, 0.003957577472103192, 0.0031075291367073984, 0.0013880045109097865, -0.0007198791487423464, -0.0026263430230117966, -0.003797964876977554, -0.003906928822670413, -0.002922747111425552, -0.001120790504297544, 0.000994759548659425, 0.0028319791969249972, 0.003876820509119311, 0.0038369403701114368, 0.0027234971098154593, 0.0008480284396882251, -0.001264715760114822, -0.0030235967074296777, -0.003936485378182176, -0.00374795856632107, -0.0025107654451627724, -0.0005710685245897835, 0.0015284114649366976, 0.0032002470230585328, 0.003976664135345196, 0.003640423882739996, 0.0022856051667294605, 0.0002912817464134083, -0.0017845413352708286, -0.003361055701895358, -0.003997157890562355, -0.0035148686299640783, -0.002049130847023504, -1.0053085908021528e-05, 0.002031837495122533, 0.003505226720175427, 0.003997865197093964, 0.0033719143227381914, 0.0018025130645211104, -0.0002712253386732153, -0.0022690757965070155, -0.003632046412706367, -0.0039787825536811905, -0.0032122686033775557, -0.0015469726091514313, 0.0005511611627385269, 0.002495081879139921, 0.0037408870056029817, 0.0039400044218777025, 0.003036721738847035, 0.001283774439228874, -0.0008283686677425584, -0.0027087369836730144, -0.003831209723849301, -0.0038817227584528307, -0.0028461427088371373, -0.0010142214197453258, 0.0011014756406720568, 0.0029089834896975746, 0.003902567458304643},
/* 941 */ {0.0, 0.0022295895413040633, 0.003702214883135416, 0.003917907469689566, 0.0028034378732676064, 0.0007371777942493337, -0.0015793602792407927, -0.0033596923976405265, -0.003999380994377954, -0.003281246468647293, -0.0014491014668181837, 0.0008750255395296477, 0.002902074094988787, 0.003943844349923247, 0.0036466466352472445, 0.00211138204778027, -0.00014071431162095244, -0.0023450369914828303, -0.0037532001020127532, -0.003887120551259251, -0.002701331232484099, -0.0005984174851865796, 0.0017076639771692974, 0.003433979311500415, 0.003994430098846174, 0.003198738633948366, 0.0013170487892981394, -0.0010117900771735978, -0.0029971177943446396, -0.003964899084295475, -0.003586564147140948, -0.001990560841794241, 0.0002812544308212175, 0.002457581484134093, 0.00379953917648898, 0.0038515217062343506, 0.0025958805720266635, 0.0004589163858720875, -0.001833853731473469, -0.003504015249308395, -0.00398453443657269, -0.0031122710312672373, -0.0011833657167306581, 0.001147302104246725, 0.0030884513152711077, 0.0039810456088252314, 0.003522041795856949, 0.0018672754897838004, -0.0004214463808155686, -0.0025670836986913526, -0.0038411747427077687, -0.003811155002975198, -0.0024872164308972957, -0.00031884718687232304, 0.001957773329906555, 0.0035697135124948577, 0.003969706257550745, 0.0030219507001853756, 0.0010482177374569353, -0.0012813938683167833, -0.0031759615945913286, -0.003992263935480304, -0.0034531594546109187, -0.0017416786085912262, 0.0005611166158229323, 0.002673408080671164, 0.0038780552593583343, 0.003766070412047513, 0.0023754733261154106, 0.0001783832820130561, -0.002079269370482838, -0.0036309927721646404, -0.003949963917812275, -0.0029278894496362748, -0.0009117721532488339, 0.001413899375117011, 0.0032595403019783416, 0.003998540176920776, 0.0033800023939174555, 0.0016139256765364692, -0.0007000922359010958, -0.00277642300947813, -0.003910135071479243, -0.003716323744363053, -0.0022607895861970727, -3.769855373257441e-05, 0.002198191451376306, 0.0036877771697752786, 0.0039253318567046966, 0.002830203719495425, 0.0007741978722034853, -0.001544654594033091, -0.003339083974058772, -0.003999866563690389, -0.0033026611760324067, -0.0014841748409482364, 0.0008382012009825133, 0.0028760009613401126, 0.003937374466975357, 0.003661976582090424, 0.0021433071799160076, -0.0001030328421700379, -0.002314392357105462, -0.0037399964110435566, -0.0038958405666370834, -0.0027290144364375967, -0.0006356651996490964, 0.001673497661159006, 0.0034144941424918652, 0.003996241453834468, 0.0032212315428445243, 0.0013525867223907213, -0.0009752725438453202, -0.002972018667171755, -0.003959739725778098, -0.0036030962024216026, -0.0020231715405583483, 0.00024363669212533917, 0.002427728240773509, 0.0037875858529637894, 0.003861526555333106, 0.002624446864239936, 0.0004963456273216984, -0.0018002690796711685, -0.0034856774558648294, -0.003987669334932512, -0.0031358142973549074, -0.001219324215829278, 0.0011111365817561177, 0.003064357265171428, 0.003977203161587993, 0.0035397554942883957, 0.00190053138588838, -0.00038393894045464624, -0.0025380588021387987, -0.0038304865838304776, -0.0038224323006375827, -0.0025166304487157488, -0.00035641162107268417, 0.0019248119172716397, 0.003552545795254178, 0.003974160818542976, 0.003046515178891708, 0.0010845522889799384, -0.0012456251265228551, -0.0031529024479617484, -0.003989743156148013, -0.0034720328681321485, -0.0017755385340485666, 0.0005237659048370142, 0.0026452474612945792, 0.00386864549616599, 0.0037786061979324707, 0.0024056986574719106, 0.0002160364073706355, -0.0020469720004573323, -0.0036150163833092316, -0.003955732627067037, -0.0029534447322134595, -0.0009484377780934034, 0.0013785716926980522, 0.003237544604092769, 0.003997344186005122, 0.0034000121588382377, 0.001648347715621703, -0.000662944491312444, -0.002749161527743392, -0.003902015352463068, -0.0037301025002275698, -0.0022917888146869354, -7.539375886162947e-05, 0.0021665981053736873, 0.0036730118867238357, 0.003932407573047655, 0.002856718170664353, 0.0008111491814260648, -0.001509811703672975, -0.0033181789537315163, -0.003999996841727007, -0.003323782521955568, -0.0015191163820872879, 0.0008013024085582484, 0.0028496723646567286, 0.00393055484366102, 0.0036769812509996735, 0.002175041931115213, -6.534222074634976e-05, -0.002283542145016858, -0.003726460511968089, -0.0039042145309296453, -0.0027564552335494446, -0.0006728564506531354, 0.0016391826954101057, 0.0033947056783706314, 0.003997697839550161, 0.0032434383233295124, 0.0013880045109098415, -0.0009386683811705812, -0.002946655548116389, -0.003954228640282659, -0.003619308209864099, -0.0020556025295280418, 0.00020599731220964933, 0.0023976593525531424, 0.0037752960941629505, 0.0038711884013154646, 0.0026527800379078574, 0.0005337307804827846, -0.001766524517559875, -0.003467030044395096, -0.003990450025444903, -0.0031590790222851012, -0.0012551744075008065, 0.0010748723616895196, 0.0030399910211409793, 0.003973007436169345, 0.003557154771169591, 0.0019336184658061395, -0.00034639739641707324, -0.0025088084605281173, -0.003819458178986535, -0.0038333700677612966, -0.002545820924866359, -0.00039394439673201136, 0.001891679531712789, 0.003535062520354761, 0.003978262371592315, 0.0030708090485045943, 0.0011207905042975893, -0.0012097457411028862, -0.003129563242306324, -0.0039868679847594925, -0.0034905978756183884, -0.0018092407459069958, 0.00048636866993501766, 0.0026168518757433957, 0.0038588920975117656, 0.0037908063461666746, 0.002435710300763686, 0.0002536703431253113, -0.0020144928065429723, -0.003598718887796306, -0.003961149965277416, -0.002978737672752491, -0.0009850191572105878, 0.0013431215575703348, 0.0032152613287756526, 0.003995793127865823, 0.0034197199150198592, 0.001682623338931923},
/* 1209 */ {0.0, 0.0027546334376066343, 0.003994692116717178, 0.003038356979741641, 0.00041144791957456483, -0.002441686751926411, -0.003952313533943855, -0.0032898474338191124, -0.0008185309020758486, 0.0021028368874530046, 0.003868005951049741, 0.0035064368072345057, 0.0012169303168395962, -0.0017416786085912197, -0.003742663763841995, -0.003685827363285994, -0.0016024196547676879, 0.0013620433435382205, 0.0035776166928849027, 0.0038261159972270073, 0.001970909366193162, -0.000967958537722516, -0.0033746156768625205, -0.003925814425777657, -0.0023184902457804198, 0.0005636049277503282, 0.003135814297354898, 0.003983864975910019, 0.0026414749042023874, -0.00015327218912835152, -0.0028637459320873227, -0.0039996518054084915, -0.0029364368866331486, -0.00025868657171611, 0.0025612968790273503, 0.003973007436169357, 0.003200247023058555, 0.000667900998336179, -0.0022316757364487317, -0.003904214530929631, -0.003430106624774604, -0.0010700298481670074, 0.001878379363800549, 0.0037940028945763417, 0.003623577174901169, 0.0014608070475663555, -0.0015051557844934734, -0.0036435417318484912, -0.0037786061979324724, -0.0018360869494087456, 0.001115964424156912, 0.0034544272435677085, 0.0038935490338814676, 0.002191888313108232, -0.0007149341061887491, -0.0032286656929855976, -0.003967186286022441, -0.002524436540497635, 0.0003063192502107549, 0.002968652121892323, 0.0039987367571332, 0.002830203719495384, 0.00010554526189106635, -0.0026771449422813235, -0.003987865737000185, -0.003105946050748319, -0.0005162900735287264, 0.002357236673120031, 0.00393468855326644, 0.0033487382602007862, 0.0009215577067063695, -0.0020123211326724287, -0.003839769347952608, -0.003556004632517451, -0.0013170487892981183, 0.001646057434420428, 0.0037041150926303596, 0.00372554633613418, 0.0016985676658968231, -0.0012623311685422264, -0.0035291649057398226, -0.0038555647500533134, -0.0020620669083604303, 0.0008652131807614419, 0.003316774785380365, 0.0039446805449159525, 0.002403690253857116, -0.00045891638587205975, -0.003069197919540751, -0.003991948315925283, -0.0027198135148896836, 4.7751074091700864e-05, 0.0027890607826512445, 0.003996866612384292, 0.0030070830272975278, 0.0003639208156142612, -0.0024793352720438237, -0.003959383257447439, -0.003262451228351454, -0.0007717319701354261, 0.0021433071799159776, 0.0038798959016503203, 0.0034832089875026944, 0.0011713560338322147, -0.0017845413352708336, -0.0037592478043452847, -0.003667014346799161, -0.0015585535056449728, 0.001406843785633283, 0.0035987188877963164, 0.0038119173660688785, 0.0019292167147871662, -0.0010142214197453618, -0.0034000121588382073, -0.003916380809295413, -0.0022794133978876817, 0.0006108394595930183, 0.003165235642148366, 0.003979296452729324, 0.0026054284152841633, -0.00020097727271906572, -0.002896880016796646, -0.003999996841727007, -0.002903803163911282, -0.00021101702640249608, 0.0025977921933207464, 0.003978262371592307, 0.0031713722686630475, 0.0006207727043090325, -0.0022711451116401915, -0.003914323617301886, -0.003405297162981107, -0.001023942776450693, 0.0019204040802154488, 0.0038088588873991863, 0.003603096202421586, 0.0014162501231459105, -0.0015492900135495047, -0.0036629870280067995, -0.003762670991733883, -0.001793532864360142, 0.0011617399580361256, 0.0034782555532978346, 0.003882328646154919, 0.0021517885119390783, -0.0007618653249247727, -0.003256624228346207, -0.00396079975075507, -0.002487216430897261, 0.0003539082734964844, 0.0030004442785218277, 0.003997251827309597, 0.002796258159302567, 5.780329282909592e-05, -0.002712433445991417, -0.0039912981658297665, -0.0030756351590135907, -0.0004689016400234067, 0.0023956471579441667, 0.003943001927061997, 0.0033223835967832282, 0.0008750255395296603, -0.0020534461124106177, -0.0038528754724329885, -0.003533885786745274, -0.0012718665353296332, 0.00168946062554779, 0.0037218749285492874, 0.0037078979607188187, 0.0016552146511606314, -0.001307552118619807, -0.0035513900439146694, -0.0038425740717236987, -0.0020210030529880184, 0.0009117721532487795, 0.0033432294454730864, 0.003936485378182168, 0.0023653511929219388, -0.0005063194495195869, -0.003099601451386102, -0.003988635601042457, -0.002684605976875378, 9.549534292021748e-05, 0.0028230906435968662, 0.003998471493027512, 0.002975380519228132, 0.000316341847335205, -0.002516630448715799, -0.003965888707882258, -0.003234590073358418, -0.000724823054508513, 0.0021834720181096766, 0.0038912329073540353, 0.0034594847568662794, 0.0011256148145569844, -0.001827149737337205, -0.003775296094162935, -0.0036476787243143573, -0.0015144652386536934, 0.0014514437308305401, 0.0036193082098640696, 0.0037971754780017253, 0.0018872491202990805, -0.0010603397596019276, -0.0034249240867381867, -0.003906389048255285, -0.0022400116984942747, 0.0006579869374088918, 0.003194205892134114, 0.0039741608185429765, 0.0025690106127063106, -0.0002486537139543791, -0.0029296012515062438, -0.00399977181691576, -0.002870755604534646, -0.000163317407914034, 0.0026339172822336912, 0.003982950343382085, 0.0031420455448960697, 0.0005735559406147751, -0.002310290813689052, -0.003923874852297805, -0.003380002393917443, -0.0009777097771251008, 0.001962155109484349, 0.0038231720591933053, 0.0035821017332636133, 0.0013714913612796608, -0.0015932034449273112, -0.0036819102921220653, -0.003746199546992758, -0.001750723173266989, 0.0012073499260863174, 0.0035015881580639317, 0.0038705549668279606, 0.002111382047780262, -0.0008086879661230477, -0.0032841186446186396, -0.003953848740546818, -0.002449641854664893, 0.00040144685940483464, 0.0030318088256499416, 0.003995197227563049, 0.0027619140892737697, 1.0053085907903917e-05, -0.0027473353861776767, -0.003994161773224816, -0.0030448859419193856, -0.00042144638081557397, 0.0024337162261673195},
/* 1336 */ {0.0, 0.00297705968363828, 0.003976664135345203, 0.0023348451237301163, -0.0008578503217853552, -0.0034807350186781025, -0.0037916077288847293, -0.0015839771715480374, 0.0016757800738601432, 0.0038224323006375675, 0.0034301066247746093, 0.0007593979092563749, -0.0024157264137251036, -0.003986250445355528, -0.00290898348969758, 0.00010052038177335591, 0.003043255502874284, 0.003964566079033561, 0.002252489095511303, -0.0009557608976644466, -0.003529164905739812, -0.003758388296423281, -0.001491173795304372, 0.0017665245175599276, 0.0038508425422216, 0.0033773117020080576, 0.0006604658447314398, -0.002495081879139967, -0.003993318954145667, -0.00283906991943539, 0.00020097727271909023, 0.00310752913670735, 0.003949963917812268, 0.0021687103469012693, -0.001053067794475364, -0.003575365696605057, -0.0037227949853587705, -0.0013974285617306612, 0.001856153186511801, 0.003876820509119321, 0.003322383596783252, 0.0005611166158229014, -0.002572861397361861, -0.003997865197093963, -0.002767363131761153, 0.00030130722211173466, 0.003169839988532765, 0.003932866874719331, 0.0020835617943533147, -0.0011497095510964743, -0.0036193082098640826, -0.003684850277189353, -0.0013028006823257428, 0.0019446094693273993, 0.0039003497930900403, 0.0032653570028687426, 0.00046141297363321444, -0.0026490158411800343, -0.003999886302695931, -0.0026939084182189045, 0.0004014468594048834, 0.003230148701480983, 0.003913285748613614, 0.001997097219518197, -0.0012456251265229408, -0.003660964690483671, -0.0036445781386059985, -0.001207349926086379, 0.002031837495122566, 0.0039214155325336805, 0.0032062679394835006, 0.000361417893119732, -0.002723497109815482, -0.003999380994377954, -0.0026187521743800714, 0.0005013329342572044, 0.003288417183276259, 0.0038912329073540466, 0.0019093712352746717, -0.0013407539384214867, -0.00370030882733783, -0.0036020040063546115, -0.0011111365817560574, 0.0021177821688066513, 0.003940004421877704, 0.0031451537285464575, 0.0002611945333185409, -0.002796258159302546, -0.003996349591303594, -0.002541941870539136, 0.0006009023564830357, 0.0033446086302966332, 0.0038667222799878493, 0.00182043925123463, -0.0014350359013956101, -0.003737315769826443, -0.0035571547711696068, -0.0010142214197453184, 0.0022023892058816216, 0.003956104719981189, 0.0030820529711031437, 0.00016080619745181888, -0.002867253032202936, -0.003990794008172009, -0.0024635260217303777, 0.0007000922359011595, 0.0033986875508197605, 0.0038397693479526067, 0.0017303574387452546, -0.0015284114649367138, -0.0037719621435714505, -0.003510058760789184, -0.0009166656537476545, 0.0022856051667294684, 0.003969706257550748, 0.003017005522944407, 6.031629294416275e-05, -0.0029364368866331646, -0.003982717754008578, -0.0023835541570844665, 0.0007988399220576751, 0.0034506197874403614, 0.0038103911352978677, 0.0016391826954101753, -0.0016208216510375092, -0.0038042260651806226, -0.0034607457220629787, -0.000818530902075878, 0.0023673774903657653, 0.003980800443563737, 0.0029500524694326927, -4.0211708626956964e-05, -0.00300376602458797, -0.003972125929948532, -0.002302076788545316, 0.0008970830437975081, 0.0035003725386447007, 0.0037786061979324533, 0.0015469726091514168, -0.0017122080914437907, -0.003834087156069509, -0.0034092468021631717, -0.0007198791487423389, 0.002447654527638152, 0.003989380270694482, 0.0028812360995515906, -0.00014071431162097743, -0.003069197919540727, -0.00395902522601496, -0.002219145378965188, 0.0009947595486593946, 0.003547914379528774, 0.0037444346119040474, 0.0014537854218358358, -0.0018025130645211262, -0.003861526555333113, -0.0033555945289113686, -0.000620772704309052, 0.002526385573849324, 0.003995440319740278, 0.0028105998791954053, -0.00024112803643979195, -0.0031326912433041203, -0.003943423916893281, -0.002134812309599779, 0.0010918077420693233, 0.003593215281646841, 0.003707897960718819, 0.0013596799924882588, -0.0018916795317127752, -0.0038865269316587098, -0.003299822790233241, -0.0005212741665304538, 0.00260352090078302, 0.003998976763044248, 0.0027381884237146865, -0.00034138945962259746, -0.0031942058921341234, -0.003925331856704681, -0.002049130847023533, 0.0011881663263081542, 0.0036362466319782003, 0.003669019321708676, 0.001264715760114861, -0.001979651173567271, -0.00390907249427276, -0.003241966812754509, -0.0004214463808154843, 0.002679011788113477, 0.0039999873669130164, 0.0026640474697370276, -0.00044143525390556856, -0.0032537030120598255, -0.0039047604727821972, -0.0019621551094842703, 0.0012837744392288444, 0.0036769812509996735, 0.003627823251455474, 0.0011689527061601074, -0.002066372425309786, -0.003929149002914762, -0.0031820631395503363, -0.000321352400533589, 0.002752810554178231, 0.00399847149302751, 0.002588223846277718, -0.0005412022282207145, -0.0033111450234253248, -0.0038817227584528394, -0.0018739400327224007, 0.0013785716926981737, 0.003715393409852806, 0.0035843357702799697, 0.0010724513166217296, -0.0021517885119390887, -0.003946743776831459, -0.003120149607064859, -0.00022105544718761555, 0.002824870586094876, 0.003994430098846171, 0.0025107654451628366, -0.0006406273676088246, -0.0033664956446248667, -0.003856233264830671, -0.0017845413352707566, 0.001472498210738703, 0.0037514588465947622, 0.003538584345807503, 0.0009752725438452765, -0.002235845482824107, -0.003961845702786609, -0.0030562653212122186, -0.00012061887048345556, 0.0028951463692028405, 0.0039878657370001815, 0.002431721190778373, -0.0007396478730205062, -0.003419719915019816, -0.003828308091626274, -0.0016940154832630677, 0.0015654946673488979, 0.003785154781522692, 0.0034905978756183302, 0.0008774777680269447, -0.0023184902457804957, -0.003974445242080036, -0.002990450632676396, -2.010610831519853e-05, 0.0029635935158110307, 0.003978782553681181},
/* 1477 */ {0.0, 0.0032017541487619067, 0.003838357889677527, 0.001399783197553974, -0.0021602562520964615, -0.003989562500929295, -0.0026225496693779073, 0.000845572129769651, 0.0036362466319781804, 0.0035136682429066607, 0.0005760431302090096, -0.002823090643596825, -0.003960447972571719, -0.0019248119172716838, 0.0016529263248955442, 0.003906389048255297, 0.003030168793234842, -0.00027373277479808577, -0.003358327767032329, -0.003752330214984032, -0.0011400770498799064, 0.002385572014346095, 0.003999971575572989, 0.002409712614713702, -0.0011111365817560847, -0.0037417761233194645, -0.003374615676862524, -0.00030381329613159396, 0.0030103952814125386, 0.003912764496812036, 0.0016803429136472343, -0.0018983195456106234, -0.003956104719981179, -0.0028443761951607825, 0.0005461821267276827, 0.0034991555373338006, 0.0036487093733357048, 0.0008750255395296471, -0.002599702789047579, -0.003991626392538984, -0.0021855773869370798, 0.0013714913612797234, 0.0038297619315962096, 0.0032197408953922547, 3.0159003721441385e-05, -0.003183585386724037, -0.0038467356422867854, -0.0014279954580403102, 0.002134812309599827, 0.0039872718080692215, 0.0026452474612946274, -0.000816070650373887, -0.0036235771749011632, -0.003527981201176216, -0.0006058713864148565, 0.0028016446031351987, 0.003964566079033566, 0.0019511948659698157, -0.001625415769510359, -0.0038997915267468476, -0.0030497700440458046, 0.00024363669212531275, 0.003341848940795497, 0.003762670991733885, 0.0011689527061602273, -0.0023612957974251526, -0.003999744182580743, -0.0024337162261673733, 0.001082132947015378, 0.003731009316726083, 0.0033907117443403557, 0.000333876546088747, -0.002990450632676396, -0.0039189175099813974, -0.001707663977169296, 0.001871719257042271, 0.00395153656817, 0.0028655000477721617, -0.0005162900735286651, -0.0034844439094853926, -0.0036609646904836738, -0.0009044292052672633, 0.002576708119118042, 0.003993463365568832, 0.002210774274649388, -0.0013431215575703313, -0.0038209482567114843, -0.0032375446040928185, -6.031629294417451e-05, 0.0031652356421483147, 0.003854894713160062, 0.001456126538909716, -0.0021092470059010998, -0.003984754444181565, -0.002667794874458871, 0.0007865227784616115, 0.0036107017223461933, 0.0035420935984700618, 0.0006356651996491147, -0.0027800392929544404, -0.003968458805257918, -0.001977466891870017, 0.0015978128114297534, 0.0038929723073468873, 0.0030691979195407674, -0.00021352675903500633, -0.003325180134951064, -0.0037727978657098294, -0.0011977619090548705, 0.0023368853440210733, 0.003999289409523234, 0.0024575814841341415, -0.0010530677944752842, -0.003720030407282303, -0.003406615054426062, -0.00036392081561433735, 0.0029703359808528024, 0.0039248477379728915, 0.0017348879622961799, -0.0018450125637571946, -0.003946743776831465, -0.0028864610005684414, 0.0004863686699349651, 0.0034695341956976268, 0.0036730118867238665, 0.0009337814554236444, -0.0025535669668052038, -0.003995073315589401, -0.002235845482824159, 0.0013146753992108193, 0.0038119173660688564, 0.0032551642627467055, 9.047015326698648e-05, -0.003146705958192948, -0.0038628346384651387, -0.0014841748409482466, 0.002083561794353232, 0.003982010552375073, 0.0026901906270805766, -0.0007569301937896698, -0.003597621006265447, -0.0035560046325175086, -0.0006654228761735718, 0.002758275941287235, 0.003972125929948541, 0.002003626501442849, -0.001570119019844537, -0.0038859317777188416, -0.003088451315271105, 0.00018340468723630396, 0.003308322297098219, 0.003782710261212682, 0.0012265030207996347, -0.0023123420418351575, -0.003998607282253702, -0.002481307031906295, 0.0010239427764505737, 0.003708840019124321, 0.0034223247030379556, 0.00039394439673199965, -0.0029500524694326844, -0.003930554843661033, -0.0017620133213809767, 0.0018182009839947816, 0.003941726618429294, 0.00290725786194765, -0.0004564196169379312, -0.0034544272435676495, -0.0036848502771894154, -0.0009630806213631559, 0.002530280647652512, 0.003996456151077196, 0.002260789586197075, -0.0012861545033269997, -0.0038026697730623006, -0.003272598869700106, -0.00012061887048347907, 0.003127997388245545, 0.0038705549668280026, 0.0015121387696477387, -0.002057758135125876, -0.003979040288636299, -0.0027124334459914185, 0.0007272945786565273, 0.0035843357702799645, 0.0035697135124949167, 0.0006951427243045976, -0.0027363557853508705, -0.00397556724463433, -0.0020296722075500424, 0.001542335969109457, 0.003878670338107322, 0.0031075291367074773, -0.00015327218912835548, -0.0032912763855822897, -0.003792407614736149, -0.0012551744075008418, 0.0022876672861212146, 0.003997697839550158, 0.002504891520718357, -0.0009947595486593168, -0.003697438788410684, -0.0034378397971036863, -0.00042394558264201407, 0.0029296012515062117, 0.003936038502604565, 0.001789038512383536, -0.001791286041957402, -0.003936485378182158, -0.0029278894496363684, 0.00042644461710096885, 0.0034391239119053534, 0.0036964791888837137, 0.0009923250374673767, -0.002506850485455512, -0.003997611793419896, -0.002285605166729483, 0.0012575604912934122, 0.003793206003405033, 0.0032898474338191805, 0.0001507607306798884, -0.0031091109958630543, -0.0038780552593583643, -0.0015400167352963823, 0.002031837495122423, 0.003975843821820698, 0.002734522066717206, -0.0006976176178069564, -0.0035708467696375047, -0.0035832194590709925, -0.0007248230545086634, 0.0027142800712765393, 0.003978782553681202, 0.002055602529528067, -0.0015144652386536537, -0.0038711884013154225, -0.003126430299301055, 0.00012313097770294708, 0.0032740433694403684, 0.003801889374998755, 0.001283774439228915, -0.0022628624796057536, -0.003996561133113193, -0.0025283336098240626, 0.0009655197701286207, 0.003685827363285947, 0.0034531594546109838, 0.0004539226678167804, -0.0029089834896975156, -0.003941298403064889},
};
float sine_sum = 0.0;
float cosine_sum = 0.0;
volatile uint8_t position = 255;
volatile uint16_t best;
const char dtmf_lut[16] = "123A456B789C*0#D";
uint8_t lastpos = 0;
uint8_t ringing = 0;
uint8_t dial_tone = 0;
uint8_t busy_tone = 0;
volatile uint8_t last_dc = 0;
volatile uint8_t at_mode = 0;
char at_buf[40];
volatile uint8_t at_buflen = 0;
volatile uint8_t at_idx = 0;
volatile uint8_t action = 0;
uint8_t samples_since_ring = 254; // 254 = idle state (not ringing); 255 = ringing; 0-253 = ringing ended
uint8_t ring_counter = 0;
uint16_t time_since_last_ring = 0;
uint16_t await_dial_tone_timer = 0;
void printnum_noblock(uint16_t num, uint8_t bits, uint8_t offset) {
for (uint8_t x=0; x<bits; x++) {
txbuf[x+offset] = ((num & (1<<(bits-1)))?'1':'0');
num = num << 1;
}
txbuf[offset + bits] = '\r';
txbuf[offset + bits + 1] = '\n';
UDR0 = txbuf[0];
txbuflen = offset + bits + 2;
txidx = 1;
}
void print_txbuf() {
txidx = 1;
UDR0 = txbuf[0];
}
void printdec(uint32_t num, uint8_t digits, uint8_t offset) {
for (uint8_t x=0; x<digits; x++) {
txbuf[offset+digits-1-x] = '0' + (num % 10);
num = num / 10;
}
}
void print_hex(uint8_t num) {
UDR0 = (num >> 4) + (num >= 160?('A'-10):'0');
while (!(UCSR0A & 0b00100000));
UDR0 = (num & 0x0f) + ((num & 0x0f) >= 10?('A'-10):'0');
while (!(UCSR0A & 0b00100000));
}
void print_char(char x) {
txbuflen = 0;
UDR0 = x;
while (!(UCSR0A & 0b00100000));
}
void newline_block() {
UDR0 = '\r';
while (!(UCSR0A & 0b00100000));
UDR0 = '\n';
while (!(UCSR0A & 0b00100000));
}
void cmd(char* command) {
strcpy(at_buf, command);
at_buflen = strlen(command);
UDR3 = at_buf[0];
at_idx = 1;
while (at_buflen);
}
void print_str(char* string) {
strcpy(txbuf, string);
txbuflen = strlen(string);
UDR0 = txbuf[0];
txidx = 1;
while (txbuflen);
}
void start_read(uint32_t address) {
PORTB &= 0b11111110;
SPDR = 0x03;
while (!(SPSR & 0b10000000));
SPDR = (address >> 16) & 0xff;
while (!(SPSR & 0b10000000));
SPDR = (address >> 8) & 0xff;
while (!(SPSR & 0b10000000));
SPDR = (address) & 0xff;
while (!(SPSR & 0b10000000));
}
uint8_t next_byte() {
SPDR = 0;
while (!(SPSR & 0b10000000));
return SPDR;
}
uint32_t next_long(uint8_t offset) {
return *((uint32_t*)(data+offset));
}
void end_read() {
PORTB |= 0b00000001;
}
void delay_us(uint16_t us) {
TCCR3B = 0b00000010; // divide by 8
OCR3A = 2*us-1; // 1us
TCNT3 = 0;
TIFR3 |= 0b00000010;
while (!(TIFR3 & 0b00000010));
}
void delay_ms(uint16_t ms) {
TCCR3B = 0b00000011; // divide by 64
OCR3A = 249; // 1ms
TCNT3 = 0;
TIFR3 |= 0b00000010;
for (; ms>0; ms--) {
while (!(TIFR3 & 0b00000010));
TIFR3 |= 0b00000010;
}
}
void wait_secs(uint8_t secs) {
waiting = 1;
TCCR3B = 0b00001101;
OCR3A = (F_CPU/1024L - 1);
TIFR3 |= 0b00000010;
TCNT3 = 0;
for (; secs>0; secs--) {
while(!(TIFR3 & 0b00000010));
TIFR3 |= 0b00000010;
}
waiting = 0;
}
void send_nibble(uint8_t byte) {
uint8_t temp = TCCR3B;
PORTL = byte | 0b00000001 | (PORTL & 0b00001000);
delay_us(2);
PORTL = byte | (PORTL & 0b00001000);
delay_us(40);
TCCR3B = temp;
}
void send(uint8_t byte, uint8_t rs) {
if (!waiting) {
send_nibble((byte & 0xf0) | (rs?0x02:0x00));
byte = byte << 4;
send_nibble((byte & 0xf0) | (rs?0x02:0x00));
}
}
void send_from_txbuf() {
if (!waiting) {
uint8_t n = 0;
for (n=0; n<lcdbuflen; n++) {
send(lcdbuf[n], 1);
}
}
}
void send_from_string(char* text, uint8_t len) {
if (!waiting) {
uint8_t n=0;
for (n=0; n<len; n++) {
send(text[n], 1);
}
}
}
void enable_dtmf() {
adc_sample_num = 0;
TCNT0 = 0;
TIFR0 |= 0b00000010;
TIMSK0 = 0b00000010;
PORTB |= 0b10000000;
}
void disable_dtmf() {
TIMSK0 = 0b00000000;
PORTB &= 0b01111111;
}
ISR(ADC_vect) {
PORTB |= 0b10000000;
data[adc_sample_num] = 4*ADCH;
//if (ADCH > 128) data[adc_sample_num] = -ADCH;
adc_sample_num++;
if (adc_sample_num >= NDTMFSAMPLES) {
disable_dtmf();
//PORTB &= 0b01111111;
}
}
ISR(TIMER0_COMPA_vect) {
ADCSRA |= 0b01000000;
PORTB &= 0b01111111;
}
// Audio playback
ISR(TIMER5_COMPA_vect) {
uint8_t s=0, n=0;
PORTB |= 0b01000000;
for (; n<bytes_per_sample; n++) {
s = next_byte();
curr_sample++;
if (curr_sample >= data_lengths[curr_chunk]) {
// End of chunk
curr_chunk++;
curr_sample = 0;
if (curr_chunk >= data_chunks) {
// End of playback
TIMSK5 = 0b00000000;
end_read();
TIFR5 |= 0b00000010;
PORTB &= 0b01111111;
enable_dtmf();
finished = 1;
return;
}
end_read();
start_read(data_offsets[curr_chunk]);
return;
}
}
PORTA = s*volumes[curr_chunk]+128;
PORTB &= 0b10111111;
}
ISR(TIMER4_COMPA_vect) {
if (DDRK == 0b00001000) {
DDRK = 0b00000001;
// Do actions based on keyboard
uint16_t mask_diff = ~lastmask & mask;
lastmask = mask;
txbuflen = 0;
if (flags & 0b00001000) {
if (mask_diff & 0x8000) {
// Start set1 and the set1_to_afterBreakfast timer
timer_states |= 0b00100001;
//flags |= 0b00000001;
set1 = TIME(0, 30, 0);
set1_to_afterBreakfast = TIME(1, 30, 0);
send(0x80, 0);
send_from_string("carba + mido", 12);
flags |= 0b00000110;
recv = 'd'; // Dial the telephone
action = 1; // Play 1 once connection is established
strcpy(txbuf, "start 1 -----\r\n");
txbuflen = 15;
printdec(currentTime, 5, 8);
print_txbuf();
} /*else if (mask_diff & 0x2000) {
// start set 3 (before dinner)
timer_states |= 0b00010000;
beforeDinner = 3600*0.5;
send(0x80, 0);
send_from_string("omir ", 15);
flags |= 0b00000110;
} else if (mask_diff & 0x4000) {
// start set 2 (after breakfast)
timer_states |= 0b00000100;
afterBreakfast = 3600*6;
send(0x80, 0);
send_from_string("gab + AM reg ", 15);
flags |= 0b00000110;
}*/ else if (mask_diff & 0x0008) {
flags &= 0b11111011;
//PORTB |= 0b10000000;
}
} else {
uint8_t n = 16;
char l;
do {
n--;
l = symlut[n];
if ((mask_diff & 1) && (l >= '0') && (l <= '9')) {
send(l, 1);
time_in_buf[time_in_buflen] = l-'0';
time_in_buflen++;
if (time_in_buflen == 2) send(':', 1);
txbuflen = 0;
UDR0 = l;
while (!(UCSR0A & 0b00100000));
UCSR0A |= 0b01100000;
break;
}
mask_diff = mask_diff >> 1;
} while (n > 0);
if (time_in_buflen == 4) {
flags |= 0b00001000;
currentTime = 36000UL*time_in_buf[0] + 3600UL*time_in_buf[1] + 600UL*time_in_buf[2] + 60UL*time_in_buf[3];
send(0x80 | 0x40, 0);
send_from_string("Next in 00:00:00", 16);
}
}
if (mask_diff) {
OCR2A = BACKLIGHT_BRIGHT;
flags |= 0b00000010;
}
uint8_t n = 16;
txbuflen = 0;
do {
n--;
if (mask_diff & 1) {
UDR0 = symlut[n];
while (!(UCSR0A & 0b00100000));
newline_block();
}
mask_diff = mask_diff >> 1;
} while (n > 0);
mask = 0;
} else {
DDRK = DDRK << 1;
}
PORTK = ~DDRK;
// TODO: move to other ISR
if (flags & 0b00000010) {
if (backlight_timer == 100*BACKLIGHT_ON) {
OCR2A = BACKLIGHT_DIM;
backlight_timer = 0;
flags &= 0b11111101;
}
backlight_timer ++;
}
// TODO: move to other ISR
if (flags & 0b00000100) {
/*if (buzzer_timer % (uint16_t)(100*BUZZER_PERIOD) < (uint16_t)(100*BUZZER_ON))
PORTB &= 0b01111111;
else
PORTB |= 0b10000000;*/
if (buzzer_timer == 100*BUZZER_TOTAL) {
flags &= 0b11111011;
buzzer_timer = 0;
//PORTB |= 0b10000000;
}
buzzer_timer ++;
}
if (flags & 0b00010000) {
call_timer ++;
}
if (flags & 0b00100000) {
time_since_last_ring++;
}
if (flags & 0b01000000) {
await_dial_tone_timer++;
}
}
ISR(TIMER4_COMPB_vect) {
uint8_t inp = ~PINK;
uint16_t col = (inp & 0b00001111) << 12;
//mask |= col;
//printnum_noblock(inp, 8, 0);
uint8_t _r = 4;
inp = inp >> 4;
while (_r > 0) {
_r--;
if (inp & (1<<_r)) {
mask |= col;
}
col = col >> 4;
}
}
ISR(USART0_TX_vect) {
if (txidx < txbuflen) {
UDR0 = txbuf[txidx];
txidx++;
delay_us(txidx*4);
} else txbuflen = 0;
}
ISR(USART0_RX_vect) {
txbuflen = 0;
recv = UDR0;
if (at_mode) {
UDR0 = recv;
if (recv == '\e') {
at_buflen = 0;
newline_block();
print_char('>');
} else {
at_buf[at_buflen] = recv;
at_buflen++;
}
if (recv == '\r') {
at_buf[at_buflen] = '\n';
at_buflen++;
UDR3 = at_buf[0];
at_idx = 1;
at_mode = 0;
while (!(UCSR0A & 0b00100000));
UDR0 = '\n';
} else if (recv == 127) {
at_mode = 0;
newline_block();
}
recv = 0; // suppress playback
} if (recv == 'x') {
recv = 0; // suppress playback
enable_dtmf();
strcpy(txbuf, "on - manual\r\n");
txbuflen = 13;
print_txbuf();
//PORTB |= 0b10000000;
} else if (recv == '\r') {
newline_block();
} else if (recv == '\e') {
at_mode = 1;
UDR0 = '>';
recv = 0; // suppress playback
}
}
// Runs every second (or every 1/1024 second in test mode)
ISR(TIMER1_COMPA_vect) {
PORTB |= 0b01000000;
if (!waiting) {
if (timer_states & 0b00000011) {
set1 --;
if (set1 == 0) {
OCR2A = BACKLIGHT_BRIGHT;
flags |= 0b00000110;
send(0x80, 0);
switch (timer_states & 0b00000011) {
case 0b01:
// 30m: breakfast
send_from_string("breakfast ", 16);
timer_states = (timer_states & 0b11111100) | 0b10;
set1 = TIME(13, 30, 0) - currentTime;
if (set1 < TIME(4, 0, 0)) set1 = TIME(4, 0, 0);
//recv = 'd'; // just a test
//action = 2;
break;
case 0b10:
// 4h30m: carba + mido + eset
send_from_string("carba,mido,eset ", 16);
timer_states = (timer_states & 0b11111100) | 0b11;
// Next dose of carba+omir must be after 17:30
set1 = TIME(4, 30, 0);
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 3; // Play 3 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
break;
case 0b11:
// 9h: carba (spaces to clear display)
send_from_string("carba,omir ", 16);
timer_states &= 0b11111100;
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 5; // Play 5 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
break;
}
}
if (timer_states & 0b00100000) {
set1_to_afterBreakfast --;
if (currentTime == TIME(10, 30, 0)) {
strcpy(txbuf, "autostart\r\n");
txbuflen = 11;
print_txbuf();
}
if (set1_to_afterBreakfast == 0 || currentTime == TIME(10, 30, 0)) {
// Set 2 starts either 1.5 hours after set 1, or at 10:30, whichever comes first
timer_states |= 0b00000100; // start afterBreakfast
timer_states &= 0b11011111; // stop set1_to_afterBreakfast
afterBreakfast = TIME(16, 30, 0) - currentTime;
if (afterBreakfast > TIME(6, 30, 0)) afterBreakfast = TIME(6, 30, 0); // 6.5 hours later, but no later than 16:30:00
strcpy(txbuf, "to next -----\r\n");
txbuflen = 15;
printdec(currentTime, 5, 8);
print_txbuf();
send(0x80, 0);
send_from_string("gab + AM reg ", 16);
flags |= 0b00000110;
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 2; // Play 2 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
}
}
}
if ((timer_states & 0b00001100) == 0b0100) {
if (afterBreakfast > 0) afterBreakfast --;
if (afterBreakfast == 0) {
send(0x80, 0);
// 6.5h: gab
strcpy(txbuf, "gab -----\r\n");
txbuflen = 11;
printdec(currentTime, 5, 4);
print_txbuf();
OCR2A = BACKLIGHT_BRIGHT;
flags |= 0b00000110;
send_from_string("gab ", 16);
timer_states = (timer_states & 0b10110011) | 0b1000;
afterBreakfast = TIME(22, 30, 0) - currentTime;
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 4; // Play 4 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
}
}
if (afterBreakfast > 0 && timer_states & 0b00001000) afterBreakfast--;
if (currentTime == TIME(22, 30, 0) && (timer_states & 0b00001100) == 0b1000) {
// 12h: gab + PM reg
strcpy(txbuf, "gab+p -----\r\n");
txbuflen = 13;
printdec(currentTime, 5, 6);
print_txbuf();
OCR2A = BACKLIGHT_BRIGHT;
flags |= 0b00000110;
send(0x80, 0);
send_from_string("gab + PM reg ", 16);
timer_states |= 0b00001100;
afterBreakfast = TIME(0, 30, 0);
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 6; // Play 6 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
}
if (currentTime == TIME(23, 0, 0) && (timer_states & 0b00001100) == 0b1100) {
// 23:00 (abs): clon
strcpy(txbuf, "clon -----\r\n");
txbuflen = 12;
printdec(currentTime, 5, 5);
print_txbuf();
OCR2A = BACKLIGHT_BRIGHT;
flags |= 0b00000110;
send(0x80, 0);
send_from_string("clon ", 16);
timer_states = 0b00000000; // clon is always last
afterBreakfast = 0;
set1 = 0;
set1_to_afterBreakfast = 0;
#ifndef TEST
recv = 'd'; // Dial the telephone
action = 7; // Play 7 once connection is established
enable_dtmf(); // It may be necessary to start DTMF if it is not running
#endif
}
}
PORTB &= 0b10111111;
#ifdef TEST
if (!waiting)
#endif
currentTime = (currentTime+1)%(3600UL*24);
flags |= 0b10000000;
}
ISR(USART3_RX_vect) {
txbuflen = 0;
UDR0 = UDR3;
}
ISR(USART3_TX_vect) {
if (at_idx < at_buflen) {
UDR3 = at_buf[at_idx];
at_idx++;
} else at_buflen=0;
}
void prepare_audio(uint32_t offset, uint8_t vol) {
printnum_noblock(SPCR, 8, 0);
while (txbuflen);
start_read(offset);
uint8_t n=0;
cli();
for (n=0; n<36; n++) {
data[n] = next_byte();
print_hex(data[n]);
}
sei();
sample_rate = next_long(24);
riff_len = next_long(4);
fmt_len = next_long(16);
bytes_per_sample = (data[34]+256UL*data[35])/8;
memcpy(txbuf, "\r\nSR: \0\0\0\0\0\r\n", 13);
printdec(sample_rate, 5, 6);
txbuflen = 13;
print_txbuf();
while (txbuflen);
strcpy(txbuf, "SS: --\r\n");
printdec(bytes_per_sample, 2, 4);
txbuflen = 8;
print_txbuf();
while (txbuflen);
strcpy(txbuf, "total length: ------\r\n");
printdec(riff_len, 6, 14);
txbuflen = 22;
print_txbuf();
while (txbuflen);
strcpy(txbuf, "fmt length: -----\r\n");
printdec(fmt_len, 5, 12);
txbuflen = 19;
print_txbuf();
while (txbuflen);
end_read();
// Prepare for audio playback
uint32_t x=36;
while (x < riff_len + 8) {
start_read(offset+x);
print_hex(x>>16);
print_hex(x>>8);
print_hex(x);
print_char(':');
print_char(' ');
for (n=0; n<8; n++) {
data[n] = next_byte();
if (n<4) print_char(data[n]);
}
newline_block();
data_lengths[data_chunks] = next_long(4);
if (memcmp(data, "data", 4)==0) {
data_offsets[data_chunks] = offset + x + 8;
x = x + 8 + data_lengths[data_chunks];
strcpy(txbuf, "chunk found, len ------\r\n");
printdec(data_lengths[data_chunks], 6, 17);
txbuflen = 25;
print_txbuf();
while (txbuflen);
volumes[data_chunks] = vol;
data_chunks++;
} else x = x+8+data_lengths[data_chunks];
end_read();
}
/*strcpy(txbuf, "chunk 0 has len ------\r\n");
printdec(data_lengths[0], 6, 16);
txbuflen = 24;
print_txbuf();
while (txbuflen);*/
}
void play_audio() {
// Begin audio playback
disable_dtmf();
print_str("dtmf off audio\r\n");
curr_chunk = 0;
curr_sample = 0;
finished = 0;
PORTB |= 0b10000000;
start_read(data_offsets[0]);
TIFR5 = 0b00000010;
TIMSK5 = 0b00000010;
}
int main() {
DDRB |= 0b11010111;
DDRA = 0b11111111;
DDRL = 0b11111011;
PORTB |= 0b00000001;
PORTA = 128;
PORTL = 0b00000000;
DDRK = 0b00000001;
PORTK = 0b11111111;
SPCR = 0b01010000; // master, 8MHz
SPSR = 0b00000001; // Double speed
// Timer for checking keypad
TCCR4A = 0b00000000;
TCCR4B = 0b00001100;
TCCR4C = 0b00000000;
TIMSK4 = 0b00000110;
OCR4A = 624;
OCR4B = 312;
// misc. delay counter
TCCR3A = 0b00000000;
TCCR3B = 0b00001010; // divide by 8, CTC mode
TCCR3C = 0b00000000;
// Time keeping counter
TCCR1A = 0b00000000;
#ifdef TEST
TCCR1B = 0b00001001; // divide by 1 (00001001) for faster testing
#else
TCCR1B = 0b00001101; // divide by 1024 (00001101)
#endif
TCCR1C = 0b00000000;
TIMSK1 = 0b00000010;
OCR1A = 15624; // Will trigger COMPA once a second
UBRR0 = 3; // 500K UART connection to computer
UCSR0A = 0b00000010;
UCSR0B = 0b11011000;
UCSR0C = 0b00000110;
UBRR3 = 103; // 19.2K serial port to communicate with telephone
UCSR3A = 0b00000010;
UCSR3B = 0b11011000;
UCSR3C = 0b00000110;
TCCR2A = 0b10000011; // PWM for backlight
TCCR2B = 0b00000010;
OCR2A = 31;
TCCR0A = 0b00000010; // Samples for DTMF
TCCR0B = 0b00000010;
OCR0A = 199; // 8000 samples per second
TCCR5A = 0b00000000; // Timer for playing back audio samples
TCCR5B = 0b00001001;
TCCR5C = 0b00000000;
OCR5A = 363; // ~44100Hz
TIMSK5 = 0b00000000;
ADMUX = 0b11101001;
ADCSRA = 0b10001100;
ADCSRB = 0b00000011;
sei();
strcpy(txbuf, "## RESETTING ##\r\n");
txbuflen = 17;
print_txbuf();
while(txbuflen);
prepare_audio(0x000000, 4); // "It is time for pill box number ..."
enable_dtmf();
send_nibble(0x30); // init
delay_ms(8);
send_nibble(0x30); // init
delay_us(128);
send_nibble(0x30); // init
delay_us(128);
send_nibble(0x20); // 4-bit mode
send(0x28, 0);
send(0x0c, 0); // Enable the screen
send(0x01, 0); // clear the screen
delay_ms(8);
send(0x06, 0);
send(0x80 | 0x40, 0);
send_from_string("Set time: 00:00", 15);
send(0x80 | 0x4A, 0);
while (1) {
if (flags & 0b00000001) {
send_from_txbuf();
flags &= 0b11111110;
}
if (recv) {
if (('1' <= recv) && (recv <= '7')) {
strcpy(txbuf, "received: -\r\n");
txbuf[10] = recv;
txbuflen = 13;
print_txbuf();
while (txbuflen);
data_chunks = 1;
prepare_audio(0x030000 + 0x010000*(recv-'1'), 1);
play_audio();
recv = 0;
}
}
if (adc_sample_num == NDTMFSAMPLES) {
uint8_t x=0, f=0;
#ifdef DTMF_DEBUG
while (txbuflen);
strcpy(txbuf, " , , , ; , , \r\n");
#endif
ringing = 1;
dial_tone = 1;
busy_tone = 1;
for (; f<NFREQ; f++) {
sine_sum=0.0;
cosine_sum=0.0;
for (x=0; x<NDTMFSAMPLES; x++) {
vx = pgm_read_float(&(cosines[f][x]));
vy = pgm_read_float(&(sines[f][x]));
sine_sum += vy*((int8_t)(data[x]));
cosine_sum += vx*((int8_t)(data[x]));
}
sine_sum = sine_sum*sine_sum;
cosine_sum = cosine_sum*cosine_sum;
sine_sum += cosine_sum;
/*strcpy(txbuf, "complete, ---- is -----\r\n");
txbuflen = 25;
printdec(freqs[f], 4, 10);
printdec((uint32_t)sine_sum, 5, 18);
print_txbuf();*/
uint16_t curr = (uint16_t)sine_sum;
// Identify the row or column
if (f == 4) best = 50;