1 /*
2 * This file derives from SFMT 1.3.3
3 * (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html), which was
4 * released under the terms of the following license:
5 *
6 * Copyright (c) 2006,2007 Mutsuo Saito, Makoto Matsumoto and Hiroshima
7 * University. All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are
11 * met:
12 *
13 * * Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * * Redistributions in binary form must reproduce the above
16 * copyright notice, this list of conditions and the following
17 * disclaimer in the documentation and/or other materials provided
18 * with the distribution.
19 * * Neither the name of the Hiroshima University nor the names of
20 * its contributors may be used to endorse or promote products
21 * derived from this software without specific prior written
22 * permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 */
36 #include "test/jemalloc_test.h"
37
38 #define BLOCK_SIZE 10000
39 #define BLOCK_SIZE64 (BLOCK_SIZE / 2)
40 #define COUNT_1 1000
41 #define COUNT_2 700
42
43 static const uint32_t init_gen_rand_32_expected[] = {
44 3440181298U, 1564997079U, 1510669302U, 2930277156U, 1452439940U,
45 3796268453U, 423124208U, 2143818589U, 3827219408U, 2987036003U,
46 2674978610U, 1536842514U, 2027035537U, 2534897563U, 1686527725U,
47 545368292U, 1489013321U, 1370534252U, 4231012796U, 3994803019U,
48 1764869045U, 824597505U, 862581900U, 2469764249U, 812862514U,
49 359318673U, 116957936U, 3367389672U, 2327178354U, 1898245200U,
50 3206507879U, 2378925033U, 1040214787U, 2524778605U, 3088428700U,
51 1417665896U, 964324147U, 2282797708U, 2456269299U, 313400376U,
52 2245093271U, 1015729427U, 2694465011U, 3246975184U, 1992793635U,
53 463679346U, 3721104591U, 3475064196U, 856141236U, 1499559719U,
54 3522818941U, 3721533109U, 1954826617U, 1282044024U, 1543279136U,
55 1301863085U, 2669145051U, 4221477354U, 3896016841U, 3392740262U,
56 462466863U, 1037679449U, 1228140306U, 922298197U, 1205109853U,
57 1872938061U, 3102547608U, 2742766808U, 1888626088U, 4028039414U,
58 157593879U, 1136901695U, 4038377686U, 3572517236U, 4231706728U,
59 2997311961U, 1189931652U, 3981543765U, 2826166703U, 87159245U,
60 1721379072U, 3897926942U, 1790395498U, 2569178939U, 1047368729U,
61 2340259131U, 3144212906U, 2301169789U, 2442885464U, 3034046771U,
62 3667880593U, 3935928400U, 2372805237U, 1666397115U, 2460584504U,
63 513866770U, 3810869743U, 2147400037U, 2792078025U, 2941761810U,
64 3212265810U, 984692259U, 346590253U, 1804179199U, 3298543443U,
65 750108141U, 2880257022U, 243310542U, 1869036465U, 1588062513U,
66 2983949551U, 1931450364U, 4034505847U, 2735030199U, 1628461061U,
67 2539522841U, 127965585U, 3992448871U, 913388237U, 559130076U,
68 1202933193U, 4087643167U, 2590021067U, 2256240196U, 1746697293U,
69 1013913783U, 1155864921U, 2715773730U, 915061862U, 1948766573U,
70 2322882854U, 3761119102U, 1343405684U, 3078711943U, 3067431651U,
71 3245156316U, 3588354584U, 3484623306U, 3899621563U, 4156689741U,
72 3237090058U, 3880063844U, 862416318U, 4039923869U, 2303788317U,
73 3073590536U, 701653667U, 2131530884U, 3169309950U, 2028486980U,
74 747196777U, 3620218225U, 432016035U, 1449580595U, 2772266392U,
75 444224948U, 1662832057U, 3184055582U, 3028331792U, 1861686254U,
76 1104864179U, 342430307U, 1350510923U, 3024656237U, 1028417492U,
77 2870772950U, 290847558U, 3675663500U, 508431529U, 4264340390U,
78 2263569913U, 1669302976U, 519511383U, 2706411211U, 3764615828U,
79 3883162495U, 4051445305U, 2412729798U, 3299405164U, 3991911166U,
80 2348767304U, 2664054906U, 3763609282U, 593943581U, 3757090046U,
81 2075338894U, 2020550814U, 4287452920U, 4290140003U, 1422957317U,
82 2512716667U, 2003485045U, 2307520103U, 2288472169U, 3940751663U,
83 4204638664U, 2892583423U, 1710068300U, 3904755993U, 2363243951U,
84 3038334120U, 547099465U, 771105860U, 3199983734U, 4282046461U,
85 2298388363U, 934810218U, 2837827901U, 3952500708U, 2095130248U,
86 3083335297U, 26885281U, 3932155283U, 1531751116U, 1425227133U,
87 495654159U, 3279634176U, 3855562207U, 3957195338U, 4159985527U,
88 893375062U, 1875515536U, 1327247422U, 3754140693U, 1028923197U,
89 1729880440U, 805571298U, 448971099U, 2726757106U, 2749436461U,
90 2485987104U, 175337042U, 3235477922U, 3882114302U, 2020970972U,
91 943926109U, 2762587195U, 1904195558U, 3452650564U, 108432281U,
92 3893463573U, 3977583081U, 2636504348U, 1110673525U, 3548479841U,
93 4258854744U, 980047703U, 4057175418U, 3890008292U, 145653646U,
94 3141868989U, 3293216228U, 1194331837U, 1254570642U, 3049934521U,
95 2868313360U, 2886032750U, 1110873820U, 279553524U, 3007258565U,
96 1104807822U, 3186961098U, 315764646U, 2163680838U, 3574508994U,
97 3099755655U, 191957684U, 3642656737U, 3317946149U, 3522087636U,
98 444526410U, 779157624U, 1088229627U, 1092460223U, 1856013765U,
99 3659877367U, 368270451U, 503570716U, 3000984671U, 2742789647U,
100 928097709U, 2914109539U, 308843566U, 2816161253U, 3667192079U,
101 2762679057U, 3395240989U, 2928925038U, 1491465914U, 3458702834U,
102 3787782576U, 2894104823U, 1296880455U, 1253636503U, 989959407U,
103 2291560361U, 2776790436U, 1913178042U, 1584677829U, 689637520U,
104 1898406878U, 688391508U, 3385234998U, 845493284U, 1943591856U,
105 2720472050U, 222695101U, 1653320868U, 2904632120U, 4084936008U,
106 1080720688U, 3938032556U, 387896427U, 2650839632U, 99042991U,
107 1720913794U, 1047186003U, 1877048040U, 2090457659U, 517087501U,
108 4172014665U, 2129713163U, 2413533132U, 2760285054U, 4129272496U,
109 1317737175U, 2309566414U, 2228873332U, 3889671280U, 1110864630U,
110 3576797776U, 2074552772U, 832002644U, 3097122623U, 2464859298U,
111 2679603822U, 1667489885U, 3237652716U, 1478413938U, 1719340335U,
112 2306631119U, 639727358U, 3369698270U, 226902796U, 2099920751U,
113 1892289957U, 2201594097U, 3508197013U, 3495811856U, 3900381493U,
114 841660320U, 3974501451U, 3360949056U, 1676829340U, 728899254U,
115 2047809627U, 2390948962U, 670165943U, 3412951831U, 4189320049U,
116 1911595255U, 2055363086U, 507170575U, 418219594U, 4141495280U,
117 2692088692U, 4203630654U, 3540093932U, 791986533U, 2237921051U,
118 2526864324U, 2956616642U, 1394958700U, 1983768223U, 1893373266U,
119 591653646U, 228432437U, 1611046598U, 3007736357U, 1040040725U,
120 2726180733U, 2789804360U, 4263568405U, 829098158U, 3847722805U,
121 1123578029U, 1804276347U, 997971319U, 4203797076U, 4185199713U,
122 2811733626U, 2343642194U, 2985262313U, 1417930827U, 3759587724U,
123 1967077982U, 1585223204U, 1097475516U, 1903944948U, 740382444U,
124 1114142065U, 1541796065U, 1718384172U, 1544076191U, 1134682254U,
125 3519754455U, 2866243923U, 341865437U, 645498576U, 2690735853U,
126 1046963033U, 2493178460U, 1187604696U, 1619577821U, 488503634U,
127 3255768161U, 2306666149U, 1630514044U, 2377698367U, 2751503746U,
128 3794467088U, 1796415981U, 3657173746U, 409136296U, 1387122342U,
129 1297726519U, 219544855U, 4270285558U, 437578827U, 1444698679U,
130 2258519491U, 963109892U, 3982244073U, 3351535275U, 385328496U,
131 1804784013U, 698059346U, 3920535147U, 708331212U, 784338163U,
132 785678147U, 1238376158U, 1557298846U, 2037809321U, 271576218U,
133 4145155269U, 1913481602U, 2763691931U, 588981080U, 1201098051U,
134 3717640232U, 1509206239U, 662536967U, 3180523616U, 1133105435U,
135 2963500837U, 2253971215U, 3153642623U, 1066925709U, 2582781958U,
136 3034720222U, 1090798544U, 2942170004U, 4036187520U, 686972531U,
137 2610990302U, 2641437026U, 1837562420U, 722096247U, 1315333033U,
138 2102231203U, 3402389208U, 3403698140U, 1312402831U, 2898426558U,
139 814384596U, 385649582U, 1916643285U, 1924625106U, 2512905582U,
140 2501170304U, 4275223366U, 2841225246U, 1467663688U, 3563567847U,
141 2969208552U, 884750901U, 102992576U, 227844301U, 3681442994U,
142 3502881894U, 4034693299U, 1166727018U, 1697460687U, 1737778332U,
143 1787161139U, 1053003655U, 1215024478U, 2791616766U, 2525841204U,
144 1629323443U, 3233815U, 2003823032U, 3083834263U, 2379264872U,
145 3752392312U, 1287475550U, 3770904171U, 3004244617U, 1502117784U,
146 918698423U, 2419857538U, 3864502062U, 1751322107U, 2188775056U,
147 4018728324U, 983712955U, 440071928U, 3710838677U, 2001027698U,
148 3994702151U, 22493119U, 3584400918U, 3446253670U, 4254789085U,
149 1405447860U, 1240245579U, 1800644159U, 1661363424U, 3278326132U,
150 3403623451U, 67092802U, 2609352193U, 3914150340U, 1814842761U,
151 3610830847U, 591531412U, 3880232807U, 1673505890U, 2585326991U,
152 1678544474U, 3148435887U, 3457217359U, 1193226330U, 2816576908U,
153 154025329U, 121678860U, 1164915738U, 973873761U, 269116100U,
154 52087970U, 744015362U, 498556057U, 94298882U, 1563271621U,
155 2383059628U, 4197367290U, 3958472990U, 2592083636U, 2906408439U,
156 1097742433U, 3924840517U, 264557272U, 2292287003U, 3203307984U,
157 4047038857U, 3820609705U, 2333416067U, 1839206046U, 3600944252U,
158 3412254904U, 583538222U, 2390557166U, 4140459427U, 2810357445U,
159 226777499U, 2496151295U, 2207301712U, 3283683112U, 611630281U,
160 1933218215U, 3315610954U, 3889441987U, 3719454256U, 3957190521U,
161 1313998161U, 2365383016U, 3146941060U, 1801206260U, 796124080U,
162 2076248581U, 1747472464U, 3254365145U, 595543130U, 3573909503U,
163 3758250204U, 2020768540U, 2439254210U, 93368951U, 3155792250U,
164 2600232980U, 3709198295U, 3894900440U, 2971850836U, 1578909644U,
165 1443493395U, 2581621665U, 3086506297U, 2443465861U, 558107211U,
166 1519367835U, 249149686U, 908102264U, 2588765675U, 1232743965U,
167 1001330373U, 3561331654U, 2259301289U, 1564977624U, 3835077093U,
168 727244906U, 4255738067U, 1214133513U, 2570786021U, 3899704621U,
169 1633861986U, 1636979509U, 1438500431U, 58463278U, 2823485629U,
170 2297430187U, 2926781924U, 3371352948U, 1864009023U, 2722267973U,
171 1444292075U, 437703973U, 1060414512U, 189705863U, 910018135U,
172 4077357964U, 884213423U, 2644986052U, 3973488374U, 1187906116U,
173 2331207875U, 780463700U, 3713351662U, 3854611290U, 412805574U,
174 2978462572U, 2176222820U, 829424696U, 2790788332U, 2750819108U,
175 1594611657U, 3899878394U, 3032870364U, 1702887682U, 1948167778U,
176 14130042U, 192292500U, 947227076U, 90719497U, 3854230320U,
177 784028434U, 2142399787U, 1563449646U, 2844400217U, 819143172U,
178 2883302356U, 2328055304U, 1328532246U, 2603885363U, 3375188924U,
179 933941291U, 3627039714U, 2129697284U, 2167253953U, 2506905438U,
180 1412424497U, 2981395985U, 1418359660U, 2925902456U, 52752784U,
181 3713667988U, 3924669405U, 648975707U, 1145520213U, 4018650664U,
182 3805915440U, 2380542088U, 2013260958U, 3262572197U, 2465078101U,
183 1114540067U, 3728768081U, 2396958768U, 590672271U, 904818725U,
184 4263660715U, 700754408U, 1042601829U, 4094111823U, 4274838909U,
185 2512692617U, 2774300207U, 2057306915U, 3470942453U, 99333088U,
186 1142661026U, 2889931380U, 14316674U, 2201179167U, 415289459U,
187 448265759U, 3515142743U, 3254903683U, 246633281U, 1184307224U,
188 2418347830U, 2092967314U, 2682072314U, 2558750234U, 2000352263U,
189 1544150531U, 399010405U, 1513946097U, 499682937U, 461167460U,
190 3045570638U, 1633669705U, 851492362U, 4052801922U, 2055266765U,
191 635556996U, 368266356U, 2385737383U, 3218202352U, 2603772408U,
192 349178792U, 226482567U, 3102426060U, 3575998268U, 2103001871U,
193 3243137071U, 225500688U, 1634718593U, 4283311431U, 4292122923U,
194 3842802787U, 811735523U, 105712518U, 663434053U, 1855889273U,
195 2847972595U, 1196355421U, 2552150115U, 4254510614U, 3752181265U,
196 3430721819U, 3828705396U, 3436287905U, 3441964937U, 4123670631U,
197 353001539U, 459496439U, 3799690868U, 1293777660U, 2761079737U,
198 498096339U, 3398433374U, 4080378380U, 2304691596U, 2995729055U,
199 4134660419U, 3903444024U, 3576494993U, 203682175U, 3321164857U,
200 2747963611U, 79749085U, 2992890370U, 1240278549U, 1772175713U,
201 2111331972U, 2655023449U, 1683896345U, 2836027212U, 3482868021U,
202 2489884874U, 756853961U, 2298874501U, 4013448667U, 4143996022U,
203 2948306858U, 4132920035U, 1283299272U, 995592228U, 3450508595U,
204 1027845759U, 1766942720U, 3861411826U, 1446861231U, 95974993U,
205 3502263554U, 1487532194U, 601502472U, 4129619129U, 250131773U,
206 2050079547U, 3198903947U, 3105589778U, 4066481316U, 3026383978U,
207 2276901713U, 365637751U, 2260718426U, 1394775634U, 1791172338U,
208 2690503163U, 2952737846U, 1568710462U, 732623190U, 2980358000U,
209 1053631832U, 1432426951U, 3229149635U, 1854113985U, 3719733532U,
210 3204031934U, 735775531U, 107468620U, 3734611984U, 631009402U,
211 3083622457U, 4109580626U, 159373458U, 1301970201U, 4132389302U,
212 1293255004U, 847182752U, 4170022737U, 96712900U, 2641406755U,
213 1381727755U, 405608287U, 4287919625U, 1703554290U, 3589580244U,
214 2911403488U, 2166565U, 2647306451U, 2330535117U, 1200815358U,
215 1165916754U, 245060911U, 4040679071U, 3684908771U, 2452834126U,
216 2486872773U, 2318678365U, 2940627908U, 1837837240U, 3447897409U,
217 4270484676U, 1495388728U, 3754288477U, 4204167884U, 1386977705U,
218 2692224733U, 3076249689U, 4109568048U, 4170955115U, 4167531356U,
219 4020189950U, 4261855038U, 3036907575U, 3410399885U, 3076395737U,
220 1046178638U, 144496770U, 230725846U, 3349637149U, 17065717U,
221 2809932048U, 2054581785U, 3608424964U, 3259628808U, 134897388U,
222 3743067463U, 257685904U, 3795656590U, 1562468719U, 3589103904U,
223 3120404710U, 254684547U, 2653661580U, 3663904795U, 2631942758U,
224 1063234347U, 2609732900U, 2332080715U, 3521125233U, 1180599599U,
225 1935868586U, 4110970440U, 296706371U, 2128666368U, 1319875791U,
226 1570900197U, 3096025483U, 1799882517U, 1928302007U, 1163707758U,
227 1244491489U, 3533770203U, 567496053U, 2757924305U, 2781639343U,
228 2818420107U, 560404889U, 2619609724U, 4176035430U, 2511289753U,
229 2521842019U, 3910553502U, 2926149387U, 3302078172U, 4237118867U,
230 330725126U, 367400677U, 888239854U, 545570454U, 4259590525U,
231 134343617U, 1102169784U, 1647463719U, 3260979784U, 1518840883U,
232 3631537963U, 3342671457U, 1301549147U, 2083739356U, 146593792U,
233 3217959080U, 652755743U, 2032187193U, 3898758414U, 1021358093U,
234 4037409230U, 2176407931U, 3427391950U, 2883553603U, 985613827U,
235 3105265092U, 3423168427U, 3387507672U, 467170288U, 2141266163U,
236 3723870208U, 916410914U, 1293987799U, 2652584950U, 769160137U,
237 3205292896U, 1561287359U, 1684510084U, 3136055621U, 3765171391U,
238 639683232U, 2639569327U, 1218546948U, 4263586685U, 3058215773U,
239 2352279820U, 401870217U, 2625822463U, 1529125296U, 2981801895U,
240 1191285226U, 4027725437U, 3432700217U, 4098835661U, 971182783U,
241 2443861173U, 3881457123U, 3874386651U, 457276199U, 2638294160U,
242 4002809368U, 421169044U, 1112642589U, 3076213779U, 3387033971U,
243 2499610950U, 3057240914U, 1662679783U, 461224431U, 1168395933U
244 };
245 static const uint32_t init_by_array_32_expected[] = {
246 2920711183U, 3885745737U, 3501893680U, 856470934U, 1421864068U,
247 277361036U, 1518638004U, 2328404353U, 3355513634U, 64329189U,
248 1624587673U, 3508467182U, 2481792141U, 3706480799U, 1925859037U,
249 2913275699U, 882658412U, 384641219U, 422202002U, 1873384891U,
250 2006084383U, 3924929912U, 1636718106U, 3108838742U, 1245465724U,
251 4195470535U, 779207191U, 1577721373U, 1390469554U, 2928648150U,
252 121399709U, 3170839019U, 4044347501U, 953953814U, 3821710850U,
253 3085591323U, 3666535579U, 3577837737U, 2012008410U, 3565417471U,
254 4044408017U, 433600965U, 1637785608U, 1798509764U, 860770589U,
255 3081466273U, 3982393409U, 2451928325U, 3437124742U, 4093828739U,
256 3357389386U, 2154596123U, 496568176U, 2650035164U, 2472361850U,
257 3438299U, 2150366101U, 1577256676U, 3802546413U, 1787774626U,
258 4078331588U, 3706103141U, 170391138U, 3806085154U, 1680970100U,
259 1961637521U, 3316029766U, 890610272U, 1453751581U, 1430283664U,
260 3051057411U, 3597003186U, 542563954U, 3796490244U, 1690016688U,
261 3448752238U, 440702173U, 347290497U, 1121336647U, 2540588620U,
262 280881896U, 2495136428U, 213707396U, 15104824U, 2946180358U,
263 659000016U, 566379385U, 2614030979U, 2855760170U, 334526548U,
264 2315569495U, 2729518615U, 564745877U, 1263517638U, 3157185798U,
265 1604852056U, 1011639885U, 2950579535U, 2524219188U, 312951012U,
266 1528896652U, 1327861054U, 2846910138U, 3966855905U, 2536721582U,
267 855353911U, 1685434729U, 3303978929U, 1624872055U, 4020329649U,
268 3164802143U, 1642802700U, 1957727869U, 1792352426U, 3334618929U,
269 2631577923U, 3027156164U, 842334259U, 3353446843U, 1226432104U,
270 1742801369U, 3552852535U, 3471698828U, 1653910186U, 3380330939U,
271 2313782701U, 3351007196U, 2129839995U, 1800682418U, 4085884420U,
272 1625156629U, 3669701987U, 615211810U, 3294791649U, 4131143784U,
273 2590843588U, 3207422808U, 3275066464U, 561592872U, 3957205738U,
274 3396578098U, 48410678U, 3505556445U, 1005764855U, 3920606528U,
275 2936980473U, 2378918600U, 2404449845U, 1649515163U, 701203563U,
276 3705256349U, 83714199U, 3586854132U, 922978446U, 2863406304U,
277 3523398907U, 2606864832U, 2385399361U, 3171757816U, 4262841009U,
278 3645837721U, 1169579486U, 3666433897U, 3174689479U, 1457866976U,
279 3803895110U, 3346639145U, 1907224409U, 1978473712U, 1036712794U,
280 980754888U, 1302782359U, 1765252468U, 459245755U, 3728923860U,
281 1512894209U, 2046491914U, 207860527U, 514188684U, 2288713615U,
282 1597354672U, 3349636117U, 2357291114U, 3995796221U, 945364213U,
283 1893326518U, 3770814016U, 1691552714U, 2397527410U, 967486361U,
284 776416472U, 4197661421U, 951150819U, 1852770983U, 4044624181U,
285 1399439738U, 4194455275U, 2284037669U, 1550734958U, 3321078108U,
286 1865235926U, 2912129961U, 2664980877U, 1357572033U, 2600196436U,
287 2486728200U, 2372668724U, 1567316966U, 2374111491U, 1839843570U,
288 20815612U, 3727008608U, 3871996229U, 824061249U, 1932503978U,
289 3404541726U, 758428924U, 2609331364U, 1223966026U, 1299179808U,
290 648499352U, 2180134401U, 880821170U, 3781130950U, 113491270U,
291 1032413764U, 4185884695U, 2490396037U, 1201932817U, 4060951446U,
292 4165586898U, 1629813212U, 2887821158U, 415045333U, 628926856U,
293 2193466079U, 3391843445U, 2227540681U, 1907099846U, 2848448395U,
294 1717828221U, 1372704537U, 1707549841U, 2294058813U, 2101214437U,
295 2052479531U, 1695809164U, 3176587306U, 2632770465U, 81634404U,
296 1603220563U, 644238487U, 302857763U, 897352968U, 2613146653U,
297 1391730149U, 4245717312U, 4191828749U, 1948492526U, 2618174230U,
298 3992984522U, 2178852787U, 3596044509U, 3445573503U, 2026614616U,
299 915763564U, 3415689334U, 2532153403U, 3879661562U, 2215027417U,
300 3111154986U, 2929478371U, 668346391U, 1152241381U, 2632029711U,
301 3004150659U, 2135025926U, 948690501U, 2799119116U, 4228829406U,
302 1981197489U, 4209064138U, 684318751U, 3459397845U, 201790843U,
303 4022541136U, 3043635877U, 492509624U, 3263466772U, 1509148086U,
304 921459029U, 3198857146U, 705479721U, 3835966910U, 3603356465U,
305 576159741U, 1742849431U, 594214882U, 2055294343U, 3634861861U,
306 449571793U, 3246390646U, 3868232151U, 1479156585U, 2900125656U,
307 2464815318U, 3960178104U, 1784261920U, 18311476U, 3627135050U,
308 644609697U, 424968996U, 919890700U, 2986824110U, 816423214U,
309 4003562844U, 1392714305U, 1757384428U, 2569030598U, 995949559U,
310 3875659880U, 2933807823U, 2752536860U, 2993858466U, 4030558899U,
311 2770783427U, 2775406005U, 2777781742U, 1931292655U, 472147933U,
312 3865853827U, 2726470545U, 2668412860U, 2887008249U, 408979190U,
313 3578063323U, 3242082049U, 1778193530U, 27981909U, 2362826515U,
314 389875677U, 1043878156U, 581653903U, 3830568952U, 389535942U,
315 3713523185U, 2768373359U, 2526101582U, 1998618197U, 1160859704U,
316 3951172488U, 1098005003U, 906275699U, 3446228002U, 2220677963U,
317 2059306445U, 132199571U, 476838790U, 1868039399U, 3097344807U,
318 857300945U, 396345050U, 2835919916U, 1782168828U, 1419519470U,
319 4288137521U, 819087232U, 596301494U, 872823172U, 1526888217U,
320 805161465U, 1116186205U, 2829002754U, 2352620120U, 620121516U,
321 354159268U, 3601949785U, 209568138U, 1352371732U, 2145977349U,
322 4236871834U, 1539414078U, 3558126206U, 3224857093U, 4164166682U,
323 3817553440U, 3301780278U, 2682696837U, 3734994768U, 1370950260U,
324 1477421202U, 2521315749U, 1330148125U, 1261554731U, 2769143688U,
325 3554756293U, 4235882678U, 3254686059U, 3530579953U, 1215452615U,
326 3574970923U, 4057131421U, 589224178U, 1000098193U, 171190718U,
327 2521852045U, 2351447494U, 2284441580U, 2646685513U, 3486933563U,
328 3789864960U, 1190528160U, 1702536782U, 1534105589U, 4262946827U,
329 2726686826U, 3584544841U, 2348270128U, 2145092281U, 2502718509U,
330 1027832411U, 3571171153U, 1287361161U, 4011474411U, 3241215351U,
331 2419700818U, 971242709U, 1361975763U, 1096842482U, 3271045537U,
332 81165449U, 612438025U, 3912966678U, 1356929810U, 733545735U,
333 537003843U, 1282953084U, 884458241U, 588930090U, 3930269801U,
334 2961472450U, 1219535534U, 3632251943U, 268183903U, 1441240533U,
335 3653903360U, 3854473319U, 2259087390U, 2548293048U, 2022641195U,
336 2105543911U, 1764085217U, 3246183186U, 482438805U, 888317895U,
337 2628314765U, 2466219854U, 717546004U, 2322237039U, 416725234U,
338 1544049923U, 1797944973U, 3398652364U, 3111909456U, 485742908U,
339 2277491072U, 1056355088U, 3181001278U, 129695079U, 2693624550U,
340 1764438564U, 3797785470U, 195503713U, 3266519725U, 2053389444U,
341 1961527818U, 3400226523U, 3777903038U, 2597274307U, 4235851091U,
342 4094406648U, 2171410785U, 1781151386U, 1378577117U, 654643266U,
343 3424024173U, 3385813322U, 679385799U, 479380913U, 681715441U,
344 3096225905U, 276813409U, 3854398070U, 2721105350U, 831263315U,
345 3276280337U, 2628301522U, 3984868494U, 1466099834U, 2104922114U,
346 1412672743U, 820330404U, 3491501010U, 942735832U, 710652807U,
347 3972652090U, 679881088U, 40577009U, 3705286397U, 2815423480U,
348 3566262429U, 663396513U, 3777887429U, 4016670678U, 404539370U,
349 1142712925U, 1140173408U, 2913248352U, 2872321286U, 263751841U,
350 3175196073U, 3162557581U, 2878996619U, 75498548U, 3836833140U,
351 3284664959U, 1157523805U, 112847376U, 207855609U, 1337979698U,
352 1222578451U, 157107174U, 901174378U, 3883717063U, 1618632639U,
353 1767889440U, 4264698824U, 1582999313U, 884471997U, 2508825098U,
354 3756370771U, 2457213553U, 3565776881U, 3709583214U, 915609601U,
355 460833524U, 1091049576U, 85522880U, 2553251U, 132102809U,
356 2429882442U, 2562084610U, 1386507633U, 4112471229U, 21965213U,
357 1981516006U, 2418435617U, 3054872091U, 4251511224U, 2025783543U,
358 1916911512U, 2454491136U, 3938440891U, 3825869115U, 1121698605U,
359 3463052265U, 802340101U, 1912886800U, 4031997367U, 3550640406U,
360 1596096923U, 610150600U, 431464457U, 2541325046U, 486478003U,
361 739704936U, 2862696430U, 3037903166U, 1129749694U, 2611481261U,
362 1228993498U, 510075548U, 3424962587U, 2458689681U, 818934833U,
363 4233309125U, 1608196251U, 3419476016U, 1858543939U, 2682166524U,
364 3317854285U, 631986188U, 3008214764U, 613826412U, 3567358221U,
365 3512343882U, 1552467474U, 3316162670U, 1275841024U, 4142173454U,
366 565267881U, 768644821U, 198310105U, 2396688616U, 1837659011U,
367 203429334U, 854539004U, 4235811518U, 3338304926U, 3730418692U,
368 3852254981U, 3032046452U, 2329811860U, 2303590566U, 2696092212U,
369 3894665932U, 145835667U, 249563655U, 1932210840U, 2431696407U,
370 3312636759U, 214962629U, 2092026914U, 3020145527U, 4073039873U,
371 2739105705U, 1308336752U, 855104522U, 2391715321U, 67448785U,
372 547989482U, 854411802U, 3608633740U, 431731530U, 537375589U,
373 3888005760U, 696099141U, 397343236U, 1864511780U, 44029739U,
374 1729526891U, 1993398655U, 2010173426U, 2591546756U, 275223291U,
375 1503900299U, 4217765081U, 2185635252U, 1122436015U, 3550155364U,
376 681707194U, 3260479338U, 933579397U, 2983029282U, 2505504587U,
377 2667410393U, 2962684490U, 4139721708U, 2658172284U, 2452602383U,
378 2607631612U, 1344296217U, 3075398709U, 2949785295U, 1049956168U,
379 3917185129U, 2155660174U, 3280524475U, 1503827867U, 674380765U,
380 1918468193U, 3843983676U, 634358221U, 2538335643U, 1873351298U,
381 3368723763U, 2129144130U, 3203528633U, 3087174986U, 2691698871U,
382 2516284287U, 24437745U, 1118381474U, 2816314867U, 2448576035U,
383 4281989654U, 217287825U, 165872888U, 2628995722U, 3533525116U,
384 2721669106U, 872340568U, 3429930655U, 3309047304U, 3916704967U,
385 3270160355U, 1348884255U, 1634797670U, 881214967U, 4259633554U,
386 174613027U, 1103974314U, 1625224232U, 2678368291U, 1133866707U,
387 3853082619U, 4073196549U, 1189620777U, 637238656U, 930241537U,
388 4042750792U, 3842136042U, 2417007212U, 2524907510U, 1243036827U,
389 1282059441U, 3764588774U, 1394459615U, 2323620015U, 1166152231U,
390 3307479609U, 3849322257U, 3507445699U, 4247696636U, 758393720U,
391 967665141U, 1095244571U, 1319812152U, 407678762U, 2640605208U,
392 2170766134U, 3663594275U, 4039329364U, 2512175520U, 725523154U,
393 2249807004U, 3312617979U, 2414634172U, 1278482215U, 349206484U,
394 1573063308U, 1196429124U, 3873264116U, 2400067801U, 268795167U,
395 226175489U, 2961367263U, 1968719665U, 42656370U, 1010790699U,
396 561600615U, 2422453992U, 3082197735U, 1636700484U, 3977715296U,
397 3125350482U, 3478021514U, 2227819446U, 1540868045U, 3061908980U,
398 1087362407U, 3625200291U, 361937537U, 580441897U, 1520043666U,
399 2270875402U, 1009161260U, 2502355842U, 4278769785U, 473902412U,
400 1057239083U, 1905829039U, 1483781177U, 2080011417U, 1207494246U,
401 1806991954U, 2194674403U, 3455972205U, 807207678U, 3655655687U,
402 674112918U, 195425752U, 3917890095U, 1874364234U, 1837892715U,
403 3663478166U, 1548892014U, 2570748714U, 2049929836U, 2167029704U,
404 697543767U, 3499545023U, 3342496315U, 1725251190U, 3561387469U,
405 2905606616U, 1580182447U, 3934525927U, 4103172792U, 1365672522U,
406 1534795737U, 3308667416U, 2841911405U, 3943182730U, 4072020313U,
407 3494770452U, 3332626671U, 55327267U, 478030603U, 411080625U,
408 3419529010U, 1604767823U, 3513468014U, 570668510U, 913790824U,
409 2283967995U, 695159462U, 3825542932U, 4150698144U, 1829758699U,
410 202895590U, 1609122645U, 1267651008U, 2910315509U, 2511475445U,
411 2477423819U, 3932081579U, 900879979U, 2145588390U, 2670007504U,
412 580819444U, 1864996828U, 2526325979U, 1019124258U, 815508628U,
413 2765933989U, 1277301341U, 3006021786U, 855540956U, 288025710U,
414 1919594237U, 2331223864U, 177452412U, 2475870369U, 2689291749U,
415 865194284U, 253432152U, 2628531804U, 2861208555U, 2361597573U,
416 1653952120U, 1039661024U, 2159959078U, 3709040440U, 3564718533U,
417 2596878672U, 2041442161U, 31164696U, 2662962485U, 3665637339U,
418 1678115244U, 2699839832U, 3651968520U, 3521595541U, 458433303U,
419 2423096824U, 21831741U, 380011703U, 2498168716U, 861806087U,
420 1673574843U, 4188794405U, 2520563651U, 2632279153U, 2170465525U,
421 4171949898U, 3886039621U, 1661344005U, 3424285243U, 992588372U,
422 2500984144U, 2993248497U, 3590193895U, 1535327365U, 515645636U,
423 131633450U, 3729760261U, 1613045101U, 3254194278U, 15889678U,
424 1493590689U, 244148718U, 2991472662U, 1401629333U, 777349878U,
425 2501401703U, 4285518317U, 3794656178U, 955526526U, 3442142820U,
426 3970298374U, 736025417U, 2737370764U, 1271509744U, 440570731U,
427 136141826U, 1596189518U, 923399175U, 257541519U, 3505774281U,
428 2194358432U, 2518162991U, 1379893637U, 2667767062U, 3748146247U,
429 1821712620U, 3923161384U, 1947811444U, 2392527197U, 4127419685U,
430 1423694998U, 4156576871U, 1382885582U, 3420127279U, 3617499534U,
431 2994377493U, 4038063986U, 1918458672U, 2983166794U, 4200449033U,
432 353294540U, 1609232588U, 243926648U, 2332803291U, 507996832U,
433 2392838793U, 4075145196U, 2060984340U, 4287475136U, 88232602U,
434 2491531140U, 4159725633U, 2272075455U, 759298618U, 201384554U,
435 838356250U, 1416268324U, 674476934U, 90795364U, 141672229U,
436 3660399588U, 4196417251U, 3249270244U, 3774530247U, 59587265U,
437 3683164208U, 19392575U, 1463123697U, 1882205379U, 293780489U,
438 2553160622U, 2933904694U, 675638239U, 2851336944U, 1435238743U,
439 2448730183U, 804436302U, 2119845972U, 322560608U, 4097732704U,
440 2987802540U, 641492617U, 2575442710U, 4217822703U, 3271835300U,
441 2836418300U, 3739921620U, 2138378768U, 2879771855U, 4294903423U,
442 3121097946U, 2603440486U, 2560820391U, 1012930944U, 2313499967U,
443 584489368U, 3431165766U, 897384869U, 2062537737U, 2847889234U,
444 3742362450U, 2951174585U, 4204621084U, 1109373893U, 3668075775U,
445 2750138839U, 3518055702U, 733072558U, 4169325400U, 788493625U
446 };
447 static const uint64_t init_gen_rand_64_expected[] = {
448 KQU(16924766246869039260), KQU( 8201438687333352714),
449 KQU( 2265290287015001750), KQU(18397264611805473832),
450 KQU( 3375255223302384358), KQU( 6345559975416828796),
451 KQU(18229739242790328073), KQU( 7596792742098800905),
452 KQU( 255338647169685981), KQU( 2052747240048610300),
453 KQU(18328151576097299343), KQU(12472905421133796567),
454 KQU(11315245349717600863), KQU(16594110197775871209),
455 KQU(15708751964632456450), KQU(10452031272054632535),
456 KQU(11097646720811454386), KQU( 4556090668445745441),
457 KQU(17116187693090663106), KQU(14931526836144510645),
458 KQU( 9190752218020552591), KQU( 9625800285771901401),
459 KQU(13995141077659972832), KQU( 5194209094927829625),
460 KQU( 4156788379151063303), KQU( 8523452593770139494),
461 KQU(14082382103049296727), KQU( 2462601863986088483),
462 KQU( 3030583461592840678), KQU( 5221622077872827681),
463 KQU( 3084210671228981236), KQU(13956758381389953823),
464 KQU(13503889856213423831), KQU(15696904024189836170),
465 KQU( 4612584152877036206), KQU( 6231135538447867881),
466 KQU(10172457294158869468), KQU( 6452258628466708150),
467 KQU(14044432824917330221), KQU( 370168364480044279),
468 KQU(10102144686427193359), KQU( 667870489994776076),
469 KQU( 2732271956925885858), KQU(18027788905977284151),
470 KQU(15009842788582923859), KQU( 7136357960180199542),
471 KQU(15901736243475578127), KQU(16951293785352615701),
472 KQU(10551492125243691632), KQU(17668869969146434804),
473 KQU(13646002971174390445), KQU( 9804471050759613248),
474 KQU( 5511670439655935493), KQU(18103342091070400926),
475 KQU(17224512747665137533), KQU(15534627482992618168),
476 KQU( 1423813266186582647), KQU(15821176807932930024),
477 KQU( 30323369733607156), KQU(11599382494723479403),
478 KQU( 653856076586810062), KQU( 3176437395144899659),
479 KQU(14028076268147963917), KQU(16156398271809666195),
480 KQU( 3166955484848201676), KQU( 5746805620136919390),
481 KQU(17297845208891256593), KQU(11691653183226428483),
482 KQU(17900026146506981577), KQU(15387382115755971042),
483 KQU(16923567681040845943), KQU( 8039057517199388606),
484 KQU(11748409241468629263), KQU( 794358245539076095),
485 KQU(13438501964693401242), KQU(14036803236515618962),
486 KQU( 5252311215205424721), KQU(17806589612915509081),
487 KQU( 6802767092397596006), KQU(14212120431184557140),
488 KQU( 1072951366761385712), KQU(13098491780722836296),
489 KQU( 9466676828710797353), KQU(12673056849042830081),
490 KQU(12763726623645357580), KQU(16468961652999309493),
491 KQU(15305979875636438926), KQU(17444713151223449734),
492 KQU( 5692214267627883674), KQU(13049589139196151505),
493 KQU( 880115207831670745), KQU( 1776529075789695498),
494 KQU(16695225897801466485), KQU(10666901778795346845),
495 KQU( 6164389346722833869), KQU( 2863817793264300475),
496 KQU( 9464049921886304754), KQU( 3993566636740015468),
497 KQU( 9983749692528514136), KQU(16375286075057755211),
498 KQU(16042643417005440820), KQU(11445419662923489877),
499 KQU( 7999038846885158836), KQU( 6721913661721511535),
500 KQU( 5363052654139357320), KQU( 1817788761173584205),
501 KQU(13290974386445856444), KQU( 4650350818937984680),
502 KQU( 8219183528102484836), KQU( 1569862923500819899),
503 KQU( 4189359732136641860), KQU(14202822961683148583),
504 KQU( 4457498315309429058), KQU(13089067387019074834),
505 KQU(11075517153328927293), KQU(10277016248336668389),
506 KQU( 7070509725324401122), KQU(17808892017780289380),
507 KQU(13143367339909287349), KQU( 1377743745360085151),
508 KQU( 5749341807421286485), KQU(14832814616770931325),
509 KQU( 7688820635324359492), KQU(10960474011539770045),
510 KQU( 81970066653179790), KQU(12619476072607878022),
511 KQU( 4419566616271201744), KQU(15147917311750568503),
512 KQU( 5549739182852706345), KQU( 7308198397975204770),
513 KQU(13580425496671289278), KQU(17070764785210130301),
514 KQU( 8202832846285604405), KQU( 6873046287640887249),
515 KQU( 6927424434308206114), KQU( 6139014645937224874),
516 KQU(10290373645978487639), KQU(15904261291701523804),
517 KQU( 9628743442057826883), KQU(18383429096255546714),
518 KQU( 4977413265753686967), KQU( 7714317492425012869),
519 KQU( 9025232586309926193), KQU(14627338359776709107),
520 KQU(14759849896467790763), KQU(10931129435864423252),
521 KQU( 4588456988775014359), KQU(10699388531797056724),
522 KQU( 468652268869238792), KQU( 5755943035328078086),
523 KQU( 2102437379988580216), KQU( 9986312786506674028),
524 KQU( 2654207180040945604), KQU( 8726634790559960062),
525 KQU( 100497234871808137), KQU( 2800137176951425819),
526 KQU( 6076627612918553487), KQU( 5780186919186152796),
527 KQU( 8179183595769929098), KQU( 6009426283716221169),
528 KQU( 2796662551397449358), KQU( 1756961367041986764),
529 KQU( 6972897917355606205), KQU(14524774345368968243),
530 KQU( 2773529684745706940), KQU( 4853632376213075959),
531 KQU( 4198177923731358102), KQU( 8271224913084139776),
532 KQU( 2741753121611092226), KQU(16782366145996731181),
533 KQU(15426125238972640790), KQU(13595497100671260342),
534 KQU( 3173531022836259898), KQU( 6573264560319511662),
535 KQU(18041111951511157441), KQU( 2351433581833135952),
536 KQU( 3113255578908173487), KQU( 1739371330877858784),
537 KQU(16046126562789165480), KQU( 8072101652214192925),
538 KQU(15267091584090664910), KQU( 9309579200403648940),
539 KQU( 5218892439752408722), KQU(14492477246004337115),
540 KQU(17431037586679770619), KQU( 7385248135963250480),
541 KQU( 9580144956565560660), KQU( 4919546228040008720),
542 KQU(15261542469145035584), KQU(18233297270822253102),
543 KQU( 5453248417992302857), KQU( 9309519155931460285),
544 KQU(10342813012345291756), KQU(15676085186784762381),
545 KQU(15912092950691300645), KQU( 9371053121499003195),
546 KQU( 9897186478226866746), KQU(14061858287188196327),
547 KQU( 122575971620788119), KQU(12146750969116317754),
548 KQU( 4438317272813245201), KQU( 8332576791009527119),
549 KQU(13907785691786542057), KQU(10374194887283287467),
550 KQU( 2098798755649059566), KQU( 3416235197748288894),
551 KQU( 8688269957320773484), KQU( 7503964602397371571),
552 KQU(16724977015147478236), KQU( 9461512855439858184),
553 KQU(13259049744534534727), KQU( 3583094952542899294),
554 KQU( 8764245731305528292), KQU(13240823595462088985),
555 KQU(13716141617617910448), KQU(18114969519935960955),
556 KQU( 2297553615798302206), KQU( 4585521442944663362),
557 KQU(17776858680630198686), KQU( 4685873229192163363),
558 KQU( 152558080671135627), KQU(15424900540842670088),
559 KQU(13229630297130024108), KQU(17530268788245718717),
560 KQU(16675633913065714144), KQU( 3158912717897568068),
561 KQU(15399132185380087288), KQU( 7401418744515677872),
562 KQU(13135412922344398535), KQU( 6385314346100509511),
563 KQU(13962867001134161139), KQU(10272780155442671999),
564 KQU(12894856086597769142), KQU(13340877795287554994),
565 KQU(12913630602094607396), KQU(12543167911119793857),
566 KQU(17343570372251873096), KQU(10959487764494150545),
567 KQU( 6966737953093821128), KQU(13780699135496988601),
568 KQU( 4405070719380142046), KQU(14923788365607284982),
569 KQU( 2869487678905148380), KQU( 6416272754197188403),
570 KQU(15017380475943612591), KQU( 1995636220918429487),
571 KQU( 3402016804620122716), KQU(15800188663407057080),
572 KQU(11362369990390932882), KQU(15262183501637986147),
573 KQU(10239175385387371494), KQU( 9352042420365748334),
574 KQU( 1682457034285119875), KQU( 1724710651376289644),
575 KQU( 2038157098893817966), KQU( 9897825558324608773),
576 KQU( 1477666236519164736), KQU(16835397314511233640),
577 KQU(10370866327005346508), KQU(10157504370660621982),
578 KQU(12113904045335882069), KQU(13326444439742783008),
579 KQU(11302769043000765804), KQU(13594979923955228484),
580 KQU(11779351762613475968), KQU( 3786101619539298383),
581 KQU( 8021122969180846063), KQU(15745904401162500495),
582 KQU(10762168465993897267), KQU(13552058957896319026),
583 KQU(11200228655252462013), KQU( 5035370357337441226),
584 KQU( 7593918984545500013), KQU( 5418554918361528700),
585 KQU( 4858270799405446371), KQU( 9974659566876282544),
586 KQU(18227595922273957859), KQU( 2772778443635656220),
587 KQU(14285143053182085385), KQU( 9939700992429600469),
588 KQU(12756185904545598068), KQU( 2020783375367345262),
589 KQU( 57026775058331227), KQU( 950827867930065454),
590 KQU( 6602279670145371217), KQU( 2291171535443566929),
591 KQU( 5832380724425010313), KQU( 1220343904715982285),
592 KQU(17045542598598037633), KQU(15460481779702820971),
593 KQU(13948388779949365130), KQU(13975040175430829518),
594 KQU(17477538238425541763), KQU(11104663041851745725),
595 KQU(15860992957141157587), KQU(14529434633012950138),
596 KQU( 2504838019075394203), KQU( 7512113882611121886),
597 KQU( 4859973559980886617), KQU( 1258601555703250219),
598 KQU(15594548157514316394), KQU( 4516730171963773048),
599 KQU(11380103193905031983), KQU( 6809282239982353344),
600 KQU(18045256930420065002), KQU( 2453702683108791859),
601 KQU( 977214582986981460), KQU( 2006410402232713466),
602 KQU( 6192236267216378358), KQU( 3429468402195675253),
603 KQU(18146933153017348921), KQU(17369978576367231139),
604 KQU( 1246940717230386603), KQU(11335758870083327110),
605 KQU(14166488801730353682), KQU( 9008573127269635732),
606 KQU(10776025389820643815), KQU(15087605441903942962),
607 KQU( 1359542462712147922), KQU(13898874411226454206),
608 KQU(17911176066536804411), KQU( 9435590428600085274),
609 KQU( 294488509967864007), KQU( 8890111397567922046),
610 KQU( 7987823476034328778), KQU(13263827582440967651),
611 KQU( 7503774813106751573), KQU(14974747296185646837),
612 KQU( 8504765037032103375), KQU(17340303357444536213),
613 KQU( 7704610912964485743), KQU( 8107533670327205061),
614 KQU( 9062969835083315985), KQU(16968963142126734184),
615 KQU(12958041214190810180), KQU( 2720170147759570200),
616 KQU( 2986358963942189566), KQU(14884226322219356580),
617 KQU( 286224325144368520), KQU(11313800433154279797),
618 KQU(18366849528439673248), KQU(17899725929482368789),
619 KQU( 3730004284609106799), KQU( 1654474302052767205),
620 KQU( 5006698007047077032), KQU( 8196893913601182838),
621 KQU(15214541774425211640), KQU(17391346045606626073),
622 KQU( 8369003584076969089), KQU( 3939046733368550293),
623 KQU(10178639720308707785), KQU( 2180248669304388697),
624 KQU( 62894391300126322), KQU( 9205708961736223191),
625 KQU( 6837431058165360438), KQU( 3150743890848308214),
626 KQU(17849330658111464583), KQU(12214815643135450865),
627 KQU(13410713840519603402), KQU( 3200778126692046802),
628 KQU(13354780043041779313), KQU( 800850022756886036),
629 KQU(15660052933953067433), KQU( 6572823544154375676),
630 KQU(11030281857015819266), KQU(12682241941471433835),
631 KQU(11654136407300274693), KQU( 4517795492388641109),
632 KQU( 9757017371504524244), KQU(17833043400781889277),
633 KQU(12685085201747792227), KQU(10408057728835019573),
634 KQU( 98370418513455221), KQU( 6732663555696848598),
635 KQU(13248530959948529780), KQU( 3530441401230622826),
636 KQU(18188251992895660615), KQU( 1847918354186383756),
637 KQU( 1127392190402660921), KQU(11293734643143819463),
638 KQU( 3015506344578682982), KQU(13852645444071153329),
639 KQU( 2121359659091349142), KQU( 1294604376116677694),
640 KQU( 5616576231286352318), KQU( 7112502442954235625),
641 KQU(11676228199551561689), KQU(12925182803007305359),
642 KQU( 7852375518160493082), KQU( 1136513130539296154),
643 KQU( 5636923900916593195), KQU( 3221077517612607747),
644 KQU(17784790465798152513), KQU( 3554210049056995938),
645 KQU(17476839685878225874), KQU( 3206836372585575732),
646 KQU( 2765333945644823430), KQU(10080070903718799528),
647 KQU( 5412370818878286353), KQU( 9689685887726257728),
648 KQU( 8236117509123533998), KQU( 1951139137165040214),
649 KQU( 4492205209227980349), KQU(16541291230861602967),
650 KQU( 1424371548301437940), KQU( 9117562079669206794),
651 KQU(14374681563251691625), KQU(13873164030199921303),
652 KQU( 6680317946770936731), KQU(15586334026918276214),
653 KQU(10896213950976109802), KQU( 9506261949596413689),
654 KQU( 9903949574308040616), KQU( 6038397344557204470),
655 KQU( 174601465422373648), KQU(15946141191338238030),
656 KQU(17142225620992044937), KQU( 7552030283784477064),
657 KQU( 2947372384532947997), KQU( 510797021688197711),
658 KQU( 4962499439249363461), KQU( 23770320158385357),
659 KQU( 959774499105138124), KQU( 1468396011518788276),
660 KQU( 2015698006852312308), KQU( 4149400718489980136),
661 KQU( 5992916099522371188), KQU(10819182935265531076),
662 KQU(16189787999192351131), KQU( 342833961790261950),
663 KQU(12470830319550495336), KQU(18128495041912812501),
664 KQU( 1193600899723524337), KQU( 9056793666590079770),
665 KQU( 2154021227041669041), KQU( 4963570213951235735),
666 KQU( 4865075960209211409), KQU( 2097724599039942963),
667 KQU( 2024080278583179845), KQU(11527054549196576736),
668 KQU(10650256084182390252), KQU( 4808408648695766755),
669 KQU( 1642839215013788844), KQU(10607187948250398390),
670 KQU( 7076868166085913508), KQU( 730522571106887032),
671 KQU(12500579240208524895), KQU( 4484390097311355324),
672 KQU(15145801330700623870), KQU( 8055827661392944028),
673 KQU( 5865092976832712268), KQU(15159212508053625143),
674 KQU( 3560964582876483341), KQU( 4070052741344438280),
675 KQU( 6032585709886855634), KQU(15643262320904604873),
676 KQU( 2565119772293371111), KQU( 318314293065348260),
677 KQU(15047458749141511872), KQU( 7772788389811528730),
678 KQU( 7081187494343801976), KQU( 6465136009467253947),
679 KQU(10425940692543362069), KQU( 554608190318339115),
680 KQU(14796699860302125214), KQU( 1638153134431111443),
681 KQU(10336967447052276248), KQU( 8412308070396592958),
682 KQU( 4004557277152051226), KQU( 8143598997278774834),
683 KQU(16413323996508783221), KQU(13139418758033994949),
684 KQU( 9772709138335006667), KQU( 2818167159287157659),
685 KQU(17091740573832523669), KQU(14629199013130751608),
686 KQU(18268322711500338185), KQU( 8290963415675493063),
687 KQU( 8830864907452542588), KQU( 1614839084637494849),
688 KQU(14855358500870422231), KQU( 3472996748392519937),
689 KQU(15317151166268877716), KQU( 5825895018698400362),
690 KQU(16730208429367544129), KQU(10481156578141202800),
691 KQU( 4746166512382823750), KQU(12720876014472464998),
692 KQU( 8825177124486735972), KQU(13733447296837467838),
693 KQU( 6412293741681359625), KQU( 8313213138756135033),
694 KQU(11421481194803712517), KQU( 7997007691544174032),
695 KQU( 6812963847917605930), KQU( 9683091901227558641),
696 KQU(14703594165860324713), KQU( 1775476144519618309),
697 KQU( 2724283288516469519), KQU( 717642555185856868),
698 KQU( 8736402192215092346), KQU(11878800336431381021),
699 KQU( 4348816066017061293), KQU( 6115112756583631307),
700 KQU( 9176597239667142976), KQU(12615622714894259204),
701 KQU(10283406711301385987), KQU( 5111762509485379420),
702 KQU( 3118290051198688449), KQU( 7345123071632232145),
703 KQU( 9176423451688682359), KQU( 4843865456157868971),
704 KQU(12008036363752566088), KQU(12058837181919397720),
705 KQU( 2145073958457347366), KQU( 1526504881672818067),
706 KQU( 3488830105567134848), KQU(13208362960674805143),
707 KQU( 4077549672899572192), KQU( 7770995684693818365),
708 KQU( 1398532341546313593), KQU(12711859908703927840),
709 KQU( 1417561172594446813), KQU(17045191024194170604),
710 KQU( 4101933177604931713), KQU(14708428834203480320),
711 KQU(17447509264469407724), KQU(14314821973983434255),
712 KQU(17990472271061617265), KQU( 5087756685841673942),
713 KQU(12797820586893859939), KQU( 1778128952671092879),
714 KQU( 3535918530508665898), KQU( 9035729701042481301),
715 KQU(14808661568277079962), KQU(14587345077537747914),
716 KQU(11920080002323122708), KQU( 6426515805197278753),
717 KQU( 3295612216725984831), KQU(11040722532100876120),
718 KQU(12305952936387598754), KQU(16097391899742004253),
719 KQU( 4908537335606182208), KQU(12446674552196795504),
720 KQU(16010497855816895177), KQU( 9194378874788615551),
721 KQU( 3382957529567613384), KQU( 5154647600754974077),
722 KQU( 9801822865328396141), KQU( 9023662173919288143),
723 KQU(17623115353825147868), KQU( 8238115767443015816),
724 KQU(15811444159859002560), KQU( 9085612528904059661),
725 KQU( 6888601089398614254), KQU( 258252992894160189),
726 KQU( 6704363880792428622), KQU( 6114966032147235763),
727 KQU(11075393882690261875), KQU( 8797664238933620407),
728 KQU( 5901892006476726920), KQU( 5309780159285518958),
729 KQU(14940808387240817367), KQU(14642032021449656698),
730 KQU( 9808256672068504139), KQU( 3670135111380607658),
731 KQU(11211211097845960152), KQU( 1474304506716695808),
732 KQU(15843166204506876239), KQU( 7661051252471780561),
733 KQU(10170905502249418476), KQU( 7801416045582028589),
734 KQU( 2763981484737053050), KQU( 9491377905499253054),
735 KQU(16201395896336915095), KQU( 9256513756442782198),
736 KQU( 5411283157972456034), KQU( 5059433122288321676),
737 KQU( 4327408006721123357), KQU( 9278544078834433377),
738 KQU( 7601527110882281612), KQU(11848295896975505251),
739 KQU(12096998801094735560), KQU(14773480339823506413),
740 KQU(15586227433895802149), KQU(12786541257830242872),
741 KQU( 6904692985140503067), KQU( 5309011515263103959),
742 KQU(12105257191179371066), KQU(14654380212442225037),
743 KQU( 2556774974190695009), KQU( 4461297399927600261),
744 KQU(14888225660915118646), KQU(14915459341148291824),
745 KQU( 2738802166252327631), KQU( 6047155789239131512),
746 KQU(12920545353217010338), KQU(10697617257007840205),
747 KQU( 2751585253158203504), KQU(13252729159780047496),
748 KQU(14700326134672815469), KQU(14082527904374600529),
749 KQU(16852962273496542070), KQU(17446675504235853907),
750 KQU(15019600398527572311), KQU(12312781346344081551),
751 KQU(14524667935039810450), KQU( 5634005663377195738),
752 KQU(11375574739525000569), KQU( 2423665396433260040),
753 KQU( 5222836914796015410), KQU( 4397666386492647387),
754 KQU( 4619294441691707638), KQU( 665088602354770716),
755 KQU(13246495665281593610), KQU( 6564144270549729409),
756 KQU(10223216188145661688), KQU( 3961556907299230585),
757 KQU(11543262515492439914), KQU(16118031437285993790),
758 KQU( 7143417964520166465), KQU(13295053515909486772),
759 KQU( 40434666004899675), KQU(17127804194038347164),
760 KQU( 8599165966560586269), KQU( 8214016749011284903),
761 KQU(13725130352140465239), KQU( 5467254474431726291),
762 KQU( 7748584297438219877), KQU(16933551114829772472),
763 KQU( 2169618439506799400), KQU( 2169787627665113463),
764 KQU(17314493571267943764), KQU(18053575102911354912),
765 KQU(11928303275378476973), KQU(11593850925061715550),
766 KQU(17782269923473589362), KQU( 3280235307704747039),
767 KQU( 6145343578598685149), KQU(17080117031114086090),
768 KQU(18066839902983594755), KQU( 6517508430331020706),
769 KQU( 8092908893950411541), KQU(12558378233386153732),
770 KQU( 4476532167973132976), KQU(16081642430367025016),
771 KQU( 4233154094369139361), KQU( 8693630486693161027),
772 KQU(11244959343027742285), KQU(12273503967768513508),
773 KQU(14108978636385284876), KQU( 7242414665378826984),
774 KQU( 6561316938846562432), KQU( 8601038474994665795),
775 KQU(17532942353612365904), KQU(17940076637020912186),
776 KQU( 7340260368823171304), KQU( 7061807613916067905),
777 KQU(10561734935039519326), KQU(17990796503724650862),
778 KQU( 6208732943911827159), KQU( 359077562804090617),
779 KQU(14177751537784403113), KQU(10659599444915362902),
780 KQU(15081727220615085833), KQU(13417573895659757486),
781 KQU(15513842342017811524), KQU(11814141516204288231),
782 KQU( 1827312513875101814), KQU( 2804611699894603103),
783 KQU(17116500469975602763), KQU(12270191815211952087),
784 KQU(12256358467786024988), KQU(18435021722453971267),
785 KQU( 671330264390865618), KQU( 476504300460286050),
786 KQU(16465470901027093441), KQU( 4047724406247136402),
787 KQU( 1322305451411883346), KQU( 1388308688834322280),
788 KQU( 7303989085269758176), KQU( 9323792664765233642),
789 KQU( 4542762575316368936), KQU(17342696132794337618),
790 KQU( 4588025054768498379), KQU(13415475057390330804),
791 KQU(17880279491733405570), KQU(10610553400618620353),
792 KQU( 3180842072658960139), KQU(13002966655454270120),
793 KQU( 1665301181064982826), KQU( 7083673946791258979),
794 KQU( 190522247122496820), KQU(17388280237250677740),
795 KQU( 8430770379923642945), KQU(12987180971921668584),
796 KQU( 2311086108365390642), KQU( 2870984383579822345),
797 KQU(14014682609164653318), KQU(14467187293062251484),
798 KQU( 192186361147413298), KQU(15171951713531796524),
799 KQU( 9900305495015948728), KQU(17958004775615466344),
800 KQU(14346380954498606514), KQU(18040047357617407096),
801 KQU( 5035237584833424532), KQU(15089555460613972287),
802 KQU( 4131411873749729831), KQU( 1329013581168250330),
803 KQU(10095353333051193949), KQU(10749518561022462716),
804 KQU( 9050611429810755847), KQU(15022028840236655649),
805 KQU( 8775554279239748298), KQU(13105754025489230502),
806 KQU(15471300118574167585), KQU( 89864764002355628),
807 KQU( 8776416323420466637), KQU( 5280258630612040891),
808 KQU( 2719174488591862912), KQU( 7599309137399661994),
809 KQU(15012887256778039979), KQU(14062981725630928925),
810 KQU(12038536286991689603), KQU( 7089756544681775245),
811 KQU(10376661532744718039), KQU( 1265198725901533130),
812 KQU(13807996727081142408), KQU( 2935019626765036403),
813 KQU( 7651672460680700141), KQU( 3644093016200370795),
814 KQU( 2840982578090080674), KQU(17956262740157449201),
815 KQU(18267979450492880548), KQU(11799503659796848070),
816 KQU( 9942537025669672388), KQU(11886606816406990297),
817 KQU( 5488594946437447576), KQU( 7226714353282744302),
818 KQU( 3784851653123877043), KQU( 878018453244803041),
819 KQU(12110022586268616085), KQU( 734072179404675123),
820 KQU(11869573627998248542), KQU( 469150421297783998),
821 KQU( 260151124912803804), KQU(11639179410120968649),
822 KQU( 9318165193840846253), KQU(12795671722734758075),
823 KQU(15318410297267253933), KQU( 691524703570062620),
824 KQU( 5837129010576994601), KQU(15045963859726941052),
825 KQU( 5850056944932238169), KQU(12017434144750943807),
826 KQU( 7447139064928956574), KQU( 3101711812658245019),
827 KQU(16052940704474982954), KQU(18195745945986994042),
828 KQU( 8932252132785575659), KQU(13390817488106794834),
829 KQU(11582771836502517453), KQU( 4964411326683611686),
830 KQU( 2195093981702694011), KQU(14145229538389675669),
831 KQU(16459605532062271798), KQU( 866316924816482864),
832 KQU( 4593041209937286377), KQU( 8415491391910972138),
833 KQU( 4171236715600528969), KQU(16637569303336782889),
834 KQU( 2002011073439212680), KQU(17695124661097601411),
835 KQU( 4627687053598611702), KQU( 7895831936020190403),
836 KQU( 8455951300917267802), KQU( 2923861649108534854),
837 KQU( 8344557563927786255), KQU( 6408671940373352556),
838 KQU(12210227354536675772), KQU(14294804157294222295),
839 KQU(10103022425071085127), KQU(10092959489504123771),
840 KQU( 6554774405376736268), KQU(12629917718410641774),
841 KQU( 6260933257596067126), KQU( 2460827021439369673),
842 KQU( 2541962996717103668), KQU( 597377203127351475),
843 KQU( 5316984203117315309), KQU( 4811211393563241961),
844 KQU(13119698597255811641), KQU( 8048691512862388981),
845 KQU(10216818971194073842), KQU( 4612229970165291764),
846 KQU(10000980798419974770), KQU( 6877640812402540687),
847 KQU( 1488727563290436992), KQU( 2227774069895697318),
848 KQU(11237754507523316593), KQU(13478948605382290972),
849 KQU( 1963583846976858124), KQU( 5512309205269276457),
850 KQU( 3972770164717652347), KQU( 3841751276198975037),
851 KQU(10283343042181903117), KQU( 8564001259792872199),
852 KQU(16472187244722489221), KQU( 8953493499268945921),
853 KQU( 3518747340357279580), KQU( 4003157546223963073),
854 KQU( 3270305958289814590), KQU( 3966704458129482496),
855 KQU( 8122141865926661939), KQU(14627734748099506653),
856 KQU(13064426990862560568), KQU( 2414079187889870829),
857 KQU( 5378461209354225306), KQU(10841985740128255566),
858 KQU( 538582442885401738), KQU( 7535089183482905946),
859 KQU(16117559957598879095), KQU( 8477890721414539741),
860 KQU( 1459127491209533386), KQU(17035126360733620462),
861 KQU( 8517668552872379126), KQU(10292151468337355014),
862 KQU(17081267732745344157), KQU(13751455337946087178),
863 KQU(14026945459523832966), KQU( 6653278775061723516),
864 KQU(10619085543856390441), KQU( 2196343631481122885),
865 KQU(10045966074702826136), KQU(10082317330452718282),
866 KQU( 5920859259504831242), KQU( 9951879073426540617),
867 KQU( 7074696649151414158), KQU(15808193543879464318),
868 KQU( 7385247772746953374), KQU( 3192003544283864292),
869 KQU(18153684490917593847), KQU(12423498260668568905),
870 KQU(10957758099756378169), KQU(11488762179911016040),
871 KQU( 2099931186465333782), KQU(11180979581250294432),
872 KQU( 8098916250668367933), KQU( 3529200436790763465),
873 KQU(12988418908674681745), KQU( 6147567275954808580),
874 KQU( 3207503344604030989), KQU(10761592604898615360),
875 KQU( 229854861031893504), KQU( 8809853962667144291),
876 KQU(13957364469005693860), KQU( 7634287665224495886),
877 KQU(12353487366976556874), KQU( 1134423796317152034),
878 KQU( 2088992471334107068), KQU( 7393372127190799698),
879 KQU( 1845367839871058391), KQU( 207922563987322884),
880 KQU(11960870813159944976), KQU(12182120053317317363),
881 KQU(17307358132571709283), KQU(13871081155552824936),
882 KQU(18304446751741566262), KQU( 7178705220184302849),
883 KQU(10929605677758824425), KQU(16446976977835806844),
884 KQU(13723874412159769044), KQU( 6942854352100915216),
885 KQU( 1726308474365729390), KQU( 2150078766445323155),
886 KQU(15345558947919656626), KQU(12145453828874527201),
887 KQU( 2054448620739726849), KQU( 2740102003352628137),
888 KQU(11294462163577610655), KQU( 756164283387413743),
889 KQU(17841144758438810880), KQU(10802406021185415861),
890 KQU( 8716455530476737846), KQU( 6321788834517649606),
891 KQU(14681322910577468426), KQU(17330043563884336387),
892 KQU(12701802180050071614), KQU(14695105111079727151),
893 KQU( 5112098511654172830), KQU( 4957505496794139973),
894 KQU( 8270979451952045982), KQU(12307685939199120969),
895 KQU(12425799408953443032), KQU( 8376410143634796588),
896 KQU(16621778679680060464), KQU( 3580497854566660073),
897 KQU( 1122515747803382416), KQU( 857664980960597599),
898 KQU( 6343640119895925918), KQU(12878473260854462891),
899 KQU(10036813920765722626), KQU(14451335468363173812),
900 KQU( 5476809692401102807), KQU(16442255173514366342),
901 KQU(13060203194757167104), KQU(14354124071243177715),
902 KQU(15961249405696125227), KQU(13703893649690872584),
903 KQU( 363907326340340064), KQU( 6247455540491754842),
904 KQU(12242249332757832361), KQU( 156065475679796717),
905 KQU( 9351116235749732355), KQU( 4590350628677701405),
906 KQU( 1671195940982350389), KQU(13501398458898451905),
907 KQU( 6526341991225002255), KQU( 1689782913778157592),
908 KQU( 7439222350869010334), KQU(13975150263226478308),
909 KQU(11411961169932682710), KQU(17204271834833847277),
910 KQU( 541534742544435367), KQU( 6591191931218949684),
911 KQU( 2645454775478232486), KQU( 4322857481256485321),
912 KQU( 8477416487553065110), KQU(12902505428548435048),
913 KQU( 971445777981341415), KQU(14995104682744976712),
914 KQU( 4243341648807158063), KQU( 8695061252721927661),
915 KQU( 5028202003270177222), KQU( 2289257340915567840),
916 KQU(13870416345121866007), KQU(13994481698072092233),
917 KQU( 6912785400753196481), KQU( 2278309315841980139),
918 KQU( 4329765449648304839), KQU( 5963108095785485298),
919 KQU( 4880024847478722478), KQU(16015608779890240947),
920 KQU( 1866679034261393544), KQU( 914821179919731519),
921 KQU( 9643404035648760131), KQU( 2418114953615593915),
922 KQU( 944756836073702374), KQU(15186388048737296834),
923 KQU( 7723355336128442206), KQU( 7500747479679599691),
924 KQU(18013961306453293634), KQU( 2315274808095756456),
925 KQU(13655308255424029566), KQU(17203800273561677098),
926 KQU( 1382158694422087756), KQU( 5090390250309588976),
927 KQU( 517170818384213989), KQU( 1612709252627729621),
928 KQU( 1330118955572449606), KQU( 300922478056709885),
929 KQU(18115693291289091987), KQU(13491407109725238321),
930 KQU(15293714633593827320), KQU( 5151539373053314504),
931 KQU( 5951523243743139207), KQU(14459112015249527975),
932 KQU( 5456113959000700739), KQU( 3877918438464873016),
933 KQU(12534071654260163555), KQU(15871678376893555041),
934 KQU(11005484805712025549), KQU(16353066973143374252),
935 KQU( 4358331472063256685), KQU( 8268349332210859288),
936 KQU(12485161590939658075), KQU(13955993592854471343),
937 KQU( 5911446886848367039), KQU(14925834086813706974),
938 KQU( 6590362597857994805), KQU( 1280544923533661875),
939 KQU( 1637756018947988164), KQU( 4734090064512686329),
940 KQU(16693705263131485912), KQU( 6834882340494360958),
941 KQU( 8120732176159658505), KQU( 2244371958905329346),
942 KQU(10447499707729734021), KQU( 7318742361446942194),
943 KQU( 8032857516355555296), KQU(14023605983059313116),
944 KQU( 1032336061815461376), KQU( 9840995337876562612),
945 KQU( 9869256223029203587), KQU(12227975697177267636),
946 KQU(12728115115844186033), KQU( 7752058479783205470),
947 KQU( 729733219713393087), KQU(12954017801239007622)
948 };
949 static const uint64_t init_by_array_64_expected[] = {
950 KQU( 2100341266307895239), KQU( 8344256300489757943),
951 KQU(15687933285484243894), KQU( 8268620370277076319),
952 KQU(12371852309826545459), KQU( 8800491541730110238),
953 KQU(18113268950100835773), KQU( 2886823658884438119),
954 KQU( 3293667307248180724), KQU( 9307928143300172731),
955 KQU( 7688082017574293629), KQU( 900986224735166665),
956 KQU( 9977972710722265039), KQU( 6008205004994830552),
957 KQU( 546909104521689292), KQU( 7428471521869107594),
958 KQU(14777563419314721179), KQU(16116143076567350053),
959 KQU( 5322685342003142329), KQU( 4200427048445863473),
960 KQU( 4693092150132559146), KQU(13671425863759338582),
961 KQU( 6747117460737639916), KQU( 4732666080236551150),
962 KQU( 5912839950611941263), KQU( 3903717554504704909),
963 KQU( 2615667650256786818), KQU(10844129913887006352),
964 KQU(13786467861810997820), KQU(14267853002994021570),
965 KQU(13767807302847237439), KQU(16407963253707224617),
966 KQU( 4802498363698583497), KQU( 2523802839317209764),
967 KQU( 3822579397797475589), KQU( 8950320572212130610),
968 KQU( 3745623504978342534), KQU(16092609066068482806),
969 KQU( 9817016950274642398), KQU(10591660660323829098),
970 KQU(11751606650792815920), KQU( 5122873818577122211),
971 KQU(17209553764913936624), KQU( 6249057709284380343),
972 KQU(15088791264695071830), KQU(15344673071709851930),
973 KQU( 4345751415293646084), KQU( 2542865750703067928),
974 KQU(13520525127852368784), KQU(18294188662880997241),
975 KQU( 3871781938044881523), KQU( 2873487268122812184),
976 KQU(15099676759482679005), KQU(15442599127239350490),
977 KQU( 6311893274367710888), KQU( 3286118760484672933),
978 KQU( 4146067961333542189), KQU(13303942567897208770),
979 KQU( 8196013722255630418), KQU( 4437815439340979989),
980 KQU(15433791533450605135), KQU( 4254828956815687049),
981 KQU( 1310903207708286015), KQU(10529182764462398549),
982 KQU(14900231311660638810), KQU( 9727017277104609793),
983 KQU( 1821308310948199033), KQU(11628861435066772084),
984 KQU( 9469019138491546924), KQU( 3145812670532604988),
985 KQU( 9938468915045491919), KQU( 1562447430672662142),
986 KQU(13963995266697989134), KQU( 3356884357625028695),
987 KQU( 4499850304584309747), KQU( 8456825817023658122),
988 KQU(10859039922814285279), KQU( 8099512337972526555),
989 KQU( 348006375109672149), KQU(11919893998241688603),
990 KQU( 1104199577402948826), KQU(16689191854356060289),
991 KQU(10992552041730168078), KQU( 7243733172705465836),
992 KQU( 5668075606180319560), KQU(18182847037333286970),
993 KQU( 4290215357664631322), KQU( 4061414220791828613),
994 KQU(13006291061652989604), KQU( 7140491178917128798),
995 KQU(12703446217663283481), KQU( 5500220597564558267),
996 KQU(10330551509971296358), KQU(15958554768648714492),
997 KQU( 5174555954515360045), KQU( 1731318837687577735),
998 KQU( 3557700801048354857), KQU(13764012341928616198),
999 KQU(13115166194379119043), KQU( 7989321021560255519),
1000 KQU( 2103584280905877040), KQU( 9230788662155228488),
1001 KQU(16396629323325547654), KQU( 657926409811318051),
1002 KQU(15046700264391400727), KQU( 5120132858771880830),
1003 KQU( 7934160097989028561), KQU( 6963121488531976245),
1004 KQU(17412329602621742089), KQU(15144843053931774092),
1005 KQU(17204176651763054532), KQU(13166595387554065870),
1006 KQU( 8590377810513960213), KQU( 5834365135373991938),
1007 KQU( 7640913007182226243), KQU( 3479394703859418425),
1008 KQU(16402784452644521040), KQU( 4993979809687083980),
1009 KQU(13254522168097688865), KQU(15643659095244365219),
1010 KQU( 5881437660538424982), KQU(11174892200618987379),
1011 KQU( 254409966159711077), KQU(17158413043140549909),
1012 KQU( 3638048789290376272), KQU( 1376816930299489190),
1013 KQU( 4622462095217761923), KQU(15086407973010263515),
1014 KQU(13253971772784692238), KQU( 5270549043541649236),
1015 KQU(11182714186805411604), KQU(12283846437495577140),
1016 KQU( 5297647149908953219), KQU(10047451738316836654),
1017 KQU( 4938228100367874746), KQU(12328523025304077923),
1018 KQU( 3601049438595312361), KQU( 9313624118352733770),
1019 KQU(13322966086117661798), KQU(16660005705644029394),
1020 KQU(11337677526988872373), KQU(13869299102574417795),
1021 KQU(15642043183045645437), KQU( 3021755569085880019),
1022 KQU( 4979741767761188161), KQU(13679979092079279587),
1023 KQU( 3344685842861071743), KQU(13947960059899588104),
1024 KQU( 305806934293368007), KQU( 5749173929201650029),
1025 KQU(11123724852118844098), KQU(15128987688788879802),
1026 KQU(15251651211024665009), KQU( 7689925933816577776),
1027 KQU(16732804392695859449), KQU(17087345401014078468),
1028 KQU(14315108589159048871), KQU( 4820700266619778917),
1029 KQU(16709637539357958441), KQU( 4936227875177351374),
1030 KQU( 2137907697912987247), KQU(11628565601408395420),
1031 KQU( 2333250549241556786), KQU( 5711200379577778637),
1032 KQU( 5170680131529031729), KQU(12620392043061335164),
1033 KQU( 95363390101096078), KQU( 5487981914081709462),
1034 KQU( 1763109823981838620), KQU( 3395861271473224396),
1035 KQU( 1300496844282213595), KQU( 6894316212820232902),
1036 KQU(10673859651135576674), KQU( 5911839658857903252),
1037 KQU(17407110743387299102), KQU( 8257427154623140385),
1038 KQU(11389003026741800267), KQU( 4070043211095013717),
1039 KQU(11663806997145259025), KQU(15265598950648798210),
1040 KQU( 630585789434030934), KQU( 3524446529213587334),
1041 KQU( 7186424168495184211), KQU(10806585451386379021),
1042 KQU(11120017753500499273), KQU( 1586837651387701301),
1043 KQU(17530454400954415544), KQU( 9991670045077880430),
1044 KQU( 7550997268990730180), KQU( 8640249196597379304),
1045 KQU( 3522203892786893823), KQU(10401116549878854788),
1046 KQU(13690285544733124852), KQU( 8295785675455774586),
1047 KQU(15535716172155117603), KQU( 3112108583723722511),
1048 KQU(17633179955339271113), KQU(18154208056063759375),
1049 KQU( 1866409236285815666), KQU(13326075895396412882),
1050 KQU( 8756261842948020025), KQU( 6281852999868439131),
1051 KQU(15087653361275292858), KQU(10333923911152949397),
1052 KQU( 5265567645757408500), KQU(12728041843210352184),
1053 KQU( 6347959327507828759), KQU( 154112802625564758),
1054 KQU(18235228308679780218), KQU( 3253805274673352418),
1055 KQU( 4849171610689031197), KQU(17948529398340432518),
1056 KQU(13803510475637409167), KQU(13506570190409883095),
1057 KQU(15870801273282960805), KQU( 8451286481299170773),
1058 KQU( 9562190620034457541), KQU( 8518905387449138364),
1059 KQU(12681306401363385655), KQU( 3788073690559762558),
1060 KQU( 5256820289573487769), KQU( 2752021372314875467),
1061 KQU( 6354035166862520716), KQU( 4328956378309739069),
1062 KQU( 449087441228269600), KQU( 5533508742653090868),
1063 KQU( 1260389420404746988), KQU(18175394473289055097),
1064 KQU( 1535467109660399420), KQU( 8818894282874061442),
1065 KQU(12140873243824811213), KQU(15031386653823014946),
1066 KQU( 1286028221456149232), KQU( 6329608889367858784),
1067 KQU( 9419654354945132725), KQU( 6094576547061672379),
1068 KQU(17706217251847450255), KQU( 1733495073065878126),
1069 KQU(16918923754607552663), KQU( 8881949849954945044),
1070 KQU(12938977706896313891), KQU(14043628638299793407),
1071 KQU(18393874581723718233), KQU( 6886318534846892044),
1072 KQU(14577870878038334081), KQU(13541558383439414119),
1073 KQU(13570472158807588273), KQU(18300760537910283361),
1074 KQU( 818368572800609205), KQU( 1417000585112573219),
1075 KQU(12337533143867683655), KQU(12433180994702314480),
1076 KQU( 778190005829189083), KQU(13667356216206524711),
1077 KQU( 9866149895295225230), KQU(11043240490417111999),
1078 KQU( 1123933826541378598), KQU( 6469631933605123610),
1079 KQU(14508554074431980040), KQU(13918931242962026714),
1080 KQU( 2870785929342348285), KQU(14786362626740736974),
1081 KQU(13176680060902695786), KQU( 9591778613541679456),
1082 KQU( 9097662885117436706), KQU( 749262234240924947),
1083 KQU( 1944844067793307093), KQU( 4339214904577487742),
1084 KQU( 8009584152961946551), KQU(16073159501225501777),
1085 KQU( 3335870590499306217), KQU(17088312653151202847),
1086 KQU( 3108893142681931848), KQU(16636841767202792021),
1087 KQU(10423316431118400637), KQU( 8008357368674443506),
1088 KQU(11340015231914677875), KQU(17687896501594936090),
1089 KQU(15173627921763199958), KQU( 542569482243721959),
1090 KQU(15071714982769812975), KQU( 4466624872151386956),
1091 KQU( 1901780715602332461), KQU( 9822227742154351098),
1092 KQU( 1479332892928648780), KQU( 6981611948382474400),
1093 KQU( 7620824924456077376), KQU(14095973329429406782),
1094 KQU( 7902744005696185404), KQU(15830577219375036920),
1095 KQU(10287076667317764416), KQU(12334872764071724025),
1096 KQU( 4419302088133544331), KQU(14455842851266090520),
1097 KQU(12488077416504654222), KQU( 7953892017701886766),
1098 KQU( 6331484925529519007), KQU( 4902145853785030022),
1099 KQU(17010159216096443073), KQU(11945354668653886087),
1100 KQU(15112022728645230829), KQU(17363484484522986742),
1101 KQU( 4423497825896692887), KQU( 8155489510809067471),
1102 KQU( 258966605622576285), KQU( 5462958075742020534),
1103 KQU( 6763710214913276228), KQU( 2368935183451109054),
1104 KQU(14209506165246453811), KQU( 2646257040978514881),
1105 KQU( 3776001911922207672), KQU( 1419304601390147631),
1106 KQU(14987366598022458284), KQU( 3977770701065815721),
1107 KQU( 730820417451838898), KQU( 3982991703612885327),
1108 KQU( 2803544519671388477), KQU(17067667221114424649),
1109 KQU( 2922555119737867166), KQU( 1989477584121460932),
1110 KQU(15020387605892337354), KQU( 9293277796427533547),
1111 KQU(10722181424063557247), KQU(16704542332047511651),
1112 KQU( 5008286236142089514), KQU(16174732308747382540),
1113 KQU(17597019485798338402), KQU(13081745199110622093),
1114 KQU( 8850305883842258115), KQU(12723629125624589005),
1115 KQU( 8140566453402805978), KQU(15356684607680935061),
1116 KQU(14222190387342648650), KQU(11134610460665975178),
1117 KQU( 1259799058620984266), KQU(13281656268025610041),
1118 KQU( 298262561068153992), KQU(12277871700239212922),
1119 KQU(13911297774719779438), KQU(16556727962761474934),
1120 KQU(17903010316654728010), KQU( 9682617699648434744),
1121 KQU(14757681836838592850), KQU( 1327242446558524473),
1122 KQU(11126645098780572792), KQU( 1883602329313221774),
1123 KQU( 2543897783922776873), KQU(15029168513767772842),
1124 KQU(12710270651039129878), KQU(16118202956069604504),
1125 KQU(15010759372168680524), KQU( 2296827082251923948),
1126 KQU(10793729742623518101), KQU(13829764151845413046),
1127 KQU(17769301223184451213), KQU( 3118268169210783372),
1128 KQU(17626204544105123127), KQU( 7416718488974352644),
1129 KQU(10450751996212925994), KQU( 9352529519128770586),
1130 KQU( 259347569641110140), KQU( 8048588892269692697),
1131 KQU( 1774414152306494058), KQU(10669548347214355622),
1132 KQU(13061992253816795081), KQU(18432677803063861659),
1133 KQU( 8879191055593984333), KQU(12433753195199268041),
1134 KQU(14919392415439730602), KQU( 6612848378595332963),
1135 KQU( 6320986812036143628), KQU(10465592420226092859),
1136 KQU( 4196009278962570808), KQU( 3747816564473572224),
1137 KQU(17941203486133732898), KQU( 2350310037040505198),
1138 KQU( 5811779859134370113), KQU(10492109599506195126),
1139 KQU( 7699650690179541274), KQU( 1954338494306022961),
1140 KQU(14095816969027231152), KQU( 5841346919964852061),
1141 KQU(14945969510148214735), KQU( 3680200305887550992),
1142 KQU( 6218047466131695792), KQU( 8242165745175775096),
1143 KQU(11021371934053307357), KQU( 1265099502753169797),
1144 KQU( 4644347436111321718), KQU( 3609296916782832859),
1145 KQU( 8109807992218521571), KQU(18387884215648662020),
1146 KQU(14656324896296392902), KQU(17386819091238216751),
1147 KQU(17788300878582317152), KQU( 7919446259742399591),
1148 KQU( 4466613134576358004), KQU(12928181023667938509),
1149 KQU(13147446154454932030), KQU(16552129038252734620),
1150 KQU( 8395299403738822450), KQU(11313817655275361164),
1151 KQU( 434258809499511718), KQU( 2074882104954788676),
1152 KQU( 7929892178759395518), KQU( 9006461629105745388),
1153 KQU( 5176475650000323086), KQU(11128357033468341069),
1154 KQU(12026158851559118955), KQU(14699716249471156500),
1155 KQU( 448982497120206757), KQU( 4156475356685519900),
1156 KQU( 6063816103417215727), KQU(10073289387954971479),
1157 KQU( 8174466846138590962), KQU( 2675777452363449006),
1158 KQU( 9090685420572474281), KQU( 6659652652765562060),
1159 KQU(12923120304018106621), KQU(11117480560334526775),
1160 KQU( 937910473424587511), KQU( 1838692113502346645),
1161 KQU(11133914074648726180), KQU( 7922600945143884053),
1162 KQU(13435287702700959550), KQU( 5287964921251123332),
1163 KQU(11354875374575318947), KQU(17955724760748238133),
1164 KQU(13728617396297106512), KQU( 4107449660118101255),
1165 KQU( 1210269794886589623), KQU(11408687205733456282),
1166 KQU( 4538354710392677887), KQU(13566803319341319267),
1167 KQU(17870798107734050771), KQU( 3354318982568089135),
1168 KQU( 9034450839405133651), KQU(13087431795753424314),
1169 KQU( 950333102820688239), KQU( 1968360654535604116),
1170 KQU(16840551645563314995), KQU( 8867501803892924995),
1171 KQU(11395388644490626845), KQU( 1529815836300732204),
1172 KQU(13330848522996608842), KQU( 1813432878817504265),
1173 KQU( 2336867432693429560), KQU(15192805445973385902),
1174 KQU( 2528593071076407877), KQU( 128459777936689248),
1175 KQU( 9976345382867214866), KQU( 6208885766767996043),
1176 KQU(14982349522273141706), KQU( 3099654362410737822),
1177 KQU(13776700761947297661), KQU( 8806185470684925550),
1178 KQU( 8151717890410585321), KQU( 640860591588072925),
1179 KQU(14592096303937307465), KQU( 9056472419613564846),
1180 KQU(14861544647742266352), KQU(12703771500398470216),
1181 KQU( 3142372800384138465), KQU( 6201105606917248196),
1182 KQU(18337516409359270184), KQU(15042268695665115339),
1183 KQU(15188246541383283846), KQU(12800028693090114519),
1184 KQU( 5992859621101493472), KQU(18278043971816803521),
1185 KQU( 9002773075219424560), KQU( 7325707116943598353),
1186 KQU( 7930571931248040822), KQU( 5645275869617023448),
1187 KQU( 7266107455295958487), KQU( 4363664528273524411),
1188 KQU(14313875763787479809), KQU(17059695613553486802),
1189 KQU( 9247761425889940932), KQU(13704726459237593128),
1190 KQU( 2701312427328909832), KQU(17235532008287243115),
1191 KQU(14093147761491729538), KQU( 6247352273768386516),
1192 KQU( 8268710048153268415), KQU( 7985295214477182083),
1193 KQU(15624495190888896807), KQU( 3772753430045262788),
1194 KQU( 9133991620474991698), KQU( 5665791943316256028),
1195 KQU( 7551996832462193473), KQU(13163729206798953877),
1196 KQU( 9263532074153846374), KQU( 1015460703698618353),
1197 KQU(17929874696989519390), KQU(18257884721466153847),
1198 KQU(16271867543011222991), KQU( 3905971519021791941),
1199 KQU(16814488397137052085), KQU( 1321197685504621613),
1200 KQU( 2870359191894002181), KQU(14317282970323395450),
1201 KQU(13663920845511074366), KQU( 2052463995796539594),
1202 KQU(14126345686431444337), KQU( 1727572121947022534),
1203 KQU(17793552254485594241), KQU( 6738857418849205750),
1204 KQU( 1282987123157442952), KQU(16655480021581159251),
1205 KQU( 6784587032080183866), KQU(14726758805359965162),
1206 KQU( 7577995933961987349), KQU(12539609320311114036),
1207 KQU(10789773033385439494), KQU( 8517001497411158227),
1208 KQU(10075543932136339710), KQU(14838152340938811081),
1209 KQU( 9560840631794044194), KQU(17445736541454117475),
1210 KQU(10633026464336393186), KQU(15705729708242246293),
1211 KQU( 1117517596891411098), KQU( 4305657943415886942),
1212 KQU( 4948856840533979263), KQU(16071681989041789593),
1213 KQU(13723031429272486527), KQU( 7639567622306509462),
1214 KQU(12670424537483090390), KQU( 9715223453097197134),
1215 KQU( 5457173389992686394), KQU( 289857129276135145),
1216 KQU(17048610270521972512), KQU( 692768013309835485),
1217 KQU(14823232360546632057), KQU(18218002361317895936),
1218 KQU( 3281724260212650204), KQU(16453957266549513795),
1219 KQU( 8592711109774511881), KQU( 929825123473369579),
1220 KQU(15966784769764367791), KQU( 9627344291450607588),
1221 KQU(10849555504977813287), KQU( 9234566913936339275),
1222 KQU( 6413807690366911210), KQU(10862389016184219267),
1223 KQU(13842504799335374048), KQU( 1531994113376881174),
1224 KQU( 2081314867544364459), KQU(16430628791616959932),
1225 KQU( 8314714038654394368), KQU( 9155473892098431813),
1226 KQU(12577843786670475704), KQU( 4399161106452401017),
1227 KQU( 1668083091682623186), KQU( 1741383777203714216),
1228 KQU( 2162597285417794374), KQU(15841980159165218736),
1229 KQU( 1971354603551467079), KQU( 1206714764913205968),
1230 KQU( 4790860439591272330), KQU(14699375615594055799),
1231 KQU( 8374423871657449988), KQU(10950685736472937738),
1232 KQU( 697344331343267176), KQU(10084998763118059810),
1233 KQU(12897369539795983124), KQU(12351260292144383605),
1234 KQU( 1268810970176811234), KQU( 7406287800414582768),
1235 KQU( 516169557043807831), KQU( 5077568278710520380),
1236 KQU( 3828791738309039304), KQU( 7721974069946943610),
1237 KQU( 3534670260981096460), KQU( 4865792189600584891),
1238 KQU(16892578493734337298), KQU( 9161499464278042590),
1239 KQU(11976149624067055931), KQU(13219479887277343990),
1240 KQU(14161556738111500680), KQU(14670715255011223056),
1241 KQU( 4671205678403576558), KQU(12633022931454259781),
1242 KQU(14821376219869187646), KQU( 751181776484317028),
1243 KQU( 2192211308839047070), KQU(11787306362361245189),
1244 KQU(10672375120744095707), KQU( 4601972328345244467),
1245 KQU(15457217788831125879), KQU( 8464345256775460809),
1246 KQU(10191938789487159478), KQU( 6184348739615197613),
1247 KQU(11425436778806882100), KQU( 2739227089124319793),
1248 KQU( 461464518456000551), KQU( 4689850170029177442),
1249 KQU( 6120307814374078625), KQU(11153579230681708671),
1250 KQU( 7891721473905347926), KQU(10281646937824872400),
1251 KQU( 3026099648191332248), KQU( 8666750296953273818),
1252 KQU(14978499698844363232), KQU(13303395102890132065),
1253 KQU( 8182358205292864080), KQU(10560547713972971291),
1254 KQU(11981635489418959093), KQU( 3134621354935288409),
1255 KQU(11580681977404383968), KQU(14205530317404088650),
1256 KQU( 5997789011854923157), KQU(13659151593432238041),
1257 KQU(11664332114338865086), KQU( 7490351383220929386),
1258 KQU( 7189290499881530378), KQU(15039262734271020220),
1259 KQU( 2057217285976980055), KQU( 555570804905355739),
1260 KQU(11235311968348555110), KQU(13824557146269603217),
1261 KQU(16906788840653099693), KQU( 7222878245455661677),
1262 KQU( 5245139444332423756), KQU( 4723748462805674292),
1263 KQU(12216509815698568612), KQU(17402362976648951187),
1264 KQU(17389614836810366768), KQU( 4880936484146667711),
1265 KQU( 9085007839292639880), KQU(13837353458498535449),
1266 KQU(11914419854360366677), KQU(16595890135313864103),
1267 KQU( 6313969847197627222), KQU(18296909792163910431),
1268 KQU(10041780113382084042), KQU( 2499478551172884794),
1269 KQU(11057894246241189489), KQU( 9742243032389068555),
1270 KQU(12838934582673196228), KQU(13437023235248490367),
1271 KQU(13372420669446163240), KQU( 6752564244716909224),
1272 KQU( 7157333073400313737), KQU(12230281516370654308),
1273 KQU( 1182884552219419117), KQU( 2955125381312499218),
1274 KQU(10308827097079443249), KQU( 1337648572986534958),
1275 KQU(16378788590020343939), KQU( 108619126514420935),
1276 KQU( 3990981009621629188), KQU( 5460953070230946410),
1277 KQU( 9703328329366531883), KQU(13166631489188077236),
1278 KQU( 1104768831213675170), KQU( 3447930458553877908),
1279 KQU( 8067172487769945676), KQU( 5445802098190775347),
1280 KQU( 3244840981648973873), KQU(17314668322981950060),
1281 KQU( 5006812527827763807), KQU(18158695070225526260),
1282 KQU( 2824536478852417853), KQU(13974775809127519886),
1283 KQU( 9814362769074067392), KQU(17276205156374862128),
1284 KQU(11361680725379306967), KQU( 3422581970382012542),
1285 KQU(11003189603753241266), KQU(11194292945277862261),
1286 KQU( 6839623313908521348), KQU(11935326462707324634),
1287 KQU( 1611456788685878444), KQU(13112620989475558907),
1288 KQU( 517659108904450427), KQU(13558114318574407624),
1289 KQU(15699089742731633077), KQU( 4988979278862685458),
1290 KQU( 8111373583056521297), KQU( 3891258746615399627),
1291 KQU( 8137298251469718086), KQU(12748663295624701649),
1292 KQU( 4389835683495292062), KQU( 5775217872128831729),
1293 KQU( 9462091896405534927), KQU( 8498124108820263989),
1294 KQU( 8059131278842839525), KQU(10503167994254090892),
1295 KQU(11613153541070396656), KQU(18069248738504647790),
1296 KQU( 570657419109768508), KQU( 3950574167771159665),
1297 KQU( 5514655599604313077), KQU( 2908460854428484165),
1298 KQU(10777722615935663114), KQU(12007363304839279486),
1299 KQU( 9800646187569484767), KQU( 8795423564889864287),
1300 KQU(14257396680131028419), KQU( 6405465117315096498),
1301 KQU( 7939411072208774878), KQU(17577572378528990006),
1302 KQU(14785873806715994850), KQU(16770572680854747390),
1303 KQU(18127549474419396481), KQU(11637013449455757750),
1304 KQU(14371851933996761086), KQU( 3601181063650110280),
1305 KQU( 4126442845019316144), KQU(10198287239244320669),
1306 KQU(18000169628555379659), KQU(18392482400739978269),
1307 KQU( 6219919037686919957), KQU( 3610085377719446052),
1308 KQU( 2513925039981776336), KQU(16679413537926716955),
1309 KQU(12903302131714909434), KQU( 5581145789762985009),
1310 KQU(12325955044293303233), KQU(17216111180742141204),
1311 KQU( 6321919595276545740), KQU( 3507521147216174501),
1312 KQU( 9659194593319481840), KQU(11473976005975358326),
1313 KQU(14742730101435987026), KQU( 492845897709954780),
1314 KQU(16976371186162599676), KQU(17712703422837648655),
1315 KQU( 9881254778587061697), KQU( 8413223156302299551),
1316 KQU( 1563841828254089168), KQU( 9996032758786671975),
1317 KQU( 138877700583772667), KQU(13003043368574995989),
1318 KQU( 4390573668650456587), KQU( 8610287390568126755),
1319 KQU(15126904974266642199), KQU( 6703637238986057662),
1320 KQU( 2873075592956810157), KQU( 6035080933946049418),
1321 KQU(13382846581202353014), KQU( 7303971031814642463),
1322 KQU(18418024405307444267), KQU( 5847096731675404647),
1323 KQU( 4035880699639842500), KQU(11525348625112218478),
1324 KQU( 3041162365459574102), KQU( 2604734487727986558),
1325 KQU(15526341771636983145), KQU(14556052310697370254),
1326 KQU(12997787077930808155), KQU( 9601806501755554499),
1327 KQU(11349677952521423389), KQU(14956777807644899350),
1328 KQU(16559736957742852721), KQU(12360828274778140726),
1329 KQU( 6685373272009662513), KQU(16932258748055324130),
1330 KQU(15918051131954158508), KQU( 1692312913140790144),
1331 KQU( 546653826801637367), KQU( 5341587076045986652),
1332 KQU(14975057236342585662), KQU(12374976357340622412),
1333 KQU(10328833995181940552), KQU(12831807101710443149),
1334 KQU(10548514914382545716), KQU( 2217806727199715993),
1335 KQU(12627067369242845138), KQU( 4598965364035438158),
1336 KQU( 150923352751318171), KQU(14274109544442257283),
1337 KQU( 4696661475093863031), KQU( 1505764114384654516),
1338 KQU(10699185831891495147), KQU( 2392353847713620519),
1339 KQU( 3652870166711788383), KQU( 8640653276221911108),
1340 KQU( 3894077592275889704), KQU( 4918592872135964845),
1341 KQU(16379121273281400789), KQU(12058465483591683656),
1342 KQU(11250106829302924945), KQU( 1147537556296983005),
1343 KQU( 6376342756004613268), KQU(14967128191709280506),
1344 KQU(18007449949790627628), KQU( 9497178279316537841),
1345 KQU( 7920174844809394893), KQU(10037752595255719907),
1346 KQU(15875342784985217697), KQU(15311615921712850696),
1347 KQU( 9552902652110992950), KQU(14054979450099721140),
1348 KQU( 5998709773566417349), KQU(18027910339276320187),
1349 KQU( 8223099053868585554), KQU( 7842270354824999767),
1350 KQU( 4896315688770080292), KQU(12969320296569787895),
1351 KQU( 2674321489185759961), KQU( 4053615936864718439),
1352 KQU(11349775270588617578), KQU( 4743019256284553975),
1353 KQU( 5602100217469723769), KQU(14398995691411527813),
1354 KQU( 7412170493796825470), KQU( 836262406131744846),
1355 KQU( 8231086633845153022), KQU( 5161377920438552287),
1356 KQU( 8828731196169924949), KQU(16211142246465502680),
1357 KQU( 3307990879253687818), KQU( 5193405406899782022),
1358 KQU( 8510842117467566693), KQU( 6070955181022405365),
1359 KQU(14482950231361409799), KQU(12585159371331138077),
1360 KQU( 3511537678933588148), KQU( 2041849474531116417),
1361 KQU(10944936685095345792), KQU(18303116923079107729),
1362 KQU( 2720566371239725320), KQU( 4958672473562397622),
1363 KQU( 3032326668253243412), KQU(13689418691726908338),
1364 KQU( 1895205511728843996), KQU( 8146303515271990527),
1365 KQU(16507343500056113480), KQU( 473996939105902919),
1366 KQU( 9897686885246881481), KQU(14606433762712790575),
1367 KQU( 6732796251605566368), KQU( 1399778120855368916),
1368 KQU( 935023885182833777), KQU(16066282816186753477),
1369 KQU( 7291270991820612055), KQU(17530230393129853844),
1370 KQU(10223493623477451366), KQU(15841725630495676683),
1371 KQU(17379567246435515824), KQU( 8588251429375561971),
1372 KQU(18339511210887206423), KQU(17349587430725976100),
1373 KQU(12244876521394838088), KQU( 6382187714147161259),
1374 KQU(12335807181848950831), KQU(16948885622305460665),
1375 KQU(13755097796371520506), KQU(14806740373324947801),
1376 KQU( 4828699633859287703), KQU( 8209879281452301604),
1377 KQU(12435716669553736437), KQU(13970976859588452131),
1378 KQU( 6233960842566773148), KQU(12507096267900505759),
1379 KQU( 1198713114381279421), KQU(14989862731124149015),
1380 KQU(15932189508707978949), KQU( 2526406641432708722),
1381 KQU( 29187427817271982), KQU( 1499802773054556353),
1382 KQU(10816638187021897173), KQU( 5436139270839738132),
1383 KQU( 6659882287036010082), KQU( 2154048955317173697),
1384 KQU(10887317019333757642), KQU(16281091802634424955),
1385 KQU(10754549879915384901), KQU(10760611745769249815),
1386 KQU( 2161505946972504002), KQU( 5243132808986265107),
1387 KQU(10129852179873415416), KQU( 710339480008649081),
1388 KQU( 7802129453068808528), KQU(17967213567178907213),
1389 KQU(15730859124668605599), KQU(13058356168962376502),
1390 KQU( 3701224985413645909), KQU(14464065869149109264),
1391 KQU( 9959272418844311646), KQU(10157426099515958752),
1392 KQU(14013736814538268528), KQU(17797456992065653951),
1393 KQU(17418878140257344806), KQU(15457429073540561521),
1394 KQU( 2184426881360949378), KQU( 2062193041154712416),
1395 KQU( 8553463347406931661), KQU( 4913057625202871854),
1396 KQU( 2668943682126618425), KQU(17064444737891172288),
1397 KQU( 4997115903913298637), KQU(12019402608892327416),
1398 KQU(17603584559765897352), KQU(11367529582073647975),
1399 KQU( 8211476043518436050), KQU( 8676849804070323674),
1400 KQU(18431829230394475730), KQU(10490177861361247904),
1401 KQU( 9508720602025651349), KQU( 7409627448555722700),
1402 KQU( 5804047018862729008), KQU(11943858176893142594),
1403 KQU(11908095418933847092), KQU( 5415449345715887652),
1404 KQU( 1554022699166156407), KQU( 9073322106406017161),
1405 KQU( 7080630967969047082), KQU(18049736940860732943),
1406 KQU(12748714242594196794), KQU( 1226992415735156741),
1407 KQU(17900981019609531193), KQU(11720739744008710999),
1408 KQU( 3006400683394775434), KQU(11347974011751996028),
1409 KQU( 3316999628257954608), KQU( 8384484563557639101),
1410 KQU(18117794685961729767), KQU( 1900145025596618194),
1411 KQU(17459527840632892676), KQU( 5634784101865710994),
1412 KQU( 7918619300292897158), KQU( 3146577625026301350),
1413 KQU( 9955212856499068767), KQU( 1873995843681746975),
1414 KQU( 1561487759967972194), KQU( 8322718804375878474),
1415 KQU(11300284215327028366), KQU( 4667391032508998982),
1416 KQU( 9820104494306625580), KQU(17922397968599970610),
1417 KQU( 1784690461886786712), KQU(14940365084341346821),
1418 KQU( 5348719575594186181), KQU(10720419084507855261),
1419 KQU(14210394354145143274), KQU( 2426468692164000131),
1420 KQU(16271062114607059202), KQU(14851904092357070247),
1421 KQU( 6524493015693121897), KQU( 9825473835127138531),
1422 KQU(14222500616268569578), KQU(15521484052007487468),
1423 KQU(14462579404124614699), KQU(11012375590820665520),
1424 KQU(11625327350536084927), KQU(14452017765243785417),
1425 KQU( 9989342263518766305), KQU( 3640105471101803790),
1426 KQU( 4749866455897513242), KQU(13963064946736312044),
1427 KQU(10007416591973223791), KQU(18314132234717431115),
1428 KQU( 3286596588617483450), KQU( 7726163455370818765),
1429 KQU( 7575454721115379328), KQU( 5308331576437663422),
1430 KQU(18288821894903530934), KQU( 8028405805410554106),
1431 KQU(15744019832103296628), KQU( 149765559630932100),
1432 KQU( 6137705557200071977), KQU(14513416315434803615),
1433 KQU(11665702820128984473), KQU( 218926670505601386),
1434 KQU( 6868675028717769519), KQU(15282016569441512302),
1435 KQU( 5707000497782960236), KQU( 6671120586555079567),
1436 KQU( 2194098052618985448), KQU(16849577895477330978),
1437 KQU(12957148471017466283), KQU( 1997805535404859393),
1438 KQU( 1180721060263860490), KQU(13206391310193756958),
1439 KQU(12980208674461861797), KQU( 3825967775058875366),
1440 KQU(17543433670782042631), KQU( 1518339070120322730),
1441 KQU(16344584340890991669), KQU( 2611327165318529819),
1442 KQU(11265022723283422529), KQU( 4001552800373196817),
1443 KQU(14509595890079346161), KQU( 3528717165416234562),
1444 KQU(18153222571501914072), KQU( 9387182977209744425),
1445 KQU(10064342315985580021), KQU(11373678413215253977),
1446 KQU( 2308457853228798099), KQU( 9729042942839545302),
1447 KQU( 7833785471140127746), KQU( 6351049900319844436),
1448 KQU(14454610627133496067), KQU(12533175683634819111),
1449 KQU(15570163926716513029), KQU(13356980519185762498)
1450 };
1451
TEST_BEGIN(test_gen_rand_32)1452 TEST_BEGIN(test_gen_rand_32)
1453 {
1454 uint32_t array32[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1455 uint32_t array32_2[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1456 int i;
1457 uint32_t r32;
1458 sfmt_t *ctx;
1459
1460 assert_d_le(get_min_array_size32(), BLOCK_SIZE,
1461 "Array size too small");
1462 ctx = init_gen_rand(1234);
1463 fill_array32(ctx, array32, BLOCK_SIZE);
1464 fill_array32(ctx, array32_2, BLOCK_SIZE);
1465 fini_gen_rand(ctx);
1466
1467 ctx = init_gen_rand(1234);
1468 for (i = 0; i < BLOCK_SIZE; i++) {
1469 if (i < COUNT_1) {
1470 assert_u32_eq(array32[i], init_gen_rand_32_expected[i],
1471 "Output mismatch for i=%d", i);
1472 }
1473 r32 = gen_rand32(ctx);
1474 assert_u32_eq(r32, array32[i],
1475 "Mismatch at array32[%d]=%x, gen=%x", i, array32[i], r32);
1476 }
1477 for (i = 0; i < COUNT_2; i++) {
1478 r32 = gen_rand32(ctx);
1479 assert_u32_eq(r32, array32_2[i],
1480 "Mismatch at array32_2[%d]=%x, gen=%x", i, array32_2[i],
1481 r32);
1482 }
1483 fini_gen_rand(ctx);
1484 }
1485 TEST_END
1486
TEST_BEGIN(test_by_array_32)1487 TEST_BEGIN(test_by_array_32)
1488 {
1489 uint32_t array32[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1490 uint32_t array32_2[BLOCK_SIZE] JEMALLOC_ATTR(aligned(16));
1491 int i;
1492 uint32_t ini[4] = {0x1234, 0x5678, 0x9abc, 0xdef0};
1493 uint32_t r32;
1494 sfmt_t *ctx;
1495
1496 assert_d_le(get_min_array_size32(), BLOCK_SIZE,
1497 "Array size too small");
1498 ctx = init_by_array(ini, 4);
1499 fill_array32(ctx, array32, BLOCK_SIZE);
1500 fill_array32(ctx, array32_2, BLOCK_SIZE);
1501 fini_gen_rand(ctx);
1502
1503 ctx = init_by_array(ini, 4);
1504 for (i = 0; i < BLOCK_SIZE; i++) {
1505 if (i < COUNT_1) {
1506 assert_u32_eq(array32[i], init_by_array_32_expected[i],
1507 "Output mismatch for i=%d", i);
1508 }
1509 r32 = gen_rand32(ctx);
1510 assert_u32_eq(r32, array32[i],
1511 "Mismatch at array32[%d]=%x, gen=%x", i, array32[i], r32);
1512 }
1513 for (i = 0; i < COUNT_2; i++) {
1514 r32 = gen_rand32(ctx);
1515 assert_u32_eq(r32, array32_2[i],
1516 "Mismatch at array32_2[%d]=%x, gen=%x", i, array32_2[i],
1517 r32);
1518 }
1519 fini_gen_rand(ctx);
1520 }
1521 TEST_END
1522
TEST_BEGIN(test_gen_rand_64)1523 TEST_BEGIN(test_gen_rand_64)
1524 {
1525 uint64_t array64[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1526 uint64_t array64_2[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1527 int i;
1528 uint64_t r;
1529 sfmt_t *ctx;
1530
1531 assert_d_le(get_min_array_size64(), BLOCK_SIZE64,
1532 "Array size too small");
1533 ctx = init_gen_rand(4321);
1534 fill_array64(ctx, array64, BLOCK_SIZE64);
1535 fill_array64(ctx, array64_2, BLOCK_SIZE64);
1536 fini_gen_rand(ctx);
1537
1538 ctx = init_gen_rand(4321);
1539 for (i = 0; i < BLOCK_SIZE64; i++) {
1540 if (i < COUNT_1) {
1541 assert_u64_eq(array64[i], init_gen_rand_64_expected[i],
1542 "Output mismatch for i=%d", i);
1543 }
1544 r = gen_rand64(ctx);
1545 assert_u64_eq(r, array64[i],
1546 "Mismatch at array64[%d]=%"FMTx64", gen=%"FMTx64, i,
1547 array64[i], r);
1548 }
1549 for (i = 0; i < COUNT_2; i++) {
1550 r = gen_rand64(ctx);
1551 assert_u64_eq(r, array64_2[i],
1552 "Mismatch at array64_2[%d]=%"FMTx64" gen=%"FMTx64"", i,
1553 array64_2[i], r);
1554 }
1555 fini_gen_rand(ctx);
1556 }
1557 TEST_END
1558
TEST_BEGIN(test_by_array_64)1559 TEST_BEGIN(test_by_array_64)
1560 {
1561 uint64_t array64[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1562 uint64_t array64_2[BLOCK_SIZE64] JEMALLOC_ATTR(aligned(16));
1563 int i;
1564 uint64_t r;
1565 uint32_t ini[] = {5, 4, 3, 2, 1};
1566 sfmt_t *ctx;
1567
1568 assert_d_le(get_min_array_size64(), BLOCK_SIZE64,
1569 "Array size too small");
1570 ctx = init_by_array(ini, 5);
1571 fill_array64(ctx, array64, BLOCK_SIZE64);
1572 fill_array64(ctx, array64_2, BLOCK_SIZE64);
1573 fini_gen_rand(ctx);
1574
1575 ctx = init_by_array(ini, 5);
1576 for (i = 0; i < BLOCK_SIZE64; i++) {
1577 if (i < COUNT_1) {
1578 assert_u64_eq(array64[i], init_by_array_64_expected[i],
1579 "Output mismatch for i=%d", i);
1580 }
1581 r = gen_rand64(ctx);
1582 assert_u64_eq(r, array64[i],
1583 "Mismatch at array64[%d]=%"FMTx64" gen=%"FMTx64, i,
1584 array64[i], r);
1585 }
1586 for (i = 0; i < COUNT_2; i++) {
1587 r = gen_rand64(ctx);
1588 assert_u64_eq(r, array64_2[i],
1589 "Mismatch at array64_2[%d]=%"FMTx64" gen=%"FMTx64, i,
1590 array64_2[i], r);
1591 }
1592 fini_gen_rand(ctx);
1593 }
1594 TEST_END
1595
1596 int
main(void)1597 main(void)
1598 {
1599
1600 return (test(
1601 test_gen_rand_32,
1602 test_by_array_32,
1603 test_gen_rand_64,
1604 test_by_array_64));
1605 }
1606