summaryrefslogtreecommitdiff
path: root/src/buildvm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x86.h')
-rw-r--r--src/buildvm_x86.h1694
1 files changed, 847 insertions, 847 deletions
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index a139f494..7279fa76 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[15229] = { 15static const unsigned char build_actionlist[15231] = {
16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141, 16 254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36, 17 76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199, 18 20,252,247,198,237,15,132,244,13,248,14,252,247,198,237,15,132,244,10,199,
@@ -277,468 +277,468 @@ static const unsigned char build_actionlist[15229] = {
277 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233, 277 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,
278 244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171, 278 244,63,255,137,108,36,16,219,68,36,16,252,233,244,64,255,248,112,139,171,
279 233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244, 279 233,59,171,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,
280 55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15, 280 55,129,122,253,4,239,15,135,244,55,255,252,242,15,45,42,129,252,253,252,255,
281 135,244,55,137,68,36,20,255,221,2,219,92,36,20,129,124,36,20,252,255,0,0, 281 0,0,0,15,135,244,55,137,108,36,20,255,221,2,219,92,36,20,129,124,36,20,252,
282 0,15,135,244,55,255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,108,36,48, 282 255,0,0,0,15,135,244,55,255,199,68,36,8,1,0,0,0,141,68,36,20,248,113,139,
283 137,149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,149,233, 283 108,36,48,137,149,233,137,68,36,4,137,44,36,137,116,36,24,232,251,1,17,139,
284 139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114, 284 149,233,139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,
285 139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,20,252,255, 285 248,114,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,
286 252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129, 286 20,252,255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,
287 122,253,20,239,255,252,242,15,45,106,16,137,108,36,20,255,221,66,16,219,92, 287 247,129,122,253,20,239,255,252,242,15,45,106,16,137,108,36,20,255,221,66,
288 36,20,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 288 16,219,92,36,20,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,
289 244,55,139,42,137,108,36,12,139,173,233,255,252,242,15,45,74,8,255,221,66, 289 239,15,135,244,55,139,42,137,108,36,12,139,173,233,255,252,242,15,45,74,8,
290 8,219,92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,248,2,133, 290 255,221,66,8,219,92,36,8,139,76,36,8,255,139,68,36,20,57,197,15,130,244,251,
291 201,15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,115,141,172,253, 291 248,2,133,201,15,142,244,253,248,3,139,108,36,12,41,200,15,140,244,115,141,
292 13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,15,140,244, 292 172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,248,5,
293 252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,7,255,15,132, 293 15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
294 244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3, 294 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
295 248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,55,139,171, 295 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
296 233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,4,239,15,133, 296 55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
297 244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255, 297 4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
298 221,66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,115,131,189,233, 298 45,66,8,255,221,66,8,219,92,36,20,139,68,36,20,255,133,192,15,142,244,115,
299 1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,182,141,233, 299 131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
300 139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,139, 300 182,141,233,139,171,233,137,68,36,8,248,1,136,77,0,131,197,1,131,232,1,15,
301 131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,244,55,139,171, 301 133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
302 233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244, 302 244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
303 55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,15,130,244,119,129, 303 4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
304 197,239,137,116,36,20,137,68,36,8,139,179,233,248,1,255,15,182,77,0,131,197, 304 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,248,1,255,
305 1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,36,20,252,233,244,113, 305 15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
306 248,120,129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247, 306 36,20,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
307 232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131, 307 171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
308 233,255,15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233, 308 42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,20,137,
309 252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252, 309 68,36,8,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
310 249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137, 310 130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
311 244,1,137,252,240,139,116,36,20,252,233,244,113,248,121,129,252,248,239,15, 311 3,131,232,1,15,137,244,1,137,252,240,139,116,36,20,252,233,244,113,248,121,
312 130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129, 312 129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
313 122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,15,130,244,119, 313 244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
314 129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,244,249,248,1,15, 314 15,130,244,119,129,197,239,137,116,36,20,137,68,36,8,139,179,233,252,233,
315 182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248, 315 244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
316 131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139, 316 122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
317 116,36,20,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253, 317 1,137,252,240,139,116,36,20,252,233,244,113,248,122,129,252,248,239,15,130,
318 4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,234,255,252,242,15, 318 244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
319 42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,64,255,248,123,129, 319 234,255,252,242,15,42,192,252,233,244,63,255,137,4,36,219,4,36,252,233,244,
320 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 320 64,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
321 189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126, 321 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
322 197,252,242,15,42,197,252,233,244,63,255,248,123,129,252,248,239,15,130,244, 322 15,88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,123,129,
323 55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36, 323 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,
324 16,221,28,36,219,4,36,252,233,244,64,255,248,124,129,252,248,239,15,130,244, 324 16,0,0,192,89,216,68,36,16,221,28,36,219,4,36,252,233,244,64,255,248,124,
325 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110, 325 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
326 205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,124,129,252, 326 16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,
327 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,36,16, 327 15,126,197,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
328 0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,137,68,36,20,141,68,194,252, 328 135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,
329 240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,252, 329 255,137,68,36,20,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,
330 242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,221,0,216,68,36,16, 330 4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,
331 221,28,36,35,44,36,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239, 331 33,205,255,221,0,216,68,36,16,221,28,36,35,44,36,255,131,232,8,252,233,244,
332 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56, 332 1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
333 67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 333 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
334 248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 334 15,88,193,102,15,126,197,255,248,127,129,252,248,239,15,130,244,55,129,122,
335 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15, 335 253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,
336 16,0,252,242,15,88,193,102,15,126,193,9,205,255,221,0,216,68,36,16,221,28, 336 36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,
337 36,11,44,36,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 337 221,0,216,68,36,16,221,28,36,11,44,36,255,248,128,129,252,248,239,15,130,
338 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 338 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,
339 252,242,15,88,193,102,15,126,197,255,248,128,129,252,248,239,15,130,244,55, 339 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,128,
340 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 340 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,
341 221,28,36,139,44,36,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193, 341 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,242,15,16,0,252,
342 49,205,255,221,0,216,68,36,16,221,28,36,51,44,36,255,248,129,129,252,248, 342 242,15,88,193,102,15,126,193,49,205,255,221,0,216,68,36,16,221,28,36,51,44,
343 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0, 343 36,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
344 56,67,102,15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255, 344 55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81,252,242,
345 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 345 15,88,193,102,15,126,197,255,248,129,129,252,248,239,15,130,244,55,129,122,
346 2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,15,205,252, 346 253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16,221,28,
347 233,244,125,255,248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 347 36,139,44,36,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,
348 135,244,55,252,242,15,16,2,189,0,0,56,67,102,15,110,205,102,15,112,201,81, 348 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,0,0,56,67,102,
349 252,242,15,88,193,102,15,126,197,255,248,130,129,252,248,239,15,130,244,55, 349 15,110,205,102,15,112,201,81,252,242,15,88,193,102,15,126,197,255,248,130,
350 129,122,253,4,239,15,135,244,55,221,2,199,68,36,16,0,0,192,89,216,68,36,16, 350 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,199,68,
351 221,28,36,139,44,36,255,252,247,213,255,248,125,252,242,15,42,197,252,233, 351 36,16,0,0,192,89,216,68,36,16,221,28,36,139,44,36,255,252,247,213,255,248,
352 244,63,255,248,125,137,44,36,219,4,36,252,233,244,64,255,248,126,139,68,36, 352 125,252,242,15,42,197,252,233,244,63,255,248,125,137,44,36,219,4,36,252,233,
353 20,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4, 353 244,64,255,248,126,139,68,36,20,252,233,244,55,255,248,131,129,252,248,239,
354 239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242, 354 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
355 15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15,88,194, 355 55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,
356 252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,131,129,252, 356 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
357 15,126,201,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
358 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,
359 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
360 8,139,44,36,255,211,229,137,193,252,233,244,125,255,248,132,129,252,248,239,
361 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
362 55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,
363 112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
364 15,126,201,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
365 135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,
366 0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,
367 8,139,44,36,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,
368 239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
369 244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,
370 15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
371 102,15,126,201,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,
372 15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,
373 0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,
374 36,8,139,44,36,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
357 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 375 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
358 15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16,221,92, 376 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,
359 36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211,229,137, 377 213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,
360 193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253, 378 126,197,102,15,126,201,255,248,134,129,252,248,239,15,130,244,55,129,122,
361 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252, 379 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,
362 242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81,252,242,15, 380 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,
363 88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,248,132, 381 139,76,36,8,139,44,36,255,211,197,137,193,252,233,244,125,255,248,135,129,
364 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 382 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,
365 12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216,68,36,16, 383 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,
366 221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36,255,211, 384 110,213,102,15,112,210,81,252,242,15,88,194,252,242,15,88,202,137,200,102,
367 252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,15,130,244,55, 385 15,126,197,102,15,126,201,255,248,135,129,252,248,239,15,130,244,55,129,122,
368 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242, 386 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,
369 15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210,81, 387 68,36,16,0,0,192,89,216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,
370 252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201, 388 139,76,36,8,139,44,36,255,211,205,137,193,252,233,244,125,248,117,184,237,
371 255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 389 252,233,244,55,248,119,184,237,248,55,139,108,36,48,139,114,252,252,137,116,
372 129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89,216, 390 36,24,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
373 68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44,36, 391 59,141,233,15,135,244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,
374 255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130, 392 133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,
375 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252, 393 57,114,252,252,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,
376 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 394 131,198,4,252,255,36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,
377 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 395 182,110,252,253,252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,
378 201,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 396 131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,
379 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89, 397 1,0,139,149,233,252,233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,
380 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 398 36,24,137,149,233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,
381 36,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15,130, 399 1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,
382 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252, 400 195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,235,15,133,244,
383 242,15,16,2,252,242,15,16,74,8,189,0,0,56,67,102,15,110,213,102,15,112,210, 401 247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,255,248,137,15,
384 81,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126, 402 182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,15,182,131,233,
385 201,255,248,135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 403 168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,233,15,132,244,
386 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,199,68,36,16,0,0,192,89, 404 247,168,235,15,132,244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,
387 216,68,36,16,221,92,36,8,216,68,36,16,221,28,36,137,200,139,76,36,8,139,44, 405 137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,
388 36,255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248, 406 15,182,110,252,252,15,183,70,252,254,252,255,164,253,171,233,248,139,131,
389 119,184,237,248,55,139,108,36,48,139,114,252,252,137,116,36,24,137,149,233, 407 198,4,139,77,232,137,76,36,20,252,233,244,4,248,140,255,139,106,252,248,139,
390 141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135, 408 173,233,15,182,133,233,141,4,194,139,108,36,48,137,149,233,137,133,233,137,
391 244,251,137,44,36,252,255,144,233,139,149,233,133,192,15,133,244,69,248,1, 409 252,242,141,139,233,137,171,233,137,116,36,24,232,251,1,21,252,233,244,3,
392 255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,114,252,252, 410 255,248,141,137,116,36,24,255,248,142,255,137,116,36,24,131,206,1,248,1,255,
393 15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252, 411 141,68,194,252,248,139,108,36,48,137,149,233,137,133,233,137,252,242,137,
394 255,36,171,248,2,137,209,252,247,198,237,15,133,244,249,15,182,110,252,253, 412 252,233,232,251,1,22,199,68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,
395 252,247,213,141,20,252,234,252,233,244,27,248,3,137,252,245,131,229,252,248, 413 233,137,193,139,133,233,41,208,137,205,15,182,78,252,253,193,232,3,131,192,
396 41,252,234,252,233,244,27,248,5,186,237,137,252,233,232,251,1,0,139,149,233, 414 1,252,255,229,248,143,255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,
397 252,233,244,1,248,66,93,137,108,36,16,139,108,36,48,137,116,36,24,137,149, 415 138,101,252,248,137,125,252,252,137,117,252,248,139,93,0,139,139,233,199,
398 233,255,141,68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233, 416 131,233,237,137,131,233,137,139,233,129,252,236,239,252,242,15,17,125,216,
399 139,133,233,41,208,193,232,3,131,192,1,139,108,36,16,85,195,248,136,255,15, 417 252,242,15,17,117,208,252,242,15,17,109,200,252,242,15,17,101,192,252,242,
400 182,131,233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132, 418 15,17,93,184,252,242,15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,
401 244,247,252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235, 419 139,171,233,139,147,233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,
402 15,133,244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244, 420 36,16,141,139,233,232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,
403 251,168,235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132, 421 139,149,233,139,177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,
404 244,251,248,1,255,139,108,36,48,137,149,233,137,252,242,137,252,233,232,251, 422 20,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,
405 1,20,248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15, 423 237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,
406 183,70,252,254,252,255,164,253,171,233,248,139,131,198,4,139,77,232,137,76, 424 244,248,139,68,36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,
407 36,20,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233, 425 194,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
408 141,4,194,139,108,36,48,137,149,233,137,133,233,137,252,242,141,139,233,137, 426 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
409 171,233,137,116,36,24,232,251,1,21,252,233,244,3,255,248,141,137,116,36,24, 427 217,108,36,4,139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,
410 255,248,142,255,137,116,36,24,131,206,1,248,1,255,141,68,194,252,248,139, 428 102,15,115,210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,
411 108,36,48,137,149,233,137,133,233,137,252,242,137,252,233,232,251,1,22,199, 429 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
412 68,36,24,0,0,0,0,255,131,230,252,254,255,139,149,233,137,193,139,133,233, 430 252,242,15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,
413 41,208,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,229,248,143, 431 112,210,81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,
414 255,85,141,108,36,12,85,83,82,81,80,15,182,69,252,252,138,101,252,248,137, 432 248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,
415 125,252,252,137,117,252,248,139,93,0,139,139,233,199,131,233,237,137,131, 433 102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,
416 233,137,139,233,129,252,236,239,252,242,15,17,125,216,252,242,15,17,117,208, 434 4,139,68,36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,
417 252,242,15,17,109,200,252,242,15,17,101,192,252,242,15,17,93,184,252,242,
418 15,17,85,176,252,242,15,17,77,168,252,242,15,17,69,160,139,171,233,139,147,
419 233,137,171,233,199,131,233,0,0,0,0,137,149,233,141,84,36,16,141,139,233,
420 232,251,1,23,139,141,233,129,225,239,137,204,137,169,233,139,149,233,139,
421 177,233,255,248,144,255,133,192,15,136,244,249,137,68,36,20,139,122,252,248,
422 139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
423 204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,139,68,
424 36,20,248,2,252,255,36,171,248,3,252,247,216,137,252,233,137,194,232,251,
425 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,
426 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
427 139,68,36,8,195,255,248,145,102,15,252,239,210,102,15,118,210,102,15,115,
428 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84, 435 210,1,184,0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,
429 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242, 436 202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,
430 15,92,203,102,15,86,202,184,0,0,252,240,63,102,15,110,208,102,15,112,210, 437 15,92,203,102,15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,
431 81,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 438 81,252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
432 248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252, 439 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,
433 255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68, 440 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,
434 36,8,195,255,248,146,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184, 441 102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,
435 0,0,48,67,102,15,110,216,102,15,112,219,81,15,40,200,102,15,84,202,102,15, 442 216,102,15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,
436 46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 443 102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,
437 15,86,202,184,0,0,252,240,191,102,15,110,208,102,15,112,210,81,252,242,15, 444 63,102,15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,
438 194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,104,255, 445 242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,
439 217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217, 446 242,15,94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,
440 108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,102,15,252, 447 48,67,102,15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,
441 239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102,15,110,216,102, 448 220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,
442 15,112,219,81,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15, 449 15,86,226,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,
443 85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,184,0,0,252,240,63,102, 450 194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,
444 15,110,216,102,15,112,219,81,252,242,15,194,193,1,102,15,84,195,252,242,15, 451 242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,
445 92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15, 452 255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,
446 94,193,102,15,252,239,210,102,15,118,210,102,15,115,210,1,184,0,0,48,67,102, 453 255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,
447 15,110,216,102,15,112,219,81,15,40,224,102,15,84,226,102,15,46,220,15,134, 454 222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,
448 244,247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,184, 455 36,4,0,0,128,127,15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,
449 0,0,252,240,63,102,15,110,208,102,15,112,210,81,252,242,15,194,196,1,102, 456 248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
450 15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,15,92,193, 457 217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,
451 195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,217,193,216, 458 84,36,4,219,68,36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,
452 252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102, 459 244,254,15,138,244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,
453 137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,252,233,195, 460 1,169,1,0,0,0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,
454 255,248,88,217,252,234,222,201,248,149,217,84,36,4,129,124,36,4,0,0,128,127, 461 15,132,244,251,217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,
455 15,132,244,247,129,124,36,4,0,0,128,252,255,15,132,244,248,248,150,217,192, 462 220,201,252,233,244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,
456 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 463 244,253,217,232,222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,
457 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,219,84,36,4,219,68, 464 244,1,248,7,221,216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,
458 36,4,255,223,252,233,255,221,252,233,223,224,158,255,15,133,244,254,15,138, 465 68,36,4,209,224,61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,
459 244,255,221,216,139,68,36,4,131,252,248,1,15,142,244,252,248,1,169,1,0,0, 466 244,250,61,0,0,0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,
460 0,15,133,244,248,216,200,209,232,252,233,244,1,248,2,209,232,15,132,244,251, 467 255,217,232,255,223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,
461 217,192,248,3,216,200,209,232,15,132,244,250,15,131,244,3,220,201,252,233, 468 217,201,248,1,221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,
462 244,3,248,4,255,222,201,248,5,195,248,6,15,132,244,5,15,130,244,253,217,232, 469 217,225,217,252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,
463 222,252,241,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,221, 470 249,217,201,248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,
464 216,217,232,195,248,8,217,84,36,4,217,201,217,84,36,8,139,68,36,4,209,224, 471 216,221,216,133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,
465 61,0,0,0,252,255,15,132,244,248,139,68,36,8,209,224,15,132,244,250,61,0,0, 472 128,127,217,68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,
466 0,252,255,15,132,244,250,217,252,241,252,233,244,150,248,9,255,217,232,255, 473 15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,
467 223,252,234,255,221,252,234,223,224,158,255,15,132,244,247,217,201,248,1, 474 1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,
468 221,216,195,248,2,217,225,217,232,255,15,132,244,249,221,216,217,225,217, 475 252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,
469 252,238,184,0,0,0,0,15,146,208,209,200,51,68,36,4,15,137,244,249,217,201, 476 192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,
470 248,3,221,217,217,225,195,248,4,131,124,36,4,0,15,141,244,3,221,216,221,216, 477 3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,
471 133,192,15,132,244,251,217,252,238,195,248,5,199,68,36,4,0,0,128,127,217, 478 184,0,0,252,240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,
472 68,36,4,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102, 479 15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,
473 15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244, 480 0,0,252,240,63,102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,
474 252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244, 481 36,12,252,242,15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,
475 1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232, 482 224,61,0,0,224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,
476 15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252, 483 247,139,68,36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,
477 242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,184,0,0,252, 484 248,1,221,68,36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,
478 240,63,102,15,110,200,102,15,112,201,81,252,242,15,94,200,88,15,40,193,252, 485 217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,
479 247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,184,0,0,252,240,63, 486 15,16,68,36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,
480 102,15,110,192,102,15,112,192,81,195,248,8,252,242,15,17,76,36,12,252,242, 487 81,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,
481 15,17,68,36,4,131,124,36,12,0,15,133,244,247,139,68,36,16,209,224,61,0,0, 488 210,102,15,118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,
482 224,252,255,15,132,244,248,248,1,255,131,124,36,4,0,15,133,244,247,139,68, 489 15,110,208,102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,
483 36,8,209,224,15,132,244,250,61,0,0,224,252,255,15,132,244,251,248,1,221,68, 490 87,192,136,196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,
484 36,12,221,68,36,4,217,252,241,217,192,217,252,252,220,252,233,217,201,217, 491 15,110,192,102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,
485 252,240,217,232,222,193,217,252,253,221,217,221,92,36,4,252,242,15,16,68, 492 255,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,
486 36,4,195,248,9,184,0,0,252,240,63,102,15,110,208,102,15,112,210,81,102,15, 493 248,153,255,139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,
487 46,194,15,132,244,247,15,40,193,248,1,195,248,2,102,15,252,239,210,102,15, 494 15,135,244,248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,
488 118,210,102,15,115,210,1,102,15,84,194,184,0,0,252,240,63,102,15,110,208, 495 248,2,131,252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,
489 102,15,112,210,81,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136, 496 244,253,248,1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,
490 196,15,146,208,48,224,15,133,244,1,248,3,184,0,0,252,240,127,102,15,110,192, 497 248,2,221,68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,
491 102,15,112,192,81,195,248,4,102,15,80,193,133,192,15,133,244,3,255,15,87, 498 248,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,
492 192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255, 499 1,217,232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,
493 139,68,36,12,252,242,15,16,68,36,4,131,252,248,1,15,132,244,247,15,135,244, 500 244,248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,
494 248,232,244,82,252,233,244,253,248,1,232,244,84,252,233,244,253,248,2,131, 501 2,131,252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,
495 252,248,3,15,132,244,247,15,135,244,248,232,244,104,255,252,233,244,253,248, 502 252,242,221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,
496 1,252,242,15,81,192,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,2,221, 503 82,15,132,244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,
497 68,36,4,131,252,248,5,15,130,244,88,15,132,244,149,248,2,131,252,248,7,15, 504 195,248,2,131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,
498 132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217, 505 244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,
499 232,217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,15,135,244, 506 217,201,217,252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,
500 248,255,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131, 507 248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,
501 252,248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242, 508 248,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,
502 221,216,195,255,139,68,36,12,221,68,36,4,131,252,248,1,15,130,244,82,15,132, 509 216,195,255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,
503 244,84,131,252,248,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2, 510 242,15,16,76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,
504 131,252,248,5,15,130,244,88,15,132,244,149,131,252,248,7,15,132,244,247,15, 511 88,193,248,7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,
505 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217, 512 252,233,244,7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,
506 252,241,195,248,2,131,252,248,9,15,132,244,247,255,15,135,244,248,217,252, 513 89,193,252,233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,
507 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,248,11,15, 514 248,5,15,132,244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,
508 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195, 515 232,244,107,82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,
509 255,248,9,204,248,154,255,139,68,36,20,252,242,15,16,68,36,4,252,242,15,16, 516 248,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,
510 76,36,12,131,252,248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,248, 517 7,248,1,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,
511 7,252,242,15,17,68,36,4,221,68,36,4,195,248,1,252,242,15,92,193,252,233,244, 518 233,244,7,248,2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,
512 7,248,2,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,89,193,252, 519 15,132,244,247,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,
513 233,244,7,248,1,252,242,15,94,193,252,233,244,7,248,2,131,252,248,5,15,132, 520 2,131,252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,
514 244,247,255,15,135,244,248,232,244,148,252,233,244,7,248,1,90,232,244,107, 521 244,7,248,1,252,242,15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,
515 82,252,233,244,7,248,2,131,252,248,7,15,132,244,247,15,135,244,248,184,0, 522 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
516 0,0,128,102,15,110,200,102,15,112,201,81,15,87,193,252,233,244,7,248,1,102, 523 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
517 15,252,239,201,102,15,118,201,102,15,115,209,1,15,84,193,252,233,244,7,248, 524 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
518 2,255,131,252,248,9,15,135,244,248,221,68,36,4,221,68,36,12,15,132,244,247, 525 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
526 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
519 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 527 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
520 15,132,244,247,15,135,244,255,252,242,15,93,193,252,233,244,7,248,1,252,242, 528 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
521 15,95,193,252,233,244,7,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36, 529 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
522 12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252, 530 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
523 233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248, 531 244,248,217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,
524 1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252, 532 0,0,32,0,82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,
525 248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216, 533 162,139,124,36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,
526 217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243, 534 255,129,124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,
527 195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244, 535 41,255,252,242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,
528 247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233, 536 194,131,198,4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,
529 218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217, 537 134,244,248,255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,
530 201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248, 538 233,248,2,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,
531 217,201,248,2,221,216,195,255,248,155,156,90,137,209,129,252,242,0,0,32,0, 539 255,139,108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,
532 82,157,156,90,49,192,57,209,15,132,244,247,139,68,36,4,87,83,15,162,139,124, 540 4,239,15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,
533 36,16,137,7,137,95,4,137,79,8,137,87,12,91,95,248,1,195,255,249,255,129,124, 541 221,4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,
534 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 542 247,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,
535 15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,4,255, 543 70,252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,
536 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 544 129,252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,
537 131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,139,6,15, 545 252,253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,
538 182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,194,4, 546 233,235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,
539 131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244, 547 252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,
540 251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15, 548 12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,
541 138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15, 549 16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,
542 183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,252,254,141, 550 4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,
543 180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 551 247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,
544 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 552 70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,
545 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 553 4,193,232,16,252,255,36,171,255,139,108,194,4,139,4,194,137,108,202,4,137,
546 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,252,247,208,131, 554 4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,
547 198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,12,135,255,131,198, 555 49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,
548 4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,16,4,199,102,15,46, 556 15,182,232,131,198,4,193,232,16,252,255,36,171,255,129,124,253,194,4,239,
549 4,202,255,221,4,202,221,4,199,255,252,247,208,131,198,4,57,68,202,4,255,139, 557 15,135,244,48,255,252,242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,
550 108,194,4,131,198,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247, 558 112,201,81,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,
551 255,137,108,202,4,139,44,194,137,44,202,255,15,183,70,252,254,141,180,253, 559 255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,
552 134,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 560 15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,
553 171,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,6,15,182,204, 561 255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,
554 15,182,232,131,198,4,193,232,16,252,255,36,171,255,49,252,237,129,124,253, 562 129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,
555 194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,131,198,4, 563 242,15,42,192,137,252,234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,
556 193,232,16,252,255,36,171,255,129,124,253,194,4,239,15,135,244,48,255,252, 564 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
557 242,15,16,4,194,184,0,0,0,128,102,15,110,200,102,15,112,201,81,15,87,193, 565 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,
558 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 566 4,252,234,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,
559 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 567 15,16,4,199,252,242,15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,
560 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204, 568 253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,
561 15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,124,253,194,4,239, 569 242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,
562 15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 570 242,15,16,4,252,234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,
563 234,255,137,4,36,137,252,234,219,4,36,255,15,182,78,252,253,252,233,244,1, 571 252,242,15,16,4,199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,
564 255,15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46, 572 255,252,242,15,16,4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,
565 255,252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199, 573 194,255,252,242,15,16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,
566 255,129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242, 574 12,199,255,252,242,15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,
567 15,88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239, 575 12,252,234,255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,
568 15,135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252, 576 234,220,12,194,255,252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,
569 234,252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252, 577 252,234,220,52,199,255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,
570 234,252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4, 578 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,
571 199,252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16, 579 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,
572 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 580 255,221,4,252,234,221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,
573 16,4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242, 581 234,255,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
574 15,16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252, 582 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
575 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 583 156,255,232,244,107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,
576 252,242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199, 584 36,4,137,68,36,8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,
577 255,252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252, 585 232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,
578 234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220, 586 78,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,
579 52,194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234, 587 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,
580 221,4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199, 588 139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,
581 221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4, 589 4,193,232,16,252,255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,
582 252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244, 590 4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
583 107,255,15,182,252,236,15,182,192,141,12,194,41,232,137,76,36,4,137,68,36, 591 4,202,255,221,4,199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,
584 8,248,33,139,108,36,48,137,44,36,137,149,233,137,116,36,24,232,251,1,25,139, 592 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,
585 149,233,133,192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,139,68, 593 68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,
586 252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,6,15,182,204,15,182, 594 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,
587 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,4,135,199,68, 595 106,252,248,139,172,253,133,233,139,173,233,139,69,4,139,109,0,137,68,202,
588 202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 596 4,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
589 255,36,171,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,70, 597 171,255,139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,
590 252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,4,202,255,221,4, 598 12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,
591 199,221,28,202,255,252,247,208,137,68,202,4,139,6,15,182,204,15,182,232,131, 599 15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
592 198,4,193,232,16,252,255,36,171,255,141,76,202,12,141,68,194,4,189,237,137, 600 255,36,171,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,
593 105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15, 601 235,15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,
594 182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139,172,253, 602 244,1,255,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,
595 133,233,139,173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,6,15,182, 603 133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,
596 204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,106,252,248,139, 604 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,252,246,129,
597 172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77, 605 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,233,
598 0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,6, 606 232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,15,
599 15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,129,232,239, 607 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
600 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,135,213,141, 608 25,255,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,65,
601 139,233,255,232,251,1,26,137,252,234,252,233,244,1,255,252,247,208,139,106, 609 4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,141,
602 252,248,139,172,253,141,233,139,12,135,139,133,233,137,8,199,64,4,237,252, 610 180,253,134,233,139,108,36,48,131,189,233,0,15,132,244,247,137,149,233,141,
603 246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198, 611 20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,15,182,
604 4,193,232,16,252,255,36,171,248,2,252,246,129,233,235,15,132,244,1,128,189, 612 232,131,198,4,193,232,16,252,255,36,171,255,252,247,208,139,74,252,248,139,
605 233,0,15,132,244,1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252, 613 4,135,139,108,36,48,137,76,36,8,137,68,36,4,137,44,36,137,149,233,137,116,
606 233,244,1,255,139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141, 614 36,24,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
607 233,139,141,233,255,252,242,15,17,1,255,221,25,255,252,247,208,139,106,252, 615 139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255,139,108,
608 248,139,172,253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232, 616 36,48,137,149,233,139,139,233,59,139,233,137,116,36,24,15,131,244,251,248,
609 131,198,4,193,232,16,252,255,36,171,255,141,180,253,134,233,139,108,36,48, 617 1,137,193,37,252,255,7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,
610 131,189,233,0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1, 618 132,244,249,248,2,137,44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,
611 27,139,149,233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 619 252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,
612 255,36,171,255,252,247,208,139,74,252,248,139,4,135,139,108,36,48,137,76, 620 193,232,16,252,255,36,171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,
613 36,8,137,68,36,4,137,44,36,137,149,233,137,116,36,24,232,251,1,28,139,149, 621 232,251,1,30,15,183,70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,
614 233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182, 622 139,139,233,137,116,36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,
615 232,131,198,4,193,232,16,252,255,36,171,255,139,108,36,48,137,149,233,139, 623 20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
616 139,233,59,139,233,137,116,36,24,15,131,244,251,248,1,137,193,37,252,255,
617 7,0,0,193,252,233,11,137,76,36,8,61,252,255,7,0,0,15,132,244,249,248,2,137,
618 44,36,137,68,36,4,232,251,1,29,139,149,233,15,182,78,252,253,137,4,202,199,
619 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36, 624 68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
620 171,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,251,1,30,15,183, 625 171,248,3,137,252,233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,
621 70,252,254,252,233,244,1,255,252,247,208,139,108,36,48,139,139,233,137,116, 626 244,2,255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,
622 36,24,59,139,233,137,149,233,15,131,244,249,248,2,139,20,135,137,252,233, 627 255,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,
623 232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139, 628 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,
624 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,137,252, 629 252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
625 233,232,251,1,30,15,183,70,252,254,252,247,208,252,233,244,2,255,252,247, 630 242,15,45,192,252,242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,
626 208,139,106,252,248,139,173,233,139,4,135,252,233,244,157,255,252,247,208, 631 4,36,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
627 139,106,252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236, 632 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
628 15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124, 633 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,
629 253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252, 634 233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,
630 242,15,42,200,102,15,46,193,255,221,4,194,219,20,36,219,4,36,255,15,133,244, 635 252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,
631 36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132, 636 194,252,233,244,157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,
632 244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15, 637 124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,
633 182,232,131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244, 638 136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,
634 1,139,141,233,252,246,129,233,235,15,132,244,36,15,182,78,252,253,252,233, 639 233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,
635 244,1,248,5,255,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 640 41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,
636 157,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234, 641 131,198,4,193,232,16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,
637 4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,105,201, 642 244,2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,
638 239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,133,244, 643 132,244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,
639 250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,139,41,139,73,4,137, 644 236,15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,
640 44,194,248,2,255,137,76,194,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 645 133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,
641 16,252,255,36,171,248,3,15,182,70,252,253,185,237,252,233,244,2,248,4,139, 646 248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,
642 137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,244,3,252,246, 647 131,198,4,193,232,16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,
643 129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,15,182,192,129, 648 141,233,252,246,129,233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,
644 124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,233,15,131,244, 649 124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
645 35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,248,1,139,40,139, 650 15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
646 64,4,137,44,202,137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232, 651 233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
647 16,252,255,36,171,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129, 652 253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,
648 233,235,15,132,244,35,255,15,182,252,236,15,182,192,129,124,253,252,234,4, 653 232,131,198,4,193,232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,
649 239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255, 654 139,141,233,255,252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,
650 15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4, 655 244,1,248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,
651 239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108, 656 248,7,128,165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,
652 202,4,139,12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193, 657 252,233,244,2,255,15,182,252,236,15,182,192,252,247,208,139,4,135,129,124,
653 232,16,252,255,36,171,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252, 658 253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,
654 246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124, 659 233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,
655 253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235, 660 251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,
656 139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15, 661 252,246,133,233,235,15,133,244,253,248,3,15,182,70,252,253,139,108,194,4,
657 182,252,236,15,182,192,252,247,208,139,4,135,129,124,253,252,234,4,239,15, 662 139,4,194,137,105,4,137,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
658 133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198, 663 252,255,36,171,248,4,131,189,233,0,15,132,244,2,137,76,36,16,139,141,233,
659 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133, 664 252,246,129,233,235,15,132,244,37,139,76,36,16,252,233,244,2,248,5,139,137,
660 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15, 665 233,133,201,15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,
661 133,244,253,248,3,15,182,70,252,253,139,108,194,4,139,4,194,137,105,4,137, 666 233,235,15,132,244,37,248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,
662 1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,4,131, 667 68,36,16,137,108,36,4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,
663 189,233,0,15,132,244,2,137,76,36,16,139,141,233,252,246,129,233,235,15,132, 668 116,36,24,232,251,1,32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,
664 244,37,139,76,36,16,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1, 669 7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,
665 255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37, 670 182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,
666 248,6,137,68,36,16,199,68,36,20,237,137,108,36,12,141,68,36,16,137,108,36, 671 234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,
667 4,139,108,36,48,137,68,36,8,137,44,36,137,149,233,137,116,36,24,232,251,1, 672 244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,
668 32,139,149,233,139,108,36,12,137,193,252,233,244,2,248,7,128,165,233,235, 673 12,202,137,104,4,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
669 139,131,233,137,171,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182, 674 255,36,171,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,
670 192,129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15, 675 235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,
671 131,244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252, 676 139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,
672 246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137, 677 36,16,255,252,242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,
673 8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,3,131, 678 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
674 189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38, 679 139,68,36,20,131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,
675 15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,139,139,233,137,171, 680 41,252,248,193,231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,
676 233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,124,36,16,255,252, 681 111,4,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,
677 242,15,45,60,199,255,221,4,199,219,92,36,12,139,124,36,12,255,248,1,141,12, 682 15,182,232,131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,
678 202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,20, 683 36,48,137,149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,
679 131,232,1,15,132,244,250,1,252,248,59,133,233,15,131,244,251,41,252,248,193, 684 233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,
680 231,3,3,189,233,248,3,139,41,137,47,139,105,4,131,193,8,137,111,4,131,199, 685 137,171,233,137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,
681 8,131,232,1,15,133,244,3,248,4,139,124,36,16,139,6,15,182,204,15,182,232, 686 4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,
682 131,198,4,193,232,16,252,255,36,171,248,5,137,108,36,4,139,108,36,48,137, 687 14,15,182,252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,
683 149,233,137,68,36,8,137,44,36,137,116,36,24,232,251,1,33,139,149,233,15,182, 688 215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,
684 78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,131,233,137,171,233, 689 252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,
685 137,133,233,252,233,244,2,255,3,68,36,20,255,129,124,253,202,4,239,139,44, 690 131,232,1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,
686 202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,233,139,14,15,182, 691 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,
687 252,233,15,182,205,131,198,4,252,255,36,171,255,141,76,202,8,137,215,139, 692 189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,
688 105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,114,252,252, 693 131,198,4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,
689 252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,68,36,20,131,232, 694 252,253,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
690 1,15,132,244,249,248,2,139,41,137,47,139,105,4,137,111,4,131,199,8,131,193, 695 233,244,4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,
691 8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,20,128,189,233,1, 696 252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,
692 15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198, 697 65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,
693 4,252,255,36,171,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,253, 698 228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,
694 252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,233,244, 699 137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,
695 4,248,7,15,139,244,1,131,230,252,248,41,252,242,137,215,139,114,252,252,252, 700 198,4,252,255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,128,
696 233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,65,4,139, 701 233,15,182,128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,252,
697 105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,228,137, 702 237,15,132,244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,
698 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202, 703 71,252,248,137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,
699 137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252, 704 131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,
700 255,36,171,255,15,182,252,236,139,66,252,248,141,12,202,139,128,233,15,182, 705 130,244,2,248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,
701 128,233,137,124,36,16,141,188,253,194,233,43,122,252,252,133,252,237,15,132, 706 16,252,255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,
702 244,251,141,108,252,233,252,248,57,215,15,131,244,248,248,1,139,71,252,248, 707 3,255,137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,
703 137,1,139,71,252,252,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249, 708 133,233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,
704 57,215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2, 709 8,137,65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,
705 248,3,139,124,36,16,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252, 710 137,141,233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,
706 255,36,171,248,5,199,68,36,20,1,0,0,0,137,208,41,252,248,15,134,244,3,255, 711 251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,
707 137,197,193,252,237,3,131,197,1,137,108,36,20,139,108,36,48,1,200,59,133, 712 1,139,114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,
708 233,15,135,244,253,248,6,139,71,252,248,137,1,139,71,252,252,131,199,8,137, 713 137,215,131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,
709 65,4,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141, 714 15,4,137,111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,
710 233,137,116,36,24,41,215,139,84,36,20,131,252,234,1,137,252,233,232,251,1, 715 15,182,110,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
711 0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,255,248,1,139, 716 252,139,44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,
712 114,252,252,137,68,36,20,252,247,198,237,15,133,244,253,255,248,13,137,215, 717 15,182,78,252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139,
713 131,232,1,15,132,244,249,248,2,139,44,15,137,111,252,248,139,108,15,4,137, 718 191,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,
714 111,252,252,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,20,15,182,110, 719 6,255,199,71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192,
715 252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,252,139, 720 1,252,233,244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,252,
716 44,10,137,106,252,248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78, 721 241,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,
717 252,253,252,247,209,141,20,202,139,122,252,248,139,191,233,139,191,233,139, 722 244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,
718 6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,255,199, 723 239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,
719 71,252,252,237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233, 724 242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,
720 244,5,248,7,15,139,244,14,131,230,252,248,41,252,242,255,1,252,241,255,137, 725 252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,
721 252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255, 726 15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,
722 141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135, 727 15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,
723 244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16, 728 70,252,254,255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,
724 1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237, 729 15,183,70,252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,
725 15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65, 730 3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,
726 24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244, 731 132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,
727 247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254, 732 180,253,134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,
728 255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70, 733 4,129,139,128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,
729 252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15, 734 180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
730 46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244, 735 36,171,255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,
731 247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253, 736 132,244,142,255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,
732 134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,139, 737 23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,
733 128,233,139,108,36,48,137,147,233,137,171,233,252,255,224,255,141,180,253, 738 245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,
734 134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,255, 739 244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,
735 137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,142, 740 252,248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,
736 255,139,190,233,139,108,36,48,141,12,202,59,141,233,15,135,244,23,15,182, 741 15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
737 142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,255,
738 248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,
739 255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
740 248,139,108,36,48,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
741 182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
742 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252, 742 249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
743 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204, 743 252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
744 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131, 744 15,182,232,131,198,4,193,232,16,252,255,36,171,255,248,3,199,64,4,237,131,
@@ -1309,238 +1309,238 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1309 if (sse) { 1309 if (sse) {
1310 dasm_put(Dst, 5447); 1310 dasm_put(Dst, 5447);
1311 } else { 1311 } else {
1312 dasm_put(Dst, 5467); 1312 dasm_put(Dst, 5469);
1313 } 1313 }
1314 dasm_put(Dst, 5487, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1314 dasm_put(Dst, 5489, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1315 dasm_put(Dst, 2142); 1315 dasm_put(Dst, 2142);
1316 if (sse) { 1316 if (sse) {
1317 dasm_put(Dst, 5590); 1317 dasm_put(Dst, 5592);
1318 } else { 1318 } else {
1319 dasm_put(Dst, 5601); 1319 dasm_put(Dst, 5603);
1320 } 1320 }
1321 dasm_put(Dst, 5609, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1321 dasm_put(Dst, 5611, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1322 if (sse) { 1322 if (sse) {
1323 dasm_put(Dst, 5639); 1323 dasm_put(Dst, 5641);
1324 } else { 1324 } else {
1325 dasm_put(Dst, 5646); 1325 dasm_put(Dst, 5648);
1326 } 1326 }
1327 dasm_put(Dst, 5658, sizeof(GCstr)-1); 1327 dasm_put(Dst, 5660, sizeof(GCstr)-1);
1328 dasm_put(Dst, 5733, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1328 dasm_put(Dst, 5735, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1329 dasm_put(Dst, 5792, LJ_TSTR, LJ_TISNUM); 1329 dasm_put(Dst, 5794, LJ_TSTR, LJ_TISNUM);
1330 if (sse) { 1330 if (sse) {
1331 dasm_put(Dst, 5813); 1331 dasm_put(Dst, 5815);
1332 } else { 1332 } else {
1333 dasm_put(Dst, 5820); 1333 dasm_put(Dst, 5822);
1334 } 1334 }
1335 dasm_put(Dst, 5832, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1335 dasm_put(Dst, 5834, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1336 dasm_put(Dst, 5897, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1336 dasm_put(Dst, 5899, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1337 dasm_put(Dst, 5960, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1337 dasm_put(Dst, 5962, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1338 dasm_put(Dst, 6031, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1338 dasm_put(Dst, 6033, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1339 dasm_put(Dst, 6116, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1339 dasm_put(Dst, 6118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1340 dasm_put(Dst, 6186, 1+1, LJ_TTAB); 1340 dasm_put(Dst, 6188, 1+1, LJ_TTAB);
1341 if (sse) { 1341 if (sse) {
1342 dasm_put(Dst, 6254); 1342 dasm_put(Dst, 6256);
1343 } else { 1343 } else {
1344 dasm_put(Dst, 6264); 1344 dasm_put(Dst, 6266);
1345 } 1345 }
1346 if (sse) { 1346 if (sse) {
1347 dasm_put(Dst, 6275, 1+1, LJ_TISNUM); 1347 dasm_put(Dst, 6277, 1+1, LJ_TISNUM);
1348 } else { 1348 } else {
1349 dasm_put(Dst, 6332, 1+1, LJ_TISNUM); 1349 dasm_put(Dst, 6334, 1+1, LJ_TISNUM);
1350 } 1350 }
1351 if (sse) { 1351 if (sse) {
1352 dasm_put(Dst, 6376, 1+1, LJ_TISNUM); 1352 dasm_put(Dst, 6378, 1+1, LJ_TISNUM);
1353 } else { 1353 } else {
1354 dasm_put(Dst, 6424, 1+1, LJ_TISNUM); 1354 dasm_put(Dst, 6426, 1+1, LJ_TISNUM);
1355 } 1355 }
1356 dasm_put(Dst, 6464, LJ_TISNUM); 1356 dasm_put(Dst, 6466, LJ_TISNUM);
1357 if (sse) { 1357 if (sse) {
1358 dasm_put(Dst, 6491); 1358 dasm_put(Dst, 6493);
1359 } else { 1359 } else {
1360 dasm_put(Dst, 6508); 1360 dasm_put(Dst, 6510);
1361 } 1361 }
1362 dasm_put(Dst, 6521); 1362 dasm_put(Dst, 6523);
1363 if (sse) { 1363 if (sse) {
1364 dasm_put(Dst, 6529, 1+1, LJ_TISNUM); 1364 dasm_put(Dst, 6531, 1+1, LJ_TISNUM);
1365 } else { 1365 } else {
1366 dasm_put(Dst, 6577, 1+1, LJ_TISNUM); 1366 dasm_put(Dst, 6579, 1+1, LJ_TISNUM);
1367 } 1367 }
1368 dasm_put(Dst, 6464, LJ_TISNUM); 1368 dasm_put(Dst, 6466, LJ_TISNUM);
1369 if (sse) { 1369 if (sse) {
1370 dasm_put(Dst, 6617); 1370 dasm_put(Dst, 6619);
1371 } else { 1371 } else {
1372 dasm_put(Dst, 6634); 1372 dasm_put(Dst, 6636);
1373 } 1373 }
1374 dasm_put(Dst, 6521); 1374 dasm_put(Dst, 6523);
1375 if (sse) { 1375 if (sse) {
1376 dasm_put(Dst, 6647, 1+1, LJ_TISNUM); 1376 dasm_put(Dst, 6649, 1+1, LJ_TISNUM);
1377 } else { 1377 } else {
1378 dasm_put(Dst, 6695, 1+1, LJ_TISNUM); 1378 dasm_put(Dst, 6697, 1+1, LJ_TISNUM);
1379 } 1379 }
1380 dasm_put(Dst, 6464, LJ_TISNUM); 1380 dasm_put(Dst, 6466, LJ_TISNUM);
1381 if (sse) { 1381 if (sse) {
1382 dasm_put(Dst, 6735); 1382 dasm_put(Dst, 6737);
1383 } else { 1383 } else {
1384 dasm_put(Dst, 6752); 1384 dasm_put(Dst, 6754);
1385 } 1385 }
1386 dasm_put(Dst, 6521); 1386 dasm_put(Dst, 6523);
1387 if (sse) { 1387 if (sse) {
1388 dasm_put(Dst, 6765, 1+1, LJ_TISNUM); 1388 dasm_put(Dst, 6767, 1+1, LJ_TISNUM);
1389 } else { 1389 } else {
1390 dasm_put(Dst, 6813, 1+1, LJ_TISNUM); 1390 dasm_put(Dst, 6815, 1+1, LJ_TISNUM);
1391 } 1391 }
1392 dasm_put(Dst, 6853); 1392 dasm_put(Dst, 6855);
1393 if (sse) { 1393 if (sse) {
1394 dasm_put(Dst, 6860, 1+1, LJ_TISNUM); 1394 dasm_put(Dst, 6862, 1+1, LJ_TISNUM);
1395 } else { 1395 } else {
1396 dasm_put(Dst, 6908, 1+1, LJ_TISNUM); 1396 dasm_put(Dst, 6910, 1+1, LJ_TISNUM);
1397 } 1397 }
1398 dasm_put(Dst, 6948); 1398 dasm_put(Dst, 6950);
1399 if (sse) { 1399 if (sse) {
1400 dasm_put(Dst, 6952); 1400 dasm_put(Dst, 6954);
1401 } else { 1401 } else {
1402 dasm_put(Dst, 6964); 1402 dasm_put(Dst, 6966);
1403 } 1403 }
1404 dasm_put(Dst, 6977); 1404 dasm_put(Dst, 6979);
1405 if (sse) { 1405 if (sse) {
1406 dasm_put(Dst, 6988, 1+1, LJ_TISNUM, LJ_TISNUM); 1406 dasm_put(Dst, 6990, 1+1, LJ_TISNUM, LJ_TISNUM);
1407 } else { 1407 } else {
1408 dasm_put(Dst, 7062, 2+1, LJ_TISNUM, LJ_TISNUM); 1408 dasm_put(Dst, 7064, 2+1, LJ_TISNUM, LJ_TISNUM);
1409 } 1409 }
1410 dasm_put(Dst, 7128); 1410 dasm_put(Dst, 7130);
1411 if (sse) { 1411 if (sse) {
1412 dasm_put(Dst, 7137, 1+1, LJ_TISNUM, LJ_TISNUM); 1412 dasm_put(Dst, 7139, 1+1, LJ_TISNUM, LJ_TISNUM);
1413 } else { 1413 } else {
1414 dasm_put(Dst, 7211, 2+1, LJ_TISNUM, LJ_TISNUM); 1414 dasm_put(Dst, 7213, 2+1, LJ_TISNUM, LJ_TISNUM);
1415 } 1415 }
1416 dasm_put(Dst, 7277); 1416 dasm_put(Dst, 7279);
1417 if (sse) { 1417 if (sse) {
1418 dasm_put(Dst, 7287, 1+1, LJ_TISNUM, LJ_TISNUM); 1418 dasm_put(Dst, 7289, 1+1, LJ_TISNUM, LJ_TISNUM);
1419 } else { 1419 } else {
1420 dasm_put(Dst, 7361, 2+1, LJ_TISNUM, LJ_TISNUM); 1420 dasm_put(Dst, 7363, 2+1, LJ_TISNUM, LJ_TISNUM);
1421 } 1421 }
1422 dasm_put(Dst, 7427); 1422 dasm_put(Dst, 7429);
1423 if (sse) { 1423 if (sse) {
1424 dasm_put(Dst, 7437, 1+1, LJ_TISNUM, LJ_TISNUM); 1424 dasm_put(Dst, 7439, 1+1, LJ_TISNUM, LJ_TISNUM);
1425 } else { 1425 } else {
1426 dasm_put(Dst, 7511, 2+1, LJ_TISNUM, LJ_TISNUM); 1426 dasm_put(Dst, 7513, 2+1, LJ_TISNUM, LJ_TISNUM);
1427 } 1427 }
1428 dasm_put(Dst, 7577); 1428 dasm_put(Dst, 7579);
1429 if (sse) { 1429 if (sse) {
1430 dasm_put(Dst, 7586, 1+1, LJ_TISNUM, LJ_TISNUM); 1430 dasm_put(Dst, 7588, 1+1, LJ_TISNUM, LJ_TISNUM);
1431 } else { 1431 } else {
1432 dasm_put(Dst, 7660, 2+1, LJ_TISNUM, LJ_TISNUM); 1432 dasm_put(Dst, 7662, 2+1, LJ_TISNUM, LJ_TISNUM);
1433 } 1433 }
1434 dasm_put(Dst, 7726, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1434 dasm_put(Dst, 7728, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1435 dasm_put(Dst, 7804, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1435 dasm_put(Dst, 7806, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1436 dasm_put(Dst, 7927, Dt1(->top), Dt1(->base), Dt1(->top)); 1436 dasm_put(Dst, 7929, Dt1(->top), Dt1(->base), Dt1(->top));
1437#if LJ_HASJIT 1437#if LJ_HASJIT
1438 dasm_put(Dst, 7965, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1438 dasm_put(Dst, 7967, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1439#endif 1439#endif
1440 dasm_put(Dst, 7996, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1440 dasm_put(Dst, 7998, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1441 dasm_put(Dst, 8047, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1441 dasm_put(Dst, 8049, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1442#if LJ_HASJIT 1442#if LJ_HASJIT
1443 dasm_put(Dst, 8113, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1443 dasm_put(Dst, 8115, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1444#endif 1444#endif
1445 dasm_put(Dst, 8159); 1445 dasm_put(Dst, 8161);
1446#if LJ_HASJIT 1446#if LJ_HASJIT
1447 dasm_put(Dst, 7991); 1447 dasm_put(Dst, 7993);
1448#endif 1448#endif
1449 dasm_put(Dst, 8166); 1449 dasm_put(Dst, 8168);
1450#if LJ_HASJIT 1450#if LJ_HASJIT
1451 dasm_put(Dst, 8169); 1451 dasm_put(Dst, 8171);
1452#endif 1452#endif
1453 dasm_put(Dst, 8179, Dt1(->base), Dt1(->top)); 1453 dasm_put(Dst, 8181, Dt1(->base), Dt1(->top));
1454#if LJ_HASJIT 1454#if LJ_HASJIT
1455 dasm_put(Dst, 8213); 1455 dasm_put(Dst, 8215);
1456#endif 1456#endif
1457 dasm_put(Dst, 8218, Dt1(->base), Dt1(->top)); 1457 dasm_put(Dst, 8220, Dt1(->base), Dt1(->top));
1458#if LJ_HASJIT 1458#if LJ_HASJIT
1459 dasm_put(Dst, 8247, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1459 dasm_put(Dst, 8249, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 8*8+16, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1460#endif 1460#endif
1461 dasm_put(Dst, 8390); 1461 dasm_put(Dst, 8392);
1462#if LJ_HASJIT 1462#if LJ_HASJIT
1463 dasm_put(Dst, 8393, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1463 dasm_put(Dst, 8395, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1464#endif 1464#endif
1465 dasm_put(Dst, 8471); 1465 dasm_put(Dst, 8473);
1466 if (!sse) { 1466 if (!sse) {
1467 dasm_put(Dst, 8474); 1467 dasm_put(Dst, 8476);
1468 } 1468 }
1469 dasm_put(Dst, 8519); 1469 dasm_put(Dst, 8521);
1470 if (!sse) { 1470 if (!sse) {
1471 dasm_put(Dst, 8621); 1471 dasm_put(Dst, 8623);
1472 } 1472 }
1473 dasm_put(Dst, 8666); 1473 dasm_put(Dst, 8668);
1474 if (!sse) { 1474 if (!sse) {
1475 dasm_put(Dst, 8768); 1475 dasm_put(Dst, 8770);
1476 } 1476 }
1477 dasm_put(Dst, 8807); 1477 dasm_put(Dst, 8809);
1478 if (sse) { 1478 if (sse) {
1479 dasm_put(Dst, 8912); 1479 dasm_put(Dst, 8914);
1480 } else { 1480 } else {
1481 dasm_put(Dst, 9042); 1481 dasm_put(Dst, 9044);
1482 } 1482 }
1483 dasm_put(Dst, 9089); 1483 dasm_put(Dst, 9091);
1484 if (!sse) { 1484 if (!sse) {
1485 dasm_put(Dst, 9163); 1485 dasm_put(Dst, 9165);
1486 if (cmov) { 1486 if (cmov) {
1487 dasm_put(Dst, 9174); 1487 dasm_put(Dst, 9176);
1488 } else { 1488 } else {
1489 dasm_put(Dst, 9178); 1489 dasm_put(Dst, 9180);
1490 } 1490 }
1491 dasm_put(Dst, 9185); 1491 dasm_put(Dst, 9187);
1492 dasm_put(Dst, 9259); 1492 dasm_put(Dst, 9261);
1493 dasm_put(Dst, 9359); 1493 dasm_put(Dst, 9361);
1494 if (cmov) { 1494 if (cmov) {
1495 dasm_put(Dst, 9362); 1495 dasm_put(Dst, 9364);
1496 } else { 1496 } else {
1497 dasm_put(Dst, 9366); 1497 dasm_put(Dst, 9368);
1498 } 1498 }
1499 dasm_put(Dst, 9373); 1499 dasm_put(Dst, 9375);
1500 if (cmov) { 1500 if (cmov) {
1501 dasm_put(Dst, 9174); 1501 dasm_put(Dst, 9176);
1502 } else { 1502 } else {
1503 dasm_put(Dst, 9178); 1503 dasm_put(Dst, 9180);
1504 } 1504 }
1505 dasm_put(Dst, 9391); 1505 dasm_put(Dst, 9393);
1506 } else { 1506 } else {
1507 dasm_put(Dst, 9470); 1507 dasm_put(Dst, 9472);
1508 } 1508 }
1509 dasm_put(Dst, 9473); 1509 dasm_put(Dst, 9475);
1510 dasm_put(Dst, 9558); 1510 dasm_put(Dst, 9560);
1511 dasm_put(Dst, 9689); 1511 dasm_put(Dst, 9691);
1512 dasm_put(Dst, 9888); 1512 dasm_put(Dst, 9890);
1513 if (sse) { 1513 if (sse) {
1514 dasm_put(Dst, 9911); 1514 dasm_put(Dst, 9913);
1515 dasm_put(Dst, 9968); 1515 dasm_put(Dst, 9970);
1516 dasm_put(Dst, 10059); 1516 dasm_put(Dst, 10061);
1517 } else { 1517 } else {
1518 dasm_put(Dst, 10101); 1518 dasm_put(Dst, 10103);
1519 dasm_put(Dst, 10193); 1519 dasm_put(Dst, 10195);
1520 } 1520 }
1521 dasm_put(Dst, 10239); 1521 dasm_put(Dst, 10241);
1522 if (sse) { 1522 if (sse) {
1523 dasm_put(Dst, 10245); 1523 dasm_put(Dst, 10247);
1524 dasm_put(Dst, 10350); 1524 dasm_put(Dst, 10352);
1525 dasm_put(Dst, 10433); 1525 dasm_put(Dst, 10435);
1526 } else { 1526 } else {
1527 dasm_put(Dst, 10505); 1527 dasm_put(Dst, 10507);
1528 dasm_put(Dst, 10588); 1528 dasm_put(Dst, 10590);
1529 if (cmov) { 1529 if (cmov) {
1530 dasm_put(Dst, 10643); 1530 dasm_put(Dst, 10645);
1531 } else { 1531 } else {
1532 dasm_put(Dst, 10662); 1532 dasm_put(Dst, 10664);
1533 } 1533 }
1534 dasm_put(Dst, 10501); 1534 dasm_put(Dst, 10503);
1535 } 1535 }
1536 dasm_put(Dst, 10703); 1536 dasm_put(Dst, 10705);
1537} 1537}
1538 1538
1539/* Generate the code for a single instruction. */ 1539/* Generate the code for a single instruction. */
1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1540static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1541{ 1541{
1542 int vk = 0; 1542 int vk = 0;
1543 dasm_put(Dst, 10757, defop); 1543 dasm_put(Dst, 10759, defop);
1544 1544
1545 switch (op) { 1545 switch (op) {
1546 1546
@@ -1549,611 +1549,611 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1549 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1549 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1550 1550
1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1551 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1552 dasm_put(Dst, 10759, LJ_TISNUM, LJ_TISNUM); 1552 dasm_put(Dst, 10761, LJ_TISNUM, LJ_TISNUM);
1553 if (sse) { 1553 if (sse) {
1554 dasm_put(Dst, 10780); 1554 dasm_put(Dst, 10782);
1555 } else { 1555 } else {
1556 dasm_put(Dst, 10795); 1556 dasm_put(Dst, 10797);
1557 if (cmov) { 1557 if (cmov) {
1558 dasm_put(Dst, 10805); 1558 dasm_put(Dst, 10807);
1559 } else { 1559 } else {
1560 dasm_put(Dst, 10811); 1560 dasm_put(Dst, 10813);
1561 } 1561 }
1562 } 1562 }
1563 switch (op) { 1563 switch (op) {
1564 case BC_ISLT: 1564 case BC_ISLT:
1565 dasm_put(Dst, 10818); 1565 dasm_put(Dst, 10820);
1566 break; 1566 break;
1567 case BC_ISGE: 1567 case BC_ISGE:
1568 dasm_put(Dst, 10054); 1568 dasm_put(Dst, 10056);
1569 break; 1569 break;
1570 case BC_ISLE: 1570 case BC_ISLE:
1571 dasm_put(Dst, 6181); 1571 dasm_put(Dst, 6183);
1572 break; 1572 break;
1573 case BC_ISGT: 1573 case BC_ISGT:
1574 dasm_put(Dst, 10823); 1574 dasm_put(Dst, 10825);
1575 break; 1575 break;
1576 default: break; /* Shut up GCC. */ 1576 default: break; /* Shut up GCC. */
1577 } 1577 }
1578 dasm_put(Dst, 10828, -BCBIAS_J*4); 1578 dasm_put(Dst, 10830, -BCBIAS_J*4);
1579 break; 1579 break;
1580 1580
1581 case BC_ISEQV: case BC_ISNEV: 1581 case BC_ISEQV: case BC_ISNEV:
1582 vk = op == BC_ISEQV; 1582 vk = op == BC_ISEQV;
1583 dasm_put(Dst, 10861, LJ_TISNUM, LJ_TISNUM); 1583 dasm_put(Dst, 10863, LJ_TISNUM, LJ_TISNUM);
1584 if (sse) { 1584 if (sse) {
1585 dasm_put(Dst, 10887); 1585 dasm_put(Dst, 10889);
1586 } else { 1586 } else {
1587 dasm_put(Dst, 10899); 1587 dasm_put(Dst, 10901);
1588 if (cmov) { 1588 if (cmov) {
1589 dasm_put(Dst, 10805); 1589 dasm_put(Dst, 10807);
1590 } else { 1590 } else {
1591 dasm_put(Dst, 10811); 1591 dasm_put(Dst, 10813);
1592 } 1592 }
1593 } 1593 }
1594 iseqne_fp: 1594 iseqne_fp:
1595 if (vk) { 1595 if (vk) {
1596 dasm_put(Dst, 10906); 1596 dasm_put(Dst, 10908);
1597 } else { 1597 } else {
1598 dasm_put(Dst, 10915); 1598 dasm_put(Dst, 10917);
1599 } 1599 }
1600 iseqne_end: 1600 iseqne_end:
1601 if (vk) { 1601 if (vk) {
1602 dasm_put(Dst, 10924, -BCBIAS_J*4); 1602 dasm_put(Dst, 10926, -BCBIAS_J*4);
1603 } else { 1603 } else {
1604 dasm_put(Dst, 10939, -BCBIAS_J*4); 1604 dasm_put(Dst, 10941, -BCBIAS_J*4);
1605 } 1605 }
1606 dasm_put(Dst, 10842); 1606 dasm_put(Dst, 10844);
1607 if (op == BC_ISEQV || op == BC_ISNEV) { 1607 if (op == BC_ISEQV || op == BC_ISNEV) {
1608 dasm_put(Dst, 10954, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1608 dasm_put(Dst, 10956, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1609 if (vk) { 1609 if (vk) {
1610 dasm_put(Dst, 11012); 1610 dasm_put(Dst, 11014);
1611 } else { 1611 } else {
1612 dasm_put(Dst, 11016); 1612 dasm_put(Dst, 11018);
1613 } 1613 }
1614 dasm_put(Dst, 11022); 1614 dasm_put(Dst, 11024);
1615 } 1615 }
1616 break; 1616 break;
1617 case BC_ISEQS: case BC_ISNES: 1617 case BC_ISEQS: case BC_ISNES:
1618 vk = op == BC_ISEQS; 1618 vk = op == BC_ISEQS;
1619 dasm_put(Dst, 11027, LJ_TSTR); 1619 dasm_put(Dst, 11029, LJ_TSTR);
1620 iseqne_test: 1620 iseqne_test:
1621 if (vk) { 1621 if (vk) {
1622 dasm_put(Dst, 10910); 1622 dasm_put(Dst, 10912);
1623 } else { 1623 } else {
1624 dasm_put(Dst, 2811); 1624 dasm_put(Dst, 2811);
1625 } 1625 }
1626 goto iseqne_end; 1626 goto iseqne_end;
1627 case BC_ISEQN: case BC_ISNEN: 1627 case BC_ISEQN: case BC_ISNEN:
1628 vk = op == BC_ISEQN; 1628 vk = op == BC_ISEQN;
1629 dasm_put(Dst, 11050, LJ_TISNUM); 1629 dasm_put(Dst, 11052, LJ_TISNUM);
1630 if (sse) { 1630 if (sse) {
1631 dasm_put(Dst, 11064); 1631 dasm_put(Dst, 11066);
1632 } else { 1632 } else {
1633 dasm_put(Dst, 11076); 1633 dasm_put(Dst, 11078);
1634 if (cmov) { 1634 if (cmov) {
1635 dasm_put(Dst, 10805); 1635 dasm_put(Dst, 10807);
1636 } else { 1636 } else {
1637 dasm_put(Dst, 10811); 1637 dasm_put(Dst, 10813);
1638 } 1638 }
1639 } 1639 }
1640 goto iseqne_fp; 1640 goto iseqne_fp;
1641 case BC_ISEQP: case BC_ISNEP: 1641 case BC_ISEQP: case BC_ISNEP:
1642 vk = op == BC_ISEQP; 1642 vk = op == BC_ISEQP;
1643 dasm_put(Dst, 11083); 1643 dasm_put(Dst, 11085);
1644 goto iseqne_test; 1644 goto iseqne_test;
1645 1645
1646 /* -- Unary test and copy ops ------------------------------------------- */ 1646 /* -- Unary test and copy ops ------------------------------------------- */
1647 1647
1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1648 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1649 dasm_put(Dst, 11094, LJ_TISTRUECOND); 1649 dasm_put(Dst, 11096, LJ_TISTRUECOND);
1650 if (op == BC_IST || op == BC_ISTC) { 1650 if (op == BC_IST || op == BC_ISTC) {
1651 dasm_put(Dst, 11106); 1651 dasm_put(Dst, 11108);
1652 } else { 1652 } else {
1653 dasm_put(Dst, 11111); 1653 dasm_put(Dst, 11113);
1654 } 1654 }
1655 if (op == BC_ISTC || op == BC_ISFC) { 1655 if (op == BC_ISTC || op == BC_ISFC) {
1656 dasm_put(Dst, 11116); 1656 dasm_put(Dst, 11118);
1657 } 1657 }
1658 dasm_put(Dst, 11127, -BCBIAS_J*4); 1658 dasm_put(Dst, 11129, -BCBIAS_J*4);
1659 break; 1659 break;
1660 1660
1661 /* -- Unary ops --------------------------------------------------------- */ 1661 /* -- Unary ops --------------------------------------------------------- */
1662 1662
1663 case BC_MOV: 1663 case BC_MOV:
1664 dasm_put(Dst, 11158); 1664 dasm_put(Dst, 11160);
1665 break; 1665 break;
1666 case BC_NOT: 1666 case BC_NOT:
1667 dasm_put(Dst, 11191, LJ_TISTRUECOND, LJ_TTRUE); 1667 dasm_put(Dst, 11193, LJ_TISTRUECOND, LJ_TTRUE);
1668 break; 1668 break;
1669 case BC_UNM: 1669 case BC_UNM:
1670 dasm_put(Dst, 11226, LJ_TISNUM); 1670 dasm_put(Dst, 11228, LJ_TISNUM);
1671 if (sse) { 1671 if (sse) {
1672 dasm_put(Dst, 11237); 1672 dasm_put(Dst, 11239);
1673 } else { 1673 } else {
1674 dasm_put(Dst, 11267); 1674 dasm_put(Dst, 11269);
1675 } 1675 }
1676 dasm_put(Dst, 10842); 1676 dasm_put(Dst, 10844);
1677 break; 1677 break;
1678 case BC_LEN: 1678 case BC_LEN:
1679 dasm_put(Dst, 11276, LJ_TSTR); 1679 dasm_put(Dst, 11278, LJ_TSTR);
1680 if (sse) { 1680 if (sse) {
1681 dasm_put(Dst, 11290, Dt5(->len)); 1681 dasm_put(Dst, 11292, Dt5(->len));
1682 } else { 1682 } else {
1683 dasm_put(Dst, 11308, Dt5(->len)); 1683 dasm_put(Dst, 11310, Dt5(->len));
1684 } 1684 }
1685 dasm_put(Dst, 11317, LJ_TTAB); 1685 dasm_put(Dst, 11319, LJ_TTAB);
1686 if (sse) { 1686 if (sse) {
1687 dasm_put(Dst, 11357); 1687 dasm_put(Dst, 11359);
1688 } else { 1688 } else {
1689 dasm_put(Dst, 11366); 1689 dasm_put(Dst, 11368);
1690 } 1690 }
1691 dasm_put(Dst, 11376); 1691 dasm_put(Dst, 11378);
1692 break; 1692 break;
1693 1693
1694 /* -- Binary ops -------------------------------------------------------- */ 1694 /* -- Binary ops -------------------------------------------------------- */
1695 1695
1696 1696
1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1697 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1698 dasm_put(Dst, 11386); 1698 dasm_put(Dst, 11388);
1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1699 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1700 switch (vk) { 1700 switch (vk) {
1701 case 0: 1701 case 0:
1702 dasm_put(Dst, 11394, LJ_TISNUM); 1702 dasm_put(Dst, 11396, LJ_TISNUM);
1703 if (sse) { 1703 if (sse) {
1704 dasm_put(Dst, 11406); 1704 dasm_put(Dst, 11408);
1705 } else { 1705 } else {
1706 dasm_put(Dst, 11420); 1706 dasm_put(Dst, 11422);
1707 } 1707 }
1708 break; 1708 break;
1709 case 1: 1709 case 1:
1710 dasm_put(Dst, 11428, LJ_TISNUM); 1710 dasm_put(Dst, 11430, LJ_TISNUM);
1711 if (sse) { 1711 if (sse) {
1712 dasm_put(Dst, 11440); 1712 dasm_put(Dst, 11442);
1713 } else { 1713 } else {
1714 dasm_put(Dst, 11454); 1714 dasm_put(Dst, 11456);
1715 } 1715 }
1716 break; 1716 break;
1717 default: 1717 default:
1718 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1718 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1719 if (sse) { 1719 if (sse) {
1720 dasm_put(Dst, 11484); 1720 dasm_put(Dst, 11486);
1721 } else { 1721 } else {
1722 dasm_put(Dst, 11498); 1722 dasm_put(Dst, 11500);
1723 } 1723 }
1724 break; 1724 break;
1725 } 1725 }
1726 if (sse) { 1726 if (sse) {
1727 dasm_put(Dst, 11260); 1727 dasm_put(Dst, 11262);
1728 } else { 1728 } else {
1729 dasm_put(Dst, 11272); 1729 dasm_put(Dst, 11274);
1730 } 1730 }
1731 dasm_put(Dst, 10842); 1731 dasm_put(Dst, 10844);
1732 break; 1732 break;
1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1733 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1734 dasm_put(Dst, 11386); 1734 dasm_put(Dst, 11388);
1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1735 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1736 switch (vk) { 1736 switch (vk) {
1737 case 0: 1737 case 0:
1738 dasm_put(Dst, 11394, LJ_TISNUM); 1738 dasm_put(Dst, 11396, LJ_TISNUM);
1739 if (sse) { 1739 if (sse) {
1740 dasm_put(Dst, 11506); 1740 dasm_put(Dst, 11508);
1741 } else { 1741 } else {
1742 dasm_put(Dst, 11520); 1742 dasm_put(Dst, 11522);
1743 } 1743 }
1744 break; 1744 break;
1745 case 1: 1745 case 1:
1746 dasm_put(Dst, 11428, LJ_TISNUM); 1746 dasm_put(Dst, 11430, LJ_TISNUM);
1747 if (sse) { 1747 if (sse) {
1748 dasm_put(Dst, 11528); 1748 dasm_put(Dst, 11530);
1749 } else { 1749 } else {
1750 dasm_put(Dst, 11542); 1750 dasm_put(Dst, 11544);
1751 } 1751 }
1752 break; 1752 break;
1753 default: 1753 default:
1754 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1754 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1755 if (sse) { 1755 if (sse) {
1756 dasm_put(Dst, 11550); 1756 dasm_put(Dst, 11552);
1757 } else { 1757 } else {
1758 dasm_put(Dst, 11564); 1758 dasm_put(Dst, 11566);
1759 } 1759 }
1760 break; 1760 break;
1761 } 1761 }
1762 if (sse) { 1762 if (sse) {
1763 dasm_put(Dst, 11260); 1763 dasm_put(Dst, 11262);
1764 } else { 1764 } else {
1765 dasm_put(Dst, 11272); 1765 dasm_put(Dst, 11274);
1766 } 1766 }
1767 dasm_put(Dst, 10842); 1767 dasm_put(Dst, 10844);
1768 break; 1768 break;
1769 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1769 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1770 dasm_put(Dst, 11386); 1770 dasm_put(Dst, 11388);
1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1771 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1772 switch (vk) { 1772 switch (vk) {
1773 case 0: 1773 case 0:
1774 dasm_put(Dst, 11394, LJ_TISNUM); 1774 dasm_put(Dst, 11396, LJ_TISNUM);
1775 if (sse) { 1775 if (sse) {
1776 dasm_put(Dst, 11572); 1776 dasm_put(Dst, 11574);
1777 } else { 1777 } else {
1778 dasm_put(Dst, 11586); 1778 dasm_put(Dst, 11588);
1779 } 1779 }
1780 break; 1780 break;
1781 case 1: 1781 case 1:
1782 dasm_put(Dst, 11428, LJ_TISNUM); 1782 dasm_put(Dst, 11430, LJ_TISNUM);
1783 if (sse) { 1783 if (sse) {
1784 dasm_put(Dst, 11594); 1784 dasm_put(Dst, 11596);
1785 } else { 1785 } else {
1786 dasm_put(Dst, 11608); 1786 dasm_put(Dst, 11610);
1787 } 1787 }
1788 break; 1788 break;
1789 default: 1789 default:
1790 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1790 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1791 if (sse) { 1791 if (sse) {
1792 dasm_put(Dst, 11616); 1792 dasm_put(Dst, 11618);
1793 } else { 1793 } else {
1794 dasm_put(Dst, 11630); 1794 dasm_put(Dst, 11632);
1795 } 1795 }
1796 break; 1796 break;
1797 } 1797 }
1798 if (sse) { 1798 if (sse) {
1799 dasm_put(Dst, 11260); 1799 dasm_put(Dst, 11262);
1800 } else { 1800 } else {
1801 dasm_put(Dst, 11272); 1801 dasm_put(Dst, 11274);
1802 } 1802 }
1803 dasm_put(Dst, 10842); 1803 dasm_put(Dst, 10844);
1804 break; 1804 break;
1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1805 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1806 dasm_put(Dst, 11386); 1806 dasm_put(Dst, 11388);
1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1807 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1808 switch (vk) { 1808 switch (vk) {
1809 case 0: 1809 case 0:
1810 dasm_put(Dst, 11394, LJ_TISNUM); 1810 dasm_put(Dst, 11396, LJ_TISNUM);
1811 if (sse) { 1811 if (sse) {
1812 dasm_put(Dst, 11638); 1812 dasm_put(Dst, 11640);
1813 } else { 1813 } else {
1814 dasm_put(Dst, 11652); 1814 dasm_put(Dst, 11654);
1815 } 1815 }
1816 break; 1816 break;
1817 case 1: 1817 case 1:
1818 dasm_put(Dst, 11428, LJ_TISNUM); 1818 dasm_put(Dst, 11430, LJ_TISNUM);
1819 if (sse) { 1819 if (sse) {
1820 dasm_put(Dst, 11660); 1820 dasm_put(Dst, 11662);
1821 } else { 1821 } else {
1822 dasm_put(Dst, 11674); 1822 dasm_put(Dst, 11676);
1823 } 1823 }
1824 break; 1824 break;
1825 default: 1825 default:
1826 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1826 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1827 if (sse) { 1827 if (sse) {
1828 dasm_put(Dst, 11682); 1828 dasm_put(Dst, 11684);
1829 } else { 1829 } else {
1830 dasm_put(Dst, 11696); 1830 dasm_put(Dst, 11698);
1831 } 1831 }
1832 break; 1832 break;
1833 } 1833 }
1834 if (sse) { 1834 if (sse) {
1835 dasm_put(Dst, 11260); 1835 dasm_put(Dst, 11262);
1836 } else { 1836 } else {
1837 dasm_put(Dst, 11272); 1837 dasm_put(Dst, 11274);
1838 } 1838 }
1839 dasm_put(Dst, 10842); 1839 dasm_put(Dst, 10844);
1840 break; 1840 break;
1841 case BC_MODVN: 1841 case BC_MODVN:
1842 dasm_put(Dst, 11386); 1842 dasm_put(Dst, 11388);
1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1843 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1844 switch (vk) { 1844 switch (vk) {
1845 case 0: 1845 case 0:
1846 dasm_put(Dst, 11394, LJ_TISNUM); 1846 dasm_put(Dst, 11396, LJ_TISNUM);
1847 if (sse) { 1847 if (sse) {
1848 dasm_put(Dst, 11704); 1848 dasm_put(Dst, 11706);
1849 } else { 1849 } else {
1850 dasm_put(Dst, 11718); 1850 dasm_put(Dst, 11720);
1851 } 1851 }
1852 break; 1852 break;
1853 case 1: 1853 case 1:
1854 dasm_put(Dst, 11428, LJ_TISNUM); 1854 dasm_put(Dst, 11430, LJ_TISNUM);
1855 if (sse) { 1855 if (sse) {
1856 dasm_put(Dst, 11726); 1856 dasm_put(Dst, 11728);
1857 } else { 1857 } else {
1858 dasm_put(Dst, 11740); 1858 dasm_put(Dst, 11742);
1859 } 1859 }
1860 break; 1860 break;
1861 default: 1861 default:
1862 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1862 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1863 if (sse) { 1863 if (sse) {
1864 dasm_put(Dst, 11748); 1864 dasm_put(Dst, 11750);
1865 } else { 1865 } else {
1866 dasm_put(Dst, 11762); 1866 dasm_put(Dst, 11764);
1867 } 1867 }
1868 break; 1868 break;
1869 } 1869 }
1870 dasm_put(Dst, 11770); 1870 dasm_put(Dst, 11772);
1871 if (sse) { 1871 if (sse) {
1872 dasm_put(Dst, 11260); 1872 dasm_put(Dst, 11262);
1873 } else { 1873 } else {
1874 dasm_put(Dst, 11272); 1874 dasm_put(Dst, 11274);
1875 } 1875 }
1876 dasm_put(Dst, 10842); 1876 dasm_put(Dst, 10844);
1877 break; 1877 break;
1878 case BC_MODNV: case BC_MODVV: 1878 case BC_MODNV: case BC_MODVV:
1879 dasm_put(Dst, 11386); 1879 dasm_put(Dst, 11388);
1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1880 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1881 switch (vk) { 1881 switch (vk) {
1882 case 0: 1882 case 0:
1883 dasm_put(Dst, 11394, LJ_TISNUM); 1883 dasm_put(Dst, 11396, LJ_TISNUM);
1884 if (sse) { 1884 if (sse) {
1885 dasm_put(Dst, 11704); 1885 dasm_put(Dst, 11706);
1886 } else { 1886 } else {
1887 dasm_put(Dst, 11718); 1887 dasm_put(Dst, 11720);
1888 } 1888 }
1889 break; 1889 break;
1890 case 1: 1890 case 1:
1891 dasm_put(Dst, 11428, LJ_TISNUM); 1891 dasm_put(Dst, 11430, LJ_TISNUM);
1892 if (sse) { 1892 if (sse) {
1893 dasm_put(Dst, 11726); 1893 dasm_put(Dst, 11728);
1894 } else { 1894 } else {
1895 dasm_put(Dst, 11740); 1895 dasm_put(Dst, 11742);
1896 } 1896 }
1897 break; 1897 break;
1898 default: 1898 default:
1899 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1899 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1900 if (sse) { 1900 if (sse) {
1901 dasm_put(Dst, 11748); 1901 dasm_put(Dst, 11750);
1902 } else { 1902 } else {
1903 dasm_put(Dst, 11762); 1903 dasm_put(Dst, 11764);
1904 } 1904 }
1905 break; 1905 break;
1906 } 1906 }
1907 dasm_put(Dst, 11776); 1907 dasm_put(Dst, 11778);
1908 break; 1908 break;
1909 case BC_POW: 1909 case BC_POW:
1910 dasm_put(Dst, 11386); 1910 dasm_put(Dst, 11388);
1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1911 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1912 switch (vk) { 1912 switch (vk) {
1913 case 0: 1913 case 0:
1914 dasm_put(Dst, 11394, LJ_TISNUM); 1914 dasm_put(Dst, 11396, LJ_TISNUM);
1915 if (sse) { 1915 if (sse) {
1916 dasm_put(Dst, 11704); 1916 dasm_put(Dst, 11706);
1917 } else { 1917 } else {
1918 dasm_put(Dst, 11718); 1918 dasm_put(Dst, 11720);
1919 } 1919 }
1920 break; 1920 break;
1921 case 1: 1921 case 1:
1922 dasm_put(Dst, 11428, LJ_TISNUM); 1922 dasm_put(Dst, 11430, LJ_TISNUM);
1923 if (sse) { 1923 if (sse) {
1924 dasm_put(Dst, 11726); 1924 dasm_put(Dst, 11728);
1925 } else { 1925 } else {
1926 dasm_put(Dst, 11740); 1926 dasm_put(Dst, 11742);
1927 } 1927 }
1928 break; 1928 break;
1929 default: 1929 default:
1930 dasm_put(Dst, 11462, LJ_TISNUM, LJ_TISNUM); 1930 dasm_put(Dst, 11464, LJ_TISNUM, LJ_TISNUM);
1931 if (sse) { 1931 if (sse) {
1932 dasm_put(Dst, 11748); 1932 dasm_put(Dst, 11750);
1933 } else { 1933 } else {
1934 dasm_put(Dst, 11762); 1934 dasm_put(Dst, 11764);
1935 } 1935 }
1936 break; 1936 break;
1937 } 1937 }
1938 dasm_put(Dst, 11781); 1938 dasm_put(Dst, 11783);
1939 if (sse) { 1939 if (sse) {
1940 dasm_put(Dst, 11260); 1940 dasm_put(Dst, 11262);
1941 } else { 1941 } else {
1942 dasm_put(Dst, 11272); 1942 dasm_put(Dst, 11274);
1943 } 1943 }
1944 dasm_put(Dst, 10842); 1944 dasm_put(Dst, 10844);
1945 break; 1945 break;
1946 1946
1947 case BC_CAT: 1947 case BC_CAT:
1948 dasm_put(Dst, 11785, Dt1(->base), Dt1(->base)); 1948 dasm_put(Dst, 11787, Dt1(->base), Dt1(->base));
1949 break; 1949 break;
1950 1950
1951 /* -- Constant ops ------------------------------------------------------ */ 1951 /* -- Constant ops ------------------------------------------------------ */
1952 1952
1953 case BC_KSTR: 1953 case BC_KSTR:
1954 dasm_put(Dst, 11879, LJ_TSTR); 1954 dasm_put(Dst, 11881, LJ_TSTR);
1955 break; 1955 break;
1956 case BC_KSHORT: 1956 case BC_KSHORT:
1957 if (sse) { 1957 if (sse) {
1958 dasm_put(Dst, 11912); 1958 dasm_put(Dst, 11914);
1959 } else { 1959 } else {
1960 dasm_put(Dst, 11927); 1960 dasm_put(Dst, 11929);
1961 } 1961 }
1962 dasm_put(Dst, 10842); 1962 dasm_put(Dst, 10844);
1963 break; 1963 break;
1964 case BC_KNUM: 1964 case BC_KNUM:
1965 if (sse) { 1965 if (sse) {
1966 dasm_put(Dst, 11935); 1966 dasm_put(Dst, 11937);
1967 } else { 1967 } else {
1968 dasm_put(Dst, 11948); 1968 dasm_put(Dst, 11950);
1969 } 1969 }
1970 dasm_put(Dst, 10842); 1970 dasm_put(Dst, 10844);
1971 break; 1971 break;
1972 case BC_KPRI: 1972 case BC_KPRI:
1973 dasm_put(Dst, 11955); 1973 dasm_put(Dst, 11957);
1974 break; 1974 break;
1975 case BC_KNIL: 1975 case BC_KNIL:
1976 dasm_put(Dst, 11981, LJ_TNIL); 1976 dasm_put(Dst, 11983, LJ_TNIL);
1977 break; 1977 break;
1978 1978
1979 /* -- Upvalue and function ops ------------------------------------------ */ 1979 /* -- Upvalue and function ops ------------------------------------------ */
1980 1980
1981 case BC_UGET: 1981 case BC_UGET:
1982 dasm_put(Dst, 12027, offsetof(GCfuncL, uvptr), DtA(->v)); 1982 dasm_put(Dst, 12029, offsetof(GCfuncL, uvptr), DtA(->v));
1983 break; 1983 break;
1984 case BC_USETV: 1984 case BC_USETV:
1985#define TV2MARKOFS \ 1985#define TV2MARKOFS \
1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1986 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1987 dasm_put(Dst, 12071, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1987 dasm_put(Dst, 12073, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1988 dasm_put(Dst, 12161); 1988 dasm_put(Dst, 12163);
1989 break; 1989 break;
1990#undef TV2MARKOFS 1990#undef TV2MARKOFS
1991 case BC_USETS: 1991 case BC_USETS:
1992 dasm_put(Dst, 12173, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1992 dasm_put(Dst, 12175, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1993 break; 1993 break;
1994 case BC_USETN: 1994 case BC_USETN:
1995 dasm_put(Dst, 12264); 1995 dasm_put(Dst, 12266);
1996 if (sse) { 1996 if (sse) {
1997 dasm_put(Dst, 12269); 1997 dasm_put(Dst, 12271);
1998 } else { 1998 } else {
1999 dasm_put(Dst, 11079); 1999 dasm_put(Dst, 11081);
2000 } 2000 }
2001 dasm_put(Dst, 12276, offsetof(GCfuncL, uvptr), DtA(->v)); 2001 dasm_put(Dst, 12278, offsetof(GCfuncL, uvptr), DtA(->v));
2002 if (sse) { 2002 if (sse) {
2003 dasm_put(Dst, 12285); 2003 dasm_put(Dst, 12287);
2004 } else { 2004 } else {
2005 dasm_put(Dst, 12291); 2005 dasm_put(Dst, 12293);
2006 } 2006 }
2007 dasm_put(Dst, 10842); 2007 dasm_put(Dst, 10844);
2008 break; 2008 break;
2009 case BC_USETP: 2009 case BC_USETP:
2010 dasm_put(Dst, 12294, offsetof(GCfuncL, uvptr), DtA(->v)); 2010 dasm_put(Dst, 12296, offsetof(GCfuncL, uvptr), DtA(->v));
2011 break; 2011 break;
2012 case BC_UCLO: 2012 case BC_UCLO:
2013 dasm_put(Dst, 12331, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 2013 dasm_put(Dst, 12333, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
2014 break; 2014 break;
2015 2015
2016 case BC_FNEW: 2016 case BC_FNEW:
2017 dasm_put(Dst, 12385, Dt1(->base), Dt1(->base), LJ_TFUNC); 2017 dasm_put(Dst, 12387, Dt1(->base), Dt1(->base), LJ_TFUNC);
2018 break; 2018 break;
2019 2019
2020 /* -- Table ops --------------------------------------------------------- */ 2020 /* -- Table ops --------------------------------------------------------- */
2021 2021
2022 case BC_TNEW: 2022 case BC_TNEW:
2023 dasm_put(Dst, 12456, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 2023 dasm_put(Dst, 12458, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
2024 break; 2024 break;
2025 case BC_TDUP: 2025 case BC_TDUP:
2026 dasm_put(Dst, 12582, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 2026 dasm_put(Dst, 12584, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
2027 break; 2027 break;
2028 2028
2029 case BC_GGET: 2029 case BC_GGET:
2030 dasm_put(Dst, 12674, Dt7(->env)); 2030 dasm_put(Dst, 12676, Dt7(->env));
2031 break; 2031 break;
2032 case BC_GSET: 2032 case BC_GSET:
2033 dasm_put(Dst, 12692, Dt7(->env)); 2033 dasm_put(Dst, 12694, Dt7(->env));
2034 break; 2034 break;
2035 2035
2036 case BC_TGETV: 2036 case BC_TGETV:
2037 dasm_put(Dst, 12710, LJ_TTAB, LJ_TISNUM); 2037 dasm_put(Dst, 12712, LJ_TTAB, LJ_TISNUM);
2038 if (sse) { 2038 if (sse) {
2039 dasm_put(Dst, 12743); 2039 dasm_put(Dst, 12745);
2040 } else { 2040 } else {
2041 dasm_put(Dst, 12764); 2041 dasm_put(Dst, 12766);
2042 if (cmov) { 2042 if (cmov) {
2043 dasm_put(Dst, 10805); 2043 dasm_put(Dst, 10807);
2044 } else { 2044 } else {
2045 dasm_put(Dst, 10811); 2045 dasm_put(Dst, 10813);
2046 } 2046 }
2047 dasm_put(Dst, 2524); 2047 dasm_put(Dst, 2524);
2048 } 2048 }
2049 dasm_put(Dst, 12774, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2049 dasm_put(Dst, 12776, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2050 dasm_put(Dst, 12866, LJ_TSTR); 2050 dasm_put(Dst, 12868, LJ_TSTR);
2051 break; 2051 break;
2052 case BC_TGETS: 2052 case BC_TGETS:
2053 dasm_put(Dst, 12884, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2053 dasm_put(Dst, 12886, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2054 dasm_put(Dst, 12968, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2054 dasm_put(Dst, 12970, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2055 break; 2055 break;
2056 case BC_TGETB: 2056 case BC_TGETB:
2057 dasm_put(Dst, 13039, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 2057 dasm_put(Dst, 13041, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
2058 dasm_put(Dst, 11376); 2058 dasm_put(Dst, 11378);
2059 break; 2059 break;
2060 2060
2061 case BC_TSETV: 2061 case BC_TSETV:
2062 dasm_put(Dst, 13138, LJ_TTAB, LJ_TISNUM); 2062 dasm_put(Dst, 13140, LJ_TTAB, LJ_TISNUM);
2063 if (sse) { 2063 if (sse) {
2064 dasm_put(Dst, 12743); 2064 dasm_put(Dst, 12745);
2065 } else { 2065 } else {
2066 dasm_put(Dst, 12764); 2066 dasm_put(Dst, 12766);
2067 if (cmov) { 2067 if (cmov) {
2068 dasm_put(Dst, 10805); 2068 dasm_put(Dst, 10807);
2069 } else { 2069 } else {
2070 dasm_put(Dst, 10811); 2070 dasm_put(Dst, 10813);
2071 } 2071 }
2072 dasm_put(Dst, 2524); 2072 dasm_put(Dst, 2524);
2073 } 2073 }
2074 dasm_put(Dst, 13171, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 2074 dasm_put(Dst, 13173, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
2075 dasm_put(Dst, 13254, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2075 dasm_put(Dst, 13256, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2076 break; 2076 break;
2077 case BC_TSETS: 2077 case BC_TSETS:
2078 dasm_put(Dst, 13316, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 2078 dasm_put(Dst, 13318, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
2079 dasm_put(Dst, 13391, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 2079 dasm_put(Dst, 13393, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
2080 dasm_put(Dst, 13483, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2080 dasm_put(Dst, 13485, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2081 break; 2081 break;
2082 case BC_TSETB: 2082 case BC_TSETB:
2083 dasm_put(Dst, 13579, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 2083 dasm_put(Dst, 13581, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
2084 dasm_put(Dst, 13677, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2084 dasm_put(Dst, 13679, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2085 break; 2085 break;
2086 2086
2087 case BC_TSETM: 2087 case BC_TSETM:
2088 dasm_put(Dst, 13723); 2088 dasm_put(Dst, 13725);
2089 if (sse) { 2089 if (sse) {
2090 dasm_put(Dst, 13728); 2090 dasm_put(Dst, 13730);
2091 } else { 2091 } else {
2092 dasm_put(Dst, 13735); 2092 dasm_put(Dst, 13737);
2093 } 2093 }
2094 dasm_put(Dst, 13747, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 2094 dasm_put(Dst, 13749, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
2095 dasm_put(Dst, 13889, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 2095 dasm_put(Dst, 13891, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
2096 break; 2096 break;
2097 2097
2098 /* -- Calls and vararg handling ----------------------------------------- */ 2098 /* -- Calls and vararg handling ----------------------------------------- */
2099 2099
2100 case BC_CALL: case BC_CALLM: 2100 case BC_CALL: case BC_CALLM:
2101 dasm_put(Dst, 11390); 2101 dasm_put(Dst, 11392);
2102 if (op == BC_CALLM) { 2102 if (op == BC_CALLM) {
2103 dasm_put(Dst, 13907); 2103 dasm_put(Dst, 13909);
2104 } 2104 }
2105 dasm_put(Dst, 13912, LJ_TFUNC, Dt7(->pc)); 2105 dasm_put(Dst, 13914, LJ_TFUNC, Dt7(->pc));
2106 break; 2106 break;
2107 2107
2108 case BC_CALLMT: 2108 case BC_CALLMT:
2109 dasm_put(Dst, 13907); 2109 dasm_put(Dst, 13909);
2110 break; 2110 break;
2111 case BC_CALLT: 2111 case BC_CALLT:
2112 dasm_put(Dst, 13953, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2112 dasm_put(Dst, 13955, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
2113 dasm_put(Dst, 14071, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 2113 dasm_put(Dst, 14073, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
2114 break; 2114 break;
2115 2115
2116 case BC_ITERC: 2116 case BC_ITERC:
2117 dasm_put(Dst, 14128, LJ_TFUNC, 2+1, Dt7(->pc)); 2117 dasm_put(Dst, 14130, LJ_TFUNC, 2+1, Dt7(->pc));
2118 break; 2118 break;
2119 2119
2120 case BC_VARG: 2120 case BC_VARG:
2121 dasm_put(Dst, 14208, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 2121 dasm_put(Dst, 14210, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
2122 dasm_put(Dst, 14352, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2122 dasm_put(Dst, 14354, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2123 break; 2123 break;
2124 2124
2125 /* -- Returns ----------------------------------------------------------- */ 2125 /* -- Returns ----------------------------------------------------------- */
2126 2126
2127 case BC_RETM: 2127 case BC_RETM:
2128 dasm_put(Dst, 13907); 2128 dasm_put(Dst, 13909);
2129 break; 2129 break;
2130 2130
2131 case BC_RET: case BC_RET0: case BC_RET1: 2131 case BC_RET: case BC_RET0: case BC_RET1:
2132 if (op != BC_RET0) { 2132 if (op != BC_RET0) {
2133 dasm_put(Dst, 14451); 2133 dasm_put(Dst, 14453);
2134 } 2134 }
2135 dasm_put(Dst, 14455, FRAME_TYPE); 2135 dasm_put(Dst, 14457, FRAME_TYPE);
2136 switch (op) { 2136 switch (op) {
2137 case BC_RET: 2137 case BC_RET:
2138 dasm_put(Dst, 14474); 2138 dasm_put(Dst, 14476);
2139 break; 2139 break;
2140 case BC_RET1: 2140 case BC_RET1:
2141 dasm_put(Dst, 14532); 2141 dasm_put(Dst, 14534);
2142 /* fallthrough */ 2142 /* fallthrough */
2143 case BC_RET0: 2143 case BC_RET0:
2144 dasm_put(Dst, 14548); 2144 dasm_put(Dst, 14550);
2145 default: 2145 default:
2146 break; 2146 break;
2147 } 2147 }
2148 dasm_put(Dst, 14559, Dt7(->pc), PC2PROTO(k)); 2148 dasm_put(Dst, 14561, Dt7(->pc), PC2PROTO(k));
2149 if (op == BC_RET) { 2149 if (op == BC_RET) {
2150 dasm_put(Dst, 14601, LJ_TNIL); 2150 dasm_put(Dst, 14603, LJ_TNIL);
2151 } else { 2151 } else {
2152 dasm_put(Dst, 14610, LJ_TNIL); 2152 dasm_put(Dst, 14612, LJ_TNIL);
2153 } 2153 }
2154 dasm_put(Dst, 14617); 2154 dasm_put(Dst, 14619);
2155 if (op != BC_RET0) { 2155 if (op != BC_RET0) {
2156 dasm_put(Dst, 14638); 2156 dasm_put(Dst, 14640);
2157 } 2157 }
2158 dasm_put(Dst, 4680); 2158 dasm_put(Dst, 4680);
2159 break; 2159 break;
@@ -2163,7 +2163,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2163 2163
2164 case BC_FORL: 2164 case BC_FORL:
2165#if LJ_HASJIT 2165#if LJ_HASJIT
2166 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2166 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2167#endif 2167#endif
2168 break; 2168 break;
2169 2169
@@ -2175,57 +2175,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2175 case BC_FORI: 2175 case BC_FORI:
2176 case BC_IFORL: 2176 case BC_IFORL:
2177 vk = (op == BC_IFORL || op == BC_JFORL); 2177 vk = (op == BC_IFORL || op == BC_JFORL);
2178 dasm_put(Dst, 14663); 2178 dasm_put(Dst, 14665);
2179 if (!vk) { 2179 if (!vk) {
2180 dasm_put(Dst, 14667, LJ_TISNUM, LJ_TISNUM); 2180 dasm_put(Dst, 14669, LJ_TISNUM, LJ_TISNUM);
2181 } 2181 }
2182 dasm_put(Dst, 14686); 2182 dasm_put(Dst, 14688);
2183 if (!vk) { 2183 if (!vk) {
2184 dasm_put(Dst, 14690, LJ_TISNUM); 2184 dasm_put(Dst, 14692, LJ_TISNUM);
2185 } 2185 }
2186 if (sse) { 2186 if (sse) {
2187 dasm_put(Dst, 14699); 2187 dasm_put(Dst, 14701);
2188 if (vk) { 2188 if (vk) {
2189 dasm_put(Dst, 14711); 2189 dasm_put(Dst, 14713);
2190 } else { 2190 } else {
2191 dasm_put(Dst, 14730); 2191 dasm_put(Dst, 14732);
2192 } 2192 }
2193 dasm_put(Dst, 14735); 2193 dasm_put(Dst, 14737);
2194 } else { 2194 } else {
2195 dasm_put(Dst, 14748); 2195 dasm_put(Dst, 14750);
2196 if (vk) { 2196 if (vk) {
2197 dasm_put(Dst, 14754); 2197 dasm_put(Dst, 14756);
2198 } else { 2198 } else {
2199 dasm_put(Dst, 14770); 2199 dasm_put(Dst, 14772);
2200 } 2200 }
2201 dasm_put(Dst, 14778); 2201 dasm_put(Dst, 14780);
2202 if (cmov) { 2202 if (cmov) {
2203 dasm_put(Dst, 10805); 2203 dasm_put(Dst, 10807);
2204 } else { 2204 } else {
2205 dasm_put(Dst, 10811); 2205 dasm_put(Dst, 10813);
2206 } 2206 }
2207 if (!cmov) { 2207 if (!cmov) {
2208 dasm_put(Dst, 14783); 2208 dasm_put(Dst, 14785);
2209 } 2209 }
2210 } 2210 }
2211 if (op == BC_FORI) { 2211 if (op == BC_FORI) {
2212 dasm_put(Dst, 14789, -BCBIAS_J*4); 2212 dasm_put(Dst, 14791, -BCBIAS_J*4);
2213 } else if (op == BC_JFORI) { 2213 } else if (op == BC_JFORI) {
2214 dasm_put(Dst, 14799, -BCBIAS_J*4, BC_JLOOP); 2214 dasm_put(Dst, 14801, -BCBIAS_J*4, BC_JLOOP);
2215 } else if (op == BC_IFORL) { 2215 } else if (op == BC_IFORL) {
2216 dasm_put(Dst, 14813, -BCBIAS_J*4); 2216 dasm_put(Dst, 14815, -BCBIAS_J*4);
2217 } else { 2217 } else {
2218 dasm_put(Dst, 14809, BC_JLOOP); 2218 dasm_put(Dst, 14811, BC_JLOOP);
2219 } 2219 }
2220 dasm_put(Dst, 10840); 2220 dasm_put(Dst, 10842);
2221 if (sse) { 2221 if (sse) {
2222 dasm_put(Dst, 14823); 2222 dasm_put(Dst, 14825);
2223 } 2223 }
2224 break; 2224 break;
2225 2225
2226 case BC_ITERL: 2226 case BC_ITERL:
2227#if LJ_HASJIT 2227#if LJ_HASJIT
2228 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2228 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2229#endif 2229#endif
2230 break; 2230 break;
2231 2231
@@ -2234,33 +2234,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2234 break; 2234 break;
2235#endif 2235#endif
2236 case BC_IITERL: 2236 case BC_IITERL:
2237 dasm_put(Dst, 14834, LJ_TNIL); 2237 dasm_put(Dst, 14836, LJ_TNIL);
2238 if (op == BC_JITERL) { 2238 if (op == BC_JITERL) {
2239 dasm_put(Dst, 14849, BC_JLOOP); 2239 dasm_put(Dst, 14851, BC_JLOOP);
2240 } else { 2240 } else {
2241 dasm_put(Dst, 14863, -BCBIAS_J*4); 2241 dasm_put(Dst, 14865, -BCBIAS_J*4);
2242 } 2242 }
2243 dasm_put(Dst, 11137); 2243 dasm_put(Dst, 11139);
2244 break; 2244 break;
2245 2245
2246 case BC_LOOP: 2246 case BC_LOOP:
2247#if LJ_HASJIT 2247#if LJ_HASJIT
2248 dasm_put(Dst, 14642, HOTCOUNT_PCMASK, GG_DISP2HOT); 2248 dasm_put(Dst, 14644, HOTCOUNT_PCMASK, GG_DISP2HOT);
2249#endif 2249#endif
2250 break; 2250 break;
2251 2251
2252 case BC_ILOOP: 2252 case BC_ILOOP:
2253 dasm_put(Dst, 10842); 2253 dasm_put(Dst, 10844);
2254 break; 2254 break;
2255 2255
2256 case BC_JLOOP: 2256 case BC_JLOOP:
2257#if LJ_HASJIT 2257#if LJ_HASJIT
2258 dasm_put(Dst, 14879, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2258 dasm_put(Dst, 14881, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2259#endif 2259#endif
2260 break; 2260 break;
2261 2261
2262 case BC_JMP: 2262 case BC_JMP:
2263 dasm_put(Dst, 14902, -BCBIAS_J*4); 2263 dasm_put(Dst, 14904, -BCBIAS_J*4);
2264 break; 2264 break;
2265 2265
2266 /* -- Function headers -------------------------------------------------- */ 2266 /* -- Function headers -------------------------------------------------- */
@@ -2274,7 +2274,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2274 2274
2275 case BC_FUNCF: 2275 case BC_FUNCF:
2276#if LJ_HASJIT 2276#if LJ_HASJIT
2277 dasm_put(Dst, 14926, HOTCOUNT_PCMASK, GG_DISP2HOT); 2277 dasm_put(Dst, 14928, HOTCOUNT_PCMASK, GG_DISP2HOT);
2278#endif 2278#endif
2279 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2279 case BC_FUNCV: /* NYI: compiled vararg functions. */
2280 break; 2280 break;
@@ -2284,47 +2284,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2284 break; 2284 break;
2285#endif 2285#endif
2286 case BC_IFUNCF: 2286 case BC_IFUNCF:
2287 dasm_put(Dst, 14947, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2287 dasm_put(Dst, 14949, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2288 if (op == BC_JFUNCF) { 2288 if (op == BC_JFUNCF) {
2289 dasm_put(Dst, 14977, BC_JLOOP); 2289 dasm_put(Dst, 14979, BC_JLOOP);
2290 } else { 2290 } else {
2291 dasm_put(Dst, 10842); 2291 dasm_put(Dst, 10844);
2292 } 2292 }
2293 dasm_put(Dst, 14986, LJ_TNIL); 2293 dasm_put(Dst, 14988, LJ_TNIL);
2294 break; 2294 break;
2295 2295
2296 case BC_JFUNCV: 2296 case BC_JFUNCV:
2297#if !LJ_HASJIT 2297#if !LJ_HASJIT
2298 break; 2298 break;
2299#endif 2299#endif
2300 dasm_put(Dst, 10503); 2300 dasm_put(Dst, 10505);
2301 break; /* NYI: compiled vararg functions. */ 2301 break; /* NYI: compiled vararg functions. */
2302 2302
2303 case BC_IFUNCV: 2303 case BC_IFUNCV:
2304 dasm_put(Dst, 15008, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2304 dasm_put(Dst, 15010, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2305 if (op == BC_JFUNCV) { 2305 if (op == BC_JFUNCV) {
2306 dasm_put(Dst, 14977, BC_JLOOP); 2306 dasm_put(Dst, 14979, BC_JLOOP);
2307 } else { 2307 } else {
2308 dasm_put(Dst, 15099, -4+PC2PROTO(k)); 2308 dasm_put(Dst, 15101, -4+PC2PROTO(k));
2309 } 2309 }
2310 dasm_put(Dst, 15121, LJ_TNIL); 2310 dasm_put(Dst, 15123, LJ_TNIL);
2311 break; 2311 break;
2312 2312
2313 case BC_FUNCC: 2313 case BC_FUNCC:
2314 case BC_FUNCCW: 2314 case BC_FUNCCW:
2315 dasm_put(Dst, 15143, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2315 dasm_put(Dst, 15145, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2316 if (op == BC_FUNCC) { 2316 if (op == BC_FUNCC) {
2317 dasm_put(Dst, 15172); 2317 dasm_put(Dst, 15174);
2318 } else { 2318 } else {
2319 dasm_put(Dst, 15176); 2319 dasm_put(Dst, 15178);
2320 } 2320 }
2321 dasm_put(Dst, 15184, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2321 dasm_put(Dst, 15186, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2322 if (op == BC_FUNCC) { 2322 if (op == BC_FUNCC) {
2323 dasm_put(Dst, 15193); 2323 dasm_put(Dst, 15195);
2324 } else { 2324 } else {
2325 dasm_put(Dst, 15197, DISPATCH_GL(wrapf)); 2325 dasm_put(Dst, 15199, DISPATCH_GL(wrapf));
2326 } 2326 }
2327 dasm_put(Dst, 15202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2327 dasm_put(Dst, 15204, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2328 break; 2328 break;
2329 2329
2330 /* ---------------------------------------------------------------------- */ 2330 /* ---------------------------------------------------------------------- */
@@ -2352,7 +2352,7 @@ static int build_backend(BuildCtx *ctx)
2352 2352
2353 build_subroutines(ctx, cmov, sse); 2353 build_subroutines(ctx, cmov, sse);
2354 2354
2355 dasm_put(Dst, 15227); 2355 dasm_put(Dst, 15229);
2356 for (op = 0; op < BC__MAX; op++) 2356 for (op = 0; op < BC__MAX; op++)
2357 build_ins(ctx, (BCOp)op, op, cmov, sse); 2357 build_ins(ctx, (BCOp)op, op, cmov, sse);
2358 2358