@tsparticles/simplex-noise 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/browser/Classes/SimplexNoise2D.js +152 -0
  4. package/browser/Classes/SimplexNoise3D.js +528 -0
  5. package/browser/Classes/SimplexNoise4D.js +2867 -0
  6. package/browser/Contributions.js +1 -0
  7. package/browser/SimplexNoise.js +10 -0
  8. package/browser/index.js +1 -0
  9. package/browser/package.json +1 -0
  10. package/browser/utils.js +5 -0
  11. package/cjs/Classes/SimplexNoise2D.js +156 -0
  12. package/cjs/Classes/SimplexNoise3D.js +532 -0
  13. package/cjs/Classes/SimplexNoise4D.js +2871 -0
  14. package/cjs/Contributions.js +2 -0
  15. package/cjs/SimplexNoise.js +14 -0
  16. package/cjs/index.js +5 -0
  17. package/cjs/package.json +1 -0
  18. package/cjs/utils.js +9 -0
  19. package/esm/Classes/SimplexNoise2D.js +152 -0
  20. package/esm/Classes/SimplexNoise3D.js +528 -0
  21. package/esm/Classes/SimplexNoise4D.js +2867 -0
  22. package/esm/Contributions.js +1 -0
  23. package/esm/SimplexNoise.js +10 -0
  24. package/esm/index.js +1 -0
  25. package/esm/package.json +1 -0
  26. package/esm/utils.js +5 -0
  27. package/package.json +105 -0
  28. package/report.html +39 -0
  29. package/tsparticles.simplex.noise.js +457 -0
  30. package/tsparticles.simplex.noise.min.js +2 -0
  31. package/tsparticles.simplex.noise.min.js.LICENSE.txt +1 -0
  32. package/types/Classes/SimplexNoise2D.d.ts +16 -0
  33. package/types/Classes/SimplexNoise3D.d.ts +16 -0
  34. package/types/Classes/SimplexNoise4D.d.ts +16 -0
  35. package/types/Contributions.d.ts +27 -0
  36. package/types/SimplexNoise.d.ts +9 -0
  37. package/types/index.d.ts +1 -0
  38. package/types/utils.d.ts +1 -0
  39. package/umd/Classes/SimplexNoise2D.js +166 -0
  40. package/umd/Classes/SimplexNoise3D.js +542 -0
  41. package/umd/Classes/SimplexNoise4D.js +2881 -0
  42. package/umd/Contributions.js +12 -0
  43. package/umd/SimplexNoise.js +24 -0
  44. package/umd/index.js +15 -0
  45. package/umd/utils.js +19 -0
