huangcm
2025-04-22 c8cf547b11f2c03565d8fb8b8bcdc69860d0ed08
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
/*
Copyright (c) 2014, Intel Corporation
All rights reserved.
 
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
 
    * Redistributions of source code must retain the above copyright notice,
    * this list of conditions and the following disclaimer.
 
    * Redistributions in binary form must reproduce the above copyright notice,
    * this list of conditions and the following disclaimer in the documentation
    * and/or other materials provided with the distribution.
 
    * Neither the name of Intel Corporation nor the names of its contributors
    * may be used to endorse or promote products derived from this software
    * without specific prior written permission.
 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
/******************************************************************************/
/******************************************************************************/
//                     ALGORITHM DESCRIPTION
//                     ---------------------
//
//  sinh(x)=(exp(x)-exp(-x))/2
//
//  Let |x|=xH+xL (upper 26 bits, lower 27 bits)
//  log2(e) rounded to 26 bits (high part) plus a double precision low part is
//          L2EH+L2EL (upper 26, lower 53 bits)
//
//  Let xH*L2EH=k+f+r`, where (k+f)*2^7=int(xH*L2EH*2^7),
//                              f=0.b1 b2 ... b7, k integer
//  2^f is approximated as Tp[f]+Dp[f], and 2^{-f} as Tn[f]+Dn[f]
//  Tp stores the high 53 bits, Dp stores (2^f-Tp[f]) rounded to double precision
//
//  e^|x|=2^{k+f}*2^r, r=r`+xL*L2EH+|x|*L2EL, |r|<2^{-8}+2^{-14},
//                       for |x| in [23/64,3*2^7)
//  e^{-|x|}=2^{-k-f}*2^{-r}
//
//  e^|x| is approximated as 2^k*Tp+2^k*Tp*c1*r(1+c2*r+..+c5*r^4)+2^k*Dp=
//                           =2^k*Tp+2^k*Tp*P15+2^k*Dp
//  e^{-|x|} approximated as 2^{-k}*Tn-2^{-k}*Tn*c1*r(1-c2*r+..+c5*r^4)+2^{-k}*Dn
//
//  For |x| in [1/8, 3*2^7), sinh(x) is formed as
//      RN(2^k*Tp-2^{-k}*Tn)+2^k*Tp*P15-2^{-k}*Tn*P`15-2^{-k}*TnL-2^{-k}*Dn+2^k*Dp
//
//  For x in (3*2^7, 3*2^8), sign(x)*(e^|x|)/2 is returned, and
//  the result is checked for overflow.
//
//  For |x|<23/64, a Taylor polynomial expansion is used (degree 13)
//  To reduce rounding errors, the p3*x^3 term is computed as
//     (p3*xh^3)_high+[(p3*xl*(3*x*xh+xl^2))+(p3*xh^3)_low],
//  where x=xh+xl, (xh are the leading 17 bits of x), and
//     (p3*xh^3)_high=RN(x+p3*xh^3)-x
//  (error bound for polynomial expansion is below 0.51 ulp)
//
// Special cases:
//  sinh(NaN) = quiet NaN, and raise invalid exception
//  sinh(+/-INF) = +/-INF
//  sinh(x) = x for subnormals
//  for finite argument, only sinh(0)=0 is exact
//  For IEEE double
//    sinh(x) overflows  for x > 
//    710.47586007394386342639336362481117248535156250 = MAXLOG+log(2)
//
/******************************************************************************/
 
#include <private/bionic_asm.h>
# -- Begin  static_func
        .text
        .align __bionic_asm_align
        .type static_func, @function
static_func:
..B1.1:
        call      ..L2
..L2:
        popl      %eax
        lea       _GLOBAL_OFFSET_TABLE_+[. - ..L2](%eax), %eax
        lea       static_const_table@GOTOFF(%eax), %eax
        ret
        .size   static_func,.-static_func
# -- End  static_func
 
