2 * Authors.....: Jens Steube <jens.steube@gmail.com>
3 * Gabriele Gristina <matrix@hashcat.net>
10 #include "include/constants.h"
11 #include "include/kernel_vendor.h"
18 #include "include/kernel_functions.c"
19 #include "OpenCL/types_ocl.c"
20 #include "OpenCL/common.c"
22 #define COMPARE_S "OpenCL/check_single_comp4.c"
23 #define COMPARE_M "OpenCL/check_multi_comp4.c"
27 #define BOX(S,n,i) (S)[(n)][(i)]
29 __constant u32 Ch[8][256] =
32 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
33 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
34 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
35 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
36 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
37 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
38 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
39 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
40 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
41 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
42 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
43 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
44 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
45 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
46 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
47 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
48 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
49 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
50 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
51 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
52 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
53 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
54 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
55 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
56 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
57 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
58 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
59 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
60 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
61 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
62 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
63 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
64 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
65 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
66 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
67 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
68 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
69 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
70 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
71 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
72 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
73 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
74 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
75 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
76 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
77 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
78 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
79 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
80 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
81 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
82 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
83 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
84 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
85 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
86 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
87 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
88 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
89 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
90 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
91 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
92 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
93 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
94 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
95 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
98 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
99 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
100 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
101 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
102 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
103 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
104 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
105 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
106 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
107 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
108 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
109 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
110 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
111 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
112 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
113 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
114 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
115 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
116 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
117 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
118 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
119 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
120 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
121 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
122 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
123 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
124 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
125 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
126 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
127 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
128 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
129 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
130 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
131 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
132 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
133 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
134 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
135 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
136 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
137 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
138 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
139 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
140 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
141 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
142 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
143 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
144 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
145 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
146 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
147 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
148 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
149 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
150 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
151 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
152 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
153 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
154 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
155 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
156 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
157 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
158 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
159 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
160 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
161 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
164 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
165 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
166 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
167 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
168 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
169 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
170 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
171 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
172 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
173 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
174 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
175 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
176 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
177 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
178 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
179 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
180 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
181 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
182 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
183 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
184 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
185 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
186 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
187 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
188 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
189 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
190 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
191 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
192 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
193 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
194 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
195 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
196 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
197 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
198 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
199 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
200 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
201 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
202 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
203 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
204 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
205 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
206 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
207 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
208 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
209 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
210 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
211 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
212 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
213 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
214 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
215 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
216 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
217 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
218 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
219 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
220 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
221 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
222 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
223 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
224 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
225 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
226 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
227 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
230 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
231 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
232 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
233 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
234 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
235 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
236 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
237 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
238 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
239 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
240 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
241 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
242 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
243 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
244 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
245 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
246 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
247 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
248 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
249 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
250 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
251 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
252 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
253 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
254 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
255 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
256 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
257 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
258 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
259 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
260 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
261 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
262 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
263 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
264 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
265 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
266 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
267 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
268 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
269 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
270 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
271 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
272 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
273 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
274 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
275 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
276 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
277 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
278 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
279 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
280 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
281 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
282 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
283 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
284 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
285 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
286 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
287 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
288 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
289 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
290 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
291 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
292 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
293 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
296 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
297 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
298 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
299 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
300 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
301 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
302 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
303 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
304 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
305 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
306 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
307 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
308 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
309 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
310 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
311 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
312 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
313 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
314 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
315 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
316 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
317 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
318 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
319 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
320 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
321 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
322 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
323 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
324 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
325 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
326 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
327 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
328 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
329 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
330 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
331 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
332 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
333 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
334 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
335 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
336 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
337 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
338 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
339 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
340 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
341 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
342 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
343 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
344 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
345 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
346 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
347 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
348 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
349 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
350 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
351 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
352 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
353 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
354 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
355 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
356 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
357 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
358 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
359 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
362 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
363 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
364 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
365 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
366 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
367 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
368 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
369 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
370 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
371 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
372 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
373 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
374 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
375 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
376 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
377 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
378 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
379 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
380 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
381 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
382 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
383 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
384 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
385 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
386 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
387 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
388 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
389 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
390 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
391 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
392 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
393 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
394 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
395 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
396 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
397 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
398 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
399 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
400 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
401 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
402 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
403 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
404 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
405 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
406 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
407 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
408 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
409 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
410 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
411 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
412 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
413 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
414 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
415 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
416 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
417 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
418 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
419 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
420 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
421 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
422 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
423 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
424 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
425 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
428 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
429 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
430 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
431 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
432 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
433 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
434 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
435 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
436 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
437 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
438 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
439 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
440 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
441 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
442 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
443 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
444 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
445 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
446 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
447 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
448 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
449 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
450 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
451 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
452 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
453 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
454 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
455 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
456 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
457 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
458 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
459 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
460 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
461 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
462 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
463 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
464 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
465 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
466 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
467 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
468 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
469 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
470 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
471 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
472 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
473 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
474 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
475 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
476 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
477 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
478 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
479 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
480 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
481 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
482 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
483 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
484 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
485 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
486 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
487 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
488 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
489 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
490 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
491 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
494 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
495 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
496 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
497 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
498 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
499 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
500 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
501 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
502 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
503 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
504 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
505 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
506 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
507 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
508 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
509 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
510 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
511 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
512 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
513 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
514 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
515 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
516 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
517 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
518 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
519 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
520 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
521 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
522 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
523 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
524 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
525 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
526 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
527 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
528 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
529 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
530 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
531 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
532 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
533 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
534 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
535 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
536 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
537 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
538 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
539 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
540 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
541 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
542 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
543 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
544 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
545 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
546 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
547 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
548 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
549 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
550 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
551 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
552 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
553 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
554 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
555 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
556 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
557 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
561 __constant u32 Cl[8][256] =
564 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
565 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
566 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
567 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
568 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
569 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
570 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
571 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
572 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
573 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
574 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
575 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
576 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
577 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
578 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
579 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
580 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
581 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
582 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
583 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
584 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
585 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
586 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
587 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
588 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
589 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
590 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
591 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
592 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
593 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
594 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
595 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
596 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
597 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
598 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
599 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
600 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
601 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
602 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
603 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
604 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
605 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
606 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
607 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
608 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
609 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
610 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
611 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
612 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
613 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
614 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
615 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
616 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
617 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
618 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
619 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
620 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
621 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
622 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
623 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
624 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
625 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
626 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
627 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
630 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
631 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
632 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
633 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
634 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
635 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
636 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
637 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
638 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
639 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
640 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
641 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
642 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
643 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
644 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
645 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
646 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
647 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
648 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
649 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
650 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
651 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
652 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
653 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
654 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
655 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
656 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
657 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
658 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
659 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
660 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
661 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
662 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
663 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
664 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
665 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
666 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
667 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
668 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
669 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
670 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
671 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
672 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
673 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
674 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
675 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
676 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
677 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
678 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
679 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
680 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
681 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
682 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
683 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
684 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
685 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
686 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
687 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
688 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
689 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
690 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
691 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
692 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
693 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
696 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
697 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
698 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
699 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
700 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
701 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
702 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
703 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
704 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
705 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
706 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
707 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
708 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
709 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
710 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
711 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
712 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
713 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
714 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
715 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
716 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
717 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
718 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
719 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
720 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
721 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
722 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
723 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
724 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
725 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
726 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
727 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
728 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
729 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
730 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
731 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
732 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
733 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
734 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
735 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
736 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
737 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
738 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
739 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
740 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
741 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
742 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
743 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
744 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
745 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
746 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
747 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
748 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
749 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
750 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
751 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
752 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
753 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
754 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
755 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
756 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
757 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
758 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
759 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
762 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
763 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
764 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
765 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
766 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
767 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
768 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
769 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
770 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
771 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
772 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
773 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
774 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
775 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
776 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
777 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
778 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
779 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
780 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
781 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
782 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
783 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
784 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
785 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
786 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
787 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
788 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
789 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
790 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
791 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
792 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
793 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
794 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
795 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
796 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
797 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
798 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
799 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
800 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
801 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
802 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
803 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
804 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
805 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
806 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
807 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
808 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
809 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
810 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
811 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
812 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
813 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
814 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
815 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
816 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
817 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
818 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
819 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
820 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
821 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
822 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
823 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
824 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
825 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
828 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
829 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
830 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
831 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
832 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
833 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
834 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
835 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
836 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
837 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
838 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
839 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
840 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
841 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
842 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
843 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
844 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
845 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
846 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
847 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
848 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
849 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
850 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
851 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
852 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
853 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
854 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
855 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
856 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
857 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
858 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
859 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
860 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
861 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
862 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
863 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
864 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
865 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
866 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
867 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
868 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
869 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
870 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
871 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
872 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
873 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
874 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
875 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
876 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
877 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
878 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
879 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
880 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
881 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
882 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
883 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
884 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
885 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
886 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
887 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
888 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
889 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
890 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
891 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
894 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
895 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
896 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
897 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
898 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
899 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
900 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
901 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
902 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
903 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
904 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
905 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
906 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
907 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
908 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
909 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
910 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
911 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
912 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
913 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
914 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
915 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
916 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
917 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
918 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
919 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
920 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
921 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
922 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
923 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
924 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
925 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
926 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
927 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
928 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
929 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
930 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
931 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
932 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
933 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
934 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
935 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
936 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
937 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
938 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
939 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
940 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
941 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
942 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
943 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
944 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
945 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
946 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
947 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
948 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
949 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
950 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
951 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
952 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
953 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
954 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
955 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
956 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
957 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
960 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
961 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
962 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
963 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
964 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
965 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
966 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
967 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
968 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
969 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
970 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
971 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
972 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
973 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
974 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
975 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
976 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
977 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
978 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
979 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
980 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
981 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
982 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
983 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
984 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
985 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
986 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
987 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
988 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
989 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
990 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
991 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
992 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
993 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
994 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
995 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
996 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
997 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
998 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
999 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
1000 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
1001 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
1002 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
1003 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
1004 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
1005 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
1006 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
1007 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
1008 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
1009 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
1010 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
1011 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
1012 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
1013 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
1014 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
1015 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
1016 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
1017 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
1018 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
1019 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
1020 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
1021 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
1022 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
1023 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
1026 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
1027 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
1028 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
1029 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
1030 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
1031 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
1032 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
1033 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
1034 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
1035 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
1036 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
1037 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
1038 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
1039 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
1040 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
1041 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
1042 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
1043 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
1044 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
1045 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
1046 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
1047 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
1048 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
1049 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
1050 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
1051 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
1052 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
1053 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
1054 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
1055 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
1056 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
1057 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
1058 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
1059 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
1060 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
1061 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
1062 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
1063 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
1064 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
1065 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
1066 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
1067 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
1068 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
1069 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
1070 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
1071 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
1072 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
1073 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
1074 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
1075 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
1076 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
1077 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
1078 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
1079 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
1080 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
1081 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
1082 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
1083 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
1084 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
1085 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
1086 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
1087 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
1088 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
1089 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
1093 __constant u32 rch[R + 1] =
1108 __constant u32 rcl[R + 1] =
1123 // this is a highly optimized that assumes dgst[16] = { 0 }; only reuse of no 2nd transform is needed
1125 static void whirlpool_transform (const u32 w[16], u32 dgst[16], __local u32 (*s_Ch)[256], __local u32 (*s_Cl)[256])
1171 for (int i = 0; i < 8; i++)
1173 const u32 Lp0 = stateh[(i + 8) & 7] >> 24;
1174 const u32 Lp1 = stateh[(i + 7) & 7] >> 16;
1175 const u32 Lp2 = stateh[(i + 6) & 7] >> 8;
1176 const u32 Lp3 = stateh[(i + 5) & 7] >> 0;
1177 const u32 Lp4 = statel[(i + 4) & 7] >> 24;
1178 const u32 Lp5 = statel[(i + 3) & 7] >> 16;
1179 const u32 Lp6 = statel[(i + 2) & 7] >> 8;
1180 const u32 Lp7 = statel[(i + 1) & 7] >> 0;
1182 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1183 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1184 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1185 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1186 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1187 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1188 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1189 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1191 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1192 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1193 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1194 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1195 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1196 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1197 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1198 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1201 stateh[0] = Lh[0] ^ Kh[0];
1202 statel[0] = Ll[0] ^ Kl[0];
1203 stateh[1] = Lh[1] ^ Kh[1];
1204 statel[1] = Ll[1] ^ Kl[1];
1205 stateh[2] = Lh[2] ^ Kh[2];
1206 statel[2] = Ll[2] ^ Kl[2];
1207 stateh[3] = Lh[3] ^ Kh[3];
1208 statel[3] = Ll[3] ^ Kl[3];
1209 stateh[4] = Lh[4] ^ Kh[4];
1210 statel[4] = Ll[4] ^ Kl[4];
1211 stateh[5] = Lh[5] ^ Kh[5];
1212 statel[5] = Ll[5] ^ Kl[5];
1213 stateh[6] = Lh[6] ^ Kh[6];
1214 statel[6] = Ll[6] ^ Kl[6];
1215 stateh[7] = Lh[7] ^ Kh[7];
1216 statel[7] = Ll[7] ^ Kl[7];
1218 for (int r = 2; r <= R; r++)
1224 for (int i = 0; i < 8; i++)
1226 const u32 Lp0 = Kh[(i + 8) & 7] >> 24;
1227 const u32 Lp1 = Kh[(i + 7) & 7] >> 16;
1228 const u32 Lp2 = Kh[(i + 6) & 7] >> 8;
1229 const u32 Lp3 = Kh[(i + 5) & 7] >> 0;
1230 const u32 Lp4 = Kl[(i + 4) & 7] >> 24;
1231 const u32 Lp5 = Kl[(i + 3) & 7] >> 16;
1232 const u32 Lp6 = Kl[(i + 2) & 7] >> 8;
1233 const u32 Lp7 = Kl[(i + 1) & 7] >> 0;
1235 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1236 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1237 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1238 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1239 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1240 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1241 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1242 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1244 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1245 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1246 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1247 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1248 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1249 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1250 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1251 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1254 Kh[0] = Lh[0] ^ rch[r];
1255 Kl[0] = Ll[0] ^ rcl[r];
1272 for (int i = 0; i < 8; i++)
1274 const u32 Lp0 = stateh[(i + 8) & 7] >> 24;
1275 const u32 Lp1 = stateh[(i + 7) & 7] >> 16;
1276 const u32 Lp2 = stateh[(i + 6) & 7] >> 8;
1277 const u32 Lp3 = stateh[(i + 5) & 7] >> 0;
1278 const u32 Lp4 = statel[(i + 4) & 7] >> 24;
1279 const u32 Lp5 = statel[(i + 3) & 7] >> 16;
1280 const u32 Lp6 = statel[(i + 2) & 7] >> 8;
1281 const u32 Lp7 = statel[(i + 1) & 7] >> 0;
1283 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1284 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1285 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1286 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1287 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1288 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1289 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1290 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1292 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1293 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1294 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1295 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1296 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1297 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1298 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1299 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1302 stateh[0] = Lh[0] ^ Kh[0];
1303 statel[0] = Ll[0] ^ Kl[0];
1304 stateh[1] = Lh[1] ^ Kh[1];
1305 statel[1] = Ll[1] ^ Kl[1];
1306 stateh[2] = Lh[2] ^ Kh[2];
1307 statel[2] = Ll[2] ^ Kl[2];
1308 stateh[3] = Lh[3] ^ Kh[3];
1309 statel[3] = Ll[3] ^ Kl[3];
1310 stateh[4] = Lh[4] ^ Kh[4];
1311 statel[4] = Ll[4] ^ Kl[4];
1312 stateh[5] = Lh[5] ^ Kh[5];
1313 statel[5] = Ll[5] ^ Kl[5];
1314 stateh[6] = Lh[6] ^ Kh[6];
1315 statel[6] = Ll[6] ^ Kl[6];
1316 stateh[7] = Lh[7] ^ Kh[7];
1317 statel[7] = Ll[7] ^ Kl[7];
1320 dgst[ 0] = stateh[0] ^ w[ 0];
1321 dgst[ 1] = statel[0] ^ w[ 1];
1322 dgst[ 2] = stateh[1] ^ w[ 2];
1323 dgst[ 3] = statel[1] ^ w[ 3];
1324 dgst[ 4] = stateh[2] ^ w[ 4];
1325 dgst[ 5] = statel[2] ^ w[ 5];
1326 dgst[ 6] = stateh[3] ^ w[ 6];
1327 dgst[ 7] = statel[3] ^ w[ 7];
1328 dgst[ 8] = stateh[4] ^ w[ 8];
1329 dgst[ 9] = statel[4] ^ w[ 9];
1330 dgst[10] = stateh[5] ^ w[10];
1331 dgst[11] = statel[5] ^ w[11];
1332 dgst[12] = stateh[6] ^ w[12];
1333 dgst[13] = statel[6] ^ w[13];
1334 dgst[14] = stateh[7] ^ w[14];
1335 dgst[15] = statel[7] ^ w[15];
1338 __kernel void m06100_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1344 const u32 gid = get_global_id (0);
1345 const u32 lid = get_local_id (0);
1346 const u32 lsz = get_local_size (0);
1352 __local u32 s_Ch[8][256];
1353 __local u32 s_Cl[8][256];
1355 for (u32 i = lid; i < 256; i += lsz)
1357 s_Ch[0][i] = Ch[0][i];
1358 s_Ch[1][i] = Ch[1][i];
1359 s_Ch[2][i] = Ch[2][i];
1360 s_Ch[3][i] = Ch[3][i];
1361 s_Ch[4][i] = Ch[4][i];
1362 s_Ch[5][i] = Ch[5][i];
1363 s_Ch[6][i] = Ch[6][i];
1364 s_Ch[7][i] = Ch[7][i];
1366 s_Cl[0][i] = Cl[0][i];
1367 s_Cl[1][i] = Cl[1][i];
1368 s_Cl[2][i] = Cl[2][i];
1369 s_Cl[3][i] = Cl[3][i];
1370 s_Cl[4][i] = Cl[4][i];
1371 s_Cl[5][i] = Cl[5][i];
1372 s_Cl[6][i] = Cl[6][i];
1373 s_Cl[7][i] = Cl[7][i];
1376 barrier (CLK_LOCAL_MEM_FENCE);
1378 if (gid >= gid_max) return;
1386 wordl0[0] = pws[gid].i[ 0];
1387 wordl0[1] = pws[gid].i[ 1];
1388 wordl0[2] = pws[gid].i[ 2];
1389 wordl0[3] = pws[gid].i[ 3];
1393 wordl1[0] = pws[gid].i[ 4];
1394 wordl1[1] = pws[gid].i[ 5];
1395 wordl1[2] = pws[gid].i[ 6];
1396 wordl1[3] = pws[gid].i[ 7];
1412 const u32 pw_l_len = pws[gid].pw_len;
1414 if (combs_mode == COMBINATOR_MODE_BASE_RIGHT)
1416 append_0x80_2x4 (wordl0, wordl1, pw_l_len);
1418 switch_buffer_by_offset_le (wordl0, wordl1, wordl2, wordl3, combs_buf[0].pw_len);
1425 for (u32 il_pos = 0; il_pos < il_cnt; il_pos++)
1427 const u32 pw_r_len = combs_buf[il_pos].pw_len;
1429 const u32 pw_len = pw_l_len + pw_r_len;
1433 wordr0[0] = combs_buf[il_pos].i[0];
1434 wordr0[1] = combs_buf[il_pos].i[1];
1435 wordr0[2] = combs_buf[il_pos].i[2];
1436 wordr0[3] = combs_buf[il_pos].i[3];
1440 wordr1[0] = combs_buf[il_pos].i[4];
1441 wordr1[1] = combs_buf[il_pos].i[5];
1442 wordr1[2] = combs_buf[il_pos].i[6];
1443 wordr1[3] = combs_buf[il_pos].i[7];
1459 if (combs_mode == COMBINATOR_MODE_BASE_LEFT)
1461 switch_buffer_by_offset_le (wordr0, wordr1, wordr2, wordr3, pw_l_len);
1466 w0[0] = wordl0[0] | wordr0[0];
1467 w0[1] = wordl0[1] | wordr0[1];
1468 w0[2] = wordl0[2] | wordr0[2];
1469 w0[3] = wordl0[3] | wordr0[3];
1473 w1[0] = wordl1[0] | wordr1[0];
1474 w1[1] = wordl1[1] | wordr1[1];
1475 w1[2] = wordl1[2] | wordr1[2];
1476 w1[3] = wordl1[3] | wordr1[3];
1480 w2[0] = wordl2[0] | wordr2[0];
1481 w2[1] = wordl2[1] | wordr2[1];
1482 w2[2] = wordl2[2] | wordr2[2];
1483 w2[3] = wordl2[3] | wordr2[3];
1487 w3[0] = wordl3[0] | wordr3[0];
1488 w3[1] = wordl3[1] | wordr3[1];
1494 wl[ 0] = swap32 (w0[0]);
1495 wl[ 1] = swap32 (w0[1]);
1496 wl[ 2] = swap32 (w0[2]);
1497 wl[ 3] = swap32 (w0[3]);
1498 wl[ 4] = swap32 (w1[0]);
1499 wl[ 5] = swap32 (w1[1]);
1500 wl[ 6] = swap32 (w1[2]);
1501 wl[ 7] = swap32 (w1[3]);
1509 wl[15] = pw_len * 8;
1530 whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1532 const u32 r0 = dgst[0];
1533 const u32 r1 = dgst[1];
1534 const u32 r2 = dgst[2];
1535 const u32 r3 = dgst[3];
1541 __kernel void m06100_m08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1545 __kernel void m06100_m16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1549 __kernel void m06100_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1555 const u32 gid = get_global_id (0);
1556 const u32 lid = get_local_id (0);
1557 const u32 lsz = get_local_size (0);
1563 __local u32 s_Ch[8][256];
1564 __local u32 s_Cl[8][256];
1566 for (u32 i = lid; i < 256; i += lsz)
1568 s_Ch[0][i] = Ch[0][i];
1569 s_Ch[1][i] = Ch[1][i];
1570 s_Ch[2][i] = Ch[2][i];
1571 s_Ch[3][i] = Ch[3][i];
1572 s_Ch[4][i] = Ch[4][i];
1573 s_Ch[5][i] = Ch[5][i];
1574 s_Ch[6][i] = Ch[6][i];
1575 s_Ch[7][i] = Ch[7][i];
1577 s_Cl[0][i] = Cl[0][i];
1578 s_Cl[1][i] = Cl[1][i];
1579 s_Cl[2][i] = Cl[2][i];
1580 s_Cl[3][i] = Cl[3][i];
1581 s_Cl[4][i] = Cl[4][i];
1582 s_Cl[5][i] = Cl[5][i];
1583 s_Cl[6][i] = Cl[6][i];
1584 s_Cl[7][i] = Cl[7][i];
1587 barrier (CLK_LOCAL_MEM_FENCE);
1589 if (gid >= gid_max) return;
1597 wordl0[0] = pws[gid].i[ 0];
1598 wordl0[1] = pws[gid].i[ 1];
1599 wordl0[2] = pws[gid].i[ 2];
1600 wordl0[3] = pws[gid].i[ 3];
1604 wordl1[0] = pws[gid].i[ 4];
1605 wordl1[1] = pws[gid].i[ 5];
1606 wordl1[2] = pws[gid].i[ 6];
1607 wordl1[3] = pws[gid].i[ 7];
1623 const u32 pw_l_len = pws[gid].pw_len;
1625 if (combs_mode == COMBINATOR_MODE_BASE_RIGHT)
1627 append_0x80_2x4 (wordl0, wordl1, pw_l_len);
1629 switch_buffer_by_offset_le (wordl0, wordl1, wordl2, wordl3, combs_buf[0].pw_len);
1636 const u32 search[4] =
1638 digests_buf[digests_offset].digest_buf[DGST_R0],
1639 digests_buf[digests_offset].digest_buf[DGST_R1],
1640 digests_buf[digests_offset].digest_buf[DGST_R2],
1641 digests_buf[digests_offset].digest_buf[DGST_R3]
1648 for (u32 il_pos = 0; il_pos < il_cnt; il_pos++)
1650 const u32 pw_r_len = combs_buf[il_pos].pw_len;
1652 const u32 pw_len = pw_l_len + pw_r_len;
1656 wordr0[0] = combs_buf[il_pos].i[0];
1657 wordr0[1] = combs_buf[il_pos].i[1];
1658 wordr0[2] = combs_buf[il_pos].i[2];
1659 wordr0[3] = combs_buf[il_pos].i[3];
1663 wordr1[0] = combs_buf[il_pos].i[4];
1664 wordr1[1] = combs_buf[il_pos].i[5];
1665 wordr1[2] = combs_buf[il_pos].i[6];
1666 wordr1[3] = combs_buf[il_pos].i[7];
1682 if (combs_mode == COMBINATOR_MODE_BASE_LEFT)
1684 switch_buffer_by_offset_le (wordr0, wordr1, wordr2, wordr3, pw_l_len);
1689 w0[0] = wordl0[0] | wordr0[0];
1690 w0[1] = wordl0[1] | wordr0[1];
1691 w0[2] = wordl0[2] | wordr0[2];
1692 w0[3] = wordl0[3] | wordr0[3];
1696 w1[0] = wordl1[0] | wordr1[0];
1697 w1[1] = wordl1[1] | wordr1[1];
1698 w1[2] = wordl1[2] | wordr1[2];
1699 w1[3] = wordl1[3] | wordr1[3];
1703 w2[0] = wordl2[0] | wordr2[0];
1704 w2[1] = wordl2[1] | wordr2[1];
1705 w2[2] = wordl2[2] | wordr2[2];
1706 w2[3] = wordl2[3] | wordr2[3];
1710 w3[0] = wordl3[0] | wordr3[0];
1711 w3[1] = wordl3[1] | wordr3[1];
1717 wl[ 0] = swap32 (w0[0]);
1718 wl[ 1] = swap32 (w0[1]);
1719 wl[ 2] = swap32 (w0[2]);
1720 wl[ 3] = swap32 (w0[3]);
1721 wl[ 4] = swap32 (w1[0]);
1722 wl[ 5] = swap32 (w1[1]);
1723 wl[ 6] = swap32 (w1[2]);
1724 wl[ 7] = swap32 (w1[3]);
1732 wl[15] = pw_len * 8;
1753 whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1755 const u32 r0 = dgst[0];
1756 const u32 r1 = dgst[1];
1757 const u32 r2 = dgst[2];
1758 const u32 r3 = dgst[3];
1764 __kernel void m06100_s08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1768 __kernel void m06100_s16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)