@@ -0,0 +1,2881 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "../utils.js"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.SimplexNoise4D = void 0;
13
+ const utils_js_1 = require("../utils.js");
14
+ class SimplexNoise4D {
15
+ constructor() {
16
+ this._NORM_4D = 1.0 / 30.0;
17
+ this._SQUISH_4D = (Math.sqrt(4 + 1) - 1) * 0.25;
18
+ this._STRETCH_4D = (1 / Math.sqrt(4 + 1) - 1) * 0.25;
19
+ this._lookup = [];
20
+ this._perm = new Uint8Array(0);
21
+ this._perm4D = new Uint8Array(0);
22
+ this._base4D = [
23
+ [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1],
24
+ [3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 4, 1, 1, 1, 1],
25
+ [
26
+ 1,
27
+ 1,
28
+ 0,
29
+ 0,
30
+ 0,
31
+ 1,
32
+ 0,
33
+ 1,
34
+ 0,
35
+ 0,
36
+ 1,
37
+ 0,
38
+ 0,
39
+ 1,
40
+ 0,
41
+ 1,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 1,
46
+ 2,
47
+ 1,
48
+ 1,
49
+ 0,
50
+ 0,
51
+ 2,
52
+ 1,
53
+ 0,
54
+ 1,
55
+ 0,
56
+ 2,
57
+ 1,
58
+ 0,
59
+ 0,
60
+ 1,
61
+ 2,
62
+ 0,
63
+ 1,
64
+ 1,
65
+ 0,
66
+ 2,
67
+ 0,
68
+ 1,
69
+ 0,
70
+ 1,
71
+ 2,
72
+ 0,
73
+ 0,
74
+ 1,
75
+ 1,
76
+ ],
77
+ [
78
+ 3,
79
+ 1,
80
+ 1,
81
+ 1,
82
+ 0,
83
+ 3,
84
+ 1,
85
+ 1,
86
+ 0,
87
+ 1,
88
+ 3,
89
+ 1,
90
+ 0,
91
+ 1,
92
+ 1,
93
+ 3,
94
+ 0,
95
+ 1,
96
+ 1,
97
+ 1,
98
+ 2,
99
+ 1,
100
+ 1,
101
+ 0,
102
+ 0,
103
+ 2,
104
+ 1,
105
+ 0,
106
+ 1,
107
+ 0,
108
+ 2,
109
+ 1,
110
+ 0,
111
+ 0,
112
+ 1,
113
+ 2,
114
+ 0,
115
+ 1,
116
+ 1,
117
+ 0,
118
+ 2,
119
+ 0,
120
+ 1,
121
+ 0,
122
+ 1,
123
+ 2,
124
+ 0,
125
+ 0,
126
+ 1,
127
+ 1,
128
+ ],
129
+ ];
130
+ this._gradients4D = [
131
+ 3,
132
+ 1,
133
+ 1,
134
+ 1,
135
+ 1,
136
+ 3,
137
+ 1,
138
+ 1,
139
+ 1,
140
+ 1,
141
+ 3,
142
+ 1,
143
+ 1,
144
+ 1,
145
+ 1,
146
+ 3,
147
+ -3,
148
+ 1,
149
+ 1,
150
+ 1,
151
+ -1,
152
+ 3,
153
+ 1,
154
+ 1,
155
+ -1,
156
+ 1,
157
+ 3,
158
+ 1,
159
+ -1,
160
+ 1,
161
+ 1,
162
+ 3,
163
+ 3,
164
+ -1,
165
+ 1,
166
+ 1,
167
+ 1,
168
+ -3,
169
+ 1,
170
+ 1,
171
+ 1,
172
+ -1,
173
+ 3,
174
+ 1,
175
+ 1,
176
+ -1,
177
+ 1,
178
+ 3,
179
+ -3,
180
+ -1,
181
+ 1,
182
+ 1,
183
+ -1,
184
+ -3,
185
+ 1,
186
+ 1,
187
+ -1,
188
+ -1,
189
+ 3,
190
+ 1,
191
+ -1,
192
+ -1,
193
+ 1,
194
+ 3,
195
+ 3,
196
+ 1,
197
+ -1,
198
+ 1,
199
+ 1,
200
+ 3,
201
+ -1,
202
+ 1,
203
+ 1,
204
+ 1,
205
+ -3,
206
+ 1,
207
+ 1,
208
+ 1,
209
+ -1,
210
+ 3,
211
+ -3,
212
+ 1,
213
+ -1,
214
+ 1,
215
+ -1,
216
+ 3,
217
+ -1,
218
+ 1,
219
+ -1,
220
+ 1,
221
+ -3,
222
+ 1,
223
+ -1,
224
+ 1,
225
+ -1,
226
+ 3,
227
+ 3,
228
+ -1,
229
+ -1,
230
+ 1,
231
+ 1,
232
+ -3,
233
+ -1,
234
+ 1,
235
+ 1,
236
+ -1,
237
+ -3,
238
+ 1,
239
+ 1,
240
+ -1,
241
+ -1,
242
+ 3,
243
+ -3,
244
+ -1,
245
+ -1,
246
+ 1,
247
+ -1,
248
+ -3,
249
+ -1,
250
+ 1,
251
+ -1,
252
+ -1,
253
+ -3,
254
+ 1,
255
+ -1,
256
+ -1,
257
+ -1,
258
+ 3,
259
+ 3,
260
+ 1,
261
+ 1,
262
+ -1,
263
+ 1,
264
+ 3,
265
+ 1,
266
+ -1,
267
+ 1,
268
+ 1,
269
+ 3,
270
+ -1,
271
+ 1,
272
+ 1,
273
+ 1,
274
+ -3,
275
+ -3,
276
+ 1,
277
+ 1,
278
+ -1,
279
+ -1,
280
+ 3,
281
+ 1,
282
+ -1,
283
+ -1,
284
+ 1,
285
+ 3,
286
+ -1,
287
+ -1,
288
+ 1,
289
+ 1,
290
+ -3,
291
+ 3,
292
+ -1,
293
+ 1,
294
+ -1,
295
+ 1,
296
+ -3,
297
+ 1,
298
+ -1,
299
+ 1,
300
+ -1,
301
+ 3,
302
+ -1,
303
+ 1,
304
+ -1,
305
+ 1,
306
+ -3,
307
+ -3,
308
+ -1,
309
+ 1,
310
+ -1,
311
+ -1,
312
+ -3,
313
+ 1,
314
+ -1,
315
+ -1,
316
+ -1,
317
+ 3,
318
+ -1,
319
+ -1,
320
+ -1,
321
+ 1,
322
+ -3,
323
+ 3,
324
+ 1,
325
+ -1,
326
+ -1,
327
+ 1,
328
+ 3,
329
+ -1,
330
+ -1,
331
+ 1,
332
+ 1,
333
+ -3,
334
+ -1,
335
+ 1,
336
+ 1,
337
+ -1,
338
+ -3,
339
+ -3,
340
+ 1,
341
+ -1,
342
+ -1,
343
+ -1,
344
+ 3,
345
+ -1,
346
+ -1,
347
+ -1,
348
+ 1,
349
+ -3,
350
+ -1,
351
+ -1,
352
+ 1,
353
+ -1,
354
+ -3,
355
+ 3,
356
+ -1,
357
+ -1,
358
+ -1,
359
+ 1,
360
+ -3,
361
+ -1,
362
+ -1,
363
+ 1,
364
+ -1,
365
+ -3,
366
+ -1,
367
+ 1,
368
+ -1,
369
+ -1,
370
+ -3,
371
+ -3,
372
+ -1,
373
+ -1,
374
+ -1,
375
+ -1,
376
+ -3,
377
+ -1,
378
+ -1,
379
+ -1,
380
+ -1,
381
+ -3,
382
+ -1,
383
+ -1,
384
+ -1,
385
+ -1,
386
+ -3,
387
+ ];
388
+ this._lookupPairs4D = [
389
+ 0,
390
+ 3,
391
+ 1,
392
+ 2,
393
+ 2,
394
+ 3,
395
+ 5,
396
+ 2,
397
+ 6,
398
+ 1,
399
+ 7,
400
+ 1,
401
+ 8,
402
+ 3,
403
+ 9,
404
+ 2,
405
+ 10,
406
+ 3,
407
+ 13,
408
+ 2,
409
+ 16,
410
+ 3,
411
+ 18,
412
+ 3,
413
+ 22,
414
+ 1,
415
+ 23,
416
+ 1,
417
+ 24,
418
+ 3,
419
+ 26,
420
+ 3,
421
+ 33,
422
+ 2,
423
+ 37,
424
+ 2,
425
+ 38,
426
+ 1,
427
+ 39,
428
+ 1,
429
+ 41,
430
+ 2,
431
+ 45,
432
+ 2,
433
+ 54,
434
+ 1,
435
+ 55,
436
+ 1,
437
+ 56,
438
+ 0,
439
+ 57,
440
+ 0,
441
+ 58,
442
+ 0,
443
+ 59,
444
+ 0,
445
+ 60,
446
+ 0,
447
+ 61,
448
+ 0,
449
+ 62,
450
+ 0,
451
+ 63,
452
+ 0,
453
+ 256,
454
+ 3,
455
+ 258,
456
+ 3,
457
+ 264,
458
+ 3,
459
+ 266,
460
+ 3,
461
+ 272,
462
+ 3,
463
+ 274,
464
+ 3,
465
+ 280,
466
+ 3,
467
+ 282,
468
+ 3,
469
+ 2049,
470
+ 2,
471
+ 2053,
472
+ 2,
473
+ 2057,
474
+ 2,
475
+ 2061,
476
+ 2,
477
+ 2081,
478
+ 2,
479
+ 2085,
480
+ 2,
481
+ 2089,
482
+ 2,
483
+ 2093,
484
+ 2,
485
+ 2304,
486
+ 9,
487
+ 2305,
488
+ 9,
489
+ 2312,
490
+ 9,
491
+ 2313,
492
+ 9,
493
+ 16390,
494
+ 1,
495
+ 16391,
496
+ 1,
497
+ 16406,
498
+ 1,
499
+ 16407,
500
+ 1,
501
+ 16422,
502
+ 1,
503
+ 16423,
504
+ 1,
505
+ 16438,
506
+ 1,
507
+ 16439,
508
+ 1,
509
+ 16642,
510
+ 8,
511
+ 16646,
512
+ 8,
513
+ 16658,
514
+ 8,
515
+ 16662,
516
+ 8,
517
+ 18437,
518
+ 6,
519
+ 18439,
520
+ 6,
521
+ 18469,
522
+ 6,
523
+ 18471,
524
+ 6,
525
+ 18688,
526
+ 9,
527
+ 18689,
528
+ 9,
529
+ 18690,
530
+ 8,
531
+ 18693,
532
+ 6,
533
+ 18694,
534
+ 8,
535
+ 18695,
536
+ 6,
537
+ 18696,
538
+ 9,
539
+ 18697,
540
+ 9,
541
+ 18706,
542
+ 8,
543
+ 18710,
544
+ 8,
545
+ 18725,
546
+ 6,
547
+ 18727,
548
+ 6,
549
+ 131128,
550
+ 0,
551
+ 131129,
552
+ 0,
553
+ 131130,
554
+ 0,
555
+ 131131,
556
+ 0,
557
+ 131132,
558
+ 0,
559
+ 131133,
560
+ 0,
561
+ 131134,
562
+ 0,
563
+ 131135,
564
+ 0,
565
+ 131352,
566
+ 7,
567
+ 131354,
568
+ 7,
569
+ 131384,
570
+ 7,
571
+ 131386,
572
+ 7,
573
+ 133161,
574
+ 5,
575
+ 133165,
576
+ 5,
577
+ 133177,
578
+ 5,
579
+ 133181,
580
+ 5,
581
+ 133376,
582
+ 9,
583
+ 133377,
584
+ 9,
585
+ 133384,
586
+ 9,
587
+ 133385,
588
+ 9,
589
+ 133400,
590
+ 7,
591
+ 133402,
592
+ 7,
593
+ 133417,
594
+ 5,
595
+ 133421,
596
+ 5,
597
+ 133432,
598
+ 7,
599
+ 133433,
600
+ 5,
601
+ 133434,
602
+ 7,
603
+ 133437,
604
+ 5,
605
+ 147510,
606
+ 4,
607
+ 147511,
608
+ 4,
609
+ 147518,
610
+ 4,
611
+ 147519,
612
+ 4,
613
+ 147714,
614
+ 8,
615
+ 147718,
616
+ 8,
617
+ 147730,
618
+ 8,
619
+ 147734,
620
+ 8,
621
+ 147736,
622
+ 7,
623
+ 147738,
624
+ 7,
625
+ 147766,
626
+ 4,
627
+ 147767,
628
+ 4,
629
+ 147768,
630
+ 7,
631
+ 147770,
632
+ 7,
633
+ 147774,
634
+ 4,
635
+ 147775,
636
+ 4,
637
+ 149509,
638
+ 6,
639
+ 149511,
640
+ 6,
641
+ 149541,
642
+ 6,
643
+ 149543,
644
+ 6,
645
+ 149545,
646
+ 5,
647
+ 149549,
648
+ 5,
649
+ 149558,
650
+ 4,
651
+ 149559,
652
+ 4,
653
+ 149561,
654
+ 5,
655
+ 149565,
656
+ 5,
657
+ 149566,
658
+ 4,
659
+ 149567,
660
+ 4,
661
+ 149760,
662
+ 9,
663
+ 149761,
664
+ 9,
665
+ 149762,
666
+ 8,
667
+ 149765,
668
+ 6,
669
+ 149766,
670
+ 8,
671
+ 149767,
672
+ 6,
673
+ 149768,
674
+ 9,
675
+ 149769,
676
+ 9,
677
+ 149778,
678
+ 8,
679
+ 149782,
680
+ 8,
681
+ 149784,
682
+ 7,
683
+ 149786,
684
+ 7,
685
+ 149797,
686
+ 6,
687
+ 149799,
688
+ 6,
689
+ 149801,
690
+ 5,
691
+ 149805,
692
+ 5,
693
+ 149814,
694
+ 4,
695
+ 149815,
696
+ 4,
697
+ 149816,
698
+ 7,
699
+ 149817,
700
+ 5,
701
+ 149818,
702
+ 7,
703
+ 149821,
704
+ 5,
705
+ 149822,
706
+ 4,
707
+ 149823,
708
+ 4,
709
+ 149824,
710
+ 37,
711
+ 149825,
712
+ 37,
713
+ 149826,
714
+ 36,
715
+ 149829,
716
+ 34,
717
+ 149830,
718
+ 36,
719
+ 149831,
720
+ 34,
721
+ 149832,
722
+ 37,
723
+ 149833,
724
+ 37,
725
+ 149842,
726
+ 36,
727
+ 149846,
728
+ 36,
729
+ 149848,
730
+ 35,
731
+ 149850,
732
+ 35,
733
+ 149861,
734
+ 34,
735
+ 149863,
736
+ 34,
737
+ 149865,
738
+ 33,
739
+ 149869,
740
+ 33,
741
+ 149878,
742
+ 32,
743
+ 149879,
744
+ 32,
745
+ 149880,
746
+ 35,
747
+ 149881,
748
+ 33,
749
+ 149882,
750
+ 35,
751
+ 149885,
752
+ 33,
753
+ 149886,
754
+ 32,
755
+ 149887,
756
+ 32,
757
+ 150080,
758
+ 49,
759
+ 150082,
760
+ 48,
761
+ 150088,
762
+ 49,
763
+ 150098,
764
+ 48,
765
+ 150104,
766
+ 47,
767
+ 150106,
768
+ 47,
769
+ 151873,
770
+ 46,
771
+ 151877,
772
+ 45,
773
+ 151881,
774
+ 46,
775
+ 151909,
776
+ 45,
777
+ 151913,
778
+ 44,
779
+ 151917,
780
+ 44,
781
+ 152128,
782
+ 49,
783
+ 152129,
784
+ 46,
785
+ 152136,
786
+ 49,
787
+ 152137,
788
+ 46,
789
+ 166214,
790
+ 43,
791
+ 166215,
792
+ 42,
793
+ 166230,
794
+ 43,
795
+ 166247,
796
+ 42,
797
+ 166262,
798
+ 41,
799
+ 166263,
800
+ 41,
801
+ 166466,
802
+ 48,
803
+ 166470,
804
+ 43,
805
+ 166482,
806
+ 48,
807
+ 166486,
808
+ 43,
809
+ 168261,
810
+ 45,
811
+ 168263,
812
+ 42,
813
+ 168293,
814
+ 45,
815
+ 168295,
816
+ 42,
817
+ 168512,
818
+ 31,
819
+ 168513,
820
+ 28,
821
+ 168514,
822
+ 31,
823
+ 168517,
824
+ 28,
825
+ 168518,
826
+ 25,
827
+ 168519,
828
+ 25,
829
+ 280952,
830
+ 40,
831
+ 280953,
832
+ 39,
833
+ 280954,
834
+ 40,
835
+ 280957,
836
+ 39,
837
+ 280958,
838
+ 38,
839
+ 280959,
840
+ 38,
841
+ 281176,
842
+ 47,
843
+ 281178,
844
+ 47,
845
+ 281208,
846
+ 40,
847
+ 281210,
848
+ 40,
849
+ 282985,
850
+ 44,
851
+ 282989,
852
+ 44,
853
+ 283001,
854
+ 39,
855
+ 283005,
856
+ 39,
857
+ 283208,
858
+ 30,
859
+ 283209,
860
+ 27,
861
+ 283224,
862
+ 30,
863
+ 283241,
864
+ 27,
865
+ 283256,
866
+ 22,
867
+ 283257,
868
+ 22,
869
+ 297334,
870
+ 41,
871
+ 297335,
872
+ 41,
873
+ 297342,
874
+ 38,
875
+ 297343,
876
+ 38,
877
+ 297554,
878
+ 29,
879
+ 297558,
880
+ 24,
881
+ 297562,
882
+ 29,
883
+ 297590,
884
+ 24,
885
+ 297594,
886
+ 21,
887
+ 297598,
888
+ 21,
889
+ 299365,
890
+ 26,
891
+ 299367,
892
+ 23,
893
+ 299373,
894
+ 26,
895
+ 299383,
896
+ 23,
897
+ 299389,
898
+ 20,
899
+ 299391,
900
+ 20,
901
+ 299584,
902
+ 31,
903
+ 299585,
904
+ 28,
905
+ 299586,
906
+ 31,
907
+ 299589,
908
+ 28,
909
+ 299590,
910
+ 25,
911
+ 299591,
912
+ 25,
913
+ 299592,
914
+ 30,
915
+ 299593,
916
+ 27,
917
+ 299602,
918
+ 29,
919
+ 299606,
920
+ 24,
921
+ 299608,
922
+ 30,
923
+ 299610,
924
+ 29,
925
+ 299621,
926
+ 26,
927
+ 299623,
928
+ 23,
929
+ 299625,
930
+ 27,
931
+ 299629,
932
+ 26,
933
+ 299638,
934
+ 24,
935
+ 299639,
936
+ 23,
937
+ 299640,
938
+ 22,
939
+ 299641,
940
+ 22,
941
+ 299642,
942
+ 21,
943
+ 299645,
944
+ 20,
945
+ 299646,
946
+ 21,
947
+ 299647,
948
+ 20,
949
+ 299648,
950
+ 61,
951
+ 299649,
952
+ 60,
953
+ 299650,
954
+ 61,
955
+ 299653,
956
+ 60,
957
+ 299654,
958
+ 59,
959
+ 299655,
960
+ 59,
961
+ 299656,
962
+ 58,
963
+ 299657,
964
+ 57,
965
+ 299666,
966
+ 55,
967
+ 299670,
968
+ 54,
969
+ 299672,
970
+ 58,
971
+ 299674,
972
+ 55,
973
+ 299685,
974
+ 52,
975
+ 299687,
976
+ 51,
977
+ 299689,
978
+ 57,
979
+ 299693,
980
+ 52,
981
+ 299702,
982
+ 54,
983
+ 299703,
984
+ 51,
985
+ 299704,
986
+ 56,
987
+ 299705,
988
+ 56,
989
+ 299706,
990
+ 53,
991
+ 299709,
992
+ 50,
993
+ 299710,
994
+ 53,
995
+ 299711,
996
+ 50,
997
+ 299904,
998
+ 61,
999
+ 299906,
1000
+ 61,
1001
+ 299912,
1002
+ 58,
1003
+ 299922,
1004
+ 55,
1005
+ 299928,
1006
+ 58,
1007
+ 299930,
1008
+ 55,
1009
+ 301697,
1010
+ 60,
1011
+ 301701,
1012
+ 60,
1013
+ 301705,
1014
+ 57,
1015
+ 301733,
1016
+ 52,
1017
+ 301737,
1018
+ 57,
1019
+ 301741,
1020
+ 52,
1021
+ 301952,
1022
+ 79,
1023
+ 301953,
1024
+ 79,
1025
+ 301960,
1026
+ 76,
1027
+ 301961,
1028
+ 76,
1029
+ 316038,
1030
+ 59,
1031
+ 316039,
1032
+ 59,
1033
+ 316054,
1034
+ 54,
1035
+ 316071,
1036
+ 51,
1037
+ 316086,
1038
+ 54,
1039
+ 316087,
1040
+ 51,
1041
+ 316290,
1042
+ 78,
1043
+ 316294,
1044
+ 78,
1045
+ 316306,
1046
+ 73,
1047
+ 316310,
1048
+ 73,
1049
+ 318085,
1050
+ 77,
1051
+ 318087,
1052
+ 77,
1053
+ 318117,
1054
+ 70,
1055
+ 318119,
1056
+ 70,
1057
+ 318336,
1058
+ 79,
1059
+ 318337,
1060
+ 79,
1061
+ 318338,
1062
+ 78,
1063
+ 318341,
1064
+ 77,
1065
+ 318342,
1066
+ 78,
1067
+ 318343,
1068
+ 77,
1069
+ 430776,
1070
+ 56,
1071
+ 430777,
1072
+ 56,
1073
+ 430778,
1074
+ 53,
1075
+ 430781,
1076
+ 50,
1077
+ 430782,
1078
+ 53,
1079
+ 430783,
1080
+ 50,
1081
+ 431000,
1082
+ 75,
1083
+ 431002,
1084
+ 72,
1085
+ 431032,
1086
+ 75,
1087
+ 431034,
1088
+ 72,
1089
+ 432809,
1090
+ 74,
1091
+ 432813,
1092
+ 69,
1093
+ 432825,
1094
+ 74,
1095
+ 432829,
1096
+ 69,
1097
+ 433032,
1098
+ 76,
1099
+ 433033,
1100
+ 76,
1101
+ 433048,
1102
+ 75,
1103
+ 433065,
1104
+ 74,
1105
+ 433080,
1106
+ 75,
1107
+ 433081,
1108
+ 74,
1109
+ 447158,
1110
+ 71,
1111
+ 447159,
1112
+ 68,
1113
+ 447166,
1114
+ 71,
1115
+ 447167,
1116
+ 68,
1117
+ 447378,
1118
+ 73,
1119
+ 447382,
1120
+ 73,
1121
+ 447386,
1122
+ 72,
1123
+ 447414,
1124
+ 71,
1125
+ 447418,
1126
+ 72,
1127
+ 447422,
1128
+ 71,
1129
+ 449189,
1130
+ 70,
1131
+ 449191,
1132
+ 70,
1133
+ 449197,
1134
+ 69,
1135
+ 449207,
1136
+ 68,
1137
+ 449213,
1138
+ 69,
1139
+ 449215,
1140
+ 68,
1141
+ 449408,
1142
+ 67,
1143
+ 449409,
1144
+ 67,
1145
+ 449410,
1146
+ 66,
1147
+ 449413,
1148
+ 64,
1149
+ 449414,
1150
+ 66,
1151
+ 449415,
1152
+ 64,
1153
+ 449416,
1154
+ 67,
1155
+ 449417,
1156
+ 67,
1157
+ 449426,
1158
+ 66,
1159
+ 449430,
1160
+ 66,
1161
+ 449432,
1162
+ 65,
1163
+ 449434,
1164
+ 65,
1165
+ 449445,
1166
+ 64,
1167
+ 449447,
1168
+ 64,
1169
+ 449449,
1170
+ 63,
1171
+ 449453,
1172
+ 63,
1173
+ 449462,
1174
+ 62,
1175
+ 449463,
1176
+ 62,
1177
+ 449464,
1178
+ 65,
1179
+ 449465,
1180
+ 63,
1181
+ 449466,
1182
+ 65,
1183
+ 449469,
1184
+ 63,
1185
+ 449470,
1186
+ 62,
1187
+ 449471,
1188
+ 62,
1189
+ 449472,
1190
+ 19,
1191
+ 449473,
1192
+ 19,
1193
+ 449474,
1194
+ 18,
1195
+ 449477,
1196
+ 16,
1197
+ 449478,
1198
+ 18,
1199
+ 449479,
1200
+ 16,
1201
+ 449480,
1202
+ 19,
1203
+ 449481,
1204
+ 19,
1205
+ 449490,
1206
+ 18,
1207
+ 449494,
1208
+ 18,
1209
+ 449496,
1210
+ 17,
1211
+ 449498,
1212
+ 17,
1213
+ 449509,
1214
+ 16,
1215
+ 449511,
1216
+ 16,
1217
+ 449513,
1218
+ 15,
1219
+ 449517,
1220
+ 15,
1221
+ 449526,
1222
+ 14,
1223
+ 449527,
1224
+ 14,
1225
+ 449528,
1226
+ 17,
1227
+ 449529,
1228
+ 15,
1229
+ 449530,
1230
+ 17,
1231
+ 449533,
1232
+ 15,
1233
+ 449534,
1234
+ 14,
1235
+ 449535,
1236
+ 14,
1237
+ 449728,
1238
+ 19,
1239
+ 449729,
1240
+ 19,
1241
+ 449730,
1242
+ 18,
1243
+ 449734,
1244
+ 18,
1245
+ 449736,
1246
+ 19,
1247
+ 449737,
1248
+ 19,
1249
+ 449746,
1250
+ 18,
1251
+ 449750,
1252
+ 18,
1253
+ 449752,
1254
+ 17,
1255
+ 449754,
1256
+ 17,
1257
+ 449784,
1258
+ 17,
1259
+ 449786,
1260
+ 17,
1261
+ 451520,
1262
+ 19,
1263
+ 451521,
1264
+ 19,
1265
+ 451525,
1266
+ 16,
1267
+ 451527,
1268
+ 16,
1269
+ 451528,
1270
+ 19,
1271
+ 451529,
1272
+ 19,
1273
+ 451557,
1274
+ 16,
1275
+ 451559,
1276
+ 16,
1277
+ 451561,
1278
+ 15,
1279
+ 451565,
1280
+ 15,
1281
+ 451577,
1282
+ 15,
1283
+ 451581,
1284
+ 15,
1285
+ 451776,
1286
+ 19,
1287
+ 451777,
1288
+ 19,
1289
+ 451784,
1290
+ 19,
1291
+ 451785,
1292
+ 19,
1293
+ 465858,
1294
+ 18,
1295
+ 465861,
1296
+ 16,
1297
+ 465862,
1298
+ 18,
1299
+ 465863,
1300
+ 16,
1301
+ 465874,
1302
+ 18,
1303
+ 465878,
1304
+ 18,
1305
+ 465893,
1306
+ 16,
1307
+ 465895,
1308
+ 16,
1309
+ 465910,
1310
+ 14,
1311
+ 465911,
1312
+ 14,
1313
+ 465918,
1314
+ 14,
1315
+ 465919,
1316
+ 14,
1317
+ 466114,
1318
+ 18,
1319
+ 466118,
1320
+ 18,
1321
+ 466130,
1322
+ 18,
1323
+ 466134,
1324
+ 18,
1325
+ 467909,
1326
+ 16,
1327
+ 467911,
1328
+ 16,
1329
+ 467941,
1330
+ 16,
1331
+ 467943,
1332
+ 16,
1333
+ 468160,
1334
+ 13,
1335
+ 468161,
1336
+ 13,
1337
+ 468162,
1338
+ 13,
1339
+ 468163,
1340
+ 13,
1341
+ 468164,
1342
+ 13,
1343
+ 468165,
1344
+ 13,
1345
+ 468166,
1346
+ 13,
1347
+ 468167,
1348
+ 13,
1349
+ 580568,
1350
+ 17,
1351
+ 580570,
1352
+ 17,
1353
+ 580585,
1354
+ 15,
1355
+ 580589,
1356
+ 15,
1357
+ 580598,
1358
+ 14,
1359
+ 580599,
1360
+ 14,
1361
+ 580600,
1362
+ 17,
1363
+ 580601,
1364
+ 15,
1365
+ 580602,
1366
+ 17,
1367
+ 580605,
1368
+ 15,
1369
+ 580606,
1370
+ 14,
1371
+ 580607,
1372
+ 14,
1373
+ 580824,
1374
+ 17,
1375
+ 580826,
1376
+ 17,
1377
+ 580856,
1378
+ 17,
1379
+ 580858,
1380
+ 17,
1381
+ 582633,
1382
+ 15,
1383
+ 582637,
1384
+ 15,
1385
+ 582649,
1386
+ 15,
1387
+ 582653,
1388
+ 15,
1389
+ 582856,
1390
+ 12,
1391
+ 582857,
1392
+ 12,
1393
+ 582872,
1394
+ 12,
1395
+ 582873,
1396
+ 12,
1397
+ 582888,
1398
+ 12,
1399
+ 582889,
1400
+ 12,
1401
+ 582904,
1402
+ 12,
1403
+ 582905,
1404
+ 12,
1405
+ 596982,
1406
+ 14,
1407
+ 596983,
1408
+ 14,
1409
+ 596990,
1410
+ 14,
1411
+ 596991,
1412
+ 14,
1413
+ 597202,
1414
+ 11,
1415
+ 597206,
1416
+ 11,
1417
+ 597210,
1418
+ 11,
1419
+ 597214,
1420
+ 11,
1421
+ 597234,
1422
+ 11,
1423
+ 597238,
1424
+ 11,
1425
+ 597242,
1426
+ 11,
1427
+ 597246,
1428
+ 11,
1429
+ 599013,
1430
+ 10,
1431
+ 599015,
1432
+ 10,
1433
+ 599021,
1434
+ 10,
1435
+ 599023,
1436
+ 10,
1437
+ 599029,
1438
+ 10,
1439
+ 599031,
1440
+ 10,
1441
+ 599037,
1442
+ 10,
1443
+ 599039,
1444
+ 10,
1445
+ 599232,
1446
+ 13,
1447
+ 599233,
1448
+ 13,
1449
+ 599234,
1450
+ 13,
1451
+ 599235,
1452
+ 13,
1453
+ 599236,
1454
+ 13,
1455
+ 599237,
1456
+ 13,
1457
+ 599238,
1458
+ 13,
1459
+ 599239,
1460
+ 13,
1461
+ 599240,
1462
+ 12,
1463
+ 599241,
1464
+ 12,
1465
+ 599250,
1466
+ 11,
1467
+ 599254,
1468
+ 11,
1469
+ 599256,
1470
+ 12,
1471
+ 599257,
1472
+ 12,
1473
+ 599258,
1474
+ 11,
1475
+ 599262,
1476
+ 11,
1477
+ 599269,
1478
+ 10,
1479
+ 599271,
1480
+ 10,
1481
+ 599272,
1482
+ 12,
1483
+ 599273,
1484
+ 12,
1485
+ 599277,
1486
+ 10,
1487
+ 599279,
1488
+ 10,
1489
+ 599282,
1490
+ 11,
1491
+ 599285,
1492
+ 10,
1493
+ 599286,
1494
+ 11,
1495
+ 599287,
1496
+ 10,
1497
+ 599288,
1498
+ 12,
1499
+ 599289,
1500
+ 12,
1501
+ 599290,
1502
+ 11,
1503
+ 599293,
1504
+ 10,
1505
+ 599294,
1506
+ 11,
1507
+ 599295,
1508
+ 10,
1509
+ ];
1510
+ this._p4D = [
1511
+ 0,
1512
+ 0,
1513
+ 1,
1514
+ -1,
1515
+ 0,
1516
+ 0,
1517
+ 0,
1518
+ 1,
1519
+ 0,
1520
+ -1,
1521
+ 0,
1522
+ 0,
1523
+ 1,
1524
+ 0,
1525
+ 0,
1526
+ -1,
1527
+ 0,
1528
+ 0,
1529
+ -1,
1530
+ 1,
1531
+ 0,
1532
+ 0,
1533
+ 0,
1534
+ 0,
1535
+ 1,
1536
+ -1,
1537
+ 0,
1538
+ 0,
1539
+ 0,
1540
+ 1,
1541
+ 0,
1542
+ -1,
1543
+ 0,
1544
+ 0,
1545
+ -1,
1546
+ 0,
1547
+ 1,
1548
+ 0,
1549
+ 0,
1550
+ 0,
1551
+ -1,
1552
+ 1,
1553
+ 0,
1554
+ 0,
1555
+ 0,
1556
+ 0,
1557
+ 1,
1558
+ -1,
1559
+ 0,
1560
+ 0,
1561
+ -1,
1562
+ 0,
1563
+ 0,
1564
+ 1,
1565
+ 0,
1566
+ 0,
1567
+ -1,
1568
+ 0,
1569
+ 1,
1570
+ 0,
1571
+ 0,
1572
+ 0,
1573
+ -1,
1574
+ 1,
1575
+ 0,
1576
+ 2,
1577
+ 1,
1578
+ 1,
1579
+ 0,
1580
+ 0,
1581
+ 1,
1582
+ 1,
1583
+ 1,
1584
+ -1,
1585
+ 0,
1586
+ 1,
1587
+ 1,
1588
+ 1,
1589
+ 0,
1590
+ -1,
1591
+ 0,
1592
+ 2,
1593
+ 1,
1594
+ 0,
1595
+ 1,
1596
+ 0,
1597
+ 1,
1598
+ 1,
1599
+ -1,
1600
+ 1,
1601
+ 0,
1602
+ 1,
1603
+ 1,
1604
+ 0,
1605
+ 1,
1606
+ -1,
1607
+ 0,
1608
+ 2,
1609
+ 0,
1610
+ 1,
1611
+ 1,
1612
+ 0,
1613
+ 1,
1614
+ -1,
1615
+ 1,
1616
+ 1,
1617
+ 0,
1618
+ 1,
1619
+ 0,
1620
+ 1,
1621
+ 1,
1622
+ -1,
1623
+ 0,
1624
+ 2,
1625
+ 1,
1626
+ 0,
1627
+ 0,
1628
+ 1,
1629
+ 1,
1630
+ 1,
1631
+ -1,
1632
+ 0,
1633
+ 1,
1634
+ 1,
1635
+ 1,
1636
+ 0,
1637
+ -1,
1638
+ 1,
1639
+ 0,
1640
+ 2,
1641
+ 0,
1642
+ 1,
1643
+ 0,
1644
+ 1,
1645
+ 1,
1646
+ -1,
1647
+ 1,
1648
+ 0,
1649
+ 1,
1650
+ 1,
1651
+ 0,
1652
+ 1,
1653
+ -1,
1654
+ 1,
1655
+ 0,
1656
+ 2,
1657
+ 0,
1658
+ 0,
1659
+ 1,
1660
+ 1,
1661
+ 1,
1662
+ -1,
1663
+ 0,
1664
+ 1,
1665
+ 1,
1666
+ 1,
1667
+ 0,
1668
+ -1,
1669
+ 1,
1670
+ 1,
1671
+ 1,
1672
+ 4,
1673
+ 2,
1674
+ 1,
1675
+ 1,
1676
+ 0,
1677
+ 4,
1678
+ 1,
1679
+ 2,
1680
+ 1,
1681
+ 0,
1682
+ 4,
1683
+ 1,
1684
+ 1,
1685
+ 2,
1686
+ 0,
1687
+ 1,
1688
+ 4,
1689
+ 2,
1690
+ 1,
1691
+ 0,
1692
+ 1,
1693
+ 4,
1694
+ 1,
1695
+ 2,
1696
+ 0,
1697
+ 1,
1698
+ 4,
1699
+ 1,
1700
+ 1,
1701
+ 0,
1702
+ 2,
1703
+ 1,
1704
+ 4,
1705
+ 2,
1706
+ 0,
1707
+ 1,
1708
+ 1,
1709
+ 4,
1710
+ 1,
1711
+ 0,
1712
+ 2,
1713
+ 1,
1714
+ 4,
1715
+ 1,
1716
+ 0,
1717
+ 1,
1718
+ 2,
1719
+ 1,
1720
+ 4,
1721
+ 0,
1722
+ 2,
1723
+ 1,
1724
+ 1,
1725
+ 4,
1726
+ 0,
1727
+ 1,
1728
+ 2,
1729
+ 1,
1730
+ 4,
1731
+ 0,
1732
+ 1,
1733
+ 1,
1734
+ 2,
1735
+ 1,
1736
+ 2,
1737
+ 1,
1738
+ 1,
1739
+ 0,
1740
+ 0,
1741
+ 3,
1742
+ 2,
1743
+ 1,
1744
+ 0,
1745
+ 0,
1746
+ 3,
1747
+ 1,
1748
+ 2,
1749
+ 0,
1750
+ 0,
1751
+ 1,
1752
+ 2,
1753
+ 1,
1754
+ 0,
1755
+ 1,
1756
+ 0,
1757
+ 3,
1758
+ 2,
1759
+ 0,
1760
+ 1,
1761
+ 0,
1762
+ 3,
1763
+ 1,
1764
+ 0,
1765
+ 2,
1766
+ 0,
1767
+ 1,
1768
+ 2,
1769
+ 0,
1770
+ 1,
1771
+ 1,
1772
+ 0,
1773
+ 3,
1774
+ 0,
1775
+ 2,
1776
+ 1,
1777
+ 0,
1778
+ 3,
1779
+ 0,
1780
+ 1,
1781
+ 2,
1782
+ 0,
1783
+ 1,
1784
+ 2,
1785
+ 1,
1786
+ 0,
1787
+ 0,
1788
+ 1,
1789
+ 3,
1790
+ 2,
1791
+ 0,
1792
+ 0,
1793
+ 1,
1794
+ 3,
1795
+ 1,
1796
+ 0,
1797
+ 0,
1798
+ 2,
1799
+ 1,
1800
+ 2,
1801
+ 0,
1802
+ 1,
1803
+ 0,
1804
+ 1,
1805
+ 3,
1806
+ 0,
1807
+ 2,
1808
+ 0,
1809
+ 1,
1810
+ 3,
1811
+ 0,
1812
+ 1,
1813
+ 0,
1814
+ 2,
1815
+ 1,
1816
+ 2,
1817
+ 0,
1818
+ 0,
1819
+ 1,
1820
+ 1,
1821
+ 3,
1822
+ 0,
1823
+ 0,
1824
+ 2,
1825
+ 1,
1826
+ 3,
1827
+ 0,
1828
+ 0,
1829
+ 1,
1830
+ 2,
1831
+ 2,
1832
+ 3,
1833
+ 1,
1834
+ 1,
1835
+ 1,
1836
+ 0,
1837
+ 2,
1838
+ 1,
1839
+ 1,
1840
+ 1,
1841
+ -1,
1842
+ 2,
1843
+ 2,
1844
+ 0,
1845
+ 0,
1846
+ 0,
1847
+ 2,
1848
+ 3,
1849
+ 1,
1850
+ 1,
1851
+ 0,
1852
+ 1,
1853
+ 2,
1854
+ 1,
1855
+ 1,
1856
+ -1,
1857
+ 1,
1858
+ 2,
1859
+ 2,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 2,
1864
+ 3,
1865
+ 1,
1866
+ 0,
1867
+ 1,
1868
+ 1,
1869
+ 2,
1870
+ 1,
1871
+ -1,
1872
+ 1,
1873
+ 1,
1874
+ 2,
1875
+ 2,
1876
+ 0,
1877
+ 0,
1878
+ 0,
1879
+ 2,
1880
+ 3,
1881
+ 1,
1882
+ 1,
1883
+ 1,
1884
+ 0,
1885
+ 2,
1886
+ 1,
1887
+ 1,
1888
+ 1,
1889
+ -1,
1890
+ 2,
1891
+ 0,
1892
+ 2,
1893
+ 0,
1894
+ 0,
1895
+ 2,
1896
+ 3,
1897
+ 1,
1898
+ 1,
1899
+ 0,
1900
+ 1,
1901
+ 2,
1902
+ 1,
1903
+ 1,
1904
+ -1,
1905
+ 1,
1906
+ 2,
1907
+ 0,
1908
+ 2,
1909
+ 0,
1910
+ 0,
1911
+ 2,
1912
+ 3,
1913
+ 0,
1914
+ 1,
1915
+ 1,
1916
+ 1,
1917
+ 2,
1918
+ -1,
1919
+ 1,
1920
+ 1,
1921
+ 1,
1922
+ 2,
1923
+ 0,
1924
+ 2,
1925
+ 0,
1926
+ 0,
1927
+ 2,
1928
+ 3,
1929
+ 1,
1930
+ 1,
1931
+ 1,
1932
+ 0,
1933
+ 2,
1934
+ 1,
1935
+ 1,
1936
+ 1,
1937
+ -1,
1938
+ 2,
1939
+ 0,
1940
+ 0,
1941
+ 2,
1942
+ 0,
1943
+ 2,
1944
+ 3,
1945
+ 1,
1946
+ 0,
1947
+ 1,
1948
+ 1,
1949
+ 2,
1950
+ 1,
1951
+ -1,
1952
+ 1,
1953
+ 1,
1954
+ 2,
1955
+ 0,
1956
+ 0,
1957
+ 2,
1958
+ 0,
1959
+ 2,
1960
+ 3,
1961
+ 0,
1962
+ 1,
1963
+ 1,
1964
+ 1,
1965
+ 2,
1966
+ -1,
1967
+ 1,
1968
+ 1,
1969
+ 1,
1970
+ 2,
1971
+ 0,
1972
+ 0,
1973
+ 2,
1974
+ 0,
1975
+ 2,
1976
+ 3,
1977
+ 1,
1978
+ 1,
1979
+ 0,
1980
+ 1,
1981
+ 2,
1982
+ 1,
1983
+ 1,
1984
+ -1,
1985
+ 1,
1986
+ 2,
1987
+ 0,
1988
+ 0,
1989
+ 0,
1990
+ 2,
1991
+ 2,
1992
+ 3,
1993
+ 1,
1994
+ 0,
1995
+ 1,
1996
+ 1,
1997
+ 2,
1998
+ 1,
1999
+ -1,
2000
+ 1,
2001
+ 1,
2002
+ 2,
2003
+ 0,
2004
+ 0,
2005
+ 0,
2006
+ 2,
2007
+ 2,
2008
+ 3,
2009
+ 0,
2010
+ 1,
2011
+ 1,
2012
+ 1,
2013
+ 2,
2014
+ -1,
2015
+ 1,
2016
+ 1,
2017
+ 1,
2018
+ 2,
2019
+ 0,
2020
+ 0,
2021
+ 0,
2022
+ 2,
2023
+ 2,
2024
+ 1,
2025
+ 1,
2026
+ 1,
2027
+ -1,
2028
+ 0,
2029
+ 1,
2030
+ 1,
2031
+ 1,
2032
+ 0,
2033
+ -1,
2034
+ 0,
2035
+ 0,
2036
+ 0,
2037
+ 0,
2038
+ 0,
2039
+ 2,
2040
+ 1,
2041
+ 1,
2042
+ -1,
2043
+ 1,
2044
+ 0,
2045
+ 1,
2046
+ 1,
2047
+ 0,
2048
+ 1,
2049
+ -1,
2050
+ 0,
2051
+ 0,
2052
+ 0,
2053
+ 0,
2054
+ 0,
2055
+ 2,
2056
+ 1,
2057
+ -1,
2058
+ 1,
2059
+ 1,
2060
+ 0,
2061
+ 1,
2062
+ 0,
2063
+ 1,
2064
+ 1,
2065
+ -1,
2066
+ 0,
2067
+ 0,
2068
+ 0,
2069
+ 0,
2070
+ 0,
2071
+ 2,
2072
+ 1,
2073
+ 1,
2074
+ -1,
2075
+ 0,
2076
+ 1,
2077
+ 1,
2078
+ 1,
2079
+ 0,
2080
+ -1,
2081
+ 1,
2082
+ 0,
2083
+ 0,
2084
+ 0,
2085
+ 0,
2086
+ 0,
2087
+ 2,
2088
+ 1,
2089
+ -1,
2090
+ 1,
2091
+ 0,
2092
+ 1,
2093
+ 1,
2094
+ 0,
2095
+ 1,
2096
+ -1,
2097
+ 1,
2098
+ 0,
2099
+ 0,
2100
+ 0,
2101
+ 0,
2102
+ 0,
2103
+ 2,
2104
+ 1,
2105
+ -1,
2106
+ 0,
2107
+ 1,
2108
+ 1,
2109
+ 1,
2110
+ 0,
2111
+ -1,
2112
+ 1,
2113
+ 1,
2114
+ 0,
2115
+ 0,
2116
+ 0,
2117
+ 0,
2118
+ 0,
2119
+ 2,
2120
+ 1,
2121
+ 1,
2122
+ 1,
2123
+ -1,
2124
+ 0,
2125
+ 1,
2126
+ 1,
2127
+ 1,
2128
+ 0,
2129
+ -1,
2130
+ 2,
2131
+ 2,
2132
+ 0,
2133
+ 0,
2134
+ 0,
2135
+ 2,
2136
+ 1,
2137
+ 1,
2138
+ -1,
2139
+ 1,
2140
+ 0,
2141
+ 1,
2142
+ 1,
2143
+ 0,
2144
+ 1,
2145
+ -1,
2146
+ 2,
2147
+ 2,
2148
+ 0,
2149
+ 0,
2150
+ 0,
2151
+ 2,
2152
+ 1,
2153
+ 1,
2154
+ -1,
2155
+ 0,
2156
+ 1,
2157
+ 1,
2158
+ 1,
2159
+ 0,
2160
+ -1,
2161
+ 1,
2162
+ 2,
2163
+ 2,
2164
+ 0,
2165
+ 0,
2166
+ 0,
2167
+ 2,
2168
+ 1,
2169
+ 1,
2170
+ 1,
2171
+ -1,
2172
+ 0,
2173
+ 1,
2174
+ 1,
2175
+ 1,
2176
+ 0,
2177
+ -1,
2178
+ 2,
2179
+ 0,
2180
+ 2,
2181
+ 0,
2182
+ 0,
2183
+ 2,
2184
+ 1,
2185
+ -1,
2186
+ 1,
2187
+ 1,
2188
+ 0,
2189
+ 1,
2190
+ 0,
2191
+ 1,
2192
+ 1,
2193
+ -1,
2194
+ 2,
2195
+ 0,
2196
+ 2,
2197
+ 0,
2198
+ 0,
2199
+ 2,
2200
+ 1,
2201
+ -1,
2202
+ 1,
2203
+ 0,
2204
+ 1,
2205
+ 1,
2206
+ 0,
2207
+ 1,
2208
+ -1,
2209
+ 1,
2210
+ 2,
2211
+ 0,
2212
+ 2,
2213
+ 0,
2214
+ 0,
2215
+ 2,
2216
+ 1,
2217
+ 1,
2218
+ -1,
2219
+ 1,
2220
+ 0,
2221
+ 1,
2222
+ 1,
2223
+ 0,
2224
+ 1,
2225
+ -1,
2226
+ 2,
2227
+ 0,
2228
+ 0,
2229
+ 2,
2230
+ 0,
2231
+ 2,
2232
+ 1,
2233
+ -1,
2234
+ 1,
2235
+ 1,
2236
+ 0,
2237
+ 1,
2238
+ 0,
2239
+ 1,
2240
+ 1,
2241
+ -1,
2242
+ 2,
2243
+ 0,
2244
+ 0,
2245
+ 2,
2246
+ 0,
2247
+ 2,
2248
+ 1,
2249
+ -1,
2250
+ 0,
2251
+ 1,
2252
+ 1,
2253
+ 1,
2254
+ 0,
2255
+ -1,
2256
+ 1,
2257
+ 1,
2258
+ 2,
2259
+ 0,
2260
+ 0,
2261
+ 2,
2262
+ 0,
2263
+ 2,
2264
+ 1,
2265
+ 1,
2266
+ -1,
2267
+ 0,
2268
+ 1,
2269
+ 1,
2270
+ 1,
2271
+ 0,
2272
+ -1,
2273
+ 1,
2274
+ 2,
2275
+ 0,
2276
+ 0,
2277
+ 0,
2278
+ 2,
2279
+ 2,
2280
+ 1,
2281
+ -1,
2282
+ 1,
2283
+ 0,
2284
+ 1,
2285
+ 1,
2286
+ 0,
2287
+ 1,
2288
+ -1,
2289
+ 1,
2290
+ 2,
2291
+ 0,
2292
+ 0,
2293
+ 0,
2294
+ 2,
2295
+ 2,
2296
+ 1,
2297
+ -1,
2298
+ 0,
2299
+ 1,
2300
+ 1,
2301
+ 1,
2302
+ 0,
2303
+ -1,
2304
+ 1,
2305
+ 1,
2306
+ 2,
2307
+ 0,
2308
+ 0,
2309
+ 0,
2310
+ 2,
2311
+ 3,
2312
+ 1,
2313
+ 1,
2314
+ 0,
2315
+ 0,
2316
+ 0,
2317
+ 2,
2318
+ 2,
2319
+ 0,
2320
+ 0,
2321
+ 0,
2322
+ 2,
2323
+ 1,
2324
+ 1,
2325
+ 1,
2326
+ -1,
2327
+ 3,
2328
+ 1,
2329
+ 0,
2330
+ 1,
2331
+ 0,
2332
+ 0,
2333
+ 2,
2334
+ 0,
2335
+ 2,
2336
+ 0,
2337
+ 0,
2338
+ 2,
2339
+ 1,
2340
+ 1,
2341
+ 1,
2342
+ -1,
2343
+ 3,
2344
+ 1,
2345
+ 0,
2346
+ 0,
2347
+ 1,
2348
+ 0,
2349
+ 2,
2350
+ 0,
2351
+ 0,
2352
+ 2,
2353
+ 0,
2354
+ 2,
2355
+ 1,
2356
+ 1,
2357
+ 1,
2358
+ -1,
2359
+ 3,
2360
+ 1,
2361
+ 1,
2362
+ 0,
2363
+ 0,
2364
+ 0,
2365
+ 2,
2366
+ 2,
2367
+ 0,
2368
+ 0,
2369
+ 0,
2370
+ 2,
2371
+ 1,
2372
+ 1,
2373
+ -1,
2374
+ 1,
2375
+ 3,
2376
+ 1,
2377
+ 0,
2378
+ 1,
2379
+ 0,
2380
+ 0,
2381
+ 2,
2382
+ 0,
2383
+ 2,
2384
+ 0,
2385
+ 0,
2386
+ 2,
2387
+ 1,
2388
+ 1,
2389
+ -1,
2390
+ 1,
2391
+ 3,
2392
+ 1,
2393
+ 0,
2394
+ 0,
2395
+ 0,
2396
+ 1,
2397
+ 2,
2398
+ 0,
2399
+ 0,
2400
+ 0,
2401
+ 2,
2402
+ 2,
2403
+ 1,
2404
+ 1,
2405
+ -1,
2406
+ 1,
2407
+ 3,
2408
+ 1,
2409
+ 1,
2410
+ 0,
2411
+ 0,
2412
+ 0,
2413
+ 2,
2414
+ 2,
2415
+ 0,
2416
+ 0,
2417
+ 0,
2418
+ 2,
2419
+ 1,
2420
+ -1,
2421
+ 1,
2422
+ 1,
2423
+ 3,
2424
+ 1,
2425
+ 0,
2426
+ 0,
2427
+ 1,
2428
+ 0,
2429
+ 2,
2430
+ 0,
2431
+ 0,
2432
+ 2,
2433
+ 0,
2434
+ 2,
2435
+ 1,
2436
+ -1,
2437
+ 1,
2438
+ 1,
2439
+ 3,
2440
+ 1,
2441
+ 0,
2442
+ 0,
2443
+ 0,
2444
+ 1,
2445
+ 2,
2446
+ 0,
2447
+ 0,
2448
+ 0,
2449
+ 2,
2450
+ 2,
2451
+ 1,
2452
+ -1,
2453
+ 1,
2454
+ 1,
2455
+ 3,
2456
+ 1,
2457
+ 0,
2458
+ 1,
2459
+ 0,
2460
+ 0,
2461
+ 2,
2462
+ 0,
2463
+ 2,
2464
+ 0,
2465
+ 0,
2466
+ 2,
2467
+ -1,
2468
+ 1,
2469
+ 1,
2470
+ 1,
2471
+ 3,
2472
+ 1,
2473
+ 0,
2474
+ 0,
2475
+ 1,
2476
+ 0,
2477
+ 2,
2478
+ 0,
2479
+ 0,
2480
+ 2,
2481
+ 0,
2482
+ 2,
2483
+ -1,
2484
+ 1,
2485
+ 1,
2486
+ 1,
2487
+ 3,
2488
+ 1,
2489
+ 0,
2490
+ 0,
2491
+ 0,
2492
+ 1,
2493
+ 2,
2494
+ 0,
2495
+ 0,
2496
+ 0,
2497
+ 2,
2498
+ 2,
2499
+ -1,
2500
+ 1,
2501
+ 1,
2502
+ 1,
2503
+ 3,
2504
+ 3,
2505
+ 2,
2506
+ 1,
2507
+ 0,
2508
+ 0,
2509
+ 3,
2510
+ 1,
2511
+ 2,
2512
+ 0,
2513
+ 0,
2514
+ 4,
2515
+ 1,
2516
+ 1,
2517
+ 1,
2518
+ 1,
2519
+ 3,
2520
+ 3,
2521
+ 2,
2522
+ 0,
2523
+ 1,
2524
+ 0,
2525
+ 3,
2526
+ 1,
2527
+ 0,
2528
+ 2,
2529
+ 0,
2530
+ 4,
2531
+ 1,
2532
+ 1,
2533
+ 1,
2534
+ 1,
2535
+ 3,
2536
+ 3,
2537
+ 0,
2538
+ 2,
2539
+ 1,
2540
+ 0,
2541
+ 3,
2542
+ 0,
2543
+ 1,
2544
+ 2,
2545
+ 0,
2546
+ 4,
2547
+ 1,
2548
+ 1,
2549
+ 1,
2550
+ 1,
2551
+ 3,
2552
+ 3,
2553
+ 2,
2554
+ 0,
2555
+ 0,
2556
+ 1,
2557
+ 3,
2558
+ 1,
2559
+ 0,
2560
+ 0,
2561
+ 2,
2562
+ 4,
2563
+ 1,
2564
+ 1,
2565
+ 1,
2566
+ 1,
2567
+ 3,
2568
+ 3,
2569
+ 0,
2570
+ 2,
2571
+ 0,
2572
+ 1,
2573
+ 3,
2574
+ 0,
2575
+ 1,
2576
+ 0,
2577
+ 2,
2578
+ 4,
2579
+ 1,
2580
+ 1,
2581
+ 1,
2582
+ 1,
2583
+ 3,
2584
+ 3,
2585
+ 0,
2586
+ 0,
2587
+ 2,
2588
+ 1,
2589
+ 3,
2590
+ 0,
2591
+ 0,
2592
+ 1,
2593
+ 2,
2594
+ 4,
2595
+ 1,
2596
+ 1,
2597
+ 1,
2598
+ 1,
2599
+ 3,
2600
+ 3,
2601
+ 2,
2602
+ 1,
2603
+ 0,
2604
+ 0,
2605
+ 3,
2606
+ 1,
2607
+ 2,
2608
+ 0,
2609
+ 0,
2610
+ 2,
2611
+ 1,
2612
+ 1,
2613
+ 1,
2614
+ -1,
2615
+ 3,
2616
+ 3,
2617
+ 2,
2618
+ 0,
2619
+ 1,
2620
+ 0,
2621
+ 3,
2622
+ 1,
2623
+ 0,
2624
+ 2,
2625
+ 0,
2626
+ 2,
2627
+ 1,
2628
+ 1,
2629
+ 1,
2630
+ -1,
2631
+ 3,
2632
+ 3,
2633
+ 0,
2634
+ 2,
2635
+ 1,
2636
+ 0,
2637
+ 3,
2638
+ 0,
2639
+ 1,
2640
+ 2,
2641
+ 0,
2642
+ 2,
2643
+ 1,
2644
+ 1,
2645
+ 1,
2646
+ -1,
2647
+ 3,
2648
+ 3,
2649
+ 2,
2650
+ 1,
2651
+ 0,
2652
+ 0,
2653
+ 3,
2654
+ 1,
2655
+ 2,
2656
+ 0,
2657
+ 0,
2658
+ 2,
2659
+ 1,
2660
+ 1,
2661
+ -1,
2662
+ 1,
2663
+ 3,
2664
+ 3,
2665
+ 2,
2666
+ 0,
2667
+ 0,
2668
+ 1,
2669
+ 3,
2670
+ 1,
2671
+ 0,
2672
+ 0,
2673
+ 2,
2674
+ 2,
2675
+ 1,
2676
+ 1,
2677
+ -1,
2678
+ 1,
2679
+ 3,
2680
+ 3,
2681
+ 0,
2682
+ 2,
2683
+ 0,
2684
+ 1,
2685
+ 3,
2686
+ 0,
2687
+ 1,
2688
+ 0,
2689
+ 2,
2690
+ 2,
2691
+ 1,
2692
+ 1,
2693
+ -1,
2694
+ 1,
2695
+ 3,
2696
+ 3,
2697
+ 2,
2698
+ 0,
2699
+ 1,
2700
+ 0,
2701
+ 3,
2702
+ 1,
2703
+ 0,
2704
+ 2,
2705
+ 0,
2706
+ 2,
2707
+ 1,
2708
+ -1,
2709
+ 1,
2710
+ 1,
2711
+ 3,
2712
+ 3,
2713
+ 2,
2714
+ 0,
2715
+ 0,
2716
+ 1,
2717
+ 3,
2718
+ 1,
2719
+ 0,
2720
+ 0,
2721
+ 2,
2722
+ 2,
2723
+ 1,
2724
+ -1,
2725
+ 1,
2726
+ 1,
2727
+ 3,
2728
+ 3,
2729
+ 0,
2730
+ 0,
2731
+ 2,
2732
+ 1,
2733
+ 3,
2734
+ 0,
2735
+ 0,
2736
+ 1,
2737
+ 2,
2738
+ 2,
2739
+ 1,
2740
+ -1,
2741
+ 1,
2742
+ 1,
2743
+ 3,
2744
+ 3,
2745
+ 0,
2746
+ 2,
2747
+ 1,
2748
+ 0,
2749
+ 3,
2750
+ 0,
2751
+ 1,
2752
+ 2,
2753
+ 0,
2754
+ 2,
2755
+ -1,
2756
+ 1,
2757
+ 1,
2758
+ 1,
2759
+ 3,
2760
+ 3,
2761
+ 0,
2762
+ 2,
2763
+ 0,
2764
+ 1,
2765
+ 3,
2766
+ 0,
2767
+ 1,
2768
+ 0,
2769
+ 2,
2770
+ 2,
2771
+ -1,
2772
+ 1,
2773
+ 1,
2774
+ 1,
2775
+ 3,
2776
+ 3,
2777
+ 0,
2778
+ 0,
2779
+ 2,
2780
+ 1,
2781
+ 3,
2782
+ 0,
2783
+ 0,
2784
+ 1,
2785
+ 2,
2786
+ 2,
2787
+ -1,
2788
+ 1,
2789
+ 1,
2790
+ 1,
2791
+ ];
2792
+ }
2793
+ noise(x, y, z, w) {
2794
+ const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this;
2795
+ const stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
2796
+ ((yins - zins + 1) << 1) |
2797
+ ((yins - wins + 1) << 2) |
2798
+ ((xins - yins + 1) << 3) |
2799
+ ((xins - zins + 1) << 4) |
2800
+ ((xins - wins + 1) << 5) |
2801
+ (inSum << 6) |
2802
+ ((inSum + wins) << 8) |
2803
+ ((inSum + zins) << 11) |
2804
+ ((inSum + yins) << 14) |
2805
+ ((inSum + xins) << 17);
2806
+ let value = 0;
2807
+ for (let c = _lookup[hash]; c !== undefined; c = c.next) {
2808
+ const dx = dx0 + c.dx, dy = dy0 + c.dy, dz = dz0 + c.dz, dw = dw0 + c.dw, attn = 2 - dx * dx - dy * dy - dz * dz - dw * dw;
2809
+ if (attn > 0) {
2810
+ const px = xsb + c.xsb, py = ysb + c.ysb, pz = zsb + c.zsb, pw = wsb + c.wsb, indexPartA = _perm[px & 0xff], indexPartB = _perm[(indexPartA + py) & 0xff], indexPartC = _perm[(indexPartB + pz) & 0xff], index = _perm4D[(indexPartC + pw) & 0xff], valuePart = _gradients4D[index] * dx +
2811
+ _gradients4D[index + 1] * dy +
2812
+ _gradients4D[index + 2] * dz +
2813
+ _gradients4D[index + 3] * dw;
2814
+ value += attn * attn * attn * attn * valuePart;
2815
+ }
2816
+ }
2817
+ return value * _NORM_4D;
2818
+ }
2819
+ seed(clientSeed) {
2820
+ const { _p4D, _base4D, _lookupPairs4D } = this;
2821
+ const contributions = [];
2822
+ for (let i = 0; i < _p4D.length; i += 16) {
2823
+ const baseSet = _base4D[_p4D[i]];
2824
+ let previous = null, current = null;
2825
+ for (let k = 0; k < baseSet.length; k += 5) {
2826
+ current = this._contribution4D(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3], baseSet[k + 4]);
2827
+ if (previous === null) {
2828
+ contributions[i / 16] = current;
2829
+ }
2830
+ else {
2831
+ previous.next = current;
2832
+ }
2833
+ previous = current;
2834
+ }
2835
+ if (current) {
2836
+ current.next = this._contribution4D(_p4D[i + 1], _p4D[i + 2], _p4D[i + 3], _p4D[i + 4], _p4D[i + 5]);
2837
+ current.next.next = this._contribution4D(_p4D[i + 6], _p4D[i + 7], _p4D[i + 8], _p4D[i + 9], _p4D[i + 10]);
2838
+ current.next.next.next = this._contribution4D(_p4D[i + 11], _p4D[i + 12], _p4D[i + 13], _p4D[i + 14], _p4D[i + 15]);
2839
+ }
2840
+ }
2841
+ this._lookup = [];
2842
+ for (let i = 0; i < _lookupPairs4D.length; i += 2) {
2843
+ this._lookup[_lookupPairs4D[i]] = contributions[_lookupPairs4D[i + 1]];
2844
+ }
2845
+ this._perm = new Uint8Array(256);
2846
+ this._perm4D = new Uint8Array(256);
2847
+ const source = new Uint8Array(256);
2848
+ for (let i = 0; i < 256; i++) {
2849
+ source[i] = i;
2850
+ }
2851
+ let seed = new Uint32Array(1);
2852
+ seed[0] = clientSeed;
2853
+ seed = (0, utils_js_1.shuffleSeed)((0, utils_js_1.shuffleSeed)((0, utils_js_1.shuffleSeed)(seed)));
2854
+ for (let i = 255; i >= 0; i--) {
2855
+ seed = (0, utils_js_1.shuffleSeed)(seed);
2856
+ const r = new Uint32Array(1);
2857
+ r[0] = (seed[0] + 31) % (i + 1);
2858
+ if (r[0] < 0) {
2859
+ r[0] += i + 1;
2860
+ }
2861
+ this._perm[i] = source[r[0]];
2862
+ this._perm4D[i] = this._perm[i] & 0xfc;
2863
+ source[r[0]] = source[i];
2864
+ }
2865
+ }
2866
+ _contribution4D(multiplier, xsb, ysb, zsb, wsb) {
2867
+ const { _SQUISH_4D } = this;
2868
+ return {
2869
+ dx: -xsb - multiplier * _SQUISH_4D,
2870
+ dy: -ysb - multiplier * _SQUISH_4D,
2871
+ dz: -zsb - multiplier * _SQUISH_4D,
2872
+ dw: -wsb - multiplier * _SQUISH_4D,
2873
+ xsb,
2874
+ ysb,
2875
+ zsb,
2876
+ wsb,
2877
+ };
2878
+ }
2879
+ }
2880
+ exports.SimplexNoise4D = SimplexNoise4D;
2881
+ });