# -- Begin  sinh
ENTRY(sinh)
# parameter 1: 8 + %ebp
..B2.1:
..B2.2:
        pushl     %ebp
        movl      %esp, %ebp
        subl      $104, %esp
        movl      %ebx, 40(%esp)
        call      static_func
        movl      %eax, %ebx
        movsd     112(%esp), %xmm0
        movsd     4272(%ebx), %xmm3
        xorpd     %xmm4, %xmm4
        movsd     4192(%ebx), %xmm1
        movsd     4200(%ebx), %xmm2
        movl      $32768, %eax
        pinsrw    $3, %eax, %xmm4
        movsd     4096(%ebx), %xmm6
        pextrw    $3, %xmm0, %ecx
        andpd     %xmm0, %xmm3
        andnpd    %xmm0, %xmm4
        pshufd    $68, %xmm4, %xmm5
        movl      $32768, %edx
        andl      %ecx, %edx
        andl      $32767, %ecx
        subl      $16343, %ecx
        cmpl      $177, %ecx
        jae       .L_2TAG_PACKET_0.0.2
        subsd     %xmm3, %xmm4
        mulsd     %xmm1, %xmm3
        mulsd     %xmm5, %xmm2
        cvtsd2si  %xmm3, %eax
        shll      $3, %edx
        orl       %edx, %eax
        movapd    %xmm3, %xmm7
        addsd     %xmm6, %xmm3
        mulsd     %xmm4, %xmm1
        xorpd     %xmm5, %xmm5
        subsd     %xmm6, %xmm3
        movapd    4112(%ebx), %xmm4
        addsd     %xmm1, %xmm2
        movapd    4128(%ebx), %xmm6
        subsd     %xmm3, %xmm7
        movl      $32704, %edx
        pinsrw    $3, %edx, %xmm5
        movapd    4144(%ebx), %xmm1
        addsd     %xmm7, %xmm2
        movl      $127, %edx
        andl      %eax, %edx
        addl      %edx, %edx
        shrl      $3, %eax
        andl      $65520, %eax
        addl      $16352, %eax
        xorpd     %xmm0, %xmm0
        cmpl      $161, %ecx
        jae       .L_2TAG_PACKET_1.0.2
        pshufd    $68, %xmm5, %xmm5
        pinsrw    $3, %eax, %xmm0
        pshufd    $68, %xmm0, %xmm0
        psubw     %xmm0, %xmm5
        mulpd     (%ebx,%edx,8), %xmm0
        mulpd     2048(%ebx,%edx,8), %xmm5
        pshufd    $68, %xmm2, %xmm3
        movapd    4160(%ebx), %xmm7
        pshufd    $68, %xmm2, %xmm2
        mulpd     %xmm3, %xmm3
        mulpd     %xmm2, %xmm4
        mulpd     %xmm2, %xmm6
        mulpd     4176(%ebx), %xmm2
        mulpd     %xmm3, %xmm1
        mulpd     %xmm3, %xmm7
        mulpd     %xmm3, %xmm4
        mulpd     %xmm3, %xmm1
        addpd     %xmm7, %xmm6
        movapd    %xmm0, %xmm7
        addpd     %xmm1, %xmm4
        shufpd    $0, %xmm5, %xmm7
        subpd     %xmm5, %xmm0
        mulpd     %xmm7, %xmm2
        addpd     %xmm6, %xmm4
        subsd     %xmm0, %xmm7
        mulpd     %xmm2, %xmm4
        pshufd    $238, %xmm0, %xmm6
        subsd     %xmm5, %xmm7
        addpd     %xmm2, %xmm4
        addsd     %xmm6, %xmm7
        pshufd    $238, %xmm4, %xmm2
        addsd     %xmm7, %xmm2
        addsd     %xmm4, %xmm2
        addsd     %xmm2, %xmm0
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_1.0.2:
        subl      $16352, %eax
        movl      %eax, %ecx
        andl      $32752, %eax
        shrl      $1, %eax
        andl      $65520, %eax
        subl      %eax, %ecx
        addl      $16352, %eax
        pinsrw    $3, %eax, %xmm0
        pshufd    $68, %xmm0, %xmm0
        mulpd     (%ebx,%edx,8), %xmm0
        pshufd    $68, %xmm2, %xmm3
        movsd     4160(%ebx), %xmm7
        mulsd     %xmm3, %xmm3
        mulsd     %xmm2, %xmm4
        mulsd     %xmm2, %xmm6
        mulsd     4176(%ebx), %xmm2
        mulsd     %xmm3, %xmm1
        mulsd     %xmm3, %xmm7
        mulsd     %xmm3, %xmm4
        addl      $16368, %ecx
        pinsrw    $3, %ecx, %xmm5
        mulsd     %xmm3, %xmm1
        addsd     %xmm7, %xmm6
        addsd     %xmm1, %xmm4
        mulsd     %xmm0, %xmm2
        addsd     %xmm6, %xmm4
        mulsd     %xmm2, %xmm4
        pshufd    $238, %xmm0, %xmm6
        addsd     %xmm6, %xmm4
        addsd     %xmm4, %xmm2
        addsd     %xmm2, %xmm0
        mulsd     %xmm5, %xmm0
        pextrw    $3, %xmm0, %eax
        andl      $32752, %eax
        movl      $127, %edx
        cmpl      $32752, %eax
        je        .L_2TAG_PACKET_3.0.2
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_0.0.2:
        addl      $16343, %ecx
        cmpl      $16343, %ecx
        ja        .L_2TAG_PACKET_4.0.2
        cmpl      $15856, %ecx
        jb        .L_2TAG_PACKET_5.0.2
        movapd    4208(%ebx), %xmm1
        pshufd    $68, %xmm0, %xmm6
        mulpd     %xmm5, %xmm5
        movapd    4224(%ebx), %xmm2
        pshufd    $68, %xmm0, %xmm7
        movapd    4240(%ebx), %xmm3
        pshufd    $68, %xmm0, %xmm4
        andpd     4256(%ebx), %xmm6
        mulpd     %xmm5, %xmm1
        mulsd     %xmm5, %xmm2
        subpd     %xmm6, %xmm4
        mulpd     %xmm5, %xmm7
        addpd     %xmm3, %xmm1
        pshufd    $68, %xmm6, %xmm3
        mulpd     %xmm5, %xmm5
        mulsd     %xmm7, %xmm2
        mulpd     %xmm7, %xmm1
        pshufd    $68, %xmm0, %xmm7
        mulsd     %xmm6, %xmm6
        addsd     %xmm7, %xmm7
        mulsd     %xmm4, %xmm4
        mulpd     %xmm5, %xmm1
        addsd     %xmm0, %xmm7
        mulsd     %xmm3, %xmm6
        mulsd     %xmm3, %xmm7
        pshufd    $238, %xmm1, %xmm3
        mulsd     %xmm5, %xmm1
        pshufd    $238, %xmm4, %xmm5
        addsd     %xmm2, %xmm3
        pshufd    $238, %xmm2, %xmm2
        addsd     %xmm4, %xmm7
        movapd    %xmm0, %xmm4
        mulsd     %xmm2, %xmm6
        mulsd     %xmm5, %xmm7
        addsd     %xmm6, %xmm0
        mulsd     %xmm2, %xmm7
        subsd     %xmm0, %xmm4
        addsd     %xmm7, %xmm1
        addsd     %xmm4, %xmm6
        addsd     %xmm3, %xmm1
        addsd     %xmm6, %xmm1
        addsd     %xmm1, %xmm0
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_5.0.2:
        cmpl      $16, %ecx
        jae       .L_2TAG_PACKET_6.0.2
        movapd    %xmm0, %xmm1
        mulsd     %xmm1, %xmm1
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_6.0.2:
        xorpd     %xmm2, %xmm2
        movl      $17392, %ecx
        pinsrw    $3, %ecx, %xmm2
        xorpd     %xmm3, %xmm3
        movl      $15344, %edx
        pinsrw    $3, %edx, %xmm3
        mulsd     %xmm0, %xmm2
        addsd     %xmm2, %xmm0
        mulsd     %xmm3, %xmm0
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_4.0.2:
        cmpl      $32752, %ecx
        jae       .L_2TAG_PACKET_7.0.2
        xorpd     %xmm0, %xmm0
        movl      $32736, %eax
        pinsrw    $3, %eax, %xmm0
        orl       %edx, %eax
        pinsrw    $3, %eax, %xmm1
        mulsd     %xmm1, %xmm0
        movl      $127, %edx
.L_2TAG_PACKET_3.0.2:
        movsd     %xmm0, (%esp)
        movsd     112(%esp), %xmm0
        fldl      (%esp)
        jmp       .L_2TAG_PACKET_8.0.2
.L_2TAG_PACKET_7.0.2:
        xorpd     %xmm1, %xmm1
        movl      $32768, %eax
        pinsrw    $3, %eax, %xmm1
        andnpd    %xmm0, %xmm1
        mulsd     %xmm1, %xmm0
        jmp       .L_2TAG_PACKET_2.0.2
.L_2TAG_PACKET_2.0.2:
        movsd     %xmm0, 24(%esp)
        fldl      24(%esp)
.L_2TAG_PACKET_8.0.2:
        movl      40(%esp), %ebx
        movl      %ebp, %esp
        popl      %ebp
        ret       
..B2.3:
END(sinh)
# -- End  sinh
 
# Start file scope ASM
ALIAS_SYMBOL(sinhl, sinh);
# End file scope ASM
   .section .rodata, "a"
   .align 16
   .align 16
static_const_table:
   .long    0
   .long    1072693248
   .long    0
   .long    0
   .long    2851812149
   .long    1072698941
   .long    2595802551
   .long    1016815913
   .long    1048019041
   .long    1072704666
   .long    1398474845
   .long    3161559171
   .long    3899555717
   .long    1072710421
   .long    427280750
   .long    3163595548
   .long    3541402996
   .long    1072716208
   .long    2759177317
   .long    1015903202
   .long    702412510
   .long    1072722027
   .long    3803266087
   .long    3163328991
   .long    410360776
   .long    1072727877
   .long    1269990655
   .long    1013024446
   .long    3402036099
   .long    1072733758
   .long    405889334
   .long    1016154232
   .long    1828292879
   .long    1072739672
   .long    1255956747
   .long    1016636974
   .long    728909815
   .long    1072745618
   .long    383930225
   .long    1016078044
   .long    852742562
   .long    1072751596
   .long    667253586
   .long    1010842135
   .long    2952712987
   .long    1072757606
   .long    3293494651
   .long    3161168877
   .long    3490863953
   .long    1072763649
   .long    960797498
   .long    3163997456
   .long    3228316108
   .long    1072769725
   .long    3010241991
   .long    3159471380
   .long    2930322912
   .long    1072775834
   .long    2599499422
   .long    3163762623
   .long    3366293073
   .long    1072781976
   .long    3119426314
   .long    1015169130
   .long    1014845819
   .long    1072788152
   .long    3117910646
   .long    3162607681
   .long    948735466
   .long    1072794361
   .long    3516338028
   .long    3163623459
   .long    3949972341
   .long    1072800603
   .long    2068408548
   .long    1015962444
   .long    2214878420
   .long    1072806880
   .long    892270087
   .long    3164164998
   .long    828946858
   .long    1072813191
   .long    10642492
   .long    1016988014
   .long    586995997
   .long    1072819536
   .long    41662348
   .long    3163676568
   .long    2288159958
   .long    1072825915
   .long    2169144469
   .long    1015924597
   .long    2440944790
   .long    1072832329
   .long    2492769774
   .long    1015196030
   .long    1853186616
   .long    1072838778
   .long    3066496371
   .long    1016705150
   .long    1337108031
   .long    1072845262
   .long    3203724452
   .long    1015726421
   .long    1709341917
   .long    1072851781
   .long    2571168217
   .long    1015201075
   .long    3790955393
   .long    1072858335
   .long    2352942462
   .long    3164228666
   .long    4112506593
   .long    1072864925
   .long    2947355221
   .long    1015419624
   .long    3504003472
   .long    1072871551
   .long    3594001060
   .long    3158379228
   .long    2799960843
   .long    1072878213
   .long    1423655381
   .long    1016070727
   .long    2839424854
   .long    1072884911
   .long    1171596163
   .long    1014090255
   .long    171030293
   .long    1072891646
   .long    3526460132
   .long    1015477354
   .long    4232894513
   .long    1072898416
   .long    2383938684
   .long    1015717095
   .long    2992903935
   .long    1072905224
   .long    2218154406
   .long    1016276769
   .long    1603444721
   .long    1072912069
   .long    1548633640
   .long    3163249902
   .long    926591435
   .long    1072918951
   .long    3208833762
   .long    3163962090
   .long    1829099622
   .long    1072925870
   .long    1016661181
   .long    3164509581
   .long    887463927
   .long    1072932827
   .long    3596744163
   .long    3161842742
   .long    3272845541
   .long    1072939821
   .long    928852419
   .long    3164536824
   .long    1276261410
   .long    1072946854
   .long    300981948
   .long    1015732745
   .long    78413852
   .long    1072953925
   .long    4183226867
   .long    3164065827
   .long    569847338
   .long    1072961034
   .long    472945272
   .long    3160339305
   .long    3645941911
   .long    1072968181
   .long    3814685081
   .long    3162621917
   .long    1617004845
   .long    1072975368
   .long    82804944
   .long    1011391354
   .long    3978100823
   .long    1072982593
   .long    3513027190
   .long    1016894539
   .long    3049340112
   .long    1072989858
   .long    3062915824
   .long    1014219171
   .long    4040676318
   .long    1072997162
   .long    4090609238
   .long    1016712034
   .long    3577096743
   .long    1073004506
   .long    2951496418
   .long    1014842263
   .long    2583551245
   .long    1073011890
   .long    3161094195
   .long    1016655067
   .long    1990012071
   .long    1073019314
   .long    3529070563
   .long    3163861769
   .long    2731501122
   .long    1073026778
   .long    1774031855
   .long    3163518597
   .long    1453150082
   .long    1073034283
   .long    498154669
   .long    3162536638
   .long    3395129871
   .long    1073041828
   .long    4025345435
   .long    3163383964
   .long    917841882
   .long    1073049415
   .long    18715565
   .long    1016707884
   .long    3566716925
   .long    1073057042
   .long    1536826856
   .long    1015191009
   .long    3712504873
   .long    1073064711
   .long    88491949
   .long    1016476236
   .long    2321106615
   .long    1073072422
   .long    2171176610
   .long    1010584347
   .long    363667784
   .long    1073080175
   .long    813753950
   .long    1016833785
   .long    3111574537
   .long    1073087969
   .long    2606161479
   .long    3163808322
   .long    2956612997
   .long    1073095806
   .long    2118169751
   .long    3163784129
   .long    885834528
   .long    1073103686
   .long    1973258547
   .long    3163310140
   .long    2186617381
   .long    1073111608
   .long    2270764084
   .long    3164321289
   .long    3561793907
   .long    1073119573
   .long    1157054053
   .long    1012938926
   .long    1719614413
   .long    1073127582
   .long    330458198
   .long    3164331316
   .long    1963711167
   .long    1073135634
   .long    1744767757
   .long    3161622870
   .long    1013258799
   .long    1073143730
   .long    1748797611
   .long    3161177658
   .long    4182873220
   .long    1073151869
   .long    629542646
   .long    3163044879
   .long    3907805044
   .long    1073160053
   .long    2257091225
   .long    3162598983
   .long    1218806132
   .long    1073168282
   .long    1818613052
   .long    3163597017
   .long    1447192521
   .long    1073176555
   .long    1462857171
   .long    3163563097
   .long    1339972927
   .long    1073184873
   .long    167908909
   .long    1016620728
   .long    1944781191
   .long    1073193236
   .long    3993278767
   .long    3162772855
   .long    19972402
   .long    1073201645
   .long    3507899862
   .long    1017057868
   .long    919555682
   .long    1073210099
   .long    3121969534
   .long    1013996802
   .long    1413356050
   .long    1073218599
   .long    1651349291
   .long    3163716742
   .long    2571947539
   .long    1073227145
   .long    3558159064
   .long    3164425245
   .long    1176749997
   .long    1073235738
   .long    2738998779
   .long    3163084420
   .long    2604962541
   .long    1073244377
   .long    2614425274
   .long    3164587768
   .long    3649726105
   .long    1073253063
   .long    4085036346
   .long    1016698050
   .long    1110089947
   .long    1073261797
   .long    1451641639
   .long    1016523249
   .long    380978316
   .long    1073270578
   .long    854188970
   .long    3161511262
   .long    2568320822
   .long    1073279406
   .long    2732824428
   .long    1015401491
   .long    194117574
   .long    1073288283
   .long    777528612
   .long    3164460665
   .long    2966275557
   .long    1073297207
   .long    2176155324
   .long    3160891335
   .long    3418903055
   .long    1073306180
   .long    2527457337
   .long    3161869180
   .long    2682146384
   .long    1073315202
   .long    2082178513
   .long    3164411995
   .long    1892288442
   .long    1073324273
   .long    2446255666
   .long    3163648957
   .long    2191782032
   .long    1073333393
   .long    2960257726
   .long    1014791238
   .long    434316067
   .long    1073342563
   .long    2028358766
   .long    1014506698
   .long    2069751141
   .long    1073351782
   .long    1562170675
   .long    3163773257
   .long    3964284211
   .long    1073361051
   .long    2111583915
   .long    1016475740
   .long    2990417245
   .long    1073370371
   .long    3683467745
   .long    3164417902
   .long    321958744
   .long    1073379742
   .long    3401933767
   .long    1016843134
   .long    1434058175
   .long    1073389163
   .long    251133233
   .long    1016134345
   .long    3218338682
   .long    1073398635
   .long    3404164304
   .long    3163525684
   .long    2572866477
   .long    1073408159
   .long    878562433
   .long    1016570317
   .long    697153126
   .long    1073417735
   .long    1283515429
   .long    3164331765
   .long    3092190715
   .long    1073427362
   .long    814012168
   .long    3160571998
   .long    2380618042
   .long    1073437042
   .long    3149557219
   .long    3164369375
   .long    4076559943
   .long    1073446774
   .long    2119478331
   .long    3161806927
   .long    815859274
   .long    1073456560
   .long    240396590
   .long    3164536019
   .long    2420883922
   .long    1073466398
   .long    2049810052
   .long    1015168464
   .long    1540824585
   .long    1073476290
   .long    1064017011
   .long    3164536266
   .long    3716502172
   .long    1073486235
   .long    2303740125
   .long    1015091301
   .long    1610600570
   .long    1073496235
   .long    3766732298
   .long    1016808759
   .long    777507147
   .long    1073506289
   .long    4282924205
   .long    1016236109
   .long    2483480501
   .long    1073516397
   .long    1216371780
   .long    1014082748
   .long    3706687593
   .long    1073526560
   .long    3521726940
   .long    1014301643
   .long    1432208378
   .long    1073536779
   .long    1401068914
   .long    3163412539
   .long    1242007932
   .long    1073547053
   .long    1132034716
   .long    3164388407
   .long    135105010
   .long    1073557383
   .long    1906148728
   .long    3164424315
   .long    3707479175
   .long    1073567768
   .long    3613079303
   .long    1015213314
   .long    382305176
   .long    1073578211
   .long    2347622376
   .long    3163627201
   .long    64696965
   .long    1073588710
   .long    1768797490
   .long    1016865536
   .long    4076975200
   .long    1073599265
   .long    2029000899
   .long    1016257111
   .long    863738719
   .long    1073609879
   .long    1326992220
   .long    3163661773
   .long    351641897
   .long    1073620550
   .long    2172261526
   .long    3164059175
   .long    3884662774
   .long    1073631278
   .long    2158611599
   .long    1015258761
   .long    4224142467
   .long    1073642065
   .long    3389820386
   .long    1016255778
   .long    2728693978
   .long    1073652911
   .long    396109971
   .long    3164511267
   .long    764307441
   .long    1073663816
   .long    3021057420
   .long    3164378099
   .long    3999357479
   .long    1073674779
   .long    2258941616
   .long    1016973300
   .long    929806999
   .long    1073685803
   .long    3205336643
   .long    1016308133
   .long    1533953344
   .long    1073696886
   .long    769171851
   .long    1016714209
   .long    2912730644
   .long    1073708029
   .long    3490067722
   .long    3164453650
   .long    2174652632
   .long    1073719233
   .long    4087714590
   .long    1015498835
   .long    730821105
   .long    1073730498
   .long    2523232743
   .long    1013115764
   .long    0
   .long    1072693248
   .long    0
   .long    0
   .long    730821105
   .long    1072681922
   .long    2523232743
   .long    1012067188
   .long    2174652632
   .long    1072670657
   .long    4087714590
   .long    1014450259
   .long    2912730644
   .long    1072659453
   .long    3490067722
   .long    3163405074
   .long    1533953344
   .long    1072648310
   .long    769171851
   .long    1015665633
   .long    929806999
   .long    1072637227
   .long    3205336643
   .long    1015259557
   .long    3999357479
   .long    1072626203
   .long    2258941616
   .long    1015924724
   .long    764307441
   .long    1072615240
   .long    3021057420
   .long    3163329523
   .long    2728693978
   .long    1072604335
   .long    396109971
   .long    3163462691
   .long    4224142467
   .long    1072593489
   .long    3389820386
   .long    1015207202
   .long    3884662774
   .long    1072582702
   .long    2158611599
   .long    1014210185
   .long    351641897
   .long    1072571974
   .long    2172261526
   .long    3163010599
   .long    863738719
   .long    1072561303
   .long    1326992220
   .long    3162613197
   .long    4076975200
   .long    1072550689
   .long    2029000899
   .long    1015208535
   .long    64696965
   .long    1072540134
   .long    1768797490
   .long    1015816960
   .long    382305176
   .long    1072529635
   .long    2347622376
   .long    3162578625
   .long    3707479175
   .long    1072519192
   .long    3613079303
   .long    1014164738
   .long    135105010
   .long    1072508807
   .long    1906148728
   .long    3163375739
   .long    1242007932
   .long    1072498477
   .long    1132034716
   .long    3163339831
   .long    1432208378
   .long    1072488203
   .long    1401068914
   .long    3162363963
   .long    3706687593
   .long    1072477984
   .long    3521726940
   .long    1013253067
   .long    2483480501
   .long    1072467821
   .long    1216371780
   .long    1013034172
   .long    777507147
   .long    1072457713
   .long    4282924205
   .long    1015187533
   .long    1610600570
   .long    1072447659
   .long    3766732298
   .long    1015760183
   .long    3716502172
   .long    1072437659
   .long    2303740125
   .long    1014042725
   .long    1540824585
   .long    1072427714
   .long    1064017011
   .long    3163487690
   .long    2420883922
   .long    1072417822
   .long    2049810052
   .long    1014119888
   .long    815859274
   .long    1072407984
   .long    240396590
   .long    3163487443
   .long    4076559943
   .long    1072398198
   .long    2119478331
   .long    3160758351
   .long    2380618042
   .long    1072388466
   .long    3149557219
   .long    3163320799
   .long    3092190715
   .long    1072378786
   .long    814012168
   .long    3159523422
   .long    697153126
   .long    1072369159
   .long    1283515429
   .long    3163283189
   .long    2572866477
   .long    1072359583
   .long    878562433
   .long    1015521741
   .long    3218338682
   .long    1072350059
   .long    3404164304
   .long    3162477108
   .long    1434058175
   .long    1072340587
   .long    251133233
   .long    1015085769
   .long    321958744
   .long    1072331166
   .long    3401933767
   .long    1015794558
   .long    2990417245
   .long    1072321795
   .long    3683467745
   .long    3163369326
   .long    3964284211
   .long    1072312475
   .long    2111583915
   .long    1015427164
   .long    2069751141
   .long    1072303206
   .long    1562170675
   .long    3162724681
   .long    434316067
   .long    1072293987
   .long    2028358766
   .long    1013458122
   .long    2191782032
   .long    1072284817
   .long    2960257726
   .long    1013742662
   .long    1892288442
   .long    1072275697
   .long    2446255666
   .long    3162600381
   .long    2682146384
   .long    1072266626
   .long    2082178513
   .long    3163363419
   .long    3418903055
   .long    1072257604
   .long    2527457337
   .long    3160820604
   .long    2966275557
   .long    1072248631
   .long    2176155324
   .long    3159842759
   .long    194117574
   .long    1072239707
   .long    777528612
   .long    3163412089
   .long    2568320822
   .long    1072230830
   .long    2732824428
   .long    1014352915
   .long    380978316
   .long    1072222002
   .long    854188970
   .long    3160462686
   .long    1110089947
   .long    1072213221
   .long    1451641639
   .long    1015474673
   .long    3649726105
   .long    1072204487
   .long    4085036346
   .long    1015649474
   .long    2604962541
   .long    1072195801
   .long    2614425274
   .long    3163539192
   .long    1176749997
   .long    1072187162
   .long    2738998779
   .long    3162035844
   .long    2571947539
   .long    1072178569
   .long    3558159064
   .long    3163376669
   .long    1413356050
   .long    1072170023
   .long    1651349291
   .long    3162668166
   .long    919555682
   .long    1072161523
   .long    3121969534
   .long    1012948226
   .long    19972402
   .long    1072153069
   .long    3507899862
   .long    1016009292
   .long    1944781191
   .long    1072144660
   .long    3993278767
   .long    3161724279
   .long    1339972927
   .long    1072136297
   .long    167908909
   .long    1015572152
   .long    1447192521
   .long    1072127979
   .long    1462857171
   .long    3162514521
   .long    1218806132
   .long    1072119706
   .long    1818613052
   .long    3162548441
   .long    3907805044
   .long    1072111477
   .long    2257091225
   .long    3161550407
   .long    4182873220
   .long    1072103293
   .long    629542646
   .long    3161996303
   .long    1013258799
   .long    1072095154
   .long    1748797611
   .long    3160129082
   .long    1963711167
   .long    1072087058
   .long    1744767757
   .long    3160574294
   .long    1719614413
   .long    1072079006
   .long    330458198
   .long    3163282740
   .long    3561793907
   .long    1072070997
   .long    1157054053
   .long    1011890350
   .long    2186617381
   .long    1072063032
   .long    2270764084
   .long    3163272713
   .long    885834528
   .long    1072055110
   .long    1973258547
   .long    3162261564
   .long    2956612997
   .long    1072047230
   .long    2118169751
   .long    3162735553
   .long    3111574537
   .long    1072039393
   .long    2606161479
   .long    3162759746
   .long    363667784
   .long    1072031599
   .long    813753950
   .long    1015785209
   .long    2321106615
   .long    1072023846
   .long    2171176610
   .long    1009535771
   .long    3712504873
   .long    1072016135
   .long    88491949
   .long    1015427660
   .long    3566716925
   .long    1072008466
   .long    1536826856
   .long    1014142433
   .long    917841882
   .long    1072000839
   .long    18715565
   .long    1015659308
   .long    3395129871
   .long    1071993252
   .long    4025345435
   .long    3162335388
   .long    1453150082
   .long    1071985707
   .long    498154669
   .long    3161488062
   .long    2731501122
   .long    1071978202
   .long    1774031855
   .long    3162470021
   .long    1990012071
   .long    1071970738
   .long    3529070563
   .long    3162813193
   .long    2583551245
   .long    1071963314
   .long    3161094195
   .long    1015606491
   .long    3577096743
   .long    1071955930
   .long    2951496418
   .long    1013793687
   .long    4040676318
   .long    1071948586
   .long    4090609238
   .long    1015663458
   .long    3049340112
   .long    1071941282
   .long    3062915824
   .long    1013170595
   .long    3978100823
   .long    1071934017
   .long    3513027190
   .long    1015845963
   .long    1617004845
   .long    1071926792
   .long    82804944
   .long    1010342778
   .long    3645941911
   .long    1071919605
   .long    3814685081
   .long    3161573341
   .long    569847338
   .long    1071912458
   .long    472945272
   .long    3159290729
   .long    78413852
   .long    1071905349
   .long    4183226867
   .long    3163017251
   .long    1276261410
   .long    1071898278
   .long    300981948
   .long    1014684169
   .long    3272845541
   .long    1071891245
   .long    928852419
   .long    3163488248
   .long    887463927
   .long    1071884251
   .long    3596744163
   .long    3160794166
   .long    1829099622
   .long    1071877294
   .long    1016661181
   .long    3163461005
   .long    926591435
   .long    1071870375
   .long    3208833762
   .long    3162913514
   .long    1603444721
   .long    1071863493
   .long    1548633640
   .long    3162201326
   .long    2992903935
   .long    1071856648
   .long    2218154406
   .long    1015228193
   .long    4232894513
   .long    1071849840
   .long    2383938684
   .long    1014668519
   .long    171030293
   .long    1071843070
   .long    3526460132
   .long    1014428778
   .long    2839424854
   .long    1071836335
   .long    1171596163
   .long    1013041679
   .long    2799960843
   .long    1071829637
   .long    1423655381
   .long    1015022151
   .long    3504003472
   .long    1071822975
   .long    3594001060
   .long    3157330652
   .long    4112506593
   .long    1071816349
   .long    2947355221
   .long    1014371048
   .long    3790955393
   .long    1071809759
   .long    2352942462
   .long    3163180090
   .long    1709341917
   .long    1071803205
   .long    2571168217
   .long    1014152499
   .long    1337108031
   .long    1071796686
   .long    3203724452
   .long    1014677845
   .long    1853186616
   .long    1071790202
   .long    3066496371
   .long    1015656574
   .long    2440944790
   .long    1071783753
   .long    2492769774
   .long    1014147454
   .long    2288159958
   .long    1071777339
   .long    2169144469
   .long    1014876021
   .long    586995997
   .long    1071770960
   .long    41662348
   .long    3162627992
   .long    828946858
   .long    1071764615
   .long    10642492
   .long    1015939438
   .long    2214878420
   .long    1071758304
   .long    892270087
   .long    3163116422
   .long    3949972341
   .long    1071752027
   .long    2068408548
   .long    1014913868
   .long    948735466
   .long    1071745785
   .long    3516338028
   .long    3162574883
   .long    1014845819
   .long    1071739576
   .long    3117910646
   .long    3161559105
   .long    3366293073
   .long    1071733400
   .long    3119426314
   .long    1014120554
   .long    2930322912
   .long    1071727258
   .long    2599499422
   .long    3162714047
   .long    3228316108
   .long    1071721149
   .long    3010241991
   .long    3158422804
   .long    3490863953
   .long    1071715073
   .long    960797498
   .long    3162948880
   .long    2952712987
   .long    1071709030
   .long    3293494651
   .long    3160120301
   .long    852742562
   .long    1071703020
   .long    667253586
   .long    1009793559
   .long    728909815
   .long    1071697042
   .long    383930225
   .long    1015029468
   .long    1828292879
   .long    1071691096
   .long    1255956747
   .long    1015588398
   .long    3402036099
   .long    1071685182
   .long    405889334
   .long    1015105656
   .long    410360776
   .long    1071679301
   .long    1269990655
   .long    1011975870
   .long    702412510
   .long    1071673451
   .long    3803266087
   .long    3162280415
   .long    3541402996
   .long    1071667632
   .long    2759177317
   .long    1014854626
   .long    3899555717
   .long    1071661845
   .long    427280750
   .long    3162546972
   .long    1048019041
   .long    1071656090
   .long    1398474845
   .long    3160510595
   .long    2851812149
   .long    1071650365
   .long    2595802551
   .long    1015767337
   .long    0
   .long    1127743488
   .long    0
   .long    3275227136
   .long    3607404736
   .long    1044146952
   .long    3607404736
   .long    3191630600
   .long    4277811695
   .long    1063661122
   .long    4277811695
   .long    3211144770
   .long    2140175755
   .long    1033864261
   .long    2140175755
   .long    1033864261
   .long    4289495988
   .long    1054113747
   .long    4289495988
   .long    1054113747
   .long    4277811695
   .long    1064709698
   .long    4277811695
   .long    1064709698
   .long    1610612736
   .long    1080497479
   .long    4166901572
   .long    1053077003
   .long    329805064
   .long    1038488134
   .long    2773927730
   .long    1053236707
   .long    286331153
   .long    1065423121
   .long    1431655765
   .long    1069897045
   .long    1744127201
   .long    1046144581
   .long    436314137
   .long    1059717536
   .long    0
   .long    4294967280
   .long    0
   .long    4294967280
   .long    4160749568
   .long    2147483647
   .type    static_const_table,@object
   .size    static_const_table,4280
   .data
   .section .note.GNU-stack, ""
# End