From 57cd5026ebe6be2c7f1c2851557b9b7e2261a3d3 Mon Sep 17 00:00:00 2001
From: Mike Pall <mike>
Date: Fri, 19 Nov 2010 17:00:11 +0100
Subject: Disable Lua 5.2 features by default. See -DLUAJIT_ENABLE_LUA52COMPAT.

---
 src/Makefile         |    5 +
 src/buildvm_ppc.dasc |   22 +-
 src/buildvm_ppcspe.h |  450 +++++------
 src/buildvm_x64.h    | 1999 ++++++++++++++++++++++++-------------------------
 src/buildvm_x64win.h | 2016 +++++++++++++++++++++++++-------------------------
 src/buildvm_x86.dasc |    4 +
 src/buildvm_x86.h    | 1227 +++++++++++++++---------------
 src/lib_base.c       |    4 +
 src/lj_obj.h         |    8 +-
 src/lj_record.c      |    5 +-
 10 files changed, 2906 insertions(+), 2834 deletions(-)

(limited to 'src')

diff --git a/src/Makefile b/src/Makefile
index da9f67b2..0417b1cb 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -62,6 +62,11 @@ CCWARN= -Wall
 # Note that most of these are NOT suitable for benchmarking or release mode!
 XCFLAGS=
 #
+# Enable some upwards-compatible features from Lua 5.2 that are unlikely
+# to break existing code (e.g. __pairs). Note that this does not provide
+# full compatibility with Lua 5.2 at this time.
+#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
+#
 # Disable the use of CMOV and FCOMI*/FUCOMI* instructions in the interpreter.
 # This is only necessary if you intend to run the code on REALLY ANCIENT CPUs
 # (before Pentium Pro, or on the VIA C3). This generally slows down the
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc
index 06fc5078..108363e5 100644
--- a/src/buildvm_ppc.dasc
+++ b/src/buildvm_ppc.dasc
@@ -1098,11 +1098,16 @@ static void build_subroutines(BuildCtx *ctx)
   |  checktab TAB:CARG1
   |   lwz PC, FRAME_PC(BASE)
   |  checkfail ->fff_fallback
-  |  lwz TAB:TMP2, TAB:CARG1->metatable
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  |   lwz TAB:TMP2, TAB:CARG1->metatable
   |  evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
-  |  cmplwi TAB:TMP2, 0
+  |   cmplwi TAB:TMP2, 0
   |  la RA, -8(BASE)
-  |  bne ->fff_fallback
+  |   bne ->fff_fallback
+#else
+  |  evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
+  |  la RA, -8(BASE)
+#endif
   |   evstdd TAB:CARG1, 0(BASE)
   |   evstdd TISNIL, 8(BASE)
   |  li RD, (3+1)*8
@@ -1153,11 +1158,16 @@ static void build_subroutines(BuildCtx *ctx)
   |  checktab TAB:CARG1
   |   lwz PC, FRAME_PC(BASE)
   |  checkfail ->fff_fallback
-  |  lwz TAB:TMP2, TAB:CARG1->metatable
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  |   lwz TAB:TMP2, TAB:CARG1->metatable
   |  evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
-  |  cmplwi TAB:TMP2, 0
+  |   cmplwi TAB:TMP2, 0
   |  la RA, -8(BASE)
-  |  bne ->fff_fallback
+  |   bne ->fff_fallback
+#else
+  |  evldd CFUNC:TMP0, CFUNC:RB->upvalue[0]
+  |  la RA, -8(BASE)
+#endif
   |    evsplati TMP1, 0
   |   evstdd TAB:CARG1, 0(BASE)
   |    evstdd TMP1, 8(BASE)
diff --git a/src/buildvm_ppcspe.h b/src/buildvm_ppcspe.h
index f3af36b0..0855fda8 100644
--- a/src/buildvm_ppcspe.h
+++ b/src/buildvm_ppcspe.h
@@ -12,7 +12,7 @@
 #define DASM_SECTION_CODE_OP	0
 #define DASM_SECTION_CODE_SUB	1
 #define DASM_MAXSECTION		2
-static const unsigned int build_actionlist[4918] = {
+static const unsigned int build_actionlist[4928] = {
 0x00010001,
 0x00060014,
 0x72000000,
@@ -1064,6 +1064,11 @@ static const unsigned int build_actionlist[4918] = {
 0x3a8efff8,
 0x40820000,
 0x00050842,
+0x00000000,
+0x100a0301,
+0x00090cab,
+0x3a8efff8,
+0x00000000,
 0x106e0321,
 0x134e0b21,
 0x39800000,
@@ -1120,7 +1125,6 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x41820000,
 0x00050843,
-0x00000000,
 0x7d244b78,
 0x48000001,
 0x0003000c,
@@ -1129,6 +1133,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x41820000,
 0x00050843,
+0x00000000,
 0x11030301,
 0x48000000,
 0x0005000b,
@@ -1141,6 +1146,7 @@ static const unsigned int build_actionlist[4918] = {
 0x820efff8,
 0x40800000,
 0x00050842,
+0x00000000,
 0x81230000,
 0x00098200,
 0x100a0301,
@@ -1149,6 +1155,11 @@ static const unsigned int build_actionlist[4918] = {
 0x3a8efff8,
 0x40820000,
 0x00050842,
+0x00000000,
+0x100a0301,
+0x00090cab,
+0x3a8efff8,
+0x00000000,
 0x11000229,
 0x106e0321,
 0x110e0b21,
@@ -1184,7 +1195,6 @@ static const unsigned int build_actionlist[4918] = {
 0x1004ca34,
 0x40800000,
 0x00050842,
-0x00000000,
 0x39ce0010,
 0x54c607fe,
 0x000900ab,
@@ -1211,6 +1221,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x80830000,
 0x00098200,
+0x00000000,
 0x28000000,
 0x00090200,
 0x81230000,
@@ -1250,7 +1261,6 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x0005000c,
 0x0006000d,
-0x00000000,
 0x38a00000,
 0x7c751b78,
 0x38c00000,
@@ -1274,6 +1284,7 @@ static const unsigned int build_actionlist[4918] = {
 0x7d893050,
 0x80120000,
 0x00098200,
+0x00000000,
 0x280c0000,
 0x7d0e6214,
 0x41820000,
@@ -1308,7 +1319,6 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x00050018,
 0x00060012,
-0x00000000,
 0x72000000,
 0x00090200,
 0x38c6fff8,
@@ -1334,6 +1344,7 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x0005000e,
 0x00060053,
+0x00000000,
 0x806a0000,
 0x00098200,
 0x88030000,
@@ -1369,7 +1380,6 @@ static const unsigned int build_actionlist[4918] = {
 0x91d20000,
 0x00098200,
 0x0006000c,
-0x00000000,
 0x7c085800,
 0x100e4300,
 0x41820000,
@@ -1393,6 +1403,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x38000000,
 0x00098200,
+0x00000000,
 0x81d20000,
 0x00098200,
 0x90110000,
@@ -1430,7 +1441,6 @@ static const unsigned int build_actionlist[4918] = {
 0x7d936378,
 0x41820000,
 0x00050817,
-0x00000000,
 0x48000000,
 0x00050018,
 0x00060012,
@@ -1450,6 +1460,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00060054,
 0x80120000,
 0x00098200,
+0x00000000,
 0x7d0e5a14,
 0x91d20000,
 0x00098200,
@@ -1481,7 +1492,6 @@ static const unsigned int build_actionlist[4918] = {
 0x3a8efff8,
 0x10740321,
 0x00060056,
-0x00000000,
 0x39800000,
 0x00098200,
 0x00060043,
@@ -1515,6 +1525,7 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x0005000f,
 0x00060057,
+0x00000000,
 0x280b0008,
 0x108e0301,
 0x41800000,
@@ -1557,7 +1568,6 @@ static const unsigned int build_actionlist[4918] = {
 0x00050842,
 0x48000001,
 0x0003000e,
-0x00000000,
 0x1063222d,
 0x48000000,
 0x00050045,
@@ -1584,6 +1594,7 @@ static const unsigned int build_actionlist[4918] = {
 0x1064222c,
 0x40800000,
 0x00050842,
+0x00000000,
 0x48000001,
 0x00030010,
 0x1063222d,
@@ -1618,7 +1629,6 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x00050045,
 0x00060060,
-0x00000000,
 0x280b0008,
 0x108e0301,
 0x41800000,
@@ -1647,6 +1657,7 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x00050045,
 0x00060062,
+0x00000000,
 0x280b0008,
 0x108e0301,
 0x41800000,
@@ -1683,7 +1694,6 @@ static const unsigned int build_actionlist[4918] = {
 0x1064222c,
 0x40800000,
 0x00050842,
-0x00000000,
 0x48000001,
 0x00030017,
 0x1063222d,
@@ -1712,6 +1722,7 @@ static const unsigned int build_actionlist[4918] = {
 0x1064222c,
 0x40800000,
 0x00050842,
+0x00000000,
 0x48000001,
 0x00030019,
 0x1063222d,
@@ -1748,7 +1759,6 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x00050045,
 0x00060069,
-0x00000000,
 0x280b0010,
 0x108e0301,
 0x10ce0b01,
@@ -1782,6 +1792,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00050045,
 0x0006006b,
 0x0006006c,
+0x00000000,
 0x280b0008,
 0x106e0301,
 0x41800000,
@@ -1815,7 +1826,6 @@ static const unsigned int build_actionlist[4918] = {
 0x108e0301,
 0x41800000,
 0x00050842,
-0x00000000,
 0x1004b232,
 0x1064222c,
 0x40800000,
@@ -1854,6 +1864,7 @@ static const unsigned int build_actionlist[4918] = {
 0x106e0321,
 0x39800000,
 0x00098200,
+0x00000000,
 0x48000000,
 0x00050043,
 0x00060070,
@@ -1889,7 +1900,6 @@ static const unsigned int build_actionlist[4918] = {
 0x40800000,
 0x00050842,
 0x0006000b,
-0x00000000,
 0x108e4300,
 0x7c885840,
 0x1004b232,
@@ -1921,6 +1931,7 @@ static const unsigned int build_actionlist[4918] = {
 0x106e0301,
 0x40820000,
 0x00050842,
+0x00000000,
 0x1003ba34,
 0x3a8efff8,
 0x40800000,
@@ -1955,7 +1966,6 @@ static const unsigned int build_actionlist[4918] = {
 0x1003b232,
 0x38910000,
 0x00098200,
-0x00000000,
 0x40800000,
 0x00050842,
 0x10001afa,
@@ -1981,6 +1991,7 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x81110000,
 0x00098200,
+0x00000000,
 0x7c004040,
 0x40800001,
 0x0005084b,
@@ -2017,7 +2028,6 @@ static const unsigned int build_actionlist[4918] = {
 0x40810000,
 0x00050807,
 0x0006000d,
-0x00000000,
 0x7ca84851,
 0x38830000,
 0x00098200,
@@ -2047,6 +2057,7 @@ static const unsigned int build_actionlist[4918] = {
 0x7c004040,
 0x40800001,
 0x0005084b,
+0x00000000,
 0x280b0010,
 0x106e0301,
 0x108e0b01,
@@ -2080,7 +2091,6 @@ static const unsigned int build_actionlist[4918] = {
 0x41840000,
 0x00050842,
 0x0006000b,
-0x00000000,
 0x28090000,
 0x7c0449ae,
 0x3929ffff,
@@ -2106,6 +2116,7 @@ static const unsigned int build_actionlist[4918] = {
 0x106e0301,
 0x41800000,
 0x00050842,
+0x00000000,
 0x1003ba34,
 0x81110000,
 0x00098200,
@@ -2137,7 +2148,6 @@ static const unsigned int build_actionlist[4918] = {
 0x00098200,
 0x81110000,
 0x00098200,
-0x00000000,
 0x7c004040,
 0x40800001,
 0x0005084b,
@@ -2165,6 +2175,7 @@ static const unsigned int build_actionlist[4918] = {
 0x7d0348ae,
 0x40800000,
 0x00050875,
+0x00000000,
 0x3808ffbf,
 0x69060020,
 0x2800001a,
@@ -2201,7 +2212,6 @@ static const unsigned int build_actionlist[4918] = {
 0x41800000,
 0x00050842,
 0x0006000b,
-0x00000000,
 0x7c092840,
 0x7d0348ae,
 0x40800000,
@@ -2232,6 +2242,7 @@ static const unsigned int build_actionlist[4918] = {
 0x106e0301,
 0x41800000,
 0x00050842,
+0x00000000,
 0x1003b232,
 0x40800000,
 0x00050842,
@@ -2271,7 +2282,6 @@ static const unsigned int build_actionlist[4918] = {
 0x1003b232,
 0x40800000,
 0x00050842,
-0x00000000,
 0x1063dae0,
 0x39000008,
 0x0006000b,
@@ -2303,6 +2313,7 @@ static const unsigned int build_actionlist[4918] = {
 0x1004b232,
 0x40840000,
 0x0005087d,
+0x00000000,
 0x40800000,
 0x00050842,
 0x1084dae0,
@@ -2348,7 +2359,6 @@ static const unsigned int build_actionlist[4918] = {
 0x1000b232,
 0x40830000,
 0x00050842,
-0x00000000,
 0x1084dae0,
 0x1063dae0,
 0x548406fe,
@@ -2391,6 +2401,7 @@ static const unsigned int build_actionlist[4918] = {
 0x48000000,
 0x00050045,
 0x00060086,
+0x00000000,
 0x280b0010,
 0x106e0301,
 0x108e0b01,
@@ -2436,7 +2447,6 @@ static const unsigned int build_actionlist[4918] = {
 0x7c004840,
 0x91d20000,
 0x00098200,
-0x00000000,
 0x91120000,
 0x00098200,
 0x7e439378,
@@ -2470,6 +2480,7 @@ static const unsigned int build_actionlist[4918] = {
 0x7c0903a6,
 0x4e800420,
 0x0006000c,
+0x00000000,
 0x72000000,
 0x00090200,
 0x56080038,
@@ -2500,7 +2511,6 @@ static const unsigned int build_actionlist[4918] = {
 0x9201000c,
 0x90120000,
 0x00098200,
-0x00000000,
 0x7e439378,
 0x48000001,
 0x00030023,
@@ -5308,75 +5318,85 @@ static void build_subroutines(BuildCtx *ctx)
   dasm_put(Dst, 854, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), LJ_TUDATA, 31-2, 4*~LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
   dasm_put(Dst, 910, Dt6(->metatable), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
   dasm_put(Dst, 970, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->top), (2+1)*8);
-  dasm_put(Dst, 1043, Dt6(->metatable), Dt8(->upvalue[0]), (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8);
-  dasm_put(Dst, 1108, (0+1)*8, Dt6(->metatable), Dt8(->upvalue[0]), (3+1)*8, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 8+FRAME_PCALL, DISPATCH_GL(hookmask));
-  dasm_put(Dst, 1172, 32-HOOK_ACTIVE_SHIFT, 16+FRAME_PCALL, LJ_TTHREAD, Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top));
-  dasm_put(Dst, 1238, Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, LJ_TTRUE);
-  dasm_put(Dst, 1296, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3, Dt8(->upvalue[0].gcr), Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top));
-  dasm_put(Dst, 1357, Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE);
-  dasm_put(Dst, 1418, 32-3, Dt1(->cframe), Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status));
-  dasm_put(Dst, 1469, (1+1)*8, FRAME_TYPE);
-  dasm_put(Dst, 1545);
-  dasm_put(Dst, 1606);
-  dasm_put(Dst, 1671);
-  dasm_put(Dst, 1736, Dt8(->upvalue[0]));
-  dasm_put(Dst, 1803, DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8);
-  dasm_put(Dst, 1877, Dt5(->len), Dt5(->len), (0+1)*8, Dt5([1]), (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmptv));
-  dasm_put(Dst, 1943, Dt1(->base), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt5(->len));
-  dasm_put(Dst, 2005, sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 2068, DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
-  dasm_put(Dst, 2125, DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 2189);
-  dasm_put(Dst, 2259);
-  dasm_put(Dst, 2336, Dt8(->f), 8*LUA_MINSTACK-8, Dt1(->maxstack), Dt1(->base));
-  dasm_put(Dst, 2424, Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top));
-  dasm_put(Dst, 2488, Dt1(->base), Dt1(->top));
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 1043, Dt6(->metatable), Dt8(->upvalue[0]));
+#else
+  dasm_put(Dst, 1052, Dt8(->upvalue[0]));
+#endif
+  dasm_put(Dst, 1056, (3+1)*8, Dt6(->asize), Dt6(->array), 31-3, (0+1)*8, (2+1)*8, Dt6(->hmask), (0+1)*8, (0+1)*8);
+  dasm_put(Dst, 1121);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 1134, Dt6(->metatable), Dt8(->upvalue[0]));
+#else
+  dasm_put(Dst, 1143, Dt8(->upvalue[0]));
+#endif
+  dasm_put(Dst, 1147, (3+1)*8, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 8+FRAME_PCALL, DISPATCH_GL(hookmask), 32-HOOK_ACTIVE_SHIFT, 16+FRAME_PCALL, LJ_TTHREAD, Dt1(->status), Dt1(->cframe), Dt1(->top));
+  dasm_put(Dst, 1209, LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack));
+  dasm_put(Dst, 1272, Dt1(->top), FRAME_TYPE, LJ_TTRUE, FRAME_TYPE, LJ_TFALSE, Dt1(->top), (2+1)*8, 32-3);
+  dasm_put(Dst, 1332, Dt8(->upvalue[0].gcr), Dt1(->status), Dt1(->cframe), Dt1(->top), LUA_YIELD, Dt1(->base), Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->base), LUA_YIELD, Dt1(->top), ~LJ_VMST_INTERP);
+  dasm_put(Dst, 1391, Dt1(->base), DISPATCH_GL(vmstate), Dt1(->maxstack), Dt1(->top), FRAME_TYPE, 32-3, Dt1(->cframe));
+  dasm_put(Dst, 1448, Dt1(->base), CFRAME_RESUME, Dt1(->top), LUA_YIELD, Dt1(->cframe), Dt1(->status), (1+1)*8, FRAME_TYPE);
+  dasm_put(Dst, 1513);
+  dasm_put(Dst, 1582);
+  dasm_put(Dst, 1645);
+  dasm_put(Dst, 1710);
+  dasm_put(Dst, 1780, Dt8(->upvalue[0]), DISPATCH_GL(tmptv), DISPATCH_GL(tmptv), (2+1)*8, (2+1)*8);
+  dasm_put(Dst, 1852, Dt5(->len));
+  dasm_put(Dst, 1919, Dt5(->len), (0+1)*8, Dt5([1]), (1+1)*8, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmptv), Dt1(->base), Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 1979, Dt5(->len), sizeof(GCstr)-1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 2045, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(strempty), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 2104, DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 2163, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), DISPATCH_GL(tmpbuf.sz), Dt5(->len), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 2230);
+  dasm_put(Dst, 2301);
+  dasm_put(Dst, 2389, Dt8(->f), 8*LUA_MINSTACK-8, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), 31-3, Dt1(->top), Dt7(->pc));
+  dasm_put(Dst, 2468, FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 2501);
+  dasm_put(Dst, 2511);
 #endif
-  dasm_put(Dst, 2503, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base));
-  dasm_put(Dst, 2550, GG_DISP2STATIC);
+  dasm_put(Dst, 2513, DISPATCH_GL(hookmask), HOOK_ACTIVE, GG_DISP2STATIC, DISPATCH_GL(hookmask), DISPATCH_GL(hookcount), HOOK_ACTIVE, 31-LUA_HOOKLINE, DISPATCH_GL(hookcount), Dt1(->base), Dt1(->base));
+  dasm_put(Dst, 2560, GG_DISP2STATIC);
 #if LJ_HASJIT
-  dasm_put(Dst, 2568);
+  dasm_put(Dst, 2578);
 #endif
-  dasm_put(Dst, 2570);
+  dasm_put(Dst, 2580);
 #if LJ_HASJIT
-  dasm_put(Dst, 2573);
+  dasm_put(Dst, 2583);
 #endif
-  dasm_put(Dst, 2576);
+  dasm_put(Dst, 2586);
 #if LJ_HASJIT
-  dasm_put(Dst, 2578);
+  dasm_put(Dst, 2588);
 #endif
-  dasm_put(Dst, 2581, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 2591, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 2603);
+  dasm_put(Dst, 2613);
 #endif
-  dasm_put(Dst, 2605);
+  dasm_put(Dst, 2615);
 #if LJ_HASJIT
-  dasm_put(Dst, 2607);
+  dasm_put(Dst, 2617);
 #endif
-  dasm_put(Dst, 2609);
+  dasm_put(Dst, 2619);
 #if LJ_HASJIT
-  dasm_put(Dst, 2686);
+  dasm_put(Dst, 2696);
 #else
-  dasm_put(Dst, 2709);
+  dasm_put(Dst, 2719);
 #endif
-  dasm_put(Dst, 2712);
+  dasm_put(Dst, 2722);
 #if LJ_HASJIT
-  dasm_put(Dst, 2714);
+  dasm_put(Dst, 2724);
 #endif
-  dasm_put(Dst, 2716);
+  dasm_put(Dst, 2726);
 #if LJ_HASJIT
-  dasm_put(Dst, 2718);
+  dasm_put(Dst, 2728);
 #endif
-  dasm_put(Dst, 2720);
+  dasm_put(Dst, 2730);
 }
 
 /* Generate the code for a single instruction. */
 static void build_ins(BuildCtx *ctx, BCOp op, int defop)
 {
   int vk = 0;
-  dasm_put(Dst, 2782, defop);
+  dasm_put(Dst, 2792, defop);
 
   switch (op) {
 
@@ -5385,112 +5405,112 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
   /* Remember: all ops branch for a true comparison, fall through otherwise. */
 
   case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
-    dasm_put(Dst, 2784, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 2794, -(BCBIAS_J*4 >> 16));
     if (op == BC_ISLE || op == BC_ISGT) {
-      dasm_put(Dst, 2798);
+      dasm_put(Dst, 2808);
     }
     if (op == BC_ISLT || op == BC_ISLE) {
-      dasm_put(Dst, 2801);
+      dasm_put(Dst, 2811);
     } else {
-      dasm_put(Dst, 2803);
+      dasm_put(Dst, 2813);
     }
-    dasm_put(Dst, 2805);
+    dasm_put(Dst, 2815);
     break;
 
   case BC_ISEQV: case BC_ISNEV:
     vk = op == BC_ISEQV;
-    dasm_put(Dst, 2816, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 2826, -(BCBIAS_J*4 >> 16));
     if (vk) {
-      dasm_put(Dst, 2830);
+      dasm_put(Dst, 2840);
     } else {
-      dasm_put(Dst, 2832);
+      dasm_put(Dst, 2842);
     }
-    dasm_put(Dst, 2834, ~LJ_TISPRI, ~LJ_TISTABUD);
+    dasm_put(Dst, 2844, ~LJ_TISPRI, ~LJ_TISTABUD);
     if (vk) {
-      dasm_put(Dst, 2856);
+      dasm_put(Dst, 2866);
     } else {
-      dasm_put(Dst, 2858);
+      dasm_put(Dst, 2868);
     }
-    dasm_put(Dst, 2860);
+    dasm_put(Dst, 2870);
     if (vk) {
-      dasm_put(Dst, 2862);
+      dasm_put(Dst, 2872);
     } else {
-      dasm_put(Dst, 2864);
+      dasm_put(Dst, 2874);
     }
-    dasm_put(Dst, 2866, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq);
+    dasm_put(Dst, 2876, Dt6(->metatable), 1-vk, Dt6(->nomm), 1<<MM_eq);
     break;
 
   case BC_ISEQS: case BC_ISNES:
     vk = op == BC_ISEQS;
-    dasm_put(Dst, 2887, 32-1, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 2897, 32-1, -(BCBIAS_J*4 >> 16));
     if (vk) {
-      dasm_put(Dst, 2901);
+      dasm_put(Dst, 2911);
     } else {
-      dasm_put(Dst, 2903);
+      dasm_put(Dst, 2913);
     }
-    dasm_put(Dst, 2905);
+    dasm_put(Dst, 2915);
     break;
 
   case BC_ISEQN: case BC_ISNEN:
     vk = op == BC_ISEQN;
-    dasm_put(Dst, 2916, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 2926, -(BCBIAS_J*4 >> 16));
     if (vk) {
-      dasm_put(Dst, 2930);
+      dasm_put(Dst, 2940);
     } else {
-      dasm_put(Dst, 2933);
+      dasm_put(Dst, 2943);
     }
-    dasm_put(Dst, 2935);
+    dasm_put(Dst, 2945);
     if (!vk) {
-      dasm_put(Dst, 2947);
+      dasm_put(Dst, 2957);
     }
     break;
 
   case BC_ISEQP: case BC_ISNEP:
     vk = op == BC_ISEQP;
-    dasm_put(Dst, 2953, 32-3, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 2963, 32-3, -(BCBIAS_J*4 >> 16));
     if (vk) {
-      dasm_put(Dst, 2965);
+      dasm_put(Dst, 2975);
     } else {
-      dasm_put(Dst, 2967);
+      dasm_put(Dst, 2977);
     }
-    dasm_put(Dst, 2969);
+    dasm_put(Dst, 2979);
     break;
 
   /* -- Unary test and copy ops ------------------------------------------- */
 
   case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
-    dasm_put(Dst, 2980);
+    dasm_put(Dst, 2990);
     if (op == BC_IST || op == BC_ISF) {
-      dasm_put(Dst, 2986, -(BCBIAS_J*4 >> 16));
+      dasm_put(Dst, 2996, -(BCBIAS_J*4 >> 16));
       if (op == BC_IST) {
-	dasm_put(Dst, 2991);
+	dasm_put(Dst, 3001);
       } else {
-	dasm_put(Dst, 2993);
+	dasm_put(Dst, 3003);
       }
     } else {
       if (op == BC_ISTC) {
-	dasm_put(Dst, 2995);
+	dasm_put(Dst, 3005);
       } else {
-	dasm_put(Dst, 2998);
+	dasm_put(Dst, 3008);
       }
-      dasm_put(Dst, 3001, -(BCBIAS_J*4 >> 16));
+      dasm_put(Dst, 3011, -(BCBIAS_J*4 >> 16));
     }
-    dasm_put(Dst, 3008);
+    dasm_put(Dst, 3018);
     break;
 
   /* -- Unary ops --------------------------------------------------------- */
 
   case BC_MOV:
-    dasm_put(Dst, 3019);
+    dasm_put(Dst, 3029);
     break;
   case BC_NOT:
-    dasm_put(Dst, 3032, LJ_TTRUE);
+    dasm_put(Dst, 3042, LJ_TTRUE);
     break;
   case BC_UNM:
-    dasm_put(Dst, 3048);
+    dasm_put(Dst, 3058);
     break;
   case BC_LEN:
-    dasm_put(Dst, 3065, Dt5(->len));
+    dasm_put(Dst, 3075, Dt5(->len));
     break;
 
   /* -- Binary ops -------------------------------------------------------- */
@@ -5500,257 +5520,257 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3093);
+    dasm_put(Dst, 3103);
       break;
     case 1:
-    dasm_put(Dst, 3099);
+    dasm_put(Dst, 3109);
       break;
     default:
-    dasm_put(Dst, 3105);
+    dasm_put(Dst, 3115);
       break;
     }
-    dasm_put(Dst, 3112);
+    dasm_put(Dst, 3122);
     break;
   case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3125);
+    dasm_put(Dst, 3135);
       break;
     case 1:
-    dasm_put(Dst, 3131);
+    dasm_put(Dst, 3141);
       break;
     default:
-    dasm_put(Dst, 3137);
+    dasm_put(Dst, 3147);
       break;
     }
-    dasm_put(Dst, 3144);
+    dasm_put(Dst, 3154);
     break;
   case BC_MULVN: case BC_MULNV: case BC_MULVV:
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3157);
+    dasm_put(Dst, 3167);
       break;
     case 1:
-    dasm_put(Dst, 3163);
+    dasm_put(Dst, 3173);
       break;
     default:
-    dasm_put(Dst, 3169);
+    dasm_put(Dst, 3179);
       break;
     }
-    dasm_put(Dst, 3176);
+    dasm_put(Dst, 3186);
     break;
   case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3189);
+    dasm_put(Dst, 3199);
       break;
     case 1:
-    dasm_put(Dst, 3195);
+    dasm_put(Dst, 3205);
       break;
     default:
-    dasm_put(Dst, 3201);
+    dasm_put(Dst, 3211);
       break;
     }
-    dasm_put(Dst, 3208);
+    dasm_put(Dst, 3218);
     break;
   case BC_MODVN:
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3221);
+    dasm_put(Dst, 3231);
       break;
     case 1:
-    dasm_put(Dst, 3227);
+    dasm_put(Dst, 3237);
       break;
     default:
-    dasm_put(Dst, 3233);
+    dasm_put(Dst, 3243);
       break;
     }
-    dasm_put(Dst, 3240);
+    dasm_put(Dst, 3250);
     break;
   case BC_MODNV: case BC_MODVV:
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 3258);
+    dasm_put(Dst, 3268);
       break;
     case 1:
-    dasm_put(Dst, 3264);
+    dasm_put(Dst, 3274);
       break;
     default:
-    dasm_put(Dst, 3270);
+    dasm_put(Dst, 3280);
       break;
     }
-    dasm_put(Dst, 3277);
+    dasm_put(Dst, 3287);
     break;
   case BC_POW:
-    dasm_put(Dst, 3280);
+    dasm_put(Dst, 3290);
     break;
 
   case BC_CAT:
-    dasm_put(Dst, 3302, Dt1(->base), 32-3, Dt1(->base));
+    dasm_put(Dst, 3312, Dt1(->base), 32-3, Dt1(->base));
     break;
 
   /* -- Constant ops ------------------------------------------------------ */
 
   case BC_KSTR:
-    dasm_put(Dst, 3332, 32-1);
+    dasm_put(Dst, 3342, 32-1);
     break;
   case BC_KSHORT:
-    dasm_put(Dst, 3349, 32-3);
+    dasm_put(Dst, 3359, 32-3);
     break;
   case BC_KNUM:
-    dasm_put(Dst, 3365);
+    dasm_put(Dst, 3375);
     break;
   case BC_KPRI:
-    dasm_put(Dst, 3378, 32-3);
+    dasm_put(Dst, 3388, 32-3);
     break;
   case BC_KNIL:
-    dasm_put(Dst, 3393);
+    dasm_put(Dst, 3403);
     break;
 
   /* -- Upvalue and function ops ------------------------------------------ */
 
   case BC_UGET:
-    dasm_put(Dst, 3412, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 3422, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_USETV:
-    dasm_put(Dst, 3433, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -LJ_TISNUM, LJ_TISGCV - LJ_TISNUM, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
+    dasm_put(Dst, 3443, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, DtA(->closed), -LJ_TISNUM, LJ_TISGCV - LJ_TISNUM, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
     break;
   case BC_USETS:
-    dasm_put(Dst, 3485, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G);
+    dasm_put(Dst, 3495, 32-1, 32-1, offsetof(GCfuncL, uvptr), DtA(->marked), DtA(->v), LJ_GC_BLACK, Dt5(->marked), DtA(->closed), LJ_GC_WHITES, GG_DISP2G);
     break;
   case BC_USETN:
-    dasm_put(Dst, 3534, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 3544, 32-1, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_USETP:
-    dasm_put(Dst, 3555, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v));
+    dasm_put(Dst, 3565, 32-1, offsetof(GCfuncL, uvptr), 32-3, DtA(->v));
     break;
 
   case BC_UCLO:
-    dasm_put(Dst, 3578, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 3588, Dt1(->openupval), 32-1, -(BCBIAS_J*4 >> 16), Dt1(->base), Dt1(->base));
     break;
 
   case BC_FNEW:
-    dasm_put(Dst, 3608, 32-1, Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 3618, 32-1, Dt1(->base), Dt1(->base));
     break;
 
   /* -- Table ops --------------------------------------------------------- */
 
   case BC_TNEW:
   case BC_TDUP:
-    dasm_put(Dst, 3634, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base));
+    dasm_put(Dst, 3644, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base));
     if (op == BC_TNEW) {
-      dasm_put(Dst, 3647);
+      dasm_put(Dst, 3657);
     } else {
-      dasm_put(Dst, 3655, 32-1);
+      dasm_put(Dst, 3665, 32-1);
     }
-    dasm_put(Dst, 3662, Dt1(->base));
+    dasm_put(Dst, 3672, Dt1(->base));
     break;
 
   case BC_GGET:
   case BC_GSET:
-    dasm_put(Dst, 3685, 32-1, Dt7(->env));
+    dasm_put(Dst, 3695, 32-1, Dt7(->env));
     if (op == BC_GGET) {
-      dasm_put(Dst, 3693);
+      dasm_put(Dst, 3703);
     } else {
-      dasm_put(Dst, 3696);
+      dasm_put(Dst, 3706);
     }
     break;
 
   case BC_TGETV:
-    dasm_put(Dst, 3699, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 3709, Dt6(->asize), Dt6(->array), 31-3, Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
     break;
   case BC_TGETS:
-    dasm_put(Dst, 3757, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 3821);
+    dasm_put(Dst, 3767, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), 31-5, 31-3, DtB(->key), DtB(->val), DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 3831);
     break;
   case BC_TGETB:
-    dasm_put(Dst, 3826, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 3836, 32-3, Dt6(->asize), Dt6(->array), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
     break;
 
   case BC_TSETV:
-    dasm_put(Dst, 3870, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
-    dasm_put(Dst, 3937, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
+    dasm_put(Dst, 3880, Dt6(->asize), Dt6(->array), 31-3, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex);
+    dasm_put(Dst, 3947, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
     break;
   case BC_TSETS:
-    dasm_put(Dst, 3949, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), DtB(->val), LJ_GC_BLACK, DtB(->val), Dt6(->metatable));
-    dasm_put(Dst, 4010, Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
-    dasm_put(Dst, 4061, Dt6(->marked), Dt6(->gclist));
+    dasm_put(Dst, 3959, 32-1, Dt6(->hmask), Dt5(->hash), Dt6(->node), Dt6(->nomm), 31-5, 31-3, Dt6(->marked), DtB(->key), DtB(->val), LJ_GC_BLACK, DtB(->val), Dt6(->metatable));
+    dasm_put(Dst, 4020, Dt6(->nomm), 1<<MM_newindex, DtB(->next), Dt6(->metatable), DISPATCH_GL(tmptv), Dt1(->base), Dt6(->nomm), 1<<MM_newindex, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
+    dasm_put(Dst, 4071, Dt6(->marked), Dt6(->gclist));
     break;
   case BC_TSETB:
-    dasm_put(Dst, 4068, 32-3, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked));
-    dasm_put(Dst, 4128, Dt6(->gclist));
+    dasm_put(Dst, 4078, 32-3, Dt6(->asize), Dt6(->array), Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked));
+    dasm_put(Dst, 4138, Dt6(->gclist));
     break;
 
   case BC_TSETM:
-    dasm_put(Dst, 4133, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
-    dasm_put(Dst, 4202);
+    dasm_put(Dst, 4143, 32-3, Dt6(->asize), 31-3, Dt6(->marked), Dt6(->array), LJ_GC_BLACK, Dt1(->base), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->marked), Dt6(->gclist));
+    dasm_put(Dst, 4212);
     break;
 
   /* -- Calls and vararg handling ----------------------------------------- */
 
   case BC_CALLM:
-    dasm_put(Dst, 4205);
+    dasm_put(Dst, 4215);
     break;
   case BC_CALL:
-    dasm_put(Dst, 4207, Dt7(->pc));
+    dasm_put(Dst, 4217, Dt7(->pc));
     break;
 
   case BC_CALLMT:
-    dasm_put(Dst, 4227);
+    dasm_put(Dst, 4237);
     break;
   case BC_CALLT:
-    dasm_put(Dst, 4229, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
-    dasm_put(Dst, 4294, FRAME_TYPE);
+    dasm_put(Dst, 4239, FRAME_TYPE, Dt7(->ffid), FRAME_VARG, Dt7(->pc), -4-8, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
+    dasm_put(Dst, 4304, FRAME_TYPE);
     break;
 
   case BC_ITERC:
-    dasm_put(Dst, 4301, Dt7(->pc));
+    dasm_put(Dst, 4311, Dt7(->pc));
     break;
 
   case BC_ITERN:
 #if LJ_HASJIT
 #endif
-    dasm_put(Dst, 4327, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16));
-    dasm_put(Dst, 4406);
+    dasm_put(Dst, 4337, Dt6(->asize), Dt6(->array), 31-3, -(BCBIAS_J*4 >> 16), Dt6(->hmask), Dt6(->node), 31-5, 31-3, DtB(->key), -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 4416);
     break;
 
   case BC_ISNEXT:
-    dasm_put(Dst, 4410, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 4420, LJ_TTAB, LJ_TFUNC, LJ_TNIL, Dt8(->ffid), FF_next_N, 32-1, -(BCBIAS_J*4 >> 16), BC_JMP, BC_ITERC, -(BCBIAS_J*4 >> 16));
     break;
 
   case BC_VARG:
-    dasm_put(Dst, 4461, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base));
-    dasm_put(Dst, 4541);
+    dasm_put(Dst, 4471, FRAME_VARG, Dt1(->maxstack), Dt1(->top), Dt1(->base), 32-3, Dt1(->base));
+    dasm_put(Dst, 4551);
     break;
 
   /* -- Returns ----------------------------------------------------------- */
 
   case BC_RETM:
-    dasm_put(Dst, 4547);
+    dasm_put(Dst, 4557);
     break;
 
   case BC_RET:
-    dasm_put(Dst, 4549, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
+    dasm_put(Dst, 4559, FRAME_TYPE, FRAME_VARG, Dt7(->pc), PC2PROTO(k), FRAME_TYPEP);
     break;
 
   case BC_RET0: case BC_RET1:
-    dasm_put(Dst, 4619, FRAME_TYPE, FRAME_VARG);
+    dasm_put(Dst, 4629, FRAME_TYPE, FRAME_VARG);
     if (op == BC_RET1) {
-      dasm_put(Dst, 4632);
+      dasm_put(Dst, 4642);
     }
-    dasm_put(Dst, 4635, Dt7(->pc), PC2PROTO(k));
+    dasm_put(Dst, 4645, Dt7(->pc), PC2PROTO(k));
     break;
 
   /* -- Loops and branches ------------------------------------------------ */
 
   case BC_FORL:
 #if LJ_HASJIT
-    dasm_put(Dst, 4663);
+    dasm_put(Dst, 4673);
 #endif
     break;
 
@@ -5762,35 +5782,35 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
   case BC_FORI:
   case BC_IFORL:
     vk = (op == BC_IFORL || op == BC_JFORL);
-    dasm_put(Dst, 4665, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8);
+    dasm_put(Dst, 4675, FORL_IDX*8, FORL_STEP*8, FORL_STOP*8);
     if (!vk) {
-      dasm_put(Dst, 4673);
+      dasm_put(Dst, 4683);
     }
     if (vk) {
-      dasm_put(Dst, 4681, FORL_IDX*8);
+      dasm_put(Dst, 4691, FORL_IDX*8);
     }
-    dasm_put(Dst, 4685, FORL_EXT*8);
+    dasm_put(Dst, 4695, FORL_EXT*8);
     if (op != BC_JFORL) {
-      dasm_put(Dst, 4693, 32-1);
+      dasm_put(Dst, 4703, 32-1);
       if (op == BC_JFORI) {
-	dasm_put(Dst, 4697, -(BCBIAS_J*4 >> 16));
+	dasm_put(Dst, 4707, -(BCBIAS_J*4 >> 16));
       } else {
-	dasm_put(Dst, 4700, -(BCBIAS_J*4 >> 16));
+	dasm_put(Dst, 4710, -(BCBIAS_J*4 >> 16));
       }
     }
     if (op == BC_FORI) {
-      dasm_put(Dst, 4703);
+      dasm_put(Dst, 4713);
     } else if (op == BC_IFORL) {
-      dasm_put(Dst, 4705);
+      dasm_put(Dst, 4715);
     } else {
-      dasm_put(Dst, 4707, BC_JLOOP);
+      dasm_put(Dst, 4717, BC_JLOOP);
     }
-    dasm_put(Dst, 4710);
+    dasm_put(Dst, 4720);
     break;
 
   case BC_ITERL:
 #if LJ_HASJIT
-    dasm_put(Dst, 4725);
+    dasm_put(Dst, 4735);
 #endif
     break;
 
@@ -5799,40 +5819,40 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
     break;
 #endif
   case BC_IITERL:
-    dasm_put(Dst, 4727);
+    dasm_put(Dst, 4737);
     if (op == BC_JITERL) {
-      dasm_put(Dst, 4733);
+      dasm_put(Dst, 4743);
     } else {
-      dasm_put(Dst, 4735, 32-1, -(BCBIAS_J*4 >> 16));
+      dasm_put(Dst, 4745, 32-1, -(BCBIAS_J*4 >> 16));
     }
-    dasm_put(Dst, 4742);
+    dasm_put(Dst, 4752);
     break;
 
   case BC_LOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 4754);
+    dasm_put(Dst, 4764);
 #endif
     break;
 
   case BC_ILOOP:
-    dasm_put(Dst, 4756);
+    dasm_put(Dst, 4766);
     break;
 
   case BC_JLOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 4767);
+    dasm_put(Dst, 4777);
 #endif
     break;
 
   case BC_JMP:
-    dasm_put(Dst, 4769, 32-1, -(BCBIAS_J*4 >> 16));
+    dasm_put(Dst, 4779, 32-1, -(BCBIAS_J*4 >> 16));
     break;
 
   /* -- Function headers -------------------------------------------------- */
 
   case BC_FUNCF:
 #if LJ_HASJIT
-    dasm_put(Dst, 4785);
+    dasm_put(Dst, 4795);
 #endif
   case BC_FUNCV:  /* NYI: compiled vararg functions. */
     break;
@@ -5842,38 +5862,38 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop)
     break;
 #endif
   case BC_IFUNCF:
-    dasm_put(Dst, 4787, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3);
+    dasm_put(Dst, 4797, Dt1(->maxstack), -4+PC2PROTO(numparams), -4+PC2PROTO(k), 31-3);
     if (op == BC_JFUNCF) {
-      dasm_put(Dst, 4805);
+      dasm_put(Dst, 4815);
     } else {
-      dasm_put(Dst, 4807);
+      dasm_put(Dst, 4817);
     }
-    dasm_put(Dst, 4816);
+    dasm_put(Dst, 4826);
     break;
 
   case BC_JFUNCV:
 #if !LJ_HASJIT
     break;
 #endif
-    dasm_put(Dst, 4822);
+    dasm_put(Dst, 4832);
     break;  /* NYI: compiled vararg functions. */
 
   case BC_IFUNCV:
-    dasm_put(Dst, 4824, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams));
+    dasm_put(Dst, 4834, Dt1(->maxstack), 8+FRAME_VARG, -4+PC2PROTO(k), -4+PC2PROTO(numparams));
     break;
 
   case BC_FUNCC:
   case BC_FUNCCW:
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 4874, Dt8(->f));
+      dasm_put(Dst, 4884, Dt8(->f));
     } else {
-      dasm_put(Dst, 4877, DISPATCH_GL(wrapf));
+      dasm_put(Dst, 4887, DISPATCH_GL(wrapf));
     }
-    dasm_put(Dst, 4880, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C);
+    dasm_put(Dst, 4890, Dt1(->maxstack), Dt1(->base), Dt1(->top), ~LJ_VMST_C);
     if (op == BC_FUNCCW) {
-      dasm_put(Dst, 4893, Dt8(->f));
+      dasm_put(Dst, 4903, Dt8(->f));
     }
-    dasm_put(Dst, 4896, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate));
+    dasm_put(Dst, 4906, DISPATCH_GL(vmstate), Dt1(->top), 31-3, Dt1(->base), ~LJ_VMST_INTERP, DISPATCH_GL(vmstate));
     break;
 
   /* ---------------------------------------------------------------------- */
@@ -5893,7 +5913,7 @@ static int build_backend(BuildCtx *ctx)
 
   build_subroutines(ctx);
 
-  dasm_put(Dst, 4917);
+  dasm_put(Dst, 4927);
   for (op = 0; op < BC__MAX; op++)
     build_ins(ctx, (BCOp)op, op);
 
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index af5c0b73..c40abbd8 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
 #define DASM_SECTION_CODE_OP	0
 #define DASM_SECTION_CODE_SUB	1
 #define DASM_MAXSECTION		2
-static const unsigned char build_actionlist[14284] = {
+static const unsigned char build_actionlist[14278] = {
   254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
   76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
   252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -130,580 +130,580 @@ static const unsigned char build_actionlist[14284] = {
   244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184,
   237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,
   237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,
-  253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,
-  233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,
-  252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  133,244,55,129,122,253,12,239,255,15,135,244,55,139,90,252,252,255,252,242,
-  15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15,
-  45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
+  253,4,239,15,133,244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,
+  139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,
+  184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,
+  239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252,252,255,252,
+  242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,
+  15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
   224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42,
   252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137,
   198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233,
   244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239,
-  15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139,
-  90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,
-  66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,
-  239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193,
-  252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15,
-  130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,
-  66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252,
-  233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137,
-  92,36,28,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,
-  244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,
-  233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157,
-  233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,
-  221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,252,235,
-  8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,
-  255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,
-  4,139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,
-  252,141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,
-  5,72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,
-  2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,252,
-  255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,248,
-  8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,1,72,137,
-  2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239,
-  232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139,
-  173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,0,15,133,244,
-  55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,59,141,233,
-  15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244,55,137,157,233,
-  139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,72,41,221,57,203,
-  15,132,244,249,248,2,255,72,139,4,43,72,137,67,252,248,131,252,235,8,57,203,
-  15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,139,108,
-  36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139,
-  233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4,
-  26,193,252,235,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,72,
-  139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,
-  7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,
-  14,248,8,137,222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,
-  137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,78,
-  139,108,36,24,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68,
-  194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233,
-  244,16,255,248,64,139,90,252,252,221,90,252,248,252,233,244,58,248,79,129,
-  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
-  72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,90,252,252,252,242,
-  15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,135,244,55,221,2,217,225,248,63,248,64,139,90,252,252,221,90,252,248,255,
-  248,58,184,237,248,69,137,68,36,4,248,56,252,247,195,237,15,133,244,253,248,
-  5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,252,247,209,141,20,202,
-  139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
-  6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,
-  252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,
-  81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
-  15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,
-  255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
-  221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129,
-  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,
-  252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252,
-  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,
-  252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,
-  4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,
-  64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64,
-  248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55,
-  221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244,
-  64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
-  2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233,
-  244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,
-  232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,
-  1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,16,
-  137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,
-  89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,
-  255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
-  129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,
-  248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,
-  122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,
-  244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,
-  135,244,55,139,90,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,
-  252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,
-  0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,
-  242,15,42,197,255,137,44,36,219,4,36,255,139,106,252,252,129,229,252,255,
-  252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,
-  2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,
-  255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,
-  102,72,15,110,205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,
-  4,36,0,0,128,90,216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,
-  209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,
-  4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,
-  55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,
-  229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,
-  252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,
-  192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,
-  139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,
-  245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,
-  217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,
-  55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,
-  8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,
-  255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
-  129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,
-  107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,
-  4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,
-  107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,
-  4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,
-  129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,
-  248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,
-  248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,
-  252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,
-  1,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,
-  55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,
-  244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,
-  244,55,129,122,253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,
-  1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,
-  44,36,219,4,36,252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,
-  130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,
-  239,15,135,244,55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,
-  55,137,108,36,4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,
-  55,255,199,68,36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,
-  139,84,36,8,72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,
-  139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,
-  139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,
-  255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,
-  129,122,253,20,239,255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,
-  92,36,4,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,
-  244,55,139,42,137,108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,
-  36,4,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,
-  8,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,
-  232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,
-  137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,
-  244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,
-  129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,
-  232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,
-  135,244,55,139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,
-  36,4,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,
-  65,57,134,233,15,130,244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,
-  1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,
-  248,118,129,252,248,239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,
-  130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,
-  233,133,192,15,132,244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,
-  36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,
-  136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,
-  248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
-  66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,
-  255,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,
-  233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,
-  90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,
-  1,137,216,139,92,36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,
-  55,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
-  253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,
-  197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,
-  76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,
-  252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,
-  4,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,133,244,55,137,213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,
-  252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,
-  88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,
-  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,
-  189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,
-  36,4,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,
-  135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,
-  131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
-  252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,
-  15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,
-  239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,
-  15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
-  193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
+  15,133,244,55,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252,
+  237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
+  8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
+  8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131,229,1,1,252,
+  235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
+  15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106,
+  8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239,
+  15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129,122,253,4,
+  239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244,
+  55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193,
+  252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,131,
+  194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,72,
+  139,4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,
+  139,60,36,232,244,24,65,199,134,233,237,255,139,108,36,24,139,28,36,139,149,
+  233,129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,
+  233,68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,
+  15,135,244,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,
+  57,252,249,15,133,244,5,248,6,141,67,2,199,66,252,252,237,248,7,139,92,36,
+  28,137,68,36,4,72,199,193,252,248,252,255,252,255,252,255,252,247,195,237,
+  255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,139,233,131,
+  252,233,8,137,139,233,72,139,1,72,137,2,184,237,252,233,244,7,248,9,139,12,
+  36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,
+  233,244,4,248,77,139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,
+  137,44,36,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,
+  139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,
+  248,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,
+  233,141,108,194,252,240,72,41,221,57,203,15,132,244,249,248,2,255,72,139,
+  4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,
+  60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233,129,
+  252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,
+  137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,
+  244,255,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,57,
+  252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28,137,68,36,4,49,201,
+  252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137,252,239,232,
+  251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,
+  28,36,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247,133,233,237,
+  15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,
+  133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252,221,
+  90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,
+  193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,
+  64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,4,248,
+  56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,15,182,
+  75,252,253,72,252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,195,
+  4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,1,
+  252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,
+  14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,
+  122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,
+  83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
+  242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,
+  129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,
+  82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,
+  239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,
+  241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,
+  15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,
+  248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,
+  252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
+  135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,
+  64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
+  2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,
+  255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
+  217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
+  217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,
+  252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,
+  15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,
+  244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,
+  255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,
+  255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
+  248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
+  2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
+  15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
+  55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
+  244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
+  55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
+  239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252,252,
+  139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
+  15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
+  0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
+  44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,
+  0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,
+  252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,
+  244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,
+  242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,216,
+  12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,
+  1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252,253,
+  0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,
+  248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,
+  252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,
+  136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,
+  106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
+  201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,
+  239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,
+  252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,
+  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
+  15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,
+  63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,
+  64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,
+  234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,
+  93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,
+  129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
+  15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
+  76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,
+  216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,
+  133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,
+  253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72,
+  15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
+  252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
+  244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
+  255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4,
+  255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,
+  36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,
+  72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,
+  199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,
+  59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,
+  255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,
+  255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,
+  129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,
+  108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130,
+  244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,
+  115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,
+  248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,
+  2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,
+  0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,
+  130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,
+  129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,
+  252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,
+  244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,
+  244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,
+  1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,
+  239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
+  66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
+  244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,
+  65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,
+  244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,
+  244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
+  253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,
+  129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
+  15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
+  131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,
+  36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,
+  233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,
+  244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,
+  36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
+  249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
+  2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,
+  248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
+  213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
+  255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
+  126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
+  244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
+  72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,
+  252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
+  252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
+  233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
   135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
-  193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,
-  237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,
-  248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,
-  244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
-  244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,
-  8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,
-  200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,
-  248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,
-  122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,
-  237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,
-  126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,
-  129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,
-  12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,
-  72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
-  102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
+  193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
+  205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
+  15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
+  248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
+  242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
+  197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
+  129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
+  110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
+  242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,
+  131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
+  253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
+  102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
+  197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,
   248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
   15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
   110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,
-  126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15,
-  130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
+  126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,
+  15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
   55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
   242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
-  211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184,
-  237,248,55,139,108,36,24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,
-  252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,
-  137,252,239,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,
-  141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,
-  248,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,
-  252,238,248,2,137,209,252,247,195,237,15,133,244,249,15,182,107,252,253,72,
-  252,247,213,141,20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41,
-  252,234,252,233,244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233,
-  49,192,252,233,244,1,248,66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,
-  137,149,233,255,141,68,194,252,248,137,252,239,137,133,233,232,251,1,19,139,
-  149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,8,85,195,248,
-  136,255,65,15,182,134,233,168,235,15,133,244,251,168,235,15,133,244,247,168,
-  235,15,132,244,247,65,252,255,142,233,252,233,244,247,255,248,137,65,15,182,
-  134,233,168,235,15,133,244,251,252,233,244,247,248,138,65,15,182,134,233,
-  168,235,15,133,244,251,168,235,15,132,244,251,65,252,255,142,233,15,132,244,
-  247,168,235,15,132,244,251,248,1,255,139,108,36,24,137,149,233,137,222,137,
-  252,239,232,251,1,20,248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,
-  107,252,252,15,183,67,252,254,65,252,255,164,253,252,238,233,248,139,131,
-  195,4,139,77,232,137,76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,
-  173,233,15,182,133,233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,
-  222,65,141,190,233,73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,
-  255,248,141,137,92,36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,
-  141,68,194,252,248,139,108,36,24,137,149,233,137,133,233,137,222,137,252,
-  239,232,251,1,22,199,68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,
-  72,137,193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131,
-  192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,
-  72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,
-  125,252,248,76,137,117,252,240,68,139,117,0,65,139,142,233,65,199,134,233,
-  237,65,137,134,233,65,137,142,233,72,129,252,236,239,72,131,197,128,252,242,
-  68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232,
-  252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208,
-  252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252,
-  242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15,
-  17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128,
-  65,139,174,233,65,139,150,233,73,137,174,233,65,199,134,233,0,0,0,0,137,149,
-  233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,129,225,239,
-  72,137,204,137,169,233,139,149,233,139,153,233,252,233,244,247,255,248,144,
-  255,72,131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,192,15,136,244,249,
-  137,68,36,4,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,134,233,
-  0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,193,232,
-  16,129,252,253,239,15,130,244,248,139,68,36,4,248,2,65,252,255,36,252,238,
-  248,3,252,247,216,137,252,239,137,198,232,251,1,24,255,248,82,255,217,124,
-  36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,
-  68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,
-  72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
-  102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
-  252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,
-  15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,
-  217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,
-  102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,
-  248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
-  15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,
-  15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,
-  252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
-  248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,
-  68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,
-  72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
-  102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,
-  15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,
-  193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,
-  148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,
-  237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,
-  247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,
-  237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,
-  224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,
-  200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,
-  102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,
-  36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,
-  234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0,0,128,127,15,132,
-  244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248,248,150,217,192,
+  211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
+  15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
+  194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,
+  193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
+  242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
+  15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,
+  244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
+  24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
+  137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
+  144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,193,
+  252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,157,233,139,
+  11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,
+  252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,
+  234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,
+  248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,
+  66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
+  252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
+  193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
+  168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,
+  255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,
+  244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,
+  168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,
+  251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,
+  248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,
+  67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,
+  76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,
+  233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,
+  73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,
+  36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,
+  139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,
+  68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,
+  41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,
+  255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,
+  81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,
+  240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,
+  142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,
+  242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,
+  252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,
+  242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,
+  17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,
+  252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,
+  137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,
+  232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,
+  233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,
+  108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,
+  69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,
+  3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,
+  139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,
+  198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
+  11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
+  217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
+  72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
+  134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
+  72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
+  15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
+  0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
+  252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
+  110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
+  217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
+  15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
+  194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
+  36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
+  217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
+  72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
+  134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
+  184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
+  15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
+  15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
+  15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
+  15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
+  252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
+  89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
+  92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
+  4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
+  36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
+  36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,
+  0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,
+  201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
+  217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,
+  102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,
+  244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,
+  244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,
+  232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,
+  252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,
+  237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,
+  248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,
+  248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,
+  132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,
+  72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,
+  17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,
   217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
-  217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,
-  15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,
-  152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,
-  15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,
-  3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,
-  200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,
-  130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,
-  193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,
-  237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,
-  72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,
-  244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,
-  36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,
-  217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,
-  193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,
-  248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,
-  193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,
-  237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,
-  192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,
-  15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,
-  5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,
-  1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,
-  252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,
-  131,252,255,5,15,135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,
-  1,232,244,149,255,252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,
-  244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,
-  201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,
-  244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,
-  254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,
-  252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,
-  252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,
-  1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,
-  217,252,250,195,248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,
-  255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,
-  1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,
-  15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,
-  248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,
-  217,252,242,221,216,195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,
-  244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,
-  248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,
-  1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,
-  131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,
-  110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,
-  248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,
-  17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,
-  243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,
-  217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,
-  135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,
-  139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,
-  244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,
-  247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,
-  15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,
-  255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,
-  132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,
-  217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,
-  219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,
-  224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,
-  223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155,
-  137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,129,124,
-  253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,
-  15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,
-  223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15,
-  131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15,
-  182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,
-  194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,
-  244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,
-  15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,
-  15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,
-  156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,
-  15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,
-  135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,
-  244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,
-  131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,
-  131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,
-  102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,
-  68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,15,131,244,247,255,
-  15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,67,252,
-  254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
-  16,65,252,255,36,252,238,255,72,139,44,194,72,137,44,202,139,3,15,182,204,
-  15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129,
-  124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,
-  195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,
-  48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,
-  242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,
-  15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,
-  15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,
-  232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,
-  15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
-  234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
-  129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,
-  65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,
-  15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,
-  4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
-  194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
-  221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,
-  255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,
-  4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,
-  242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,
-  252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,
-  16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,
-  242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
-  252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,
-  199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,
-  52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,
-  234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,
-  4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,
-  255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
-  12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
-  156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,
-  141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,
-  139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,
-  139,4,252,234,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,
-  16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,
-  137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
-  252,238,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,
-  254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,
-  4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,
-  232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,
-  4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,
-  3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
-  106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,202,139,
-  3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,
-  106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139,
-  68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244,
-  248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
-  252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,
-  15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252,
-  234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,
-  65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,
-  248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
-  252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,
-  137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255,
-  139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141,
-  233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,
-  172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195,
-  4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24,
-  131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1,
-  27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
-  252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252,
-  248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182,
+  217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,
+  102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,
+  72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,
+  208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,
+  48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,
+  102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
+  192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,
+  132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
+  195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,
+  135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,
+  252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,
+  237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
+  252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,
+  236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
+  253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
+  244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,
+  36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,
+  15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,
+  248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,
+  247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
+  201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,
+  217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,
+  11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
+  195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,244,247,15,135,244,
+  248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,
+  15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,
+  195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,
+  244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
+  248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,
+  15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,
+  68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,
+  252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,
+  252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,
+  15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
+  68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
+  195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
+  222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
+  244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
+  248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
+  217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
+  15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
+  252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
+  248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
+  244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
+  137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
+  129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
+  15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
+  218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
+  183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
+  195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
+  253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
+  16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
+  244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
+  156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
+  1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
+  202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
+  133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
+  255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,
+  202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
+  202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
+  4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
+  4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
+  108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
+  248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
+  238,255,72,139,44,194,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
+  193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,
+  213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
+  252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,
+  16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,
+  221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,
+  4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,
+  128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,
+  16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60,
+  194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,
+  252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
+  4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,
+  221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,
+  252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,
+  234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,
+  135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,
+  234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
+  4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
+  255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
+  4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65,
+  15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,
+  242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,
+  234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,
+  252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,
+  65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,
+  252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
+  255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,
+  221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,
+  4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,
+  221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,
+  244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,
+  137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233,
+  133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,
+  72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
+  36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,
+  3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,
+  191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,
+  255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,
+  255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,
+  232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,
+  252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,
+  232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
+  253,133,233,139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,
+  232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
+  253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,
+  69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
+  204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,
+  129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,
+  137,213,65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,
+  252,247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,
+  137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
+  204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,
+  233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,
+  233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
+  65,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,
+  221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,
+  137,65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
+  238,255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,
+  149,233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,
+  204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,
+  208,139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,
+  92,36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,
+  4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
+  238,255,139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,
+  28,15,131,244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,
+  7,0,0,15,132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,
+  182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,
+  195,4,193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,
+  5,137,252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,
+  208,139,108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,
+  131,244,249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,
   75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,
-  4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,233,65,139,142,
-  233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,37,252,255,7,
-  0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,239,137,
-  198,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
-  139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
-  3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,30,15,183,67,252,
-  254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92,
-  36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252,
-  239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
-  139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,
-  3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2,
-  255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157,
-  255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158,
-  255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139,
-  44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252,
-  242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233,
-  15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139,
-  40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
-  252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246,
-  129,233,235,15,132,244,36,15,182,75,252,253,248,3,255,199,68,202,4,237,252,
-  233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244,
-  157,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,
-  252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233,
-  105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15,
-  133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,253,72,139,41,
-  72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
-  65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,194,4,237,252,233,244,
-  2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,
-  244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,
-  15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,
-  233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,
-  139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,
-  16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
-  246,129,233,235,15,132,244,35,255,15,182,75,252,253,248,3,199,68,202,4,237,
-  252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
-  133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,
-  244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,
-  132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,
-  72,137,40,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,
-  252,238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,
-  235,15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,
-  239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,
-  142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,
-  182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,
-  239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,
-  198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,
-  133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,
-  15,133,244,253,248,3,15,182,67,252,253,72,139,44,194,72,137,41,139,3,15,182,
-  204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,189,233,
-  0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,37,139,
-  12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,
-  133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,4,36,199,
-  68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,141,20,36,137,252,238,
-  137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,108,36,8,137,193,252,
-  233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,
-  252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
-  133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,
-  120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,
-  2,72,139,12,202,72,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
-  65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,
-  246,129,233,235,15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165,
-  233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,
-  244,2,255,68,137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252,
-  246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250,
-  68,1,252,248,59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189,
-  233,248,3,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,
-  3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
-  252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137,
-  252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,244,
-  1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252,
-  233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,51,
-  141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
-  131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,
-  129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,
-  15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,
-  248,2,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,2,139,
-  106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139,157,
-  233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,
-  5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141,12,
-  202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,233,244,4,248,7,
-  129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,137,215,139,90,252,
-  252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,72,139,
-  105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,224,139,65,228,137,
-  105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202,
-  137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,
-  252,255,36,252,238,255,68,137,60,36,68,137,116,36,4,139,108,202,252,240,139,
-  68,202,252,248,68,139,181,233,131,195,4,68,139,189,233,248,1,68,57,252,240,
-  15,131,244,251,65,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42,
-  192,255,219,68,202,252,248,255,73,139,44,199,72,137,108,202,8,131,192,1,255,
-  137,68,202,252,248,248,2,15,183,67,252,254,141,156,253,131,233,248,3,68,139,
-  116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
-  252,255,36,252,238,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,
-  1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,3,68,105,252,248,239,68,
-  3,189,233,65,129,191,233,239,15,132,244,253,70,141,116,48,1,73,139,175,233,
-  73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,116,202,252,248,252,233,
-  244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,
-  244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,
-  253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,156,
-  253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232,
-  131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,67,252,252,235,141,156,
-  253,131,233,198,3,235,252,233,244,1,255,15,182,252,236,15,182,192,68,137,
-  60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,252,133,252,237,15,
-  132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,248,248,1,73,139,
-  71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,65,57,
-  215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,
-  3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
-  36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,
-  197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,
-  135,244,253,248,6,255,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65,
-  57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,
-  28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,
-  139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,
-  137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232,
-  1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232,
-  1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,
-  252,255,72,139,44,10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244,
-  252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,
-  139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
-  16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,
-  199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233,252,
-  247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252,237,
-  129,229,239,102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255,
-  129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,
-  105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,
-  73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,
-  15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,
-  1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,
-  15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,
-  141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245,
-  255,15,130,244,248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244,
-  1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,
-  252,139,41,137,105,252,248,252,233,245,255,141,156,253,131,233,139,1,137,
-  105,252,252,137,65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139,
-  108,36,24,65,137,150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,
-  252,236,16,252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,
-  131,195,4,193,232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,
-  239,102,65,131,172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,
-  36,24,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,
-  249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252,
-  237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,
-  194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36,24,141,
-  12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237,
-  15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,
-  137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,
-  237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,
-  195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,
-  252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,
-  108,36,24,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,
-  255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,
-  233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,
-  139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,
-  255,254,0
+  4,193,232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,
+  67,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,
+  139,173,233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,
+  139,173,233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,
+  124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,
+  15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,
+  102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,
+  233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,
+  15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
+  189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,
+  182,75,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,
+  194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
+  192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
+  44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
+  185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
+  132,244,251,15,182,67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,
+  182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,
+  67,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,
+  244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,
+  3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,
+  15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,
+  129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,
+  204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,
+  0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,
+  75,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,
+  192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,
+  4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,
+  3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
+  244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,232,131,195,
+  4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,141,
+  233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,1,
+  248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,
+  128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,
+  252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,
+  124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,
+  136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
+  244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
+  255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,72,139,44,
+  194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
+  36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,
+  129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,
+  15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,
+  132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,
+  151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,
+  149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,
+  233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,
+  129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,
+  244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,
+  133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,182,204,
+  15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
+  15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
+  252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
+  137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,199,
+  248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
+  139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251,
+  68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,137,
+  47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,
+  15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,
+  137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,
+  149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,
+  134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,
+  253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,
+  233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,
+  141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,
+  28,248,52,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,
+  248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,137,
+  47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,
+  128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,
+  205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,244,
+  4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,191,
+  233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,15,
+  133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
+  239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
+  41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
+  252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,
+  11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
+  36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
+  131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
+  199,4,239,15,132,244,250,255,252,242,15,42,192,255,219,68,202,252,248,255,
+  73,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,
+  183,67,252,254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,
+  3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,
+  131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248,
+  6,59,133,233,15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233,
+  239,15,132,244,253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44,
+  202,72,137,68,202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1,
+  252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,
+  232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,
+  15,133,244,251,128,189,233,235,15,133,244,251,141,156,253,131,233,199,68,
+  202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
+  65,252,255,36,252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3,
+  235,252,233,244,1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,
+  194,233,141,12,202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,
+  233,252,248,65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8,
+  72,137,1,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,
+  199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,
+  182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,
+  36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,
+  197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,
+  73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6,
+  252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,
+  36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,
+  252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,
+  195,237,15,133,244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,
+  2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248,
+  3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44,
+  10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,
+  252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,
+  191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
+  238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,
+  255,131,192,1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,
+  14,41,252,234,255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,
+  172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,
+  244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,
+  15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,
+  16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,
+  15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,
+  17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,
+  217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,
+  255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,
+  156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,
+  105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,
+  248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,
+  248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,
+  233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,
+  224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
+  16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131,172,
+  253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202,59,
+  141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,
+  67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,
+  15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,
+  137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,
+  135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248,
+  1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,
+  252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,
+  1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
+  16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,
+  133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24,
+  141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,
+  252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237,
+  255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149,
+  233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254,
+  0
 };
 
 enum {
@@ -1112,331 +1112,338 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
   dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
   dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
   dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
-  dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
-  dasm_put(Dst, 2476);
+  dasm_put(Dst, 2402, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2414, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 2485, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+    dasm_put(Dst, 2486, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 2518, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
-  dasm_put(Dst, 2595, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC);
+  dasm_put(Dst, 2519, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
+  dasm_put(Dst, 2596, 1+1, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2414, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2616, Dt8(->upvalue[0]), LJ_TFUNC);
   if (sse) {
-    dasm_put(Dst, 2643);
+    dasm_put(Dst, 2637);
   } else {
-    dasm_put(Dst, 2653);
+    dasm_put(Dst, 2647);
   }
-  dasm_put(Dst, 2660, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
-  dasm_put(Dst, 2725, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
-  dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
-  dasm_put(Dst, 2901, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
-  dasm_put(Dst, 3016, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
-  dasm_put(Dst, 3111, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
-  dasm_put(Dst, 3177, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
-  dasm_put(Dst, 3266, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
-  dasm_put(Dst, 3376, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
+  dasm_put(Dst, 2654, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
+  dasm_put(Dst, 2719, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
+  dasm_put(Dst, 2808, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
+  dasm_put(Dst, 2895, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
+  dasm_put(Dst, 3010, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
+  dasm_put(Dst, 3105, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 3171, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
+  dasm_put(Dst, 3260, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
+  dasm_put(Dst, 3370, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
   if (sse) {
-    dasm_put(Dst, 3403, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+    dasm_put(Dst, 3397, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
   } else {
-    dasm_put(Dst, 3467, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3461, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3503, 1+1, FRAME_TYPE, LJ_TNIL);
+  dasm_put(Dst, 3497, 1+1, FRAME_TYPE, LJ_TNIL);
   if (sse) {
-    dasm_put(Dst, 3598, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3660, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3592, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3654, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 3690, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3749, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3684, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3743, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3776, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3845, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3902, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3965, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-  dasm_put(Dst, 4055);
+  dasm_put(Dst, 3770, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3839, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3896, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3959, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4049);
   if (sse) {
-  dasm_put(Dst, 4067, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4061, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4092);
+  dasm_put(Dst, 4086);
   if (sse) {
-  dasm_put(Dst, 4106, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4100, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4131);
+  dasm_put(Dst, 4125);
   if (sse) {
-  dasm_put(Dst, 4145, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4139, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4170);
+  dasm_put(Dst, 4164);
   if (sse) {
-    dasm_put(Dst, 4186, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4180, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   } else {
-    dasm_put(Dst, 4225, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4219, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   }
-  dasm_put(Dst, 4258, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
-  dasm_put(Dst, 4323, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4252, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4317, 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4422);
+    dasm_put(Dst, 4416);
   } else {
-    dasm_put(Dst, 4428);
+    dasm_put(Dst, 4422);
   }
-  dasm_put(Dst, 4435);
+  dasm_put(Dst, 4429);
   if (sse) {
-    dasm_put(Dst, 4460);
+    dasm_put(Dst, 4454);
   } else {
-    dasm_put(Dst, 4466);
+    dasm_put(Dst, 4460);
   }
-  dasm_put(Dst, 4469, 1+2);
+  dasm_put(Dst, 4463, 1+2);
   if (sse) {
-    dasm_put(Dst, 4478);
+    dasm_put(Dst, 4472);
   } else {
-    dasm_put(Dst, 4486);
+    dasm_put(Dst, 4480);
   }
-  dasm_put(Dst, 4494);
+  dasm_put(Dst, 4488);
   if (sse) {
-    dasm_put(Dst, 4497, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
+    dasm_put(Dst, 4491, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
   } else {
-    dasm_put(Dst, 4524);
+    dasm_put(Dst, 4518);
   }
-  dasm_put(Dst, 4541);
+  dasm_put(Dst, 4535);
   if (sse) {
-    dasm_put(Dst, 4557, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4551, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4582, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4576, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4604);
+  dasm_put(Dst, 4598);
   if (sse) {
-    dasm_put(Dst, 4626);
+    dasm_put(Dst, 4620);
   } else {
-    dasm_put(Dst, 4652);
+    dasm_put(Dst, 4646);
   }
-  dasm_put(Dst, 4669, 1+2);
+  dasm_put(Dst, 4663, 1+2);
   if (sse) {
-    dasm_put(Dst, 4709);
+    dasm_put(Dst, 4703);
   } else {
-    dasm_put(Dst, 4717);
+    dasm_put(Dst, 4711);
   }
-  dasm_put(Dst, 4727, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4721, 2+1, LJ_TISNUM, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4779, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4773, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4820, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
   if (sse) {
-  dasm_put(Dst, 4867, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4861, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
   }
   if (sse) {
-  dasm_put(Dst, 4938, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4932, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
   }
   if (!sse) {
-    dasm_put(Dst, 5009);
+    dasm_put(Dst, 5003);
   }
-  dasm_put(Dst, 5018, 1+1, LJ_TSTR);
+  dasm_put(Dst, 5012, 1+1, LJ_TSTR);
   if (sse) {
-    dasm_put(Dst, 5040, Dt5(->len));
+    dasm_put(Dst, 5034, Dt5(->len));
   } else {
-    dasm_put(Dst, 5051, Dt5(->len));
+    dasm_put(Dst, 5045, Dt5(->len));
   }
-  dasm_put(Dst, 5059, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
+  dasm_put(Dst, 5053, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
   if (sse) {
-    dasm_put(Dst, 5097);
+    dasm_put(Dst, 5091);
   } else {
-    dasm_put(Dst, 5107);
+    dasm_put(Dst, 5101);
   }
-  dasm_put(Dst, 5118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
+  dasm_put(Dst, 5112, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5155);
+    dasm_put(Dst, 5149);
   } else {
-    dasm_put(Dst, 5177);
+    dasm_put(Dst, 5171);
   }
-  dasm_put(Dst, 5197, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
+  dasm_put(Dst, 5191, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
   dasm_put(Dst, 2154);
   if (sse) {
-    dasm_put(Dst, 5306);
+    dasm_put(Dst, 5300);
   } else {
-    dasm_put(Dst, 5317);
+    dasm_put(Dst, 5311);
   }
-  dasm_put(Dst, 5325, LJ_TSTR, LJ_TISNUM, Dt5(->len));
+  dasm_put(Dst, 5319, LJ_TSTR, LJ_TISNUM, Dt5(->len));
   if (sse) {
-    dasm_put(Dst, 5355);
+    dasm_put(Dst, 5349);
   } else {
   }
-  dasm_put(Dst, 5362, sizeof(GCstr)-1);
-  dasm_put(Dst, 5437, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
-  dasm_put(Dst, 5498, LJ_TSTR, LJ_TISNUM);
+  dasm_put(Dst, 5356, sizeof(GCstr)-1);
+  dasm_put(Dst, 5431, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 5492, LJ_TSTR, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5519);
+    dasm_put(Dst, 5513);
   } else {
-    dasm_put(Dst, 5526);
+    dasm_put(Dst, 5520);
   }
-  dasm_put(Dst, 5538, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 5606, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 5673, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
-  dasm_put(Dst, 5746, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 5831, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 5905, 1+1, LJ_TTAB);
+  dasm_put(Dst, 5532, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 5600, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 5667, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
+  dasm_put(Dst, 5740, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 5825, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 5899, 1+1, LJ_TTAB);
   if (sse) {
-    dasm_put(Dst, 5972);
+    dasm_put(Dst, 5966);
   } else {
   }
   if (sse) {
-    dasm_put(Dst, 5982, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+    dasm_put(Dst, 5976, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
   if (sse) {
-  dasm_put(Dst, 6034, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6028, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6077, LJ_TISNUM);
+  dasm_put(Dst, 6071, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6104);
+  dasm_put(Dst, 6098);
   } else {
   }
-  dasm_put(Dst, 6121);
+  dasm_put(Dst, 6115);
   if (sse) {
-  dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6123, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6077, LJ_TISNUM);
+  dasm_put(Dst, 6071, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6172);
+  dasm_put(Dst, 6166);
   } else {
   }
-  dasm_put(Dst, 6121);
+  dasm_put(Dst, 6115);
   if (sse) {
-  dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6183, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6077, LJ_TISNUM);
+  dasm_put(Dst, 6071, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6232);
+  dasm_put(Dst, 6226);
   } else {
   }
-  dasm_put(Dst, 6121);
+  dasm_put(Dst, 6115);
   if (sse) {
-  dasm_put(Dst, 6249, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6243, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6292);
+  dasm_put(Dst, 6286);
   if (sse) {
-  dasm_put(Dst, 6299, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6293, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6342);
+  dasm_put(Dst, 6336);
   if (sse) {
-    dasm_put(Dst, 6346);
+    dasm_put(Dst, 6340);
   } else {
   }
-  dasm_put(Dst, 6358);
+  dasm_put(Dst, 6352);
   if (sse) {
-  dasm_put(Dst, 6369, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6363, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6438);
+  dasm_put(Dst, 6432);
   if (sse) {
-  dasm_put(Dst, 6447, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6441, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6516);
+  dasm_put(Dst, 6510);
   if (sse) {
-  dasm_put(Dst, 6526, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6520, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6595);
+  dasm_put(Dst, 6589);
   if (sse) {
-  dasm_put(Dst, 6605, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6599, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6674);
+  dasm_put(Dst, 6668);
   if (sse) {
-  dasm_put(Dst, 6683, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6677, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
-  dasm_put(Dst, 6830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
-  dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 6746, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
+  dasm_put(Dst, 6824, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
+  dasm_put(Dst, 6951, Dt1(->top), Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+  dasm_put(Dst, 6990, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
 #endif
-  dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
-  dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+  dasm_put(Dst, 7023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+  dasm_put(Dst, 7077, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
 #if LJ_HASJIT
-  dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+  dasm_put(Dst, 7144, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
 #endif
-  dasm_put(Dst, 7197);
+  dasm_put(Dst, 7191);
 #if LJ_HASJIT
-  dasm_put(Dst, 7024);
+  dasm_put(Dst, 7018);
 #endif
-  dasm_put(Dst, 7204);
+  dasm_put(Dst, 7198);
 #if LJ_HASJIT
-  dasm_put(Dst, 7207);
+  dasm_put(Dst, 7201);
 #endif
-  dasm_put(Dst, 7217, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 7211, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 7250);
+  dasm_put(Dst, 7244);
 #endif
-  dasm_put(Dst, 7255, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 7249, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 7286, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, 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);
+  dasm_put(Dst, 7280, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, 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);
 #endif
-  dasm_put(Dst, 7525);
+  dasm_put(Dst, 7519);
 #if LJ_HASJIT
-  dasm_put(Dst, 7528, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
+  dasm_put(Dst, 7522, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
 #endif
-  dasm_put(Dst, 7628);
+  dasm_put(Dst, 7622);
   if (!sse) {
-  dasm_put(Dst, 7631);
+  dasm_put(Dst, 7625);
   }
-  dasm_put(Dst, 7676, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 7670, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   if (!sse) {
-  dasm_put(Dst, 7762);
+  dasm_put(Dst, 7756);
   }
-  dasm_put(Dst, 7807, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
+  dasm_put(Dst, 7801, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
   if (!sse) {
-  dasm_put(Dst, 7893);
+  dasm_put(Dst, 7887);
   }
-  dasm_put(Dst, 7932, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 7926, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   if (sse) {
-    dasm_put(Dst, 8021, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+    dasm_put(Dst, 8015, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   } else {
-    dasm_put(Dst, 8135);
+    dasm_put(Dst, 8129);
   }
-  dasm_put(Dst, 8182);
+  dasm_put(Dst, 8176);
   if (!sse) {
   } else {
-    dasm_put(Dst, 8259);
+    dasm_put(Dst, 8253);
   }
-  dasm_put(Dst, 8262);
-  dasm_put(Dst, 8347, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
-  dasm_put(Dst, 8448, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
-  dasm_put(Dst, 8622);
+  dasm_put(Dst, 8256);
+  dasm_put(Dst, 8341, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 8442, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
+  dasm_put(Dst, 8616);
 #if LJ_HASJIT
   if (sse) {
-    dasm_put(Dst, 8663);
-    dasm_put(Dst, 8733);
-    dasm_put(Dst, 8805);
+    dasm_put(Dst, 8657);
+    dasm_put(Dst, 8727);
+    dasm_put(Dst, 8799);
   } else {
-    dasm_put(Dst, 8857);
-    dasm_put(Dst, 8949);
+    dasm_put(Dst, 8851);
+    dasm_put(Dst, 8943);
   }
-  dasm_put(Dst, 8995);
+  dasm_put(Dst, 8989);
 #endif
-  dasm_put(Dst, 8999);
+  dasm_put(Dst, 8993);
   if (sse) {
-    dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
-    dasm_put(Dst, 9087, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+    dasm_put(Dst, 8996, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+    dasm_put(Dst, 9081, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
   } else {
-    dasm_put(Dst, 9215);
-    dasm_put(Dst, 9298);
+    dasm_put(Dst, 9209);
+    dasm_put(Dst, 9292);
     if (cmov) {
-    dasm_put(Dst, 9353);
+    dasm_put(Dst, 9347);
     } else {
-    dasm_put(Dst, 9372);
+    dasm_put(Dst, 9366);
     }
-    dasm_put(Dst, 8995);
+    dasm_put(Dst, 8989);
   }
-  dasm_put(Dst, 9413);
+  dasm_put(Dst, 9407);
 }
 
 /* Generate the code for a single instruction. */
@@ -1452,618 +1459,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   /* Remember: all ops branch for a true comparison, fall through otherwise. */
 
   case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
-    dasm_put(Dst, 9435, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9456);
+      dasm_put(Dst, 9450);
     } else {
-      dasm_put(Dst, 9471);
+      dasm_put(Dst, 9465);
       if (cmov) {
-      dasm_put(Dst, 9481);
+      dasm_put(Dst, 9475);
       } else {
-      dasm_put(Dst, 9487);
+      dasm_put(Dst, 9481);
       }
     }
     switch (op) {
     case BC_ISLT:
-      dasm_put(Dst, 9494);
+      dasm_put(Dst, 9488);
       break;
     case BC_ISGE:
-      dasm_put(Dst, 9293);
+      dasm_put(Dst, 9287);
       break;
     case BC_ISLE:
-      dasm_put(Dst, 5900);
+      dasm_put(Dst, 5894);
       break;
     case BC_ISGT:
-      dasm_put(Dst, 9499);
+      dasm_put(Dst, 9493);
       break;
     default: break;  /* Shut up GCC. */
     }
-    dasm_put(Dst, 9504, -BCBIAS_J*4);
+    dasm_put(Dst, 9498, -BCBIAS_J*4);
     break;
 
   case BC_ISEQV: case BC_ISNEV:
     vk = op == BC_ISEQV;
-    dasm_put(Dst, 9539, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9565);
+      dasm_put(Dst, 9559);
     } else {
-      dasm_put(Dst, 9577);
+      dasm_put(Dst, 9571);
       if (cmov) {
-      dasm_put(Dst, 9481);
+      dasm_put(Dst, 9475);
       } else {
-      dasm_put(Dst, 9487);
+      dasm_put(Dst, 9481);
       }
     }
   iseqne_fp:
     if (vk) {
-      dasm_put(Dst, 9584);
+      dasm_put(Dst, 9578);
     } else {
-      dasm_put(Dst, 9593);
+      dasm_put(Dst, 9587);
     }
   iseqne_end:
     if (vk) {
-      dasm_put(Dst, 9602, -BCBIAS_J*4);
+      dasm_put(Dst, 9596, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 9617, -BCBIAS_J*4);
+      dasm_put(Dst, 9611, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     if (op == BC_ISEQV || op == BC_ISNEV) {
-      dasm_put(Dst, 9632, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+      dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
       if (vk) {
-	dasm_put(Dst, 9690);
+	dasm_put(Dst, 9684);
       } else {
-	dasm_put(Dst, 9694);
+	dasm_put(Dst, 9688);
       }
-      dasm_put(Dst, 9700);
+      dasm_put(Dst, 9694);
     }
     break;
   case BC_ISEQS: case BC_ISNES:
     vk = op == BC_ISEQS;
-    dasm_put(Dst, 9705, LJ_TSTR);
+    dasm_put(Dst, 9699, LJ_TSTR);
   iseqne_test:
     if (vk) {
-      dasm_put(Dst, 9588);
+      dasm_put(Dst, 9582);
     } else {
-      dasm_put(Dst, 2809);
+      dasm_put(Dst, 2803);
     }
     goto iseqne_end;
   case BC_ISEQN: case BC_ISNEN:
     vk = op == BC_ISEQN;
-    dasm_put(Dst, 9730, LJ_TISNUM);
+    dasm_put(Dst, 9724, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9744);
+      dasm_put(Dst, 9738);
     } else {
-      dasm_put(Dst, 9757);
+      dasm_put(Dst, 9751);
       if (cmov) {
-      dasm_put(Dst, 9481);
+      dasm_put(Dst, 9475);
       } else {
-      dasm_put(Dst, 9487);
+      dasm_put(Dst, 9481);
       }
     }
     goto iseqne_fp;
   case BC_ISEQP: case BC_ISNEP:
     vk = op == BC_ISEQP;
-    dasm_put(Dst, 9765);
+    dasm_put(Dst, 9759);
     goto iseqne_test;
 
   /* -- Unary test and copy ops ------------------------------------------- */
 
   case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
-    dasm_put(Dst, 9777, LJ_TISTRUECOND);
+    dasm_put(Dst, 9771, LJ_TISTRUECOND);
     if (op == BC_IST || op == BC_ISTC) {
-      dasm_put(Dst, 9789);
+      dasm_put(Dst, 9783);
     } else {
-      dasm_put(Dst, 9794);
+      dasm_put(Dst, 9788);
     }
     if (op == BC_ISTC || op == BC_ISFC) {
-      dasm_put(Dst, 9799);
+      dasm_put(Dst, 9793);
     }
-    dasm_put(Dst, 9810, -BCBIAS_J*4);
+    dasm_put(Dst, 9804, -BCBIAS_J*4);
     break;
 
   /* -- Unary ops --------------------------------------------------------- */
 
   case BC_MOV:
-    dasm_put(Dst, 9843);
+    dasm_put(Dst, 9837);
     break;
   case BC_NOT:
-    dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE);
+    dasm_put(Dst, 9866, LJ_TISTRUECOND, LJ_TTRUE);
     break;
   case BC_UNM:
-    dasm_put(Dst, 9909, LJ_TISNUM);
+    dasm_put(Dst, 9903, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+      dasm_put(Dst, 9914, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
     } else {
-      dasm_put(Dst, 9945);
+      dasm_put(Dst, 9939);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_LEN:
-    dasm_put(Dst, 9954, LJ_TSTR);
+    dasm_put(Dst, 9948, LJ_TSTR);
     if (sse) {
-      dasm_put(Dst, 9968, Dt5(->len));
+      dasm_put(Dst, 9962, Dt5(->len));
     } else {
-      dasm_put(Dst, 9986, Dt5(->len));
+      dasm_put(Dst, 9980, Dt5(->len));
     }
-    dasm_put(Dst, 9995, LJ_TTAB);
+    dasm_put(Dst, 9989, LJ_TTAB);
     if (sse) {
-      dasm_put(Dst, 10037);
+      dasm_put(Dst, 10031);
     } else {
     }
-    dasm_put(Dst, 10046);
+    dasm_put(Dst, 10040);
     break;
 
   /* -- Binary ops -------------------------------------------------------- */
 
 
   case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10076);
+    dasm_put(Dst, 10070);
     } else {
-    dasm_put(Dst, 10091);
+    dasm_put(Dst, 10085);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10112);
+    dasm_put(Dst, 10106);
     } else {
-    dasm_put(Dst, 10127);
+    dasm_put(Dst, 10121);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10158);
+    dasm_put(Dst, 10152);
     } else {
-    dasm_put(Dst, 10172);
+    dasm_put(Dst, 10166);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10180);
+    dasm_put(Dst, 10174);
     } else {
-    dasm_put(Dst, 10195);
+    dasm_put(Dst, 10189);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10204);
+    dasm_put(Dst, 10198);
     } else {
-    dasm_put(Dst, 10219);
+    dasm_put(Dst, 10213);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10228);
+    dasm_put(Dst, 10222);
     } else {
-    dasm_put(Dst, 10242);
+    dasm_put(Dst, 10236);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_MULVN: case BC_MULNV: case BC_MULVV:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10250);
+    dasm_put(Dst, 10244);
     } else {
-    dasm_put(Dst, 10265);
+    dasm_put(Dst, 10259);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10274);
+    dasm_put(Dst, 10268);
     } else {
-    dasm_put(Dst, 10289);
+    dasm_put(Dst, 10283);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10298);
+    dasm_put(Dst, 10292);
     } else {
-    dasm_put(Dst, 10312);
+    dasm_put(Dst, 10306);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10320);
+    dasm_put(Dst, 10314);
     } else {
-    dasm_put(Dst, 10335);
+    dasm_put(Dst, 10329);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10344);
+    dasm_put(Dst, 10338);
     } else {
-    dasm_put(Dst, 10359);
+    dasm_put(Dst, 10353);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10368);
+    dasm_put(Dst, 10362);
     } else {
-    dasm_put(Dst, 10382);
+    dasm_put(Dst, 10376);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_MODVN:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     } else {
-    dasm_put(Dst, 10405);
+    dasm_put(Dst, 10399);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10414);
+    dasm_put(Dst, 10408);
     } else {
-    dasm_put(Dst, 10429);
+    dasm_put(Dst, 10423);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10438);
+    dasm_put(Dst, 10432);
     } else {
-    dasm_put(Dst, 10452);
+    dasm_put(Dst, 10446);
     }
       break;
     }
-    dasm_put(Dst, 10460);
+    dasm_put(Dst, 10454);
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_MODNV: case BC_MODVV:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     } else {
-    dasm_put(Dst, 10405);
+    dasm_put(Dst, 10399);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10414);
+    dasm_put(Dst, 10408);
     } else {
-    dasm_put(Dst, 10429);
+    dasm_put(Dst, 10423);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10438);
+    dasm_put(Dst, 10432);
     } else {
-    dasm_put(Dst, 10452);
+    dasm_put(Dst, 10446);
     }
       break;
     }
-    dasm_put(Dst, 10466);
+    dasm_put(Dst, 10460);
     break;
   case BC_POW:
-    dasm_put(Dst, 10056);
+    dasm_put(Dst, 10050);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10064, LJ_TISNUM);
+    dasm_put(Dst, 10058, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     } else {
-    dasm_put(Dst, 10405);
+    dasm_put(Dst, 10399);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10414);
+    dasm_put(Dst, 10408);
     } else {
-    dasm_put(Dst, 10429);
+    dasm_put(Dst, 10423);
     }
       break;
     default:
-    dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10438);
+    dasm_put(Dst, 10432);
     } else {
-    dasm_put(Dst, 10452);
+    dasm_put(Dst, 10446);
     }
       break;
     }
-    dasm_put(Dst, 10471);
+    dasm_put(Dst, 10465);
     if (sse) {
-    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9932);
     } else {
-    dasm_put(Dst, 9950);
+    dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
 
   case BC_CAT:
-    dasm_put(Dst, 10475, Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 10469, Dt1(->base), Dt1(->base));
     break;
 
   /* -- Constant ops ------------------------------------------------------ */
 
   case BC_KSTR:
-    dasm_put(Dst, 10559, LJ_TSTR);
+    dasm_put(Dst, 10553, LJ_TSTR);
     break;
   case BC_KSHORT:
     if (sse) {
-      dasm_put(Dst, 10596);
+      dasm_put(Dst, 10590);
     } else {
-      dasm_put(Dst, 10611);
+      dasm_put(Dst, 10605);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_KNUM:
     if (sse) {
-      dasm_put(Dst, 10619);
+      dasm_put(Dst, 10613);
     } else {
-      dasm_put(Dst, 10633);
+      dasm_put(Dst, 10627);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_KPRI:
-    dasm_put(Dst, 10641);
+    dasm_put(Dst, 10635);
     break;
   case BC_KNIL:
-    dasm_put(Dst, 10670, LJ_TNIL);
+    dasm_put(Dst, 10664, LJ_TNIL);
     break;
 
   /* -- Upvalue and function ops ------------------------------------------ */
 
   case BC_UGET:
-    dasm_put(Dst, 10718, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10712, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_USETV:
 #define TV2MARKOFS \
  ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
-    dasm_put(Dst, 10759, 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);
-    dasm_put(Dst, 10855);
+    dasm_put(Dst, 10753, 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);
+    dasm_put(Dst, 10849);
     break;
 #undef TV2MARKOFS
   case BC_USETS:
-    dasm_put(Dst, 10867, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+    dasm_put(Dst, 10861, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
     break;
   case BC_USETN:
-    dasm_put(Dst, 10963);
+    dasm_put(Dst, 10957);
     if (sse) {
-      dasm_put(Dst, 10968);
+      dasm_put(Dst, 10962);
     } else {
-      dasm_put(Dst, 9760);
+      dasm_put(Dst, 9754);
     }
-    dasm_put(Dst, 10976, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10970, offsetof(GCfuncL, uvptr), DtA(->v));
     if (sse) {
-      dasm_put(Dst, 10985);
+      dasm_put(Dst, 10979);
     } else {
-      dasm_put(Dst, 10991);
+      dasm_put(Dst, 10985);
     }
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
   case BC_USETP:
-    dasm_put(Dst, 10994, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_UCLO:
-    dasm_put(Dst, 11034, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 11028, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
     break;
 
   case BC_FNEW:
-    dasm_put(Dst, 11090, Dt1(->base), Dt1(->base), LJ_TFUNC);
+    dasm_put(Dst, 11084, Dt1(->base), Dt1(->base), LJ_TFUNC);
     break;
 
   /* -- Table ops --------------------------------------------------------- */
 
   case BC_TNEW:
-    dasm_put(Dst, 11157, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 11151, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
     break;
   case BC_TDUP:
-    dasm_put(Dst, 11281, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 11275, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
     break;
 
   case BC_GGET:
-    dasm_put(Dst, 11380, Dt7(->env));
+    dasm_put(Dst, 11374, Dt7(->env));
     break;
   case BC_GSET:
-    dasm_put(Dst, 11400, Dt7(->env));
+    dasm_put(Dst, 11394, Dt7(->env));
     break;
 
   case BC_TGETV:
-    dasm_put(Dst, 11420, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 11414, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11453);
+      dasm_put(Dst, 11447);
     } else {
     }
-    dasm_put(Dst, 11474, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 11559, LJ_TNIL, LJ_TSTR);
+    dasm_put(Dst, 11468, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11553, LJ_TNIL, LJ_TSTR);
     break;
   case BC_TGETS:
-    dasm_put(Dst, 11588, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 11673, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11582, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 11667, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
     break;
   case BC_TGETB:
-    dasm_put(Dst, 11745, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 11841, LJ_TNIL);
+    dasm_put(Dst, 11739, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11835, LJ_TNIL);
     break;
 
   case BC_TSETV:
-    dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11453);
+      dasm_put(Dst, 11447);
     } else {
     }
-    dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
-    dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+    dasm_put(Dst, 11965, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
   case BC_TSETS:
-    dasm_put(Dst, 12035, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 12112, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
-    dasm_put(Dst, 12199, 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));
+    dasm_put(Dst, 12029, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 12106, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+    dasm_put(Dst, 12193, 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));
     break;
   case BC_TSETB:
-    dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
-    dasm_put(Dst, 12386, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 12285, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+    dasm_put(Dst, 12380, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   case BC_TSETM:
-    dasm_put(Dst, 12434, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
-    dasm_put(Dst, 12584, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 12428, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 12578, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   /* -- Calls and vararg handling ----------------------------------------- */
 
   case BC_CALL: case BC_CALLM:
-    dasm_put(Dst, 10060);
+    dasm_put(Dst, 10054);
     if (op == BC_CALLM) {
-      dasm_put(Dst, 12604);
+      dasm_put(Dst, 12598);
     }
-    dasm_put(Dst, 12609, LJ_TFUNC, Dt7(->pc));
+    dasm_put(Dst, 12603, LJ_TFUNC, Dt7(->pc));
     break;
 
   case BC_CALLMT:
-    dasm_put(Dst, 12604);
+    dasm_put(Dst, 12598);
     break;
   case BC_CALLT:
-    dasm_put(Dst, 12652, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
-    dasm_put(Dst, 12770, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+    dasm_put(Dst, 12646, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+    dasm_put(Dst, 12764, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
     break;
 
   case BC_ITERC:
-    dasm_put(Dst, 12844, LJ_TFUNC, 2+1, Dt7(->pc));
+    dasm_put(Dst, 12838, LJ_TFUNC, 2+1, Dt7(->pc));
     break;
 
   case BC_ITERN:
 #if LJ_HASJIT
 #endif
-    dasm_put(Dst, 12916, Dt6(->asize), Dt6(->array), LJ_TNIL);
+    dasm_put(Dst, 12910, Dt6(->asize), Dt6(->array), LJ_TNIL);
     if (sse) {
-      dasm_put(Dst, 12968);
+      dasm_put(Dst, 12962);
     } else {
-      dasm_put(Dst, 12974);
+      dasm_put(Dst, 12968);
     }
-    dasm_put(Dst, 12980);
+    dasm_put(Dst, 12974);
     if (sse) {
-      dasm_put(Dst, 9938);
+      dasm_put(Dst, 9932);
     } else {
-      dasm_put(Dst, 9950);
+      dasm_put(Dst, 9944);
     }
-    dasm_put(Dst, 12993, -BCBIAS_J*4);
+    dasm_put(Dst, 12987, -BCBIAS_J*4);
     if (!sse) {
-      dasm_put(Dst, 13047);
+      dasm_put(Dst, 13041);
     }
-    dasm_put(Dst, 13053, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
+    dasm_put(Dst, 13047, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
     break;
 
   case BC_ISNEXT:
-    dasm_put(Dst, 13132, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
+    dasm_put(Dst, 13126, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
     break;
 
   case BC_VARG:
-    dasm_put(Dst, 13233, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
-    dasm_put(Dst, 13400, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 13227, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
+    dasm_put(Dst, 13394, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
     break;
 
   /* -- Returns ----------------------------------------------------------- */
 
   case BC_RETM:
-    dasm_put(Dst, 12604);
+    dasm_put(Dst, 12598);
     break;
 
   case BC_RET: case BC_RET0: case BC_RET1:
     if (op != BC_RET0) {
-      dasm_put(Dst, 13470);
+      dasm_put(Dst, 13464);
     }
-    dasm_put(Dst, 13474, FRAME_TYPE);
+    dasm_put(Dst, 13468, FRAME_TYPE);
     switch (op) {
     case BC_RET:
-      dasm_put(Dst, 13493);
+      dasm_put(Dst, 13487);
       break;
     case BC_RET1:
-      dasm_put(Dst, 13547);
+      dasm_put(Dst, 13541);
       /* fallthrough */
     case BC_RET0:
-      dasm_put(Dst, 13557);
+      dasm_put(Dst, 13551);
     default:
       break;
     }
-    dasm_put(Dst, 13568, Dt7(->pc), PC2PROTO(k));
+    dasm_put(Dst, 13562, Dt7(->pc), PC2PROTO(k));
     if (op == BC_RET) {
-      dasm_put(Dst, 13616, LJ_TNIL);
+      dasm_put(Dst, 13610, LJ_TNIL);
     } else {
-      dasm_put(Dst, 13627, LJ_TNIL);
+      dasm_put(Dst, 13621, LJ_TNIL);
     }
-    dasm_put(Dst, 13634, -FRAME_VARG, FRAME_TYPEP);
+    dasm_put(Dst, 13628, -FRAME_VARG, FRAME_TYPEP);
     if (op != BC_RET0) {
-      dasm_put(Dst, 13658);
+      dasm_put(Dst, 13652);
     }
-    dasm_put(Dst, 4552);
+    dasm_put(Dst, 4546);
     break;
 
   /* -- Loops and branches ------------------------------------------------ */
@@ -2071,7 +2078,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FORL:
 #if LJ_HASJIT
-    dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2083,57 +2090,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   case BC_FORI:
   case BC_IFORL:
     vk = (op == BC_IFORL || op == BC_JFORL);
-    dasm_put(Dst, 13683);
+    dasm_put(Dst, 13677);
     if (!vk) {
-      dasm_put(Dst, 13687, LJ_TISNUM, LJ_TISNUM);
+      dasm_put(Dst, 13681, LJ_TISNUM, LJ_TISNUM);
     }
-    dasm_put(Dst, 13706);
+    dasm_put(Dst, 13700);
     if (!vk) {
-      dasm_put(Dst, 13710, LJ_TISNUM);
+      dasm_put(Dst, 13704, LJ_TISNUM);
     }
     if (sse) {
-      dasm_put(Dst, 13719);
+      dasm_put(Dst, 13713);
       if (vk) {
-	dasm_put(Dst, 13731);
+	dasm_put(Dst, 13725);
       } else {
-	dasm_put(Dst, 13750);
+	dasm_put(Dst, 13744);
       }
-      dasm_put(Dst, 13755);
+      dasm_put(Dst, 13749);
     } else {
-      dasm_put(Dst, 13768);
+      dasm_put(Dst, 13762);
       if (vk) {
-	dasm_put(Dst, 13774);
+	dasm_put(Dst, 13768);
       } else {
-	dasm_put(Dst, 13790);
+	dasm_put(Dst, 13784);
       }
-      dasm_put(Dst, 13798);
+      dasm_put(Dst, 13792);
       if (cmov) {
-      dasm_put(Dst, 9481);
+      dasm_put(Dst, 9475);
       } else {
-      dasm_put(Dst, 9487);
+      dasm_put(Dst, 9481);
       }
       if (!cmov) {
-	dasm_put(Dst, 13803);
+	dasm_put(Dst, 13797);
       }
     }
     if (op == BC_FORI) {
-      dasm_put(Dst, 13809, -BCBIAS_J*4);
+      dasm_put(Dst, 13803, -BCBIAS_J*4);
     } else if (op == BC_JFORI) {
-      dasm_put(Dst, 13819, -BCBIAS_J*4, BC_JLOOP);
+      dasm_put(Dst, 13813, -BCBIAS_J*4, BC_JLOOP);
     } else if (op == BC_IFORL) {
-      dasm_put(Dst, 13833, -BCBIAS_J*4);
+      dasm_put(Dst, 13827, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 13829, BC_JLOOP);
+      dasm_put(Dst, 13823, BC_JLOOP);
     }
-    dasm_put(Dst, 9516);
+    dasm_put(Dst, 9510);
     if (sse) {
-      dasm_put(Dst, 13843);
+      dasm_put(Dst, 13837);
     }
     break;
 
   case BC_ITERL:
 #if LJ_HASJIT
-    dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2142,33 +2149,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IITERL:
-    dasm_put(Dst, 13854, LJ_TNIL);
+    dasm_put(Dst, 13848, LJ_TNIL);
     if (op == BC_JITERL) {
-      dasm_put(Dst, 13869, BC_JLOOP);
+      dasm_put(Dst, 13863, BC_JLOOP);
     } else {
-      dasm_put(Dst, 13883, -BCBIAS_J*4);
+      dasm_put(Dst, 13877, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 9820);
+    dasm_put(Dst, 9814);
     break;
 
   case BC_LOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
   case BC_ILOOP:
-    dasm_put(Dst, 9518);
+    dasm_put(Dst, 9512);
     break;
 
   case BC_JLOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 13899, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
+    dasm_put(Dst, 13893, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
 #endif
     break;
 
   case BC_JMP:
-    dasm_put(Dst, 13940, -BCBIAS_J*4);
+    dasm_put(Dst, 13934, -BCBIAS_J*4);
     break;
 
   /* -- Function headers -------------------------------------------------- */
@@ -2182,7 +2189,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FUNCF:
 #if LJ_HASJIT
-    dasm_put(Dst, 13966, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13960, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
   case BC_FUNCV:  /* NYI: compiled vararg functions. */
     break;
@@ -2192,47 +2199,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IFUNCF:
-    dasm_put(Dst, 13987, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+    dasm_put(Dst, 13981, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
     if (op == BC_JFUNCF) {
-      dasm_put(Dst, 14018, BC_JLOOP);
+      dasm_put(Dst, 14012, BC_JLOOP);
     } else {
-      dasm_put(Dst, 9518);
+      dasm_put(Dst, 9512);
     }
-    dasm_put(Dst, 14027, LJ_TNIL);
+    dasm_put(Dst, 14021, LJ_TNIL);
     break;
 
   case BC_JFUNCV:
 #if !LJ_HASJIT
     break;
 #endif
-    dasm_put(Dst, 8997);
+    dasm_put(Dst, 8991);
     break;  /* NYI: compiled vararg functions. */
 
   case BC_IFUNCV:
-    dasm_put(Dst, 14049, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+    dasm_put(Dst, 14043, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
     if (op == BC_JFUNCV) {
-      dasm_put(Dst, 14018, BC_JLOOP);
+      dasm_put(Dst, 14012, BC_JLOOP);
     } else {
-      dasm_put(Dst, 14146, -4+PC2PROTO(k));
+      dasm_put(Dst, 14140, -4+PC2PROTO(k));
     }
-    dasm_put(Dst, 14171, LJ_TNIL);
+    dasm_put(Dst, 14165, LJ_TNIL);
     break;
 
   case BC_FUNCC:
   case BC_FUNCCW:
-    dasm_put(Dst, 14193, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+    dasm_put(Dst, 14187, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 14223);
+      dasm_put(Dst, 14217);
     } else {
-      dasm_put(Dst, 14227);
+      dasm_put(Dst, 14221);
     }
-    dasm_put(Dst, 14235, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+    dasm_put(Dst, 14229, DISPATCH_GL(vmstate), ~LJ_VMST_C);
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 14245);
+      dasm_put(Dst, 14239);
     } else {
-      dasm_put(Dst, 14250, DISPATCH_GL(wrapf));
+      dasm_put(Dst, 14244, DISPATCH_GL(wrapf));
     }
-    dasm_put(Dst, 14256, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 14250, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
     break;
 
   /* ---------------------------------------------------------------------- */
@@ -2260,7 +2267,7 @@ static int build_backend(BuildCtx *ctx)
 
   build_subroutines(ctx, cmov, sse);
 
-  dasm_put(Dst, 14282);
+  dasm_put(Dst, 14276);
   for (op = 0; op < BC__MAX; op++)
     build_ins(ctx, (BCOp)op, op, cmov, sse);
 
diff --git a/src/buildvm_x64win.h b/src/buildvm_x64win.h
index 2ca7c7b2..e855ca8b 100644
--- a/src/buildvm_x64win.h
+++ b/src/buildvm_x64win.h
@@ -12,7 +12,7 @@
 #define DASM_SECTION_CODE_OP	0
 #define DASM_SECTION_CODE_SUB	1
 #define DASM_MAXSECTION		2
-static const unsigned char build_actionlist[14229] = {
+static const unsigned char build_actionlist[14223] = {
   254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,72,
   141,76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,
   36,84,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,
@@ -129,582 +129,581 @@ static const unsigned char build_actionlist[14229] = {
   133,192,15,132,244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,
   2,248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,
   66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,
-  42,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,
-  248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,199,66,
-  12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,133,244,55,129,122,253,12,239,255,15,135,244,55,139,114,252,
-  252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,
-  193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,
-  244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,
-  40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,
-  137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,
-  237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,
-  253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,
-  233,139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,
-  15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,
-  252,248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,
-  193,252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,
-  15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,
-  66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,
-  233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137,
-  116,36,100,137,108,36,80,129,122,253,4,239,15,133,244,55,72,131,189,233,0,
-  15,133,244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,
-  59,141,233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,
-  55,137,181,233,139,108,36,96,137,149,233,131,194,8,137,149,233,141,108,194,
-  232,72,41,252,245,57,206,15,132,244,249,248,2,72,139,4,46,72,137,70,252,248,
+  42,129,122,253,4,239,15,133,244,55,255,131,189,233,0,15,133,244,55,255,139,
+  106,252,248,139,133,233,139,114,252,252,199,66,252,252,237,137,66,252,248,
+  199,66,12,237,184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,
+  129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,114,
+  252,252,255,252,242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,
+  88,193,252,242,15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,
+  131,244,248,193,224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,
+  139,40,72,137,42,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,
+  233,137,213,137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,
+  184,237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,
+  122,253,4,239,15,133,244,55,255,139,106,252,248,139,133,233,139,114,252,252,
+  199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,
+  252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,
+  244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,
+  229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,
+  253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,
+  114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,
+  252,248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,100,137,108,36,
+  80,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,
+  233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,
+  55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,
+  36,96,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41,252,245,57,
+  206,15,132,244,249,248,2,72,139,4,46,72,137,70,252,248,131,252,238,8,57,206,
+  15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,131,233,237,255,139,
+  108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,244,254,248,4,
+  139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,141,
+  4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5,72,139,
+  1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,
+  252,237,248,7,139,116,36,100,137,68,36,84,72,199,193,252,248,252,255,252,
+  255,252,255,252,247,198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,
+  252,252,237,139,142,233,131,252,233,8,137,142,233,72,139,1,72,137,2,184,237,
+  252,233,244,7,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,
+  251,1,0,139,116,36,80,139,149,233,252,233,244,4,248,77,139,106,252,248,139,
+  173,233,139,114,252,252,137,116,36,100,137,108,36,80,72,131,189,233,0,15,
+  133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,59,
+  141,233,15,132,244,55,248,1,141,116,193,252,248,59,181,233,15,135,244,55,
+  137,181,233,139,108,36,96,137,149,233,137,149,233,141,108,194,252,240,72,
+  41,252,245,57,206,15,132,244,249,248,2,255,72,139,4,46,72,137,70,252,248,
   131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,36,80,232,244,24,199,
-  131,233,237,255,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,
-  135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,
-  15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,213,72,
-  41,205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6,
-  141,70,2,199,66,252,252,237,248,7,139,116,36,100,137,68,36,84,72,199,193,
-  252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,13,252,233,
-  244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,142,233,72,
-  139,1,72,137,2,184,237,252,233,244,7,248,9,139,76,36,80,137,185,233,137,252,
-  242,137,252,233,232,251,1,0,139,116,36,80,139,149,233,252,233,244,4,248,77,
-  139,106,252,248,139,173,233,139,114,252,252,137,116,36,100,137,108,36,80,
-  72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,
-  233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,252,248,59,
-  181,233,15,135,244,55,137,181,233,139,108,36,96,137,149,233,137,149,233,141,
-  108,194,252,240,72,41,252,245,57,206,15,132,244,249,248,2,255,72,139,4,46,
-  72,137,70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,202,139,76,
-  36,80,232,244,24,199,131,233,237,139,108,36,96,139,116,36,80,139,149,233,
-  129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,
-  137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,
-  244,255,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,
-  249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,100,137,68,36,84,49,201,
-  252,247,198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233,
-  232,251,1,13,248,9,139,76,36,80,137,185,233,137,252,242,137,252,233,232,251,
-  1,0,139,116,36,80,139,149,233,252,233,244,4,248,78,139,108,36,96,72,252,247,
-  133,233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,
-  49,192,72,137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,114,
-  252,252,221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,
-  110,200,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,
-  79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,
-  225,248,63,248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,
-  137,68,36,84,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,
-  135,244,252,15,182,78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,
-  15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,
-  237,131,192,1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,
-  255,252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,
-  239,15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,
-  130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,
-  233,244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,
-  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,
-  244,64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,221,2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,
-  55,129,122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,
-  85,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,
-  237,221,2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,
-  64,248,87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,
-  248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,
-  252,233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,
-  15,130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,
-  232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,
-  222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,
-  239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,
-  243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,
-  239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,
-  233,244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,
-  63,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,
-  98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
-  248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
-  2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
-  55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
-  55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
-  239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,252,
-  139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
-  15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
-  0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
-  108,36,80,219,68,36,80,255,139,106,252,252,129,229,252,255,252,255,15,128,
-  129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,
-  184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,
-  252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,
-  205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,68,36,80,0,0,
-  128,90,216,76,36,80,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,
-  252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,114,252,252,209,229,129,
-  252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,
-  15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,
-  244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,
-  4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,
-  0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,
-  252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,
-  2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,
+  131,233,237,139,108,36,96,139,116,36,80,139,149,233,129,252,248,239,15,135,
+  244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,
+  244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,72,41,
+  205,248,5,72,139,1,72,137,4,41,131,193,8,57,252,249,15,133,244,5,248,6,141,
+  70,1,248,7,139,116,36,100,137,68,36,84,49,201,252,247,198,237,15,132,244,
+  13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,76,
+  36,80,137,185,233,137,252,242,137,252,233,232,251,1,0,139,116,36,80,139,149,
+  233,252,233,244,4,248,78,139,108,36,96,72,252,247,133,233,237,15,132,244,
+  55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,
+  235,136,133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,
+  252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
+  135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,
+  63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,239,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,
+  114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,84,248,56,
+  252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,15,182,
+  78,252,253,72,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,198,
+  4,193,232,16,252,255,36,252,235,248,6,199,68,194,252,244,237,131,192,1,252,
+  233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,14,
+  255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,
+  253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,
+  255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
+  15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,
+  129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,
+  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,
+  252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,
+  15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,
+  15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,
+  252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
+  135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,
+  239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,
+  233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,
+  244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,
+  91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,
+  252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,
+  122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,
+  250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,
+  253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,
+  217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,
+  122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,
+  255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,
+  96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
+  15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,
+  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
+  255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,
+  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
+  139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,
+  141,233,252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,
+  253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,
+  252,243,252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,
+  252,253,221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,
+  106,4,129,252,253,239,15,135,244,55,139,114,252,252,139,2,137,106,252,252,
+  137,66,252,248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,
+  132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,
+  252,237,21,41,197,255,252,242,15,42,197,255,137,108,36,80,219,68,36,80,255,
+  139,106,252,252,129,229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,
+  252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,
+  3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,
+  252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,
+  15,17,66,252,248,255,221,2,199,68,36,80,0,0,128,90,216,76,36,80,221,90,252,
+  248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,
+  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
+  255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
+  221,2,255,139,106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,
+  132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,
+  17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,
+  221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,
+  248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,
+  244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,
+  1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,
+  224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
+  55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,
   106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
-  253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,
-  233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,
-  233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,
-  253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,
-  242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,
-  57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,
-  15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,
-  5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,
-  219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,
-  122,253,4,239,15,133,244,55,139,42,139,114,252,252,131,189,233,1,15,130,244,
-  72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,108,36,80,
-  219,68,36,80,252,233,244,64,255,248,112,139,171,233,59,171,233,15,130,244,
-  247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,
-  244,55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,
-  36,84,255,221,2,219,92,36,84,129,124,36,84,252,255,0,0,0,15,135,244,55,255,
-  199,68,36,32,1,0,0,0,72,141,68,36,84,248,113,139,108,36,96,137,149,233,68,
-  139,68,36,32,72,137,194,137,252,233,137,116,36,100,232,251,1,17,139,149,233,
-  139,114,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,
-  139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,199,68,36,84,252,255,
-  252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,
-  122,253,20,239,255,252,242,15,44,106,16,137,108,36,84,255,221,66,16,219,92,
-  36,84,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,
-  244,55,139,42,137,108,36,32,139,173,233,255,252,242,15,44,74,8,255,139,68,
-  36,84,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,
-  32,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,32,
-  137,232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,
-  6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,
-  244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,
-  129,252,248,239,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,
-  66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,
-  55,139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255,
-  133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117,57,131,
-  233,15,130,244,117,15,182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,
-  131,197,1,131,232,1,15,133,244,1,139,131,233,252,233,244,113,248,118,129,
-  252,248,239,255,15,130,244,55,139,171,233,59,171,233,15,130,244,247,232,244,
-  66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
-  244,115,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,
-  139,179,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,
-  1,137,252,240,139,116,36,84,252,233,244,113,248,120,129,252,248,239,15,130,
+  253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,
+  108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
+  15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,
+  239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,93,193,131,
+  197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,
+  129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,
+  248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,216,252,233,244,
+  55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,
+  55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,133,233,252,233,
+  244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,253,4,239,15,133,
+  244,55,139,42,139,114,252,252,131,189,233,1,15,130,244,72,15,182,173,233,
+  255,252,242,15,42,197,252,233,244,63,255,137,108,36,80,219,68,36,80,252,233,
+  244,64,255,248,112,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,
+  129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242,
+  15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,84,255,221,2,
+  219,92,36,84,129,124,36,84,252,255,0,0,0,15,135,244,55,255,199,68,36,32,1,
+  0,0,0,72,141,68,36,84,248,113,139,108,36,96,137,149,233,68,139,68,36,32,72,
+  137,194,137,252,233,137,116,36,100,232,251,1,17,139,149,233,139,114,252,252,
+  199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,139,171,233,59,171,
+  233,15,130,244,247,232,244,66,248,1,199,68,36,84,252,255,252,255,252,255,
+  252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,
+  252,242,15,44,106,16,137,108,36,84,255,221,66,16,219,92,36,84,255,248,1,129,
+  122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,
+  36,32,139,173,233,255,252,242,15,44,74,8,255,139,68,36,84,57,197,15,130,244,
+  251,248,2,133,201,15,142,244,253,248,3,139,108,36,32,41,200,15,140,244,115,
+  141,172,253,13,233,131,192,1,248,4,137,68,36,32,137,232,252,233,244,113,248,
+  5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
+  7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
+  233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
+  55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,255,129,122,253,
+  4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,15,
+  44,66,8,255,221,66,8,219,92,36,84,139,68,36,84,255,133,192,15,142,244,115,
+  131,189,233,1,15,130,244,115,15,133,244,117,57,131,233,15,130,244,117,15,
+  182,141,233,139,171,233,137,68,36,32,248,1,136,77,0,131,197,1,131,232,1,15,
+  133,244,1,139,131,233,252,233,244,113,248,118,129,252,248,239,255,15,130,
   244,55,139,171,233,59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,
-  4,239,15,133,244,55,139,42,139,133,233,57,131,233,255,15,130,244,119,129,
-  197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,244,249,248,1,15,182,
-  76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,
-  241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,
-  84,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,139,171,233,
-  59,171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,
-  139,42,139,133,233,57,131,233,15,130,244,119,129,197,239,137,116,36,84,137,
-  68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,
-  130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,
-  6,248,3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,
-  248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
-  213,139,10,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
-  255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
-  252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
-  126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
+  4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,57,131,233,
+  15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,248,1,255,
+  15,182,77,0,131,197,1,131,232,1,136,12,6,15,133,244,1,137,252,240,139,116,
+  36,84,252,233,244,113,248,120,129,252,248,239,15,130,244,55,139,171,233,59,
+  171,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
+  42,139,133,233,57,131,233,255,15,130,244,119,129,197,239,137,116,36,84,137,
+  68,36,32,139,179,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,
+  130,244,248,131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,6,248,
+  3,131,232,1,15,137,244,1,137,252,240,139,116,36,84,252,233,244,113,248,121,
+  129,252,248,239,15,130,244,55,255,139,171,233,59,171,233,15,130,244,247,232,
+  244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,57,131,233,
+  15,130,244,119,129,197,239,137,116,36,84,137,68,36,32,139,179,233,252,233,
+  244,249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,
+  122,15,135,244,248,131,252,241,32,248,2,136,12,6,248,3,131,232,1,15,137,244,
+  1,137,252,240,139,116,36,84,252,233,244,113,248,122,129,252,248,239,15,130,
+  244,55,129,122,253,4,239,15,133,244,55,137,213,139,10,232,251,1,18,137,252,
+  234,255,252,242,15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,
   244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
-  72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,84,141,68,194,
-  252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
-  252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
-  233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
-  135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
-  193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
-  205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
-  15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
-  248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
+  72,15,110,205,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,
+  244,63,255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,
+  102,15,126,197,255,137,68,36,84,141,68,194,252,240,248,1,57,208,15,134,244,
+  125,129,120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,
+  102,15,126,193,33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,
+  237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,
+  16,0,252,242,15,88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,
+  102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,
+  242,15,88,193,102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,
+  15,110,205,252,242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,
+  248,130,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
   242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
-  197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
-  129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
-  110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
-  242,15,42,197,252,233,244,63,255,248,126,139,68,36,84,252,233,244,55,255,
-  248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,
-  122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,
-  237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,
-  126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,
-  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,
-  239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,
-  15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
-  15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,
-  239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
-  244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,
-  252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,
-  255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,
-  242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,
-  88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,
-  137,193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,
-  252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
-  242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,
-  233,244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,
-  36,96,139,114,252,252,137,116,36,100,137,149,233,141,68,194,252,248,141,136,
-  233,137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,233,252,
-  255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,
-  193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,181,233,
-  139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,248,2,137,209,
-  252,247,198,237,15,133,244,249,15,182,110,252,253,72,252,247,213,141,20,252,
-  234,252,233,244,27,248,3,137,252,245,131,229,252,248,41,252,234,252,233,244,
-  27,248,5,186,237,137,252,233,232,251,1,0,139,149,233,49,192,252,233,244,1,
-  248,66,93,72,137,108,36,32,139,108,36,96,137,116,36,100,137,149,233,255,141,
-  68,194,252,248,137,252,233,137,133,233,232,251,1,19,139,149,233,139,133,233,
-  41,208,193,232,3,131,192,1,72,139,108,36,32,85,195,248,136,255,15,182,131,
-  233,168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,
-  252,255,139,233,252,233,244,247,255,248,137,15,182,131,233,168,235,15,133,
-  244,251,252,233,244,247,248,138,15,182,131,233,168,235,15,133,244,251,168,
-  235,15,132,244,251,252,255,139,233,15,132,244,247,168,235,15,132,244,251,
-  248,1,255,139,108,36,96,137,149,233,137,252,242,137,252,233,232,251,1,20,
-  248,3,139,149,233,248,4,15,182,78,252,253,248,5,15,182,110,252,252,15,183,
-  70,252,254,252,255,164,253,252,235,233,248,139,131,198,4,139,77,232,137,76,
-  36,84,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,
-  141,4,194,139,108,36,96,137,149,233,137,133,233,137,252,242,141,139,233,72,
-  137,171,233,137,116,36,100,232,251,1,21,252,233,244,3,255,248,141,137,116,
-  36,100,255,248,142,255,137,116,36,100,131,206,1,248,1,255,141,68,194,252,
-  248,139,108,36,96,137,149,233,137,133,233,137,252,242,137,252,233,232,251,
-  1,22,199,68,36,100,0,0,0,0,255,131,230,252,254,255,139,149,233,72,137,193,
-  139,133,233,41,208,72,137,205,15,182,78,252,253,193,232,3,131,192,1,252,255,
-  229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,
-  88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,
-  137,117,252,240,139,93,0,139,139,233,199,131,233,237,137,131,233,137,139,
-  233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,
-  68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,
-  242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,
-  68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,
-  109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,
-  242,15,17,77,136,252,242,15,17,69,128,139,171,233,139,147,233,72,137,171,
-  233,199,131,233,0,0,0,0,137,149,233,72,141,148,253,36,233,141,139,233,232,
-  251,1,23,72,139,141,233,72,129,225,239,137,169,233,139,149,233,139,177,233,
-  252,233,244,247,255,248,144,255,72,141,140,253,36,233,248,1,102,68,15,111,
-  185,233,102,68,15,111,177,233,102,68,15,111,169,233,102,68,15,111,161,233,
-  102,68,15,111,153,233,102,68,15,111,145,233,102,68,15,111,137,233,102,68,
-  15,111,129,233,102,15,111,185,233,72,137,204,102,15,111,49,76,139,124,36,
-  16,76,139,116,36,24,76,139,108,36,32,76,139,100,36,80,133,192,15,136,244,
-  249,137,68,36,84,139,122,252,248,139,191,233,139,191,233,199,131,233,0,0,
-  0,0,199,131,233,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,129,
-  252,253,239,15,130,244,248,255,139,68,36,84,248,2,252,255,36,252,235,248,
-  3,252,247,216,137,252,233,137,194,232,251,1,24,255,248,82,255,217,124,36,
-  4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,
-  36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145,72,
-  184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
-  102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203,
-  252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242,
-  15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255,
-  217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251,
-  102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,
-  248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
-  15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,
-  15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,
-  252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,
-  248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137,
-  68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147,
-  72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200,
-  102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242,
-  15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194,
-  193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248,
-  148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184,
-  237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244,
-  247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184,
-  237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92,
-  224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89,
-  200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4,
-  102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,
-  36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252,
-  234,222,201,248,149,217,84,36,8,129,124,36,8,0,0,128,127,15,132,244,247,129,
-  124,36,8,0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,
-  233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,
-  2,221,216,217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,
-  15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,
-  1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,
-  252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,
-  192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,
-  3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,
-  72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,
-  131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,
-  192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,
-  0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,
-  192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,16,252,242,
-  15,17,68,36,8,221,68,36,16,221,68,36,8,217,252,241,217,192,217,252,252,220,
-  252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,36,
-  8,252,242,15,16,68,36,8,195,248,9,72,184,237,237,102,72,15,110,208,102,15,
-  46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,237,102,72,15,
-  110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,
-  244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,15,133,244,1,248,
-  3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,80,193,133,192,15,
-  133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,132,244,3,15,87,192,
-  195,248,153,255,131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,
-  130,244,104,15,135,244,248,252,242,15,81,192,195,248,2,252,242,15,17,68,36,
-  8,221,68,36,8,131,252,250,5,15,135,244,248,88,15,132,244,247,232,244,88,80,
-  252,233,244,253,248,1,232,244,149,255,80,252,233,244,253,248,2,131,252,250,
-  7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,252,233,244,
-  253,248,1,217,232,217,201,217,252,241,252,233,244,253,248,2,131,252,250,9,
-  15,132,244,247,15,135,244,248,217,252,236,217,201,217,252,241,252,233,244,
-  253,248,1,255,217,252,254,252,233,244,253,248,2,131,252,250,11,15,132,244,
-  247,15,135,244,255,217,252,255,252,233,244,253,248,1,217,252,242,221,216,
-  248,7,221,92,36,8,252,242,15,16,68,36,8,195,255,139,84,36,12,221,68,36,4,
-  131,252,250,1,15,130,244,82,15,132,244,84,131,252,250,3,15,130,244,104,15,
-  135,244,248,217,252,250,195,248,2,131,252,250,5,15,130,244,88,15,132,244,
-  149,131,252,250,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,
-  241,195,248,1,217,232,217,201,217,252,241,195,248,2,131,252,250,9,15,132,
-  244,247,255,15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,
-  252,254,195,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,
-  195,248,1,217,252,242,221,216,195,255,248,9,204,255,248,154,255,65,131,252,
-  248,1,15,132,244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,
-  92,193,195,248,2,65,131,252,248,3,15,132,244,247,15,135,244,248,252,242,15,
-  89,193,195,248,1,252,242,15,94,193,195,248,2,65,131,252,248,5,15,130,244,
-  148,15,132,244,107,65,131,252,248,7,15,132,244,247,15,135,244,248,72,184,
-  237,237,255,102,72,15,110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,
-  110,200,15,84,193,195,248,2,65,131,252,248,9,15,135,244,248,252,242,15,17,
-  68,36,8,252,242,15,17,76,36,16,221,68,36,8,221,68,36,16,15,132,244,247,217,
-  252,243,248,7,221,92,36,8,252,242,15,16,68,36,8,195,248,1,217,201,217,252,
-  253,221,217,252,233,244,7,248,2,65,131,252,248,11,15,132,244,247,15,135,244,
-  255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,
-  36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,
-  222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,
-  244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,
-  148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,
-  217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,
-  15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,
-  2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,
-  217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223,224,252,246,
-  196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,
-  246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155,137,200,86,
-  72,137,214,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,94,195,255,129,
-  124,253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,
-  242,15,16,4,194,131,198,4,102,15,46,4,202,255,221,4,202,221,4,194,131,198,
-  4,255,223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,
-  255,15,131,244,248,255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,
-  139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
-  108,194,4,131,198,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,
-  15,135,244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,
-  4,194,255,15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,
-  255,248,1,15,183,70,252,254,141,180,253,134,233,248,2,255,248,2,15,183,70,
-  252,254,141,180,253,134,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,
-  252,253,239,15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,
-  253,239,15,135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,
-  235,15,133,244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,
-  252,247,208,131,198,4,129,124,253,202,4,239,15,133,244,248,139,12,202,59,
-  12,135,255,131,198,4,129,124,253,202,4,239,15,135,244,248,255,252,242,15,
-  16,4,199,102,15,46,4,202,255,221,4,202,221,4,199,255,72,252,247,208,131,198,
-  4,57,68,202,4,255,139,108,194,4,131,198,4,129,252,253,239,255,15,131,244,
-  247,255,15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,
-  70,252,254,141,180,253,134,233,248,1,139,6,15,182,204,15,182,232,131,198,
-  4,193,232,16,252,255,36,252,235,255,72,139,44,194,72,137,44,202,139,6,15,
-  182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,49,252,237,
-  129,124,253,194,4,239,129,213,239,137,108,202,4,139,6,15,182,204,15,182,232,
-  131,198,4,193,232,16,252,255,36,252,235,255,129,124,253,194,4,239,15,135,
-  244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,
-  252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,
-  4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,
-  252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,6,15,182,204,
-  15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,129,124,253,194,
-  4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,255,252,242,15,42,192,
-  137,252,234,255,15,182,78,252,253,252,233,244,1,255,15,182,252,236,15,182,
-  192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,
-  252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,129,124,253,252,234,4,
-  239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,88,4,252,234,255,221,
-  4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
-  194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
-  221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,15,92,4,199,255,
-  221,4,252,234,220,36,199,255,252,242,15,16,4,199,252,242,15,92,4,252,234,
-  255,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,4,
-  194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,15,89,
-  4,199,255,221,4,252,234,220,12,199,255,252,242,15,16,4,199,252,242,15,89,
-  4,252,234,255,221,4,199,220,12,252,234,255,252,242,15,16,4,252,234,252,242,
-  15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,252,234,252,
-  242,15,94,4,199,255,221,4,252,234,220,52,199,255,252,242,15,16,4,199,252,
-  242,15,94,4,252,234,255,221,4,199,220,52,252,234,255,252,242,15,16,4,252,
-  234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,255,252,242,15,16,4,
-  252,234,252,242,15,16,12,199,255,221,4,252,234,221,4,199,255,252,242,15,16,
-  4,199,252,242,15,16,12,252,234,255,221,4,199,221,4,252,234,255,252,242,15,
-  16,4,252,234,252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156,
-  232,244,148,255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182,
-  192,139,76,36,96,137,145,233,141,20,194,65,137,192,65,41,232,248,33,137,205,
-  137,116,36,100,232,251,1,25,139,149,233,133,192,15,133,244,42,15,182,110,
-  252,255,15,182,78,252,253,72,139,4,252,234,72,137,4,202,139,6,15,182,204,
-  15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
-  4,135,199,68,202,4,237,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,
-  232,16,252,255,36,252,235,255,15,191,192,252,242,15,42,192,252,242,15,17,
-  4,202,255,223,70,252,254,221,28,202,255,252,242,15,16,4,199,252,242,15,17,
-  4,202,255,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,6,15,182,
-  204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,141,76,202,12,
-  141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,
-  244,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
-  255,139,106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,
-  202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
-  139,106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,
-  139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,
-  244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
-  252,235,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235,
-  15,132,244,1,135,213,141,139,233,255,232,251,1,26,137,252,234,252,233,244,
-  1,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,12,135,139,133,
-  233,137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,6,15,
-  182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,252,246,
-  129,233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,194,141,139,
-  233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
-  15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
-  25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
-  65,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
-  255,141,180,253,134,233,139,108,36,96,131,189,233,0,15,132,244,247,137,149,
-  233,141,20,202,137,252,233,232,251,1,27,139,149,233,248,1,139,6,15,182,204,
-  15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,252,247,208,139,
-  108,36,96,137,149,233,68,139,66,252,248,139,20,135,137,252,233,137,116,36,
-  100,232,251,1,28,139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,
-  139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,139,
-  108,36,96,137,149,233,139,139,233,59,139,233,137,116,36,100,15,131,244,251,
-  248,1,65,137,192,37,252,255,7,0,0,65,193,232,11,61,252,255,7,0,0,15,132,244,
-  249,248,2,137,252,233,137,194,232,251,1,29,139,149,233,15,182,78,252,253,
+  197,255,252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,
+  126,139,68,36,84,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,
+  129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
+  15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
+  194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,
+  193,252,233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
+  242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
+  15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,
+  233,244,125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
+  135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
+  74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
+  137,200,102,15,126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,
+  125,255,248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,
+  189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,
+  102,15,126,197,102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,
+  135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
+  253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
+  102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
+  197,102,15,126,201,255,211,205,137,193,252,233,244,125,248,117,184,237,252,
+  233,244,55,248,119,184,237,248,55,139,108,36,96,139,114,252,252,137,116,36,
+  100,137,149,233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,
+  59,141,233,15,135,244,251,137,252,233,252,255,144,233,139,149,233,133,192,
+  15,143,244,69,248,1,255,139,141,233,41,209,193,252,233,3,133,192,141,65,1,
+  139,106,252,248,15,133,244,248,139,181,233,139,14,15,182,252,233,15,182,205,
+  131,198,4,252,255,36,252,235,248,2,137,209,252,247,198,237,15,133,244,249,
+  15,182,110,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,
+  252,245,131,229,252,248,41,252,234,252,233,244,27,248,5,186,237,137,252,233,
+  232,251,1,0,139,149,233,49,192,252,233,244,1,248,66,93,72,137,108,36,32,139,
+  108,36,96,137,116,36,100,137,149,233,255,141,68,194,252,248,137,252,233,137,
+  133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,
+  139,108,36,32,85,195,248,136,255,15,182,131,233,168,235,15,133,244,251,168,
+  235,15,133,244,247,168,235,15,132,244,247,252,255,139,233,252,233,244,247,
+  255,248,137,15,182,131,233,168,235,15,133,244,251,252,233,244,247,248,138,
+  15,182,131,233,168,235,15,133,244,251,168,235,15,132,244,251,252,255,139,
+  233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,96,137,149,
+  233,137,252,242,137,252,233,232,251,1,20,248,3,139,149,233,248,4,15,182,78,
+  252,253,248,5,15,182,110,252,252,15,183,70,252,254,252,255,164,253,252,235,
+  233,248,139,131,198,4,139,77,232,137,76,36,84,252,233,244,4,248,140,255,139,
+  106,252,248,139,173,233,15,182,133,233,141,4,194,139,108,36,96,137,149,233,
+  137,133,233,137,252,242,141,139,233,72,137,171,233,137,116,36,100,232,251,
+  1,21,252,233,244,3,255,248,141,137,116,36,100,255,248,142,255,137,116,36,
+  100,131,206,1,248,1,255,141,68,194,252,248,139,108,36,96,137,149,233,137,
+  133,233,137,252,242,137,252,233,232,251,1,22,199,68,36,100,0,0,0,0,255,131,
+  230,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,137,205,15,182,
+  78,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,85,65,84,65,83,
+  65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,15,182,69,252,
+  248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,139,93,0,139,139,
+  233,199,131,233,237,137,131,233,137,139,233,72,129,252,236,239,72,131,197,
+  128,252,242,68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,
+  15,17,109,232,252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,
+  15,17,85,208,252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,
+  125,184,252,242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,
+  252,242,15,17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,
+  17,69,128,139,171,233,139,147,233,72,137,171,233,199,131,233,0,0,0,0,137,
+  149,233,72,141,148,253,36,233,141,139,233,232,251,1,23,72,139,141,233,72,
+  129,225,239,137,169,233,139,149,233,139,177,233,252,233,244,247,255,248,144,
+  255,72,141,140,253,36,233,248,1,102,68,15,111,185,233,102,68,15,111,177,233,
+  102,68,15,111,169,233,102,68,15,111,161,233,102,68,15,111,153,233,102,68,
+  15,111,145,233,102,68,15,111,137,233,102,68,15,111,129,233,102,15,111,185,
+  233,72,137,204,102,15,111,49,76,139,124,36,16,76,139,116,36,24,76,139,108,
+  36,32,76,139,100,36,80,133,192,15,136,244,249,137,68,36,84,139,122,252,248,
+  139,191,233,139,191,233,199,131,233,0,0,0,0,199,131,233,237,139,6,15,182,
+  204,15,182,232,131,198,4,193,232,16,129,252,253,239,15,130,244,248,255,139,
+  68,36,84,248,2,252,255,36,252,235,248,3,252,247,216,137,252,233,137,194,232,
+  251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,
+  4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
+  36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,
+  237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,
+  247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,
+  237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,
+  200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,
+  11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,
+  217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,
+  72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
+  134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
+  72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
+  15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,
+  0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
+  139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,
+  102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
+  15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
+  72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
+  86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,
+  237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
+  15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
+  242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
+  196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
+  15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
+  217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
+  252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
+  252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,8,129,124,36,
+  8,0,0,128,127,15,132,244,247,129,124,36,8,0,0,128,252,255,15,132,244,248,
+  248,150,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
+  217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,
+  248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,
+  15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,
+  133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,
+  244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,
+  3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,
+  6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,
+  15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,
+  1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,
+  224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,
+  72,209,224,15,132,244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,
+  252,242,15,17,76,36,16,252,242,15,17,68,36,8,221,68,36,16,221,68,36,8,217,
+  252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,
+  217,252,253,221,217,221,92,36,8,252,242,15,16,68,36,8,195,248,9,72,184,237,
+  237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,
+  2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,
+  110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,
+  208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,
+  4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
+  192,15,132,244,3,15,87,192,195,248,153,255,131,252,250,1,15,130,244,82,15,
+  132,244,84,131,252,250,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
+  195,248,2,252,242,15,17,68,36,8,221,68,36,8,131,252,250,5,15,135,244,248,
+  88,15,132,244,247,232,244,88,80,252,233,244,253,248,1,232,244,149,255,80,
+  252,233,244,253,248,2,131,252,250,7,15,132,244,247,15,135,244,248,217,252,
+  237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
+  252,233,244,253,248,2,131,252,250,9,15,132,244,247,15,135,244,248,217,252,
+  236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
+  253,248,2,131,252,250,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
+  244,253,248,1,217,252,242,221,216,248,7,221,92,36,8,252,242,15,16,68,36,8,
+  195,255,139,84,36,12,221,68,36,4,131,252,250,1,15,130,244,82,15,132,244,84,
+  131,252,250,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,131,252,
+  250,5,15,130,244,88,15,132,244,149,131,252,250,7,15,132,244,247,15,135,244,
+  248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,252,241,
+  195,248,2,131,252,250,9,15,132,244,247,255,15,135,244,248,217,252,236,217,
+  201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,250,11,15,132,244,
+  247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,255,248,
+  9,204,255,248,154,255,65,131,252,248,1,15,132,244,247,15,135,244,248,252,
+  242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,65,131,252,248,3,15,132,
+  244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,
+  248,2,65,131,252,248,5,15,130,244,148,15,132,244,107,65,131,252,248,7,15,
+  132,244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,
+  195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,65,131,252,
+  248,9,15,135,244,248,252,242,15,17,68,36,8,252,242,15,17,76,36,16,221,68,
+  36,8,221,68,36,16,15,132,244,247,217,252,243,248,7,221,92,36,8,252,242,15,
+  16,68,36,8,195,248,1,217,201,217,252,253,221,217,252,233,244,7,248,2,65,131,
+  252,248,11,15,132,244,247,15,135,244,255,252,242,15,93,193,195,248,1,252,
+  242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,4,221,68,36,12,131,
+  252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,1,222,252,233,195,
+  248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,195,248,1,222,252,
+  249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,131,252,248,7,15,
+  132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,221,216,217,225,
+  195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,252,243,195,248,
+  1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,132,244,247,15,
+  135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,252,233,218,209,
+  221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,248,217,201,248,
+  2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,244,248,217,201,
+  248,2,221,216,195,255,248,155,137,200,86,72,137,214,83,15,162,137,6,137,94,
+  4,137,78,8,137,86,12,91,94,195,255,129,124,253,202,4,239,15,135,244,41,129,
+  124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,198,4,102,15,
+  46,4,202,255,221,4,202,221,4,194,131,198,4,255,223,252,233,221,216,255,218,
+  252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,183,
+  70,252,254,141,180,253,134,233,248,2,139,6,15,182,204,15,182,232,131,198,
+  4,193,232,16,252,255,36,252,235,255,139,108,194,4,131,198,4,129,252,253,239,
+  15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,16,4,194,
+  102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,244,248,
+  255,15,138,244,248,15,132,244,247,255,248,1,15,183,70,252,254,141,180,253,
+  134,233,248,2,255,248,2,15,183,70,252,254,141,180,253,134,233,248,1,255,248,
+  5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,202,139,4,
+  194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,133,252,
+  237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,255,189,
+  1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,198,4,129,124,253,202,4,
+  239,15,133,244,248,139,12,202,59,12,135,255,131,198,4,129,124,253,202,4,239,
+  15,135,244,248,255,252,242,15,16,4,199,102,15,46,4,202,255,221,4,202,221,
+  4,199,255,72,252,247,208,131,198,4,57,68,202,4,255,139,108,194,4,131,198,
+  4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,108,202,4,
+  139,44,194,137,44,202,255,15,183,70,252,254,141,180,253,134,233,248,1,139,
+  6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,72,139,
+  44,194,72,137,44,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
+  255,36,252,235,255,49,252,237,129,124,253,194,4,239,129,213,239,137,108,202,
+  4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,
+  129,124,253,194,4,239,15,135,244,48,255,252,242,15,16,4,194,72,184,237,237,
+  102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,221,4,194,217,224,221,
+  28,202,255,129,124,253,194,4,239,15,133,244,248,139,4,194,255,15,87,192,252,
+  242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,128,233,248,1,221,28,
+  202,255,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
+  248,2,129,124,253,194,4,239,15,133,244,50,139,12,194,137,213,232,251,1,18,
+  255,252,242,15,42,192,137,252,234,255,15,182,78,252,253,252,233,244,1,255,
+  15,182,252,236,15,182,192,255,129,124,253,252,234,4,239,15,135,244,46,255,
+  252,242,15,16,4,252,234,252,242,15,88,4,199,255,221,4,252,234,220,4,199,255,
+  129,124,253,252,234,4,239,15,135,244,47,255,252,242,15,16,4,199,252,242,15,
+  88,4,252,234,255,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,
+  135,244,49,129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,
+  252,242,15,88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,
+  252,242,15,92,4,199,255,221,4,252,234,220,36,199,255,252,242,15,16,4,199,
+  252,242,15,92,4,252,234,255,221,4,199,220,36,252,234,255,252,242,15,16,4,
+  252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,
+  4,252,234,252,242,15,89,4,199,255,221,4,252,234,220,12,199,255,252,242,15,
+  16,4,199,252,242,15,89,4,252,234,255,221,4,199,220,12,252,234,255,252,242,
+  15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,
+  242,15,16,4,252,234,252,242,15,94,4,199,255,221,4,252,234,220,52,199,255,
+  252,242,15,16,4,199,252,242,15,94,4,252,234,255,221,4,199,220,52,252,234,
+  255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,
+  194,255,252,242,15,16,4,252,234,252,242,15,16,12,199,255,221,4,252,234,221,
+  4,199,255,252,242,15,16,4,199,252,242,15,16,12,252,234,255,221,4,199,221,
+  4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,221,4,252,
+  234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,244,107,
+  255,15,182,252,236,15,182,192,139,76,36,96,137,145,233,141,20,194,65,137,
+  192,65,41,232,248,33,137,205,137,116,36,100,232,251,1,25,139,149,233,133,
+  192,15,133,244,42,15,182,110,252,255,15,182,78,252,253,72,139,4,252,234,72,
+  137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
+  235,255,72,252,247,208,139,4,135,199,68,202,4,237,137,4,202,139,6,15,182,
+  204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,15,191,192,252,
+  242,15,42,192,252,242,15,17,4,202,255,223,70,252,254,221,28,202,255,252,242,
+  15,16,4,199,252,242,15,17,4,202,255,221,4,199,221,28,202,255,72,252,247,208,
+  137,68,202,4,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
+  252,235,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,
+  41,131,193,8,57,193,15,134,244,1,139,6,15,182,204,15,182,232,131,198,4,193,
+  232,16,252,255,36,252,235,255,139,106,252,248,139,172,253,133,233,139,173,
+  233,72,139,69,0,72,137,4,202,139,6,15,182,204,15,182,232,131,198,4,193,232,
+  16,252,255,36,252,235,255,139,106,252,248,139,172,253,141,233,128,189,233,
+  0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,244,247,252,
+  246,133,233,235,15,133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,
+  4,193,232,16,252,255,36,252,235,248,2,129,232,239,129,252,248,239,15,134,
+  244,1,252,246,129,233,235,15,132,244,1,135,213,141,139,233,255,232,251,1,
+  26,137,252,234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,
+  141,233,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,
+  133,244,248,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
+  36,252,235,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,
+  1,137,213,137,194,141,139,233,232,251,1,26,137,252,234,252,233,244,1,255,
+  139,106,252,248,255,252,242,15,16,4,199,255,139,172,253,141,233,139,141,233,
+  255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139,172,
+  253,141,233,139,141,233,137,65,4,139,6,15,182,204,15,182,232,131,198,4,193,
+  232,16,252,255,36,252,235,255,141,180,253,134,233,139,108,36,96,131,189,233,
+  0,15,132,244,247,137,149,233,141,20,202,137,252,233,232,251,1,27,139,149,
+  233,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
+  235,255,72,252,247,208,139,108,36,96,137,149,233,68,139,66,252,248,139,20,
+  135,137,252,233,137,116,36,100,232,251,1,28,139,149,233,15,182,78,252,253,
   137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,
-  16,252,255,36,252,235,248,3,184,1,8,0,0,252,233,244,2,248,5,137,252,233,232,
-  251,1,30,15,183,70,252,254,252,233,244,1,255,72,252,247,208,139,108,36,96,
-  139,139,233,137,116,36,100,59,139,233,137,149,233,15,131,244,249,248,2,139,
-  20,135,137,252,233,232,251,1,31,139,149,233,15,182,78,252,253,137,4,202,199,
-  68,202,4,237,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,
-  252,235,248,3,137,252,233,232,251,1,30,15,183,70,252,254,72,252,247,208,252,
-  233,244,2,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
-  244,157,255,72,252,247,208,139,106,252,248,139,173,233,139,4,135,252,233,
-  244,158,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
-  36,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,
-  4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,
-  59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,
-  248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,
-  232,16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,
-  252,246,129,233,235,15,132,244,36,15,182,78,252,253,248,3,255,199,68,202,
-  4,237,252,233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,
-  233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,
-  253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,
-  233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,
-  15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,70,252,253,72,139,
-  41,72,137,44,194,248,2,255,139,6,15,182,204,15,182,232,131,198,4,193,232,
-  16,252,255,36,252,235,248,3,15,182,70,252,253,199,68,194,4,237,252,233,244,
-  2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132,
-  244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236,
-  15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133,
-  233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,
-  139,40,72,137,44,202,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,
-  16,252,255,36,252,235,248,2,131,189,233,0,15,132,244,249,139,141,233,252,
-  246,129,233,235,15,132,244,35,255,15,182,78,252,253,248,3,199,68,202,4,237,
-  252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
-  133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,
-  244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,
-  132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202,
-  72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,
-  235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
-  15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
-  15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,139,139,233,
-  137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,15,182,252,236,
-  15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,
-  37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,133,233,
-  0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,244,251,
-  129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,133,244,
-  253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,204,15,182,
-  232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,0,15,132,244,
-  2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,139,76,36,80,
-  252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233,133,
-  201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,68,36,80,199,
-  68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,36,80,137,252,
-  234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,36,32,137,193,
-  252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,137,133,233,252,
-  233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,
-  244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129,120,
-  253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,
-  139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,
-  255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,
-  233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,165,233,235,
-  139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,137,
-  124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,133,233,235,
-  15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,252,248,59,133,
-  233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,139,41,131,193,
-  8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,36,80,139,6,15,
-  182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,139,76,36,
-  96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,100,232,251,1,33,
-  139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,165,233,235,139,
-  131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,84,255,129,124,
-  253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,252,252,139,181,
-  233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,141,
-  76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,
-  52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,137,106,252,248,137,
-  68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,72,137,47,131,
-  199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,84,128,189,233,
-  1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,233,15,182,205,131,198,
-  4,252,255,36,252,235,248,5,255,252,247,198,237,15,133,244,4,15,182,78,252,
-  253,72,252,247,209,141,12,202,139,121,252,248,139,191,233,139,191,233,252,
-  233,244,4,248,7,129,252,238,239,252,247,198,237,15,133,244,254,41,252,242,
-  137,215,139,114,252,252,252,233,244,1,248,8,129,198,239,252,233,244,1,255,
-  141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,
-  224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,
-  133,244,28,137,202,137,114,252,252,139,181,233,139,14,15,182,252,233,15,182,
-  205,131,198,4,252,255,36,252,235,255,137,124,36,80,137,92,36,84,139,108,202,
-  252,240,139,68,202,252,248,139,157,233,131,198,4,139,189,233,248,1,57,216,
-  15,131,244,251,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42,192,
-  255,219,68,202,252,248,255,72,139,44,199,72,137,108,202,8,131,192,1,255,137,
-  68,202,252,248,248,2,15,183,70,252,254,141,180,253,134,233,248,3,139,92,36,
-  84,139,124,36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
-  36,252,235,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,
-  41,216,248,6,59,133,233,15,135,244,3,105,252,248,239,3,189,233,129,191,233,
-  239,15,132,244,253,141,92,24,1,72,139,175,233,72,139,135,233,72,137,44,202,
-  72,137,68,202,8,137,92,202,252,248,252,233,244,2,248,7,131,192,1,252,233,
-  244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,232,129,
-  124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,15,133,
-  244,251,128,189,233,235,15,133,244,251,141,180,253,134,233,199,68,202,252,
-  248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,
-  36,252,235,248,5,198,70,252,252,235,141,180,253,134,233,198,6,235,252,233,
-  244,1,255,15,182,252,236,15,182,192,137,124,36,80,141,188,253,194,233,141,
-  12,202,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248,
-  57,215,15,131,244,248,248,1,72,139,71,252,248,131,199,8,72,137,1,131,193,
-  8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,2,199,65,4,237,131,193,
-  8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,6,15,182,204,15,182,232,
-  131,198,4,193,232,16,252,255,36,252,235,248,5,199,68,36,84,1,0,0,0,137,208,
-  41,252,248,15,134,244,3,137,197,193,252,237,3,131,197,1,137,108,36,84,139,
-  108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,72,139,71,252,248,131,
-  199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,244,3,248,7,137,149,
-  233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,252,234,1,137,252,
-  233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,6,255,193,225,3,
-  255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,133,244,253,255,
-  248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,72,137,111,252,
-  248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,182,110,252,255,
-  248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,248,255,248,5,
-  56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,209,141,20,
-  202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,182,232,131,
-  198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,237,131,199,
-  8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,174,233,
-  252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,252,245,209,
-  252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,255,141,12,202,
-  255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,
-  139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,
-  15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,
-  249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,
-  65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,
-  221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,255,15,131,
-  244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,252,254,15,
-  131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,46,193,252,
-  233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,
-  105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,134,233,139,
-  1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,139,128,233,
-  139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,108,36,32,76,
-  137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,102,15,127,49,
-  102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137,233,102,68,15,
-  127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102,68,15,127,169,
-  233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224,255,141,180,253,
-  134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
-  255,137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,
-  142,255,139,190,233,139,108,36,96,141,12,202,59,141,233,15,135,244,23,15,
-  182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,254,252,233,245,
-  255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,
-  2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,252,252,137,120,252,
-  248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,
-  182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,
-  249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,192,8,199,65,252,
-  252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,139,6,15,182,204,
-  15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,3,199,64,4,237,
-  131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,72,
-  139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,136,233,59,141,
-  233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,233,255,15,135,
-  244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,255,199,131,233,
-  237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,252,252,252,233,
-  244,12,255,254,0
+  16,252,255,36,252,235,255,139,108,36,96,137,149,233,139,139,233,59,139,233,
+  137,116,36,100,15,131,244,251,248,1,65,137,192,37,252,255,7,0,0,65,193,232,
+  11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,233,137,194,232,251,1,29,
+  139,149,233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,
+  15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,184,1,8,0,0,252,
+  233,244,2,248,5,137,252,233,232,251,1,30,15,183,70,252,254,252,233,244,1,
+  255,72,252,247,208,139,108,36,96,139,139,233,137,116,36,100,59,139,233,137,
+  149,233,15,131,244,249,248,2,139,20,135,137,252,233,232,251,1,31,139,149,
+  233,15,182,78,252,253,137,4,202,199,68,202,4,237,139,6,15,182,204,15,182,
+  232,131,198,4,193,232,16,252,255,36,252,235,248,3,137,252,233,232,251,1,30,
+  15,183,70,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,
+  252,248,139,173,233,139,4,135,252,233,244,157,255,72,252,247,208,139,106,
+  252,248,139,173,233,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,
+  129,124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,
+  239,15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,
+  200,102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,
+  133,233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,
+  6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,
+  189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,
+  182,78,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,
+  194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
+  192,72,252,247,208,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
+  44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
+  185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
+  132,244,251,15,182,70,252,253,72,139,41,72,137,44,194,248,2,255,139,6,15,
+  182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,3,15,182,70,
+  252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,
+  1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,
+  252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,
+  133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,
+  120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,6,15,182,204,
+  15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,2,131,189,233,0,15,
+  132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,78,252,
+  253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,192,129,
+  124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,4,239,
+  15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,3,133,
+  233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
+  253,248,2,72,139,44,202,72,137,40,139,6,15,182,204,15,182,232,131,198,4,193,
+  232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,139,141,233,255,
+  252,246,129,233,235,15,132,244,39,15,182,78,252,253,252,233,244,1,248,5,129,
+  124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,
+  235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,244,2,255,
+  15,182,252,236,15,182,192,72,252,247,208,139,4,135,129,124,253,252,234,4,
+  239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,
+  198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,
+  133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,
+  15,133,244,253,248,3,15,182,70,252,253,72,139,44,194,72,137,41,139,6,15,182,
+  204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,4,131,189,233,
+  0,15,132,244,2,137,76,36,80,139,141,233,252,246,129,233,235,15,132,244,37,
+  139,76,36,80,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,
+  141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,
+  68,36,80,199,68,36,84,237,137,108,36,32,139,76,36,96,137,145,233,76,141,68,
+  36,80,137,252,234,137,205,137,116,36,100,232,251,1,32,139,149,233,139,108,
+  36,32,137,193,252,233,244,2,248,7,128,165,233,235,139,131,233,137,171,233,
+  137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,
+  4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,
+  233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,
+  253,248,2,72,139,12,202,72,137,8,139,6,15,182,204,15,182,232,131,198,4,193,
+  232,16,252,255,36,252,235,248,3,131,189,233,0,15,132,244,1,255,139,141,233,
+  252,246,129,233,235,15,132,244,38,15,182,78,252,253,252,233,244,1,248,7,128,
+  165,233,235,139,139,233,137,171,233,137,141,233,15,182,78,252,253,252,233,
+  244,2,255,137,124,36,80,139,60,199,248,1,141,12,202,139,105,252,248,252,246,
+  133,233,235,15,133,244,253,248,2,139,68,36,84,131,232,1,15,132,244,250,1,
+  252,248,59,133,233,15,135,244,251,41,252,248,193,231,3,3,189,233,248,3,72,
+  139,41,131,193,8,72,137,47,131,199,8,131,232,1,15,133,244,3,248,4,139,124,
+  36,80,139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,
+  248,5,139,76,36,96,137,145,233,137,252,234,65,137,192,137,205,137,116,36,
+  100,232,251,1,33,139,149,233,15,182,78,252,253,252,233,244,1,248,7,255,128,
+  165,233,235,139,131,233,137,171,233,137,133,233,252,233,244,2,255,3,68,36,
+  84,255,129,124,253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,114,
+  252,252,139,181,233,139,14,15,182,252,233,15,182,205,131,198,4,252,255,36,
+  252,235,255,141,76,202,8,137,215,139,105,252,248,129,121,253,252,252,239,
+  15,133,244,28,248,52,139,114,252,252,252,247,198,237,15,133,244,253,248,1,
+  137,106,252,248,137,68,36,84,131,232,1,15,132,244,249,248,2,72,139,41,131,
+  193,8,72,137,47,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,
+  68,36,84,128,189,233,1,15,135,244,251,248,4,139,181,233,139,14,15,182,252,
+  233,15,182,205,131,198,4,252,255,36,252,235,248,5,255,252,247,198,237,15,
+  133,244,4,15,182,78,252,253,72,252,247,209,141,12,202,139,121,252,248,139,
+  191,233,139,191,233,252,233,244,4,248,7,129,252,238,239,252,247,198,237,15,
+  133,244,254,41,252,242,137,215,139,114,252,252,252,233,244,1,248,8,129,198,
+  239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
+  41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
+  252,248,239,184,237,15,133,244,28,137,202,137,114,252,252,139,181,233,139,
+  14,15,182,252,233,15,182,205,131,198,4,252,255,36,252,235,255,137,124,36,
+  80,137,92,36,84,139,108,202,252,240,139,68,202,252,248,139,157,233,131,198,
+  4,139,189,233,248,1,57,216,15,131,244,251,129,124,253,199,4,239,15,132,244,
+  250,255,252,242,15,42,192,255,219,68,202,252,248,255,72,139,44,199,72,137,
+  108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,183,70,252,254,141,180,
+  253,134,233,248,3,139,92,36,84,139,124,36,80,139,6,15,182,204,15,182,232,
+  131,198,4,193,232,16,252,255,36,252,235,248,4,131,192,1,255,137,68,202,252,
+  248,255,252,233,244,1,248,5,41,216,248,6,59,133,233,15,135,244,3,105,252,
+  248,239,3,189,233,129,191,233,239,15,132,244,253,141,92,24,1,72,139,175,233,
+  72,139,135,233,72,137,44,202,72,137,68,202,8,137,92,202,252,248,252,233,244,
+  2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,
+  251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,
+  202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,180,253,
+  134,233,199,68,202,252,248,0,0,0,0,248,1,139,6,15,182,204,15,182,232,131,
+  198,4,193,232,16,252,255,36,252,235,248,5,198,70,252,252,235,141,180,253,
+  134,233,198,6,235,252,233,244,1,255,15,182,252,236,15,182,192,137,124,36,
+  80,141,188,253,194,233,141,12,202,43,122,252,252,133,252,237,15,132,244,251,
+  141,108,252,233,252,248,57,215,15,131,244,248,248,1,72,139,71,252,248,131,
+  199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,57,215,15,130,244,1,248,
+  2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,139,124,36,80,139,
+  6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,248,5,199,
+  68,36,84,1,0,0,0,137,208,41,252,248,15,134,244,3,137,197,193,252,237,3,131,
+  197,1,137,108,36,84,139,108,36,96,1,200,59,133,233,15,135,244,253,248,6,255,
+  72,139,71,252,248,131,199,8,72,137,1,131,193,8,57,215,15,130,244,6,252,233,
+  244,3,248,7,137,149,233,137,141,233,137,116,36,100,41,215,139,84,36,84,131,
+  252,234,1,137,252,233,232,251,1,0,139,149,233,139,141,233,1,215,252,233,244,
+  6,255,193,225,3,255,248,1,139,114,252,252,137,68,36,84,252,247,198,237,15,
+  133,244,253,255,248,13,137,215,131,232,1,15,132,244,249,248,2,72,139,44,15,
+  72,137,111,252,248,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,84,15,
+  182,110,252,255,248,5,57,197,15,135,244,252,255,72,139,44,10,72,137,106,252,
+  248,255,248,5,56,70,252,255,15,135,244,252,255,15,182,78,252,253,72,252,247,
+  209,141,20,202,139,122,252,248,139,191,233,139,191,233,139,6,15,182,204,15,
+  182,232,131,198,4,193,232,16,252,255,36,252,235,248,6,255,199,71,252,252,
+  237,131,199,8,255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,
+  7,141,174,233,252,247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,
+  137,252,245,209,252,237,129,229,239,102,131,172,253,43,233,1,15,132,244,140,
+  255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,
+  135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,
+  16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,
+  15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,
+  24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,
+  247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,15,183,70,252,254,
+  255,15,131,244,248,141,180,253,134,233,255,141,180,253,134,233,15,183,70,
+  252,254,15,131,245,255,15,130,244,248,141,180,253,134,233,255,248,3,102,15,
+  46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,
+  247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,255,141,180,253,
+  134,233,139,1,137,105,252,252,137,65,252,248,255,139,139,233,139,4,129,72,
+  139,128,233,139,108,36,96,137,147,233,137,171,233,76,137,100,36,80,76,137,
+  108,36,32,76,137,116,36,24,76,137,124,36,16,72,137,225,72,129,252,236,239,
+  102,15,127,49,102,15,127,185,233,102,68,15,127,129,233,102,68,15,127,137,
+  233,102,68,15,127,145,233,102,68,15,127,153,233,102,68,15,127,161,233,102,
+  68,15,127,169,233,102,68,15,127,177,233,102,68,15,127,185,233,252,255,224,
+  255,141,180,253,134,233,139,6,15,182,204,15,182,232,131,198,4,193,232,16,
+  252,255,36,252,235,255,137,252,245,209,252,237,129,229,239,102,131,172,253,
+  43,233,1,15,132,244,142,255,139,190,233,139,108,36,96,141,12,202,59,141,233,
+  15,135,244,23,15,182,142,233,57,200,15,134,244,249,248,2,255,15,183,70,252,
+  254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,15,134,
+  244,3,252,233,244,2,255,141,44,197,237,141,4,194,139,122,252,248,137,104,
+  252,252,137,120,252,248,139,108,36,96,141,12,200,59,141,233,15,135,244,22,
+  137,209,137,194,15,182,174,233,133,252,237,15,132,244,248,248,1,131,193,8,
+  57,209,15,131,244,249,139,121,252,248,137,56,139,121,252,252,137,120,4,131,
+  192,8,199,65,252,252,237,131,252,237,1,15,133,244,1,248,2,255,139,190,233,
+  139,6,15,182,204,15,182,232,131,198,4,193,232,16,252,255,36,252,235,255,248,
+  3,199,64,4,237,131,192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,
+  106,252,248,72,139,189,233,139,108,36,96,141,68,194,252,248,137,149,233,141,
+  136,233,59,141,233,137,133,233,255,137,252,233,255,72,137,252,250,137,252,
+  233,255,15,135,244,21,199,131,233,237,255,252,255,215,255,252,255,147,233,
+  255,199,131,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,114,
+  252,252,252,233,244,12,255,254,0
 };
 
 enum {
@@ -1113,332 +1112,339 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
   dasm_put(Dst, 2149, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
   dasm_put(Dst, 2215, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
   dasm_put(Dst, 2282, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
-  dasm_put(Dst, 2371, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
-  dasm_put(Dst, 2445);
+  dasm_put(Dst, 2371, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2383, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2392, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 2454, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+    dasm_put(Dst, 2455, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 2487, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
-  dasm_put(Dst, 2564, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC);
+  dasm_put(Dst, 2488, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
+  dasm_put(Dst, 2565, 1+1, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2383, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2585, Dt8(->upvalue[0]), LJ_TFUNC);
   if (sse) {
-    dasm_put(Dst, 2612);
+    dasm_put(Dst, 2606);
   } else {
-    dasm_put(Dst, 2622);
+    dasm_put(Dst, 2616);
   }
-  dasm_put(Dst, 2629, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
-  dasm_put(Dst, 2693, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
-  dasm_put(Dst, 2783, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
-  dasm_put(Dst, 2871, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
-  dasm_put(Dst, 2984, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
-  dasm_put(Dst, 3082, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
-  dasm_put(Dst, 3149, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
-  dasm_put(Dst, 3237, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
-  dasm_put(Dst, 3349, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
+  dasm_put(Dst, 2623, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
+  dasm_put(Dst, 2687, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
+  dasm_put(Dst, 2777, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
+  dasm_put(Dst, 2865, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
+  dasm_put(Dst, 2978, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
+  dasm_put(Dst, 3076, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 3143, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
+  dasm_put(Dst, 3231, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
+  dasm_put(Dst, 3343, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
   if (sse) {
-    dasm_put(Dst, 3376, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+    dasm_put(Dst, 3370, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
   } else {
-    dasm_put(Dst, 3440, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3434, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3476, 1+1, FRAME_TYPE, LJ_TNIL);
+  dasm_put(Dst, 3470, 1+1, FRAME_TYPE, LJ_TNIL);
   if (sse) {
-    dasm_put(Dst, 3570, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3632, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3564, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3626, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 3662, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3721, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3656, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3715, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3748, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3817, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3874, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3937, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-  dasm_put(Dst, 4027);
+  dasm_put(Dst, 3742, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3811, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3868, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3931, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4021);
   if (sse) {
-  dasm_put(Dst, 4039, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4033, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4064);
+  dasm_put(Dst, 4058);
   if (sse) {
-  dasm_put(Dst, 4078, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4072, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4103);
+  dasm_put(Dst, 4097);
   if (sse) {
-  dasm_put(Dst, 4117, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4111, 1+1, LJ_TISNUM);
   } else {
   }
-  dasm_put(Dst, 4142);
+  dasm_put(Dst, 4136);
   if (sse) {
-    dasm_put(Dst, 4158, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4152, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   } else {
-    dasm_put(Dst, 4197, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4191, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   }
-  dasm_put(Dst, 4230, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
-  dasm_put(Dst, 4295, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4224, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4289, 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4394);
+    dasm_put(Dst, 4388);
   } else {
-    dasm_put(Dst, 4400);
+    dasm_put(Dst, 4394);
   }
-  dasm_put(Dst, 4409);
+  dasm_put(Dst, 4403);
   if (sse) {
-    dasm_put(Dst, 4434);
+    dasm_put(Dst, 4428);
   } else {
-    dasm_put(Dst, 4440);
+    dasm_put(Dst, 4434);
   }
-  dasm_put(Dst, 4443, 1+2);
+  dasm_put(Dst, 4437, 1+2);
   if (sse) {
-    dasm_put(Dst, 4452);
+    dasm_put(Dst, 4446);
   } else {
-    dasm_put(Dst, 4460);
+    dasm_put(Dst, 4454);
   }
-  dasm_put(Dst, 4468);
+  dasm_put(Dst, 4462);
   if (sse) {
-    dasm_put(Dst, 4471, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
+    dasm_put(Dst, 4465, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
   } else {
-    dasm_put(Dst, 4498);
+    dasm_put(Dst, 4492);
   }
-  dasm_put(Dst, 4517);
+  dasm_put(Dst, 4511);
   if (sse) {
-    dasm_put(Dst, 4533, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4527, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4558, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4552, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4580);
+  dasm_put(Dst, 4574);
   if (sse) {
-    dasm_put(Dst, 4602);
+    dasm_put(Dst, 4596);
   } else {
-    dasm_put(Dst, 4628);
+    dasm_put(Dst, 4622);
   }
-  dasm_put(Dst, 4645, 1+2);
+  dasm_put(Dst, 4639, 1+2);
   if (sse) {
-    dasm_put(Dst, 4685);
+    dasm_put(Dst, 4679);
   } else {
-    dasm_put(Dst, 4693);
+    dasm_put(Dst, 4687);
   }
-  dasm_put(Dst, 4703, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4697, 2+1, LJ_TISNUM, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4755, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4749, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4802, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4796, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
   if (sse) {
-  dasm_put(Dst, 4843, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4837, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
   }
   if (sse) {
-  dasm_put(Dst, 4914, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4908, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
   }
   if (!sse) {
-    dasm_put(Dst, 4985);
+    dasm_put(Dst, 4979);
   }
-  dasm_put(Dst, 4994, 1+1, LJ_TSTR);
+  dasm_put(Dst, 4988, 1+1, LJ_TSTR);
   if (sse) {
-    dasm_put(Dst, 5016, Dt5(->len));
+    dasm_put(Dst, 5010, Dt5(->len));
   } else {
-    dasm_put(Dst, 5027, Dt5(->len));
+    dasm_put(Dst, 5021, Dt5(->len));
   }
-  dasm_put(Dst, 5035, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
+  dasm_put(Dst, 5029, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
   if (sse) {
-    dasm_put(Dst, 5073);
+    dasm_put(Dst, 5067);
   } else {
-    dasm_put(Dst, 5083);
+    dasm_put(Dst, 5077);
   }
-  dasm_put(Dst, 5096, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
+  dasm_put(Dst, 5090, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5131);
+    dasm_put(Dst, 5125);
   } else {
-    dasm_put(Dst, 5153);
+    dasm_put(Dst, 5147);
   }
-  dasm_put(Dst, 5173, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
+  dasm_put(Dst, 5167, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
   dasm_put(Dst, 2127);
   if (sse) {
-    dasm_put(Dst, 5281);
+    dasm_put(Dst, 5275);
   } else {
-    dasm_put(Dst, 5292);
+    dasm_put(Dst, 5286);
   }
-  dasm_put(Dst, 5300, LJ_TSTR, LJ_TISNUM, Dt5(->len));
+  dasm_put(Dst, 5294, LJ_TSTR, LJ_TISNUM, Dt5(->len));
   if (sse) {
-    dasm_put(Dst, 5330);
+    dasm_put(Dst, 5324);
   } else {
   }
-  dasm_put(Dst, 5337, sizeof(GCstr)-1);
-  dasm_put(Dst, 5412, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
-  dasm_put(Dst, 5471, LJ_TSTR, LJ_TISNUM);
+  dasm_put(Dst, 5331, sizeof(GCstr)-1);
+  dasm_put(Dst, 5406, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 5465, LJ_TSTR, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5492);
+    dasm_put(Dst, 5486);
   } else {
-    dasm_put(Dst, 5499);
+    dasm_put(Dst, 5493);
   }
-  dasm_put(Dst, 5511, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 5576, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 5639, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
-  dasm_put(Dst, 5710, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 5795, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 5865, 1+1, LJ_TTAB);
+  dasm_put(Dst, 5505, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 5570, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 5633, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
+  dasm_put(Dst, 5704, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 5789, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 5859, 1+1, LJ_TTAB);
   if (sse) {
-    dasm_put(Dst, 5933);
+    dasm_put(Dst, 5927);
   } else {
   }
   if (sse) {
-    dasm_put(Dst, 5943, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+    dasm_put(Dst, 5937, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
   if (sse) {
-  dasm_put(Dst, 5995, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 5989, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6038, LJ_TISNUM);
+  dasm_put(Dst, 6032, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6065);
+  dasm_put(Dst, 6059);
   } else {
   }
-  dasm_put(Dst, 6082);
+  dasm_put(Dst, 6076);
   if (sse) {
-  dasm_put(Dst, 6090, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6084, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6038, LJ_TISNUM);
+  dasm_put(Dst, 6032, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6133);
+  dasm_put(Dst, 6127);
   } else {
   }
-  dasm_put(Dst, 6082);
+  dasm_put(Dst, 6076);
   if (sse) {
-  dasm_put(Dst, 6150, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6144, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6038, LJ_TISNUM);
+  dasm_put(Dst, 6032, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6193);
+  dasm_put(Dst, 6187);
   } else {
   }
-  dasm_put(Dst, 6082);
+  dasm_put(Dst, 6076);
   if (sse) {
-  dasm_put(Dst, 6210, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6204, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6253);
+  dasm_put(Dst, 6247);
   if (sse) {
-  dasm_put(Dst, 6260, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6254, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6303);
+  dasm_put(Dst, 6297);
   if (sse) {
-    dasm_put(Dst, 6307);
+    dasm_put(Dst, 6301);
   } else {
   }
-  dasm_put(Dst, 6319);
+  dasm_put(Dst, 6313);
   if (sse) {
-  dasm_put(Dst, 6330, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6324, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6399);
+  dasm_put(Dst, 6393);
   if (sse) {
-  dasm_put(Dst, 6408, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6402, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6477);
+  dasm_put(Dst, 6471);
   if (sse) {
-  dasm_put(Dst, 6487, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6481, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6556);
+  dasm_put(Dst, 6550);
   if (sse) {
-  dasm_put(Dst, 6566, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6560, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6635);
+  dasm_put(Dst, 6629);
   if (sse) {
-  dasm_put(Dst, 6644, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
+  dasm_put(Dst, 6638, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
   } else {
   }
-  dasm_put(Dst, 6713, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
-  dasm_put(Dst, 6791, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
-  dasm_put(Dst, 6918, Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 6707, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
+  dasm_put(Dst, 6785, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
+  dasm_put(Dst, 6912, Dt1(->top), Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 6957, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+  dasm_put(Dst, 6951, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
 #endif
-  dasm_put(Dst, 6988, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
-  dasm_put(Dst, 7039, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+  dasm_put(Dst, 6982, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+  dasm_put(Dst, 7033, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
 #if LJ_HASJIT
-  dasm_put(Dst, 7106, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+  dasm_put(Dst, 7100, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
 #endif
-  dasm_put(Dst, 7153);
+  dasm_put(Dst, 7147);
 #if LJ_HASJIT
-  dasm_put(Dst, 6983);
+  dasm_put(Dst, 6977);
 #endif
-  dasm_put(Dst, 7160);
+  dasm_put(Dst, 7154);
 #if LJ_HASJIT
-  dasm_put(Dst, 7163);
+  dasm_put(Dst, 7157);
 #endif
-  dasm_put(Dst, 7173, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 7167, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 7207);
+  dasm_put(Dst, 7201);
 #endif
-  dasm_put(Dst, 7212, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 7206, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 7243, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
+  dasm_put(Dst, 7237, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8+4*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), DISPATCH_GL(jit_L), Dt1(->base), 4*8, GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
 #endif
-  dasm_put(Dst, 7473);
+  dasm_put(Dst, 7467);
 #if LJ_HASJIT
-  dasm_put(Dst, 7476, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
-  dasm_put(Dst, 7618);
+  dasm_put(Dst, 7470, 9*16+4*8, -9*16, -8*16, -7*16, -6*16, -5*16, -4*16, -3*16, -2*16, -1*16, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
+  dasm_put(Dst, 7612);
 #endif
-  dasm_put(Dst, 7644);
+  dasm_put(Dst, 7638);
   if (!sse) {
-  dasm_put(Dst, 7647);
+  dasm_put(Dst, 7641);
   }
-  dasm_put(Dst, 7692, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 7686, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   if (!sse) {
-  dasm_put(Dst, 7778);
+  dasm_put(Dst, 7772);
   }
-  dasm_put(Dst, 7823, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
+  dasm_put(Dst, 7817, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
   if (!sse) {
-  dasm_put(Dst, 7909);
+  dasm_put(Dst, 7903);
   }
-  dasm_put(Dst, 7948, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 7942, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   if (sse) {
-    dasm_put(Dst, 8037, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+    dasm_put(Dst, 8031, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
   } else {
-    dasm_put(Dst, 8151);
+    dasm_put(Dst, 8145);
   }
-  dasm_put(Dst, 8198);
+  dasm_put(Dst, 8192);
   if (!sse) {
   } else {
-    dasm_put(Dst, 8272);
+    dasm_put(Dst, 8266);
   }
-  dasm_put(Dst, 8275);
-  dasm_put(Dst, 8360, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
-  dasm_put(Dst, 8461, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
-  dasm_put(Dst, 8629);
+  dasm_put(Dst, 8269);
+  dasm_put(Dst, 8354, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
+  dasm_put(Dst, 8455, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
+  dasm_put(Dst, 8623);
 #if LJ_HASJIT
   if (sse) {
-    dasm_put(Dst, 8670);
-    dasm_put(Dst, 8740);
-    dasm_put(Dst, 8813);
+    dasm_put(Dst, 8664);
+    dasm_put(Dst, 8734);
+    dasm_put(Dst, 8807);
   } else {
-    dasm_put(Dst, 8863);
-    dasm_put(Dst, 8955);
+    dasm_put(Dst, 8857);
+    dasm_put(Dst, 8949);
   }
-  dasm_put(Dst, 9001);
+  dasm_put(Dst, 8995);
 #endif
-  dasm_put(Dst, 9005);
+  dasm_put(Dst, 8999);
   if (sse) {
-    dasm_put(Dst, 9008, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
-    dasm_put(Dst, 9097, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
+    dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+    dasm_put(Dst, 9091, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
   } else {
-    dasm_put(Dst, 9221);
-    dasm_put(Dst, 9304);
+    dasm_put(Dst, 9215);
+    dasm_put(Dst, 9298);
     if (cmov) {
-    dasm_put(Dst, 9359);
+    dasm_put(Dst, 9353);
     } else {
-    dasm_put(Dst, 9378);
+    dasm_put(Dst, 9372);
     }
-    dasm_put(Dst, 9001);
+    dasm_put(Dst, 8995);
   }
-  dasm_put(Dst, 9419);
+  dasm_put(Dst, 9413);
 }
 
 /* Generate the code for a single instruction. */
@@ -1454,618 +1460,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   /* Remember: all ops branch for a true comparison, fall through otherwise. */
 
   case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
-    dasm_put(Dst, 9445, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 9439, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9466);
+      dasm_put(Dst, 9460);
     } else {
-      dasm_put(Dst, 9481);
+      dasm_put(Dst, 9475);
       if (cmov) {
-      dasm_put(Dst, 9491);
+      dasm_put(Dst, 9485);
       } else {
-      dasm_put(Dst, 9497);
+      dasm_put(Dst, 9491);
       }
     }
     switch (op) {
     case BC_ISLT:
-      dasm_put(Dst, 9504);
+      dasm_put(Dst, 9498);
       break;
     case BC_ISGE:
-      dasm_put(Dst, 9299);
+      dasm_put(Dst, 9293);
       break;
     case BC_ISLE:
-      dasm_put(Dst, 5860);
+      dasm_put(Dst, 5854);
       break;
     case BC_ISGT:
-      dasm_put(Dst, 9509);
+      dasm_put(Dst, 9503);
       break;
     default: break;  /* Shut up GCC. */
     }
-    dasm_put(Dst, 9514, -BCBIAS_J*4);
+    dasm_put(Dst, 9508, -BCBIAS_J*4);
     break;
 
   case BC_ISEQV: case BC_ISNEV:
     vk = op == BC_ISEQV;
-    dasm_put(Dst, 9548, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 9542, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9574);
+      dasm_put(Dst, 9568);
     } else {
-      dasm_put(Dst, 9586);
+      dasm_put(Dst, 9580);
       if (cmov) {
-      dasm_put(Dst, 9491);
+      dasm_put(Dst, 9485);
       } else {
-      dasm_put(Dst, 9497);
+      dasm_put(Dst, 9491);
       }
     }
   iseqne_fp:
     if (vk) {
-      dasm_put(Dst, 9593);
+      dasm_put(Dst, 9587);
     } else {
-      dasm_put(Dst, 9602);
+      dasm_put(Dst, 9596);
     }
   iseqne_end:
     if (vk) {
-      dasm_put(Dst, 9611, -BCBIAS_J*4);
+      dasm_put(Dst, 9605, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 9626, -BCBIAS_J*4);
+      dasm_put(Dst, 9620, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     if (op == BC_ISEQV || op == BC_ISNEV) {
-      dasm_put(Dst, 9641, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+      dasm_put(Dst, 9635, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
       if (vk) {
-	dasm_put(Dst, 9699);
+	dasm_put(Dst, 9693);
       } else {
-	dasm_put(Dst, 9703);
+	dasm_put(Dst, 9697);
       }
-      dasm_put(Dst, 9709);
+      dasm_put(Dst, 9703);
     }
     break;
   case BC_ISEQS: case BC_ISNES:
     vk = op == BC_ISEQS;
-    dasm_put(Dst, 9714, LJ_TSTR);
+    dasm_put(Dst, 9708, LJ_TSTR);
   iseqne_test:
     if (vk) {
-      dasm_put(Dst, 9597);
+      dasm_put(Dst, 9591);
     } else {
-      dasm_put(Dst, 2778);
+      dasm_put(Dst, 2772);
     }
     goto iseqne_end;
   case BC_ISEQN: case BC_ISNEN:
     vk = op == BC_ISEQN;
-    dasm_put(Dst, 9738, LJ_TISNUM);
+    dasm_put(Dst, 9732, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9752);
+      dasm_put(Dst, 9746);
     } else {
-      dasm_put(Dst, 9764);
+      dasm_put(Dst, 9758);
       if (cmov) {
-      dasm_put(Dst, 9491);
+      dasm_put(Dst, 9485);
       } else {
-      dasm_put(Dst, 9497);
+      dasm_put(Dst, 9491);
       }
     }
     goto iseqne_fp;
   case BC_ISEQP: case BC_ISNEP:
     vk = op == BC_ISEQP;
-    dasm_put(Dst, 9771);
+    dasm_put(Dst, 9765);
     goto iseqne_test;
 
   /* -- Unary test and copy ops ------------------------------------------- */
 
   case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
-    dasm_put(Dst, 9783, LJ_TISTRUECOND);
+    dasm_put(Dst, 9777, LJ_TISTRUECOND);
     if (op == BC_IST || op == BC_ISTC) {
-      dasm_put(Dst, 9795);
+      dasm_put(Dst, 9789);
     } else {
-      dasm_put(Dst, 9800);
+      dasm_put(Dst, 9794);
     }
     if (op == BC_ISTC || op == BC_ISFC) {
-      dasm_put(Dst, 9805);
+      dasm_put(Dst, 9799);
     }
-    dasm_put(Dst, 9816, -BCBIAS_J*4);
+    dasm_put(Dst, 9810, -BCBIAS_J*4);
     break;
 
   /* -- Unary ops --------------------------------------------------------- */
 
   case BC_MOV:
-    dasm_put(Dst, 9848);
+    dasm_put(Dst, 9842);
     break;
   case BC_NOT:
-    dasm_put(Dst, 9876, LJ_TISTRUECOND, LJ_TTRUE);
+    dasm_put(Dst, 9870, LJ_TISTRUECOND, LJ_TTRUE);
     break;
   case BC_UNM:
-    dasm_put(Dst, 9912, LJ_TISNUM);
+    dasm_put(Dst, 9906, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 9923, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
+      dasm_put(Dst, 9917, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
     } else {
-      dasm_put(Dst, 9948);
+      dasm_put(Dst, 9942);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_LEN:
-    dasm_put(Dst, 9957, LJ_TSTR);
+    dasm_put(Dst, 9951, LJ_TSTR);
     if (sse) {
-      dasm_put(Dst, 9971, Dt5(->len));
+      dasm_put(Dst, 9965, Dt5(->len));
     } else {
-      dasm_put(Dst, 9989, Dt5(->len));
+      dasm_put(Dst, 9983, Dt5(->len));
     }
-    dasm_put(Dst, 9998, LJ_TTAB);
+    dasm_put(Dst, 9992, LJ_TTAB);
     if (sse) {
-      dasm_put(Dst, 10039);
+      dasm_put(Dst, 10033);
     } else {
     }
-    dasm_put(Dst, 10048);
+    dasm_put(Dst, 10042);
     break;
 
   /* -- Binary ops -------------------------------------------------------- */
 
 
   case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10078);
+    dasm_put(Dst, 10072);
     } else {
-    dasm_put(Dst, 10092);
+    dasm_put(Dst, 10086);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10112);
+    dasm_put(Dst, 10106);
     } else {
-    dasm_put(Dst, 10126);
+    dasm_put(Dst, 10120);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10156);
+    dasm_put(Dst, 10150);
     } else {
-    dasm_put(Dst, 10170);
+    dasm_put(Dst, 10164);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10178);
+    dasm_put(Dst, 10172);
     } else {
-    dasm_put(Dst, 10192);
+    dasm_put(Dst, 10186);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10200);
+    dasm_put(Dst, 10194);
     } else {
-    dasm_put(Dst, 10214);
+    dasm_put(Dst, 10208);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10222);
+    dasm_put(Dst, 10216);
     } else {
-    dasm_put(Dst, 10236);
+    dasm_put(Dst, 10230);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_MULVN: case BC_MULNV: case BC_MULVV:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10244);
+    dasm_put(Dst, 10238);
     } else {
-    dasm_put(Dst, 10258);
+    dasm_put(Dst, 10252);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10266);
+    dasm_put(Dst, 10260);
     } else {
-    dasm_put(Dst, 10280);
+    dasm_put(Dst, 10274);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10288);
+    dasm_put(Dst, 10282);
     } else {
-    dasm_put(Dst, 10302);
+    dasm_put(Dst, 10296);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10310);
+    dasm_put(Dst, 10304);
     } else {
-    dasm_put(Dst, 10324);
+    dasm_put(Dst, 10318);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10332);
+    dasm_put(Dst, 10326);
     } else {
-    dasm_put(Dst, 10346);
+    dasm_put(Dst, 10340);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10354);
+    dasm_put(Dst, 10348);
     } else {
-    dasm_put(Dst, 10368);
+    dasm_put(Dst, 10362);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_MODVN:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10376);
+    dasm_put(Dst, 10370);
     } else {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10398);
+    dasm_put(Dst, 10392);
     } else {
-    dasm_put(Dst, 10412);
+    dasm_put(Dst, 10406);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10420);
+    dasm_put(Dst, 10414);
     } else {
-    dasm_put(Dst, 10434);
+    dasm_put(Dst, 10428);
     }
       break;
     }
-    dasm_put(Dst, 10442);
+    dasm_put(Dst, 10436);
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_MODNV: case BC_MODVV:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10376);
+    dasm_put(Dst, 10370);
     } else {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10398);
+    dasm_put(Dst, 10392);
     } else {
-    dasm_put(Dst, 10412);
+    dasm_put(Dst, 10406);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10420);
+    dasm_put(Dst, 10414);
     } else {
-    dasm_put(Dst, 10434);
+    dasm_put(Dst, 10428);
     }
       break;
     }
-    dasm_put(Dst, 10448);
+    dasm_put(Dst, 10442);
     break;
   case BC_POW:
-    dasm_put(Dst, 10058);
+    dasm_put(Dst, 10052);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 10066, LJ_TISNUM);
+    dasm_put(Dst, 10060, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10376);
+    dasm_put(Dst, 10370);
     } else {
-    dasm_put(Dst, 10390);
+    dasm_put(Dst, 10384);
     }
       break;
     case 1:
-    dasm_put(Dst, 10100, LJ_TISNUM);
+    dasm_put(Dst, 10094, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10398);
+    dasm_put(Dst, 10392);
     } else {
-    dasm_put(Dst, 10412);
+    dasm_put(Dst, 10406);
     }
       break;
     default:
-    dasm_put(Dst, 10134, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10128, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 10420);
+    dasm_put(Dst, 10414);
     } else {
-    dasm_put(Dst, 10434);
+    dasm_put(Dst, 10428);
     }
       break;
     }
-    dasm_put(Dst, 10453);
+    dasm_put(Dst, 10447);
     if (sse) {
-    dasm_put(Dst, 9941);
+    dasm_put(Dst, 9935);
     } else {
-    dasm_put(Dst, 9953);
+    dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
 
   case BC_CAT:
-    dasm_put(Dst, 10457, Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 10451, Dt1(->base), Dt1(->base));
     break;
 
   /* -- Constant ops ------------------------------------------------------ */
 
   case BC_KSTR:
-    dasm_put(Dst, 10540, LJ_TSTR);
+    dasm_put(Dst, 10534, LJ_TSTR);
     break;
   case BC_KSHORT:
     if (sse) {
-      dasm_put(Dst, 10575);
+      dasm_put(Dst, 10569);
     } else {
-      dasm_put(Dst, 10590);
+      dasm_put(Dst, 10584);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_KNUM:
     if (sse) {
-      dasm_put(Dst, 10598);
+      dasm_put(Dst, 10592);
     } else {
-      dasm_put(Dst, 10611);
+      dasm_put(Dst, 10605);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_KPRI:
-    dasm_put(Dst, 10618);
+    dasm_put(Dst, 10612);
     break;
   case BC_KNIL:
-    dasm_put(Dst, 10646, LJ_TNIL);
+    dasm_put(Dst, 10640, LJ_TNIL);
     break;
 
   /* -- Upvalue and function ops ------------------------------------------ */
 
   case BC_UGET:
-    dasm_put(Dst, 10693, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10687, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_USETV:
 #define TV2MARKOFS \
  ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
-    dasm_put(Dst, 10733, 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);
-    dasm_put(Dst, 10824);
+    dasm_put(Dst, 10727, 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);
+    dasm_put(Dst, 10818);
     break;
 #undef TV2MARKOFS
   case BC_USETS:
-    dasm_put(Dst, 10836, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+    dasm_put(Dst, 10830, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
     break;
   case BC_USETN:
-    dasm_put(Dst, 10929);
+    dasm_put(Dst, 10923);
     if (sse) {
-      dasm_put(Dst, 10934);
+      dasm_put(Dst, 10928);
     } else {
-      dasm_put(Dst, 9767);
+      dasm_put(Dst, 9761);
     }
-    dasm_put(Dst, 10941, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10935, offsetof(GCfuncL, uvptr), DtA(->v));
     if (sse) {
-      dasm_put(Dst, 10950);
+      dasm_put(Dst, 10944);
     } else {
-      dasm_put(Dst, 10956);
+      dasm_put(Dst, 10950);
     }
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
   case BC_USETP:
-    dasm_put(Dst, 10959, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 10953, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_UCLO:
-    dasm_put(Dst, 10998, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 10992, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
     break;
 
   case BC_FNEW:
-    dasm_put(Dst, 11053, Dt1(->base), Dt1(->base), LJ_TFUNC);
+    dasm_put(Dst, 11047, Dt1(->base), Dt1(->base), LJ_TFUNC);
     break;
 
   /* -- Table ops --------------------------------------------------------- */
 
   case BC_TNEW:
-    dasm_put(Dst, 11119, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 11113, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
     break;
   case BC_TDUP:
-    dasm_put(Dst, 11241, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 11235, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
     break;
 
   case BC_GGET:
-    dasm_put(Dst, 11336, Dt7(->env));
+    dasm_put(Dst, 11330, Dt7(->env));
     break;
   case BC_GSET:
-    dasm_put(Dst, 11355, Dt7(->env));
+    dasm_put(Dst, 11349, Dt7(->env));
     break;
 
   case BC_TGETV:
-    dasm_put(Dst, 11374, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 11368, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11407);
+      dasm_put(Dst, 11401);
     } else {
     }
-    dasm_put(Dst, 11428, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 11512, LJ_TNIL, LJ_TSTR);
+    dasm_put(Dst, 11422, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11506, LJ_TNIL, LJ_TSTR);
     break;
   case BC_TGETS:
-    dasm_put(Dst, 11541, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 11625, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11535, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 11619, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
     break;
   case BC_TGETB:
-    dasm_put(Dst, 11696, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 11791, LJ_TNIL);
+    dasm_put(Dst, 11690, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 11785, LJ_TNIL);
     break;
 
   case BC_TSETV:
-    dasm_put(Dst, 11808, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 11802, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11407);
+      dasm_put(Dst, 11401);
     } else {
     }
-    dasm_put(Dst, 11841, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
-    dasm_put(Dst, 11920, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 11835, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+    dasm_put(Dst, 11914, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
   case BC_TSETS:
-    dasm_put(Dst, 11982, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 12058, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
-    dasm_put(Dst, 12146, 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));
+    dasm_put(Dst, 11976, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 12052, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+    dasm_put(Dst, 12140, 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));
     break;
   case BC_TSETB:
-    dasm_put(Dst, 12237, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
-    dasm_put(Dst, 12331, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 12231, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+    dasm_put(Dst, 12325, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   case BC_TSETM:
-    dasm_put(Dst, 12377, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
-    dasm_put(Dst, 12520, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 12371, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 12514, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   /* -- Calls and vararg handling ----------------------------------------- */
 
   case BC_CALL: case BC_CALLM:
-    dasm_put(Dst, 10062);
+    dasm_put(Dst, 10056);
     if (op == BC_CALLM) {
-      dasm_put(Dst, 12538);
+      dasm_put(Dst, 12532);
     }
-    dasm_put(Dst, 12543, LJ_TFUNC, Dt7(->pc));
+    dasm_put(Dst, 12537, LJ_TFUNC, Dt7(->pc));
     break;
 
   case BC_CALLMT:
-    dasm_put(Dst, 12538);
+    dasm_put(Dst, 12532);
     break;
   case BC_CALLT:
-    dasm_put(Dst, 12585, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
-    dasm_put(Dst, 12700, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+    dasm_put(Dst, 12579, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+    dasm_put(Dst, 12694, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
     break;
 
   case BC_ITERC:
-    dasm_put(Dst, 12771, LJ_TFUNC, 2+1, Dt7(->pc));
+    dasm_put(Dst, 12765, LJ_TFUNC, 2+1, Dt7(->pc));
     break;
 
   case BC_ITERN:
 #if LJ_HASJIT
 #endif
-    dasm_put(Dst, 12842, Dt6(->asize), Dt6(->array), LJ_TNIL);
+    dasm_put(Dst, 12836, Dt6(->asize), Dt6(->array), LJ_TNIL);
     if (sse) {
-      dasm_put(Dst, 12888);
+      dasm_put(Dst, 12882);
     } else {
-      dasm_put(Dst, 12894);
+      dasm_put(Dst, 12888);
     }
-    dasm_put(Dst, 12900);
+    dasm_put(Dst, 12894);
     if (sse) {
-      dasm_put(Dst, 9941);
+      dasm_put(Dst, 9935);
     } else {
-      dasm_put(Dst, 9953);
+      dasm_put(Dst, 9947);
     }
-    dasm_put(Dst, 12913, -BCBIAS_J*4);
+    dasm_put(Dst, 12907, -BCBIAS_J*4);
     if (!sse) {
-      dasm_put(Dst, 12965);
+      dasm_put(Dst, 12959);
     }
-    dasm_put(Dst, 12971, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
+    dasm_put(Dst, 12965, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
     break;
 
   case BC_ISNEXT:
-    dasm_put(Dst, 13043, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
+    dasm_put(Dst, 13037, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
     break;
 
   case BC_VARG:
-    dasm_put(Dst, 13143, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
-    dasm_put(Dst, 13303, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 13137, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
+    dasm_put(Dst, 13297, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
     break;
 
   /* -- Returns ----------------------------------------------------------- */
 
   case BC_RETM:
-    dasm_put(Dst, 12538);
+    dasm_put(Dst, 12532);
     break;
 
   case BC_RET: case BC_RET0: case BC_RET1:
     if (op != BC_RET0) {
-      dasm_put(Dst, 13369);
+      dasm_put(Dst, 13363);
     }
-    dasm_put(Dst, 13373, FRAME_TYPE);
+    dasm_put(Dst, 13367, FRAME_TYPE);
     switch (op) {
     case BC_RET:
-      dasm_put(Dst, 13392);
+      dasm_put(Dst, 13386);
       break;
     case BC_RET1:
-      dasm_put(Dst, 13444);
+      dasm_put(Dst, 13438);
       /* fallthrough */
     case BC_RET0:
-      dasm_put(Dst, 13454);
+      dasm_put(Dst, 13448);
     default:
       break;
     }
-    dasm_put(Dst, 13465, Dt7(->pc), PC2PROTO(k));
+    dasm_put(Dst, 13459, Dt7(->pc), PC2PROTO(k));
     if (op == BC_RET) {
-      dasm_put(Dst, 13509, LJ_TNIL);
+      dasm_put(Dst, 13503, LJ_TNIL);
     } else {
-      dasm_put(Dst, 13518, LJ_TNIL);
+      dasm_put(Dst, 13512, LJ_TNIL);
     }
-    dasm_put(Dst, 13525, -FRAME_VARG, FRAME_TYPEP);
+    dasm_put(Dst, 13519, -FRAME_VARG, FRAME_TYPEP);
     if (op != BC_RET0) {
-      dasm_put(Dst, 13549);
+      dasm_put(Dst, 13543);
     }
-    dasm_put(Dst, 4528);
+    dasm_put(Dst, 4522);
     break;
 
   /* -- Loops and branches ------------------------------------------------ */
@@ -2073,7 +2079,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FORL:
 #if LJ_HASJIT
-    dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2085,57 +2091,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   case BC_FORI:
   case BC_IFORL:
     vk = (op == BC_IFORL || op == BC_JFORL);
-    dasm_put(Dst, 13574);
+    dasm_put(Dst, 13568);
     if (!vk) {
-      dasm_put(Dst, 13578, LJ_TISNUM, LJ_TISNUM);
+      dasm_put(Dst, 13572, LJ_TISNUM, LJ_TISNUM);
     }
-    dasm_put(Dst, 13597);
+    dasm_put(Dst, 13591);
     if (!vk) {
-      dasm_put(Dst, 13601, LJ_TISNUM);
+      dasm_put(Dst, 13595, LJ_TISNUM);
     }
     if (sse) {
-      dasm_put(Dst, 13610);
+      dasm_put(Dst, 13604);
       if (vk) {
-	dasm_put(Dst, 13622);
+	dasm_put(Dst, 13616);
       } else {
-	dasm_put(Dst, 13641);
+	dasm_put(Dst, 13635);
       }
-      dasm_put(Dst, 13646);
+      dasm_put(Dst, 13640);
     } else {
-      dasm_put(Dst, 13659);
+      dasm_put(Dst, 13653);
       if (vk) {
-	dasm_put(Dst, 13665);
+	dasm_put(Dst, 13659);
       } else {
-	dasm_put(Dst, 13681);
+	dasm_put(Dst, 13675);
       }
-      dasm_put(Dst, 13689);
+      dasm_put(Dst, 13683);
       if (cmov) {
-      dasm_put(Dst, 9491);
+      dasm_put(Dst, 9485);
       } else {
-      dasm_put(Dst, 9497);
+      dasm_put(Dst, 9491);
       }
       if (!cmov) {
-	dasm_put(Dst, 13694);
+	dasm_put(Dst, 13688);
       }
     }
     if (op == BC_FORI) {
-      dasm_put(Dst, 13700, -BCBIAS_J*4);
+      dasm_put(Dst, 13694, -BCBIAS_J*4);
     } else if (op == BC_JFORI) {
-      dasm_put(Dst, 13710, -BCBIAS_J*4, BC_JLOOP);
+      dasm_put(Dst, 13704, -BCBIAS_J*4, BC_JLOOP);
     } else if (op == BC_IFORL) {
-      dasm_put(Dst, 13724, -BCBIAS_J*4);
+      dasm_put(Dst, 13718, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 13720, BC_JLOOP);
+      dasm_put(Dst, 13714, BC_JLOOP);
     }
-    dasm_put(Dst, 9526);
+    dasm_put(Dst, 9520);
     if (sse) {
-      dasm_put(Dst, 13734);
+      dasm_put(Dst, 13728);
     }
     break;
 
   case BC_ITERL:
 #if LJ_HASJIT
-    dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2144,33 +2150,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IITERL:
-    dasm_put(Dst, 13745, LJ_TNIL);
+    dasm_put(Dst, 13739, LJ_TNIL);
     if (op == BC_JITERL) {
-      dasm_put(Dst, 13760, BC_JLOOP);
+      dasm_put(Dst, 13754, BC_JLOOP);
     } else {
-      dasm_put(Dst, 13774, -BCBIAS_J*4);
+      dasm_put(Dst, 13768, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 9826);
+    dasm_put(Dst, 9820);
     break;
 
   case BC_LOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 13553, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13547, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
   case BC_ILOOP:
-    dasm_put(Dst, 9528);
+    dasm_put(Dst, 9522);
     break;
 
   case BC_JLOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 13790, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
+    dasm_put(Dst, 13784, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L), 9*16+4*8, -1*16, -2*16, -3*16, -4*16, -5*16, -6*16, -7*16, -8*16, -9*16);
 #endif
     break;
 
   case BC_JMP:
-    dasm_put(Dst, 13899, -BCBIAS_J*4);
+    dasm_put(Dst, 13893, -BCBIAS_J*4);
     break;
 
   /* -- Function headers -------------------------------------------------- */
@@ -2184,7 +2190,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FUNCF:
 #if LJ_HASJIT
-    dasm_put(Dst, 13924, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 13918, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
   case BC_FUNCV:  /* NYI: compiled vararg functions. */
     break;
@@ -2194,47 +2200,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IFUNCF:
-    dasm_put(Dst, 13945, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+    dasm_put(Dst, 13939, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
     if (op == BC_JFUNCF) {
-      dasm_put(Dst, 13975, BC_JLOOP);
+      dasm_put(Dst, 13969, BC_JLOOP);
     } else {
-      dasm_put(Dst, 9528);
+      dasm_put(Dst, 9522);
     }
-    dasm_put(Dst, 13984, LJ_TNIL);
+    dasm_put(Dst, 13978, LJ_TNIL);
     break;
 
   case BC_JFUNCV:
 #if !LJ_HASJIT
     break;
 #endif
-    dasm_put(Dst, 9003);
+    dasm_put(Dst, 8997);
     break;  /* NYI: compiled vararg functions. */
 
   case BC_IFUNCV:
-    dasm_put(Dst, 14006, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+    dasm_put(Dst, 14000, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
     if (op == BC_JFUNCV) {
-      dasm_put(Dst, 13975, BC_JLOOP);
+      dasm_put(Dst, 13969, BC_JLOOP);
     } else {
-      dasm_put(Dst, 14097, -4+PC2PROTO(k));
+      dasm_put(Dst, 14091, -4+PC2PROTO(k));
     }
-    dasm_put(Dst, 14120, LJ_TNIL);
+    dasm_put(Dst, 14114, LJ_TNIL);
     break;
 
   case BC_FUNCC:
   case BC_FUNCCW:
-    dasm_put(Dst, 14142, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+    dasm_put(Dst, 14136, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 14172);
+      dasm_put(Dst, 14166);
     } else {
-      dasm_put(Dst, 14176);
+      dasm_put(Dst, 14170);
     }
-    dasm_put(Dst, 14184, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+    dasm_put(Dst, 14178, DISPATCH_GL(vmstate), ~LJ_VMST_C);
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 14193);
+      dasm_put(Dst, 14187);
     } else {
-      dasm_put(Dst, 14197, DISPATCH_GL(wrapf));
+      dasm_put(Dst, 14191, DISPATCH_GL(wrapf));
     }
-    dasm_put(Dst, 14202, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 14196, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
     break;
 
   /* ---------------------------------------------------------------------- */
@@ -2262,7 +2268,7 @@ static int build_backend(BuildCtx *ctx)
 
   build_subroutines(ctx, cmov, sse);
 
-  dasm_put(Dst, 14227);
+  dasm_put(Dst, 14221);
   for (op = 0; op < BC__MAX; op++)
     build_ins(ctx, (BCOp)op, op, cmov, sse);
 
diff --git a/src/buildvm_x86.dasc b/src/buildvm_x86.dasc
index e07ef181..0bd8f304 100644
--- a/src/buildvm_x86.dasc
+++ b/src/buildvm_x86.dasc
@@ -1511,7 +1511,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
   |.ffunc_1 pairs
   |  mov TAB:RB, [BASE]
   |  cmp dword [BASE+4], LJ_TTAB;  jne ->fff_fallback
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
   |  cmp dword TAB:RB->metatable, 0; jne ->fff_fallback
+#endif
   |  mov CFUNC:RB, [BASE-8]
   |  mov CFUNC:RD, CFUNC:RB->upvalue[0]
   |  mov PC, [BASE-4]
@@ -1575,7 +1577,9 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
   |.ffunc_1 ipairs
   |  mov TAB:RB, [BASE]
   |  cmp dword [BASE+4], LJ_TTAB;  jne ->fff_fallback
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
   |  cmp dword TAB:RB->metatable, 0; jne ->fff_fallback
+#endif
   |  mov CFUNC:RB, [BASE-8]
   |  mov CFUNC:RD, CFUNC:RB->upvalue[0]
   |  mov PC, [BASE-4]
diff --git a/src/buildvm_x86.h b/src/buildvm_x86.h
index f68d6c87..25e4cc8e 100644
--- a/src/buildvm_x86.h
+++ b/src/buildvm_x86.h
@@ -12,7 +12,7 @@
 #define DASM_SECTION_CODE_OP	0
 #define DASM_SECTION_CODE_SUB	1
 #define DASM_MAXSECTION		2
-static const unsigned char build_actionlist[15597] = {
+static const unsigned char build_actionlist[15591] = {
   254,1,248,10,252,247,198,237,15,132,244,11,131,230,252,248,41,252,242,141,
   76,49,252,248,139,114,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,
   20,252,247,198,237,15,132,244,13,248,14,129,252,246,239,252,247,198,237,15,
@@ -130,132 +130,132 @@ static const unsigned char build_actionlist[15597] = {
   66,252,252,139,106,16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,
   69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,
   58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,253,4,239,15,133,
-  244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139,114,252,
-  252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,
-  248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,
-  122,253,12,239,255,15,135,244,55,139,114,252,252,255,252,242,15,16,66,8,189,
-  0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252,242,
-  15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,36,
-  221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,3,
-  133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,42,137,
+  244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,139,133,233,139,
+  114,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,
+  244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,
+  55,129,122,253,12,239,15,135,244,55,139,114,252,252,255,252,242,15,16,66,
+  8,189,0,0,252,240,63,102,15,110,205,102,15,112,201,81,252,242,15,88,193,252,
+  242,15,45,192,252,242,15,17,66,252,248,255,221,66,8,217,232,222,193,219,20,
+  36,221,90,252,248,139,4,36,255,139,42,59,133,233,15,131,244,248,193,224,3,
+  3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,42,137,
   66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,233,137,213,
   137,194,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,
   233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,
-  239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,
-  139,114,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,
-  17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,
-  248,239,15,130,244,55,141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,
-  252,237,235,131,229,1,1,252,238,252,233,244,27,248,75,129,252,248,239,15,
-  130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199,
-  66,4,237,139,42,139,114,8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,
-  233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,114,252,252,137,
-  116,36,24,137,44,36,129,122,253,4,239,15,133,244,55,131,189,233,0,15,133,
-  244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141,
-  233,15,132,244,55,248,1,141,116,193,252,240,59,181,233,15,135,244,55,137,
-  181,233,139,108,36,48,137,149,233,131,194,8,137,149,233,141,108,194,232,41,
-  252,245,57,206,15,132,244,249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,
-  70,252,248,131,252,238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,
-  76,36,12,137,76,36,8,232,244,24,199,131,233,237,255,139,108,36,48,139,52,
-  36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,142,233,139,190,233,
-  137,142,233,137,252,254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,
-  233,15,135,244,255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,
-  4,131,193,8,57,252,249,15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,
-  7,139,116,36,24,137,68,36,20,185,252,248,252,255,252,255,252,255,252,247,
-  198,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,142,
-  233,131,252,233,8,137,142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,
-  244,7,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,
-  52,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,
-  252,252,137,116,36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233,
-  235,15,135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,
-  1,141,116,193,252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48,
-  137,149,233,137,149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,
-  249,248,2,255,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,
-  238,8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,
-  8,232,244,24,199,131,233,237,139,108,36,48,139,52,36,139,149,233,129,252,
-  248,239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,
-  254,41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,
-  255,137,213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,
-  252,249,15,133,244,5,248,6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,
-  252,247,198,237,15,132,244,13,252,233,244,14,248,8,137,252,242,137,252,233,
-  232,251,1,13,248,9,139,12,36,137,185,233,137,252,242,137,252,233,232,251,
-  1,0,139,52,36,139,149,233,252,233,244,4,248,78,139,108,36,48,252,247,133,
-  233,237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,
-  137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,114,252,252,
-  221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,252,242,15,16,2,102,15,252,239,201,102,15,118,201,
-  102,15,115,209,1,15,84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,
-  255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
-  221,2,217,225,248,63,248,64,139,114,252,252,221,90,252,248,255,248,58,184,
-  237,248,69,137,68,36,20,248,56,252,247,198,237,15,133,244,253,248,5,56,70,
-  252,255,15,135,244,252,15,182,78,252,253,252,247,209,141,20,202,139,6,15,
-  182,204,15,182,232,131,198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,
-  244,237,131,192,1,252,233,244,5,248,7,185,252,248,252,255,252,255,252,255,
-  252,233,244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,
-  15,135,244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,
-  244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,
-  244,63,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
-  244,55,252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,
-  64,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
-  2,232,244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,
-  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,
-  2,217,252,241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,
-  87,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
-  2,232,244,88,252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,
-  253,4,239,15,135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,
-  239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,
-  233,244,64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
-  244,55,221,2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,
-  130,244,55,255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,
-  232,222,225,217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,
-  222,225,217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,
-  239,15,130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,
-  243,252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,
-  239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248,
-  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,
-  213,232,251,1,14,137,252,234,252,233,244,64,255,248,96,129,252,248,239,15,
-  130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,
-  4,36,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
-  55,221,2,221,28,36,255,137,213,232,251,1,15,137,252,234,252,233,244,64,255,
-  248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
-  242,15,16,2,252,242,15,17,4,36,255,248,97,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,16,137,
-  252,234,252,233,244,64,248,98,255,248,99,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,
-  133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,
-  4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,
-  248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,
-  122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,
-  101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
-  253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,
-  64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,
-  244,55,139,114,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,
-  253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,
-  129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,
-  15,42,197,255,137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,
-  255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,
-  17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,
-  2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,
-  67,102,15,110,205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,
-  248,255,221,2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,
-  106,252,252,184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,
-  129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,
-  106,4,139,114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,
-  255,15,40,224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,
-  252,242,15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,
-  221,26,255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,
-  233,244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,
-  15,87,228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,
-  129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,
-  12,239,15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,
-  244,1,221,217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,
-  122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,
-  2,252,242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,
-  15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
+  239,15,133,244,55,255,139,106,252,248,139,133,233,139,114,252,252,199,66,
+  252,252,237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,
+  221,90,8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,
+  141,74,8,131,232,1,190,237,248,1,15,182,171,233,193,252,237,235,131,229,1,
+  1,252,238,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,
+  12,239,15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,114,
+  8,137,106,8,137,50,141,74,16,131,232,2,190,237,252,233,244,1,248,76,129,252,
+  248,239,15,130,244,55,139,42,139,114,252,252,137,116,36,24,137,44,36,129,
+  122,253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,128,189,233,235,15,
+  135,244,55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,
+  141,116,193,252,240,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,
+  149,233,131,194,8,137,149,233,141,108,194,232,41,252,245,57,206,15,132,244,
+  249,248,2,139,68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,
+  8,57,206,15,133,244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,
+  244,24,199,131,233,237,255,139,108,36,48,139,52,36,139,149,233,129,252,248,
+  239,15,135,244,254,248,4,139,142,233,139,190,233,137,142,233,137,252,254,
+  41,206,15,132,244,252,141,4,50,193,252,238,3,59,133,233,15,135,244,255,137,
+  213,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,
+  15,133,244,5,248,6,141,70,2,199,66,252,252,237,248,7,139,116,36,24,137,68,
+  36,20,185,252,248,252,255,252,255,252,255,252,247,198,237,255,15,132,244,
+  13,252,233,244,14,248,8,199,66,252,252,237,139,142,233,131,252,233,8,137,
+  142,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,
+  36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
+  252,233,244,4,248,77,139,106,252,248,139,173,233,139,114,252,252,137,116,
+  36,24,137,44,36,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,
+  55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,116,193,
+  252,248,59,181,233,15,135,244,55,137,181,233,139,108,36,48,137,149,233,137,
+  149,233,141,108,194,252,240,41,252,245,57,206,15,132,244,249,248,2,255,139,
+  68,46,4,137,70,252,252,139,4,46,137,70,252,248,131,252,238,8,57,206,15,133,
+  244,2,248,3,137,76,36,4,49,201,137,76,36,12,137,76,36,8,232,244,24,199,131,
+  233,237,139,108,36,48,139,52,36,139,149,233,129,252,248,239,15,135,244,254,
+  248,4,139,142,233,139,190,233,137,142,233,137,252,254,41,206,15,132,244,252,
+  141,4,50,193,252,238,3,59,133,233,15,135,244,255,255,137,213,41,205,248,5,
+  139,1,137,4,41,139,65,4,137,68,41,4,131,193,8,57,252,249,15,133,244,5,248,
+  6,141,70,1,248,7,139,116,36,24,137,68,36,20,49,201,252,247,198,237,15,132,
+  244,13,252,233,244,14,248,8,137,252,242,137,252,233,232,251,1,13,248,9,139,
+  12,36,137,185,233,137,252,242,137,252,233,232,251,1,0,139,52,36,139,149,233,
+  252,233,244,4,248,78,139,108,36,48,252,247,133,233,237,15,132,244,55,255,
+  137,149,233,141,68,194,252,248,137,133,233,49,192,137,133,233,176,235,136,
+  133,233,252,233,244,16,255,248,64,139,114,252,252,221,90,252,248,252,233,
+  244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,252,242,15,16,2,102,15,252,239,201,102,15,118,201,102,15,115,209,1,15,
+  84,193,248,63,139,114,252,252,252,242,15,17,66,252,248,255,248,79,129,252,
+  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,
+  248,64,139,114,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,
+  20,248,56,252,247,198,237,15,133,244,253,248,5,56,70,252,255,15,135,244,252,
+  15,182,78,252,253,252,247,209,141,20,202,139,6,15,182,204,15,182,232,131,
+  198,4,193,232,16,252,255,36,171,248,6,199,68,194,252,244,237,131,192,1,252,
+  233,244,5,248,7,185,252,248,252,255,252,255,252,255,252,233,244,14,255,248,
+  80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
+  15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,122,253,4,
+  239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,
+  252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,
+  232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,55,129,122,
+  253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,
+  244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,15,130,
+  244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,252,
+  233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,239,
+  255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,
+  244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,91,
+  129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,
+  242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,
+  253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,
+  217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,
+  201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,
+  253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,
+  248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
+  242,15,16,2,252,242,15,17,4,36,255,248,95,129,252,248,239,15,130,244,55,129,
+  122,253,4,239,15,135,244,55,221,2,221,28,36,255,137,213,232,251,1,14,137,
+  252,234,252,233,244,64,255,248,96,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,252,242,15,16,2,252,242,15,17,4,36,255,248,96,129,252,
+  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,221,28,36,255,
+  137,213,232,251,1,15,137,252,234,252,233,244,64,255,248,97,129,252,248,239,
+  15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,252,242,15,
+  17,4,36,255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,221,2,221,28,36,255,137,213,232,251,1,16,137,252,234,252,233,244,64,
+  248,98,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
+  244,55,252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,
+  63,255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
+  55,221,2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,
+  244,55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,
+  15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,
+  244,55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,
+  248,239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,114,252,
+  252,139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,
+  255,15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,
+  32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,
+  137,108,36,16,219,68,36,16,255,139,106,252,252,129,229,252,255,252,255,15,
+  128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,
+  26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,
+  238,252,233,244,2,255,248,4,255,252,242,15,16,2,189,0,0,80,67,102,15,110,
+  205,102,15,112,201,81,252,242,15,89,193,252,242,15,17,66,252,248,255,221,
+  2,199,68,36,16,0,0,128,90,216,76,36,16,221,90,252,248,255,139,106,252,252,
+  184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,
+  55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,
+  239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,
+  114,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,
+  224,232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,
+  15,17,34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,
+  255,139,66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,
+  244,69,248,3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,
+  228,252,233,244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252,
+  248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
+  15,135,244,55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,
+  217,252,233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253,
+  4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
+  242,15,16,74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15,
+  130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
   55,221,2,221,66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239,
   15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,
   248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,
@@ -1174,395 +1174,402 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
   dasm_put(Dst, 2164, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
   dasm_put(Dst, 2230, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
   dasm_put(Dst, 2297, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
-  dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
-  dasm_put(Dst, 2476);
+  dasm_put(Dst, 2402, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2414, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 2485);
+    dasm_put(Dst, 2486);
   } else {
-    dasm_put(Dst, 2524);
+    dasm_put(Dst, 2525);
   }
-  dasm_put(Dst, 2542, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
-  dasm_put(Dst, 2623, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC);
+  dasm_put(Dst, 2543, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
+  dasm_put(Dst, 2624, 1+1, LJ_TTAB);
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  dasm_put(Dst, 2414, Dt6(->metatable));
+#endif
+  dasm_put(Dst, 2644, Dt8(->upvalue[0]), LJ_TFUNC);
   if (sse) {
-    dasm_put(Dst, 2671);
+    dasm_put(Dst, 2665);
   } else {
-    dasm_put(Dst, 2681);
+    dasm_put(Dst, 2675);
   }
-  dasm_put(Dst, 2688, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
-  dasm_put(Dst, 2752, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
-  dasm_put(Dst, 2840, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
-  dasm_put(Dst, 2941, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
-  dasm_put(Dst, 3055, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
-  dasm_put(Dst, 3153, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
-  dasm_put(Dst, 3219, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
-  dasm_put(Dst, 3320, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
-  dasm_put(Dst, 3433, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
+  dasm_put(Dst, 2682, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
+  dasm_put(Dst, 2746, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
+  dasm_put(Dst, 2834, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
+  dasm_put(Dst, 2935, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
+  dasm_put(Dst, 3049, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
+  dasm_put(Dst, 3147, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 3213, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
+  dasm_put(Dst, 3314, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
+  dasm_put(Dst, 3427, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
   if (sse) {
-    dasm_put(Dst, 3459, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3453, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 3528, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3522, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3564, 1+1, FRAME_TYPE, LJ_TNIL);
+  dasm_put(Dst, 3558, 1+1, FRAME_TYPE, LJ_TNIL);
   if (sse) {
-    dasm_put(Dst, 3654, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3716, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3648, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3710, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 3746, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-    dasm_put(Dst, 3805, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3740, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 3799, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 3832, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3901, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 3958, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
-  dasm_put(Dst, 4021, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
-  dasm_put(Dst, 4111);
+  dasm_put(Dst, 3826, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3895, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 3952, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
+  dasm_put(Dst, 4015, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4105);
   if (sse) {
-  dasm_put(Dst, 4123, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4117, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 4154, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4148, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4179);
+  dasm_put(Dst, 4173);
   if (sse) {
-  dasm_put(Dst, 4193, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4187, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 4224, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4218, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4249);
+  dasm_put(Dst, 4243);
   if (sse) {
-  dasm_put(Dst, 4263, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4257, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 4294, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4288, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4319);
+  dasm_put(Dst, 4313);
   if (sse) {
-    dasm_put(Dst, 4335, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4329, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   } else {
-    dasm_put(Dst, 4374, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
+    dasm_put(Dst, 4368, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
   }
-  dasm_put(Dst, 4407, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
-  dasm_put(Dst, 4472, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 4401, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4466, 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4571);
+    dasm_put(Dst, 4565);
   } else {
-    dasm_put(Dst, 4577);
+    dasm_put(Dst, 4571);
   }
-  dasm_put(Dst, 4586);
+  dasm_put(Dst, 4580);
   if (sse) {
-    dasm_put(Dst, 4611);
+    dasm_put(Dst, 4605);
   } else {
-    dasm_put(Dst, 4617);
+    dasm_put(Dst, 4611);
   }
-  dasm_put(Dst, 4620, 1+2);
+  dasm_put(Dst, 4614, 1+2);
   if (sse) {
-    dasm_put(Dst, 4629);
+    dasm_put(Dst, 4623);
   } else {
-    dasm_put(Dst, 4637);
+    dasm_put(Dst, 4631);
   }
-  dasm_put(Dst, 4645);
+  dasm_put(Dst, 4639);
   if (sse) {
-    dasm_put(Dst, 4648);
+    dasm_put(Dst, 4642);
   } else {
-    dasm_put(Dst, 4680);
+    dasm_put(Dst, 4674);
   }
-  dasm_put(Dst, 4699);
+  dasm_put(Dst, 4693);
   if (sse) {
-    dasm_put(Dst, 4715, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4709, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4740, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 4734, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 4762);
+  dasm_put(Dst, 4756);
   if (sse) {
-    dasm_put(Dst, 4784);
+    dasm_put(Dst, 4778);
   } else {
-    dasm_put(Dst, 4810);
+    dasm_put(Dst, 4804);
   }
-  dasm_put(Dst, 4827, 1+2);
+  dasm_put(Dst, 4821, 1+2);
   if (sse) {
-    dasm_put(Dst, 4867);
+    dasm_put(Dst, 4861);
   } else {
-    dasm_put(Dst, 4875);
+    dasm_put(Dst, 4869);
   }
-  dasm_put(Dst, 4885, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 4879, 2+1, LJ_TISNUM, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 4937, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4931, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 4984, 2+1, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 4978, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
   if (sse) {
-  dasm_put(Dst, 5025, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 5019, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 5096, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 5090, 1+1, LJ_TISNUM, LJ_TISNUM);
   if (cmov) {
-  dasm_put(Dst, 5149);
+  dasm_put(Dst, 5143);
   } else {
-  dasm_put(Dst, 5157);
+  dasm_put(Dst, 5151);
   }
-  dasm_put(Dst, 5088);
+  dasm_put(Dst, 5082);
   }
   if (sse) {
-  dasm_put(Dst, 5178, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 5172, 1+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 5249, 1+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 5243, 1+1, LJ_TISNUM, LJ_TISNUM);
   if (cmov) {
-  dasm_put(Dst, 5302);
+  dasm_put(Dst, 5296);
   } else {
-  dasm_put(Dst, 5310);
+  dasm_put(Dst, 5304);
   }
-  dasm_put(Dst, 5088);
+  dasm_put(Dst, 5082);
   }
   if (!sse) {
-    dasm_put(Dst, 5331);
+    dasm_put(Dst, 5325);
   }
-  dasm_put(Dst, 5340, 1+1, LJ_TSTR);
+  dasm_put(Dst, 5334, 1+1, LJ_TSTR);
   if (sse) {
-    dasm_put(Dst, 5362, Dt5(->len));
+    dasm_put(Dst, 5356, Dt5(->len));
   } else {
-    dasm_put(Dst, 5373, Dt5(->len));
+    dasm_put(Dst, 5367, Dt5(->len));
   }
-  dasm_put(Dst, 5381, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
+  dasm_put(Dst, 5375, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
   if (sse) {
-    dasm_put(Dst, 5419);
+    dasm_put(Dst, 5413);
   } else {
-    dasm_put(Dst, 5429);
+    dasm_put(Dst, 5423);
   }
-  dasm_put(Dst, 5442, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
+  dasm_put(Dst, 5436, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5477);
+    dasm_put(Dst, 5471);
   } else {
-    dasm_put(Dst, 5499);
+    dasm_put(Dst, 5493);
   }
-  dasm_put(Dst, 5519, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
+  dasm_put(Dst, 5513, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
   dasm_put(Dst, 2142);
   if (sse) {
-    dasm_put(Dst, 5622);
+    dasm_put(Dst, 5616);
   } else {
-    dasm_put(Dst, 5633);
+    dasm_put(Dst, 5627);
   }
-  dasm_put(Dst, 5641, LJ_TSTR, LJ_TISNUM, Dt5(->len));
+  dasm_put(Dst, 5635, LJ_TSTR, LJ_TISNUM, Dt5(->len));
   if (sse) {
-    dasm_put(Dst, 5671);
+    dasm_put(Dst, 5665);
   } else {
-    dasm_put(Dst, 5678);
+    dasm_put(Dst, 5672);
   }
-  dasm_put(Dst, 5690, sizeof(GCstr)-1);
-  dasm_put(Dst, 5765, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
-  dasm_put(Dst, 5824, LJ_TSTR, LJ_TISNUM);
+  dasm_put(Dst, 5684, sizeof(GCstr)-1);
+  dasm_put(Dst, 5759, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
+  dasm_put(Dst, 5818, LJ_TSTR, LJ_TISNUM);
   if (sse) {
-    dasm_put(Dst, 5845);
+    dasm_put(Dst, 5839);
   } else {
-    dasm_put(Dst, 5852);
+    dasm_put(Dst, 5846);
   }
-  dasm_put(Dst, 5864, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 5929, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 5992, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
-  dasm_put(Dst, 6063, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
-  dasm_put(Dst, 6148, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
-  dasm_put(Dst, 6218, 1+1, LJ_TTAB);
+  dasm_put(Dst, 5858, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 5923, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 5986, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
+  dasm_put(Dst, 6057, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
+  dasm_put(Dst, 6142, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
+  dasm_put(Dst, 6212, 1+1, LJ_TTAB);
   if (sse) {
-    dasm_put(Dst, 6286);
+    dasm_put(Dst, 6280);
   } else {
-    dasm_put(Dst, 6296);
+    dasm_put(Dst, 6290);
   }
   if (sse) {
-    dasm_put(Dst, 6307, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 6301, 1+1, LJ_TISNUM);
   } else {
-    dasm_put(Dst, 6364, 1+1, LJ_TISNUM);
+    dasm_put(Dst, 6358, 1+1, LJ_TISNUM);
   }
   if (sse) {
-  dasm_put(Dst, 6408, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6402, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 6456, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6450, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 6496, LJ_TISNUM);
+  dasm_put(Dst, 6490, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6523);
+  dasm_put(Dst, 6517);
   } else {
-  dasm_put(Dst, 6540);
+  dasm_put(Dst, 6534);
   }
-  dasm_put(Dst, 6553);
+  dasm_put(Dst, 6547);
   if (sse) {
-  dasm_put(Dst, 6561, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6555, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 6609, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6603, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 6496, LJ_TISNUM);
+  dasm_put(Dst, 6490, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6649);
+  dasm_put(Dst, 6643);
   } else {
-  dasm_put(Dst, 6666);
+  dasm_put(Dst, 6660);
   }
-  dasm_put(Dst, 6553);
+  dasm_put(Dst, 6547);
   if (sse) {
-  dasm_put(Dst, 6679, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6673, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 6727, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6721, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 6496, LJ_TISNUM);
+  dasm_put(Dst, 6490, LJ_TISNUM);
   if (sse) {
-  dasm_put(Dst, 6767);
+  dasm_put(Dst, 6761);
   } else {
-  dasm_put(Dst, 6784);
+  dasm_put(Dst, 6778);
   }
-  dasm_put(Dst, 6553);
+  dasm_put(Dst, 6547);
   if (sse) {
-  dasm_put(Dst, 6797, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6791, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 6845, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6839, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 6885);
+  dasm_put(Dst, 6879);
   if (sse) {
-  dasm_put(Dst, 6892, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6886, 1+1, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 6940, 1+1, LJ_TISNUM);
+  dasm_put(Dst, 6934, 1+1, LJ_TISNUM);
   }
-  dasm_put(Dst, 6980);
+  dasm_put(Dst, 6974);
   if (sse) {
-    dasm_put(Dst, 6984);
+    dasm_put(Dst, 6978);
   } else {
-    dasm_put(Dst, 6996);
+    dasm_put(Dst, 6990);
   }
-  dasm_put(Dst, 7009);
+  dasm_put(Dst, 7003);
   if (sse) {
-  dasm_put(Dst, 7020, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7014, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 7094, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7088, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
-  dasm_put(Dst, 7160);
+  dasm_put(Dst, 7154);
   if (sse) {
-  dasm_put(Dst, 7169, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7163, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 7243, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7237, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
-  dasm_put(Dst, 7309);
+  dasm_put(Dst, 7303);
   if (sse) {
-  dasm_put(Dst, 7319, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7313, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 7393, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7387, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
-  dasm_put(Dst, 7459);
+  dasm_put(Dst, 7453);
   if (sse) {
-  dasm_put(Dst, 7469, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7463, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 7543, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7537, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
-  dasm_put(Dst, 7609);
+  dasm_put(Dst, 7603);
   if (sse) {
-  dasm_put(Dst, 7618, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7612, 2+1, LJ_TISNUM, LJ_TISNUM);
   } else {
-  dasm_put(Dst, 7692, 2+1, LJ_TISNUM, LJ_TISNUM);
+  dasm_put(Dst, 7686, 2+1, LJ_TISNUM, LJ_TISNUM);
   }
-  dasm_put(Dst, 7758, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
-  dasm_put(Dst, 7836, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
-  dasm_put(Dst, 7960, Dt1(->top), Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 7752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
+  dasm_put(Dst, 7830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
+  dasm_put(Dst, 7954, Dt1(->top), Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 7998, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
+  dasm_put(Dst, 7992, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
 #endif
-  dasm_put(Dst, 8029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
-  dasm_put(Dst, 8080, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
+  dasm_put(Dst, 8023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
+  dasm_put(Dst, 8074, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
 #if LJ_HASJIT
-  dasm_put(Dst, 8146, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
+  dasm_put(Dst, 8140, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
 #endif
-  dasm_put(Dst, 8192);
+  dasm_put(Dst, 8186);
 #if LJ_HASJIT
-  dasm_put(Dst, 8024);
+  dasm_put(Dst, 8018);
 #endif
-  dasm_put(Dst, 8199);
+  dasm_put(Dst, 8193);
 #if LJ_HASJIT
-  dasm_put(Dst, 8202);
+  dasm_put(Dst, 8196);
 #endif
-  dasm_put(Dst, 8212, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 8206, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 8246);
+  dasm_put(Dst, 8240);
 #endif
-  dasm_put(Dst, 8251, Dt1(->base), Dt1(->top));
+  dasm_put(Dst, 8245, Dt1(->base), Dt1(->top));
 #if LJ_HASJIT
-  dasm_put(Dst, 8280, 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);
+  dasm_put(Dst, 8274, 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);
 #endif
-  dasm_put(Dst, 8423);
+  dasm_put(Dst, 8417);
 #if LJ_HASJIT
-  dasm_put(Dst, 8426, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
+  dasm_put(Dst, 8420, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
 #endif
-  dasm_put(Dst, 8504);
+  dasm_put(Dst, 8498);
   if (!sse) {
-  dasm_put(Dst, 8507);
+  dasm_put(Dst, 8501);
   }
-  dasm_put(Dst, 8552);
+  dasm_put(Dst, 8546);
   if (!sse) {
-  dasm_put(Dst, 8654);
+  dasm_put(Dst, 8648);
   }
-  dasm_put(Dst, 8699);
+  dasm_put(Dst, 8693);
   if (!sse) {
-  dasm_put(Dst, 8801);
+  dasm_put(Dst, 8795);
   }
-  dasm_put(Dst, 8840);
+  dasm_put(Dst, 8834);
   if (sse) {
-    dasm_put(Dst, 8945);
+    dasm_put(Dst, 8939);
   } else {
-    dasm_put(Dst, 9075);
+    dasm_put(Dst, 9069);
   }
-  dasm_put(Dst, 9122);
+  dasm_put(Dst, 9116);
   if (!sse) {
-  dasm_put(Dst, 9196);
+  dasm_put(Dst, 9190);
   if (cmov) {
-  dasm_put(Dst, 9207);
+  dasm_put(Dst, 9201);
   } else {
-  dasm_put(Dst, 9211);
+  dasm_put(Dst, 9205);
   }
-  dasm_put(Dst, 9218);
-  dasm_put(Dst, 9292);
-  dasm_put(Dst, 9392);
+  dasm_put(Dst, 9212);
+  dasm_put(Dst, 9286);
+  dasm_put(Dst, 9386);
   if (cmov) {
-  dasm_put(Dst, 9395);
+  dasm_put(Dst, 9389);
   } else {
-  dasm_put(Dst, 9399);
+  dasm_put(Dst, 9393);
   }
-  dasm_put(Dst, 9406);
+  dasm_put(Dst, 9400);
   if (cmov) {
-  dasm_put(Dst, 9207);
+  dasm_put(Dst, 9201);
   } else {
-  dasm_put(Dst, 9211);
+  dasm_put(Dst, 9205);
   }
-  dasm_put(Dst, 9424);
+  dasm_put(Dst, 9418);
   } else {
-    dasm_put(Dst, 9503);
+    dasm_put(Dst, 9497);
   }
-  dasm_put(Dst, 9506);
-  dasm_put(Dst, 9591);
-  dasm_put(Dst, 9722);
-  dasm_put(Dst, 9921);
+  dasm_put(Dst, 9500);
+  dasm_put(Dst, 9585);
+  dasm_put(Dst, 9716);
+  dasm_put(Dst, 9915);
 #if LJ_HASJIT
   if (sse) {
-    dasm_put(Dst, 9944);
-    dasm_put(Dst, 10001);
-    dasm_put(Dst, 10092);
+    dasm_put(Dst, 9938);
+    dasm_put(Dst, 9995);
+    dasm_put(Dst, 10086);
   } else {
-    dasm_put(Dst, 10134);
-    dasm_put(Dst, 10226);
+    dasm_put(Dst, 10128);
+    dasm_put(Dst, 10220);
   }
-  dasm_put(Dst, 10272);
+  dasm_put(Dst, 10266);
 #endif
-  dasm_put(Dst, 10276);
+  dasm_put(Dst, 10270);
   if (sse) {
-    dasm_put(Dst, 10279);
-    dasm_put(Dst, 10384);
-    dasm_put(Dst, 10467);
+    dasm_put(Dst, 10273);
+    dasm_put(Dst, 10378);
+    dasm_put(Dst, 10461);
   } else {
-    dasm_put(Dst, 10539);
-    dasm_put(Dst, 10622);
+    dasm_put(Dst, 10533);
+    dasm_put(Dst, 10616);
     if (cmov) {
-    dasm_put(Dst, 10677);
+    dasm_put(Dst, 10671);
     } else {
-    dasm_put(Dst, 10696);
+    dasm_put(Dst, 10690);
     }
-    dasm_put(Dst, 10272);
+    dasm_put(Dst, 10266);
   }
-  dasm_put(Dst, 10737);
+  dasm_put(Dst, 10731);
 }
 
 /* Generate the code for a single instruction. */
 static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 {
   int vk = 0;
-  dasm_put(Dst, 10791, defop);
+  dasm_put(Dst, 10785, defop);
 
   switch (op) {
 
@@ -1571,634 +1578,634 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   /* Remember: all ops branch for a true comparison, fall through otherwise. */
 
   case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
-    dasm_put(Dst, 10793, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10787, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 10814);
+      dasm_put(Dst, 10808);
     } else {
-      dasm_put(Dst, 10829);
+      dasm_put(Dst, 10823);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
     }
     switch (op) {
     case BC_ISLT:
-      dasm_put(Dst, 10852);
+      dasm_put(Dst, 10846);
       break;
     case BC_ISGE:
-      dasm_put(Dst, 10087);
+      dasm_put(Dst, 10081);
       break;
     case BC_ISLE:
-      dasm_put(Dst, 6213);
+      dasm_put(Dst, 6207);
       break;
     case BC_ISGT:
-      dasm_put(Dst, 10857);
+      dasm_put(Dst, 10851);
       break;
     default: break;  /* Shut up GCC. */
     }
-    dasm_put(Dst, 10862, -BCBIAS_J*4);
+    dasm_put(Dst, 10856, -BCBIAS_J*4);
     break;
 
   case BC_ISEQV: case BC_ISNEV:
     vk = op == BC_ISEQV;
-    dasm_put(Dst, 10895, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 10889, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 10921);
+      dasm_put(Dst, 10915);
     } else {
-      dasm_put(Dst, 10933);
+      dasm_put(Dst, 10927);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
     }
   iseqne_fp:
     if (vk) {
-      dasm_put(Dst, 10940);
+      dasm_put(Dst, 10934);
     } else {
-      dasm_put(Dst, 10949);
+      dasm_put(Dst, 10943);
     }
   iseqne_end:
     if (vk) {
-      dasm_put(Dst, 10958, -BCBIAS_J*4);
+      dasm_put(Dst, 10952, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 10973, -BCBIAS_J*4);
+      dasm_put(Dst, 10967, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     if (op == BC_ISEQV || op == BC_ISNEV) {
-      dasm_put(Dst, 10988, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
+      dasm_put(Dst, 10982, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
       if (vk) {
-	dasm_put(Dst, 11046);
+	dasm_put(Dst, 11040);
       } else {
-	dasm_put(Dst, 11050);
+	dasm_put(Dst, 11044);
       }
-      dasm_put(Dst, 11056);
+      dasm_put(Dst, 11050);
     }
     break;
   case BC_ISEQS: case BC_ISNES:
     vk = op == BC_ISEQS;
-    dasm_put(Dst, 11061, LJ_TSTR);
+    dasm_put(Dst, 11055, LJ_TSTR);
   iseqne_test:
     if (vk) {
-      dasm_put(Dst, 10944);
+      dasm_put(Dst, 10938);
     } else {
-      dasm_put(Dst, 2835);
+      dasm_put(Dst, 2829);
     }
     goto iseqne_end;
   case BC_ISEQN: case BC_ISNEN:
     vk = op == BC_ISEQN;
-    dasm_put(Dst, 11084, LJ_TISNUM);
+    dasm_put(Dst, 11078, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11098);
+      dasm_put(Dst, 11092);
     } else {
-      dasm_put(Dst, 11110);
+      dasm_put(Dst, 11104);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
     }
     goto iseqne_fp;
   case BC_ISEQP: case BC_ISNEP:
     vk = op == BC_ISEQP;
-    dasm_put(Dst, 11117);
+    dasm_put(Dst, 11111);
     goto iseqne_test;
 
   /* -- Unary test and copy ops ------------------------------------------- */
 
   case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
-    dasm_put(Dst, 11128, LJ_TISTRUECOND);
+    dasm_put(Dst, 11122, LJ_TISTRUECOND);
     if (op == BC_IST || op == BC_ISTC) {
-      dasm_put(Dst, 11140);
+      dasm_put(Dst, 11134);
     } else {
-      dasm_put(Dst, 11145);
+      dasm_put(Dst, 11139);
     }
     if (op == BC_ISTC || op == BC_ISFC) {
-      dasm_put(Dst, 11150);
+      dasm_put(Dst, 11144);
     }
-    dasm_put(Dst, 11161, -BCBIAS_J*4);
+    dasm_put(Dst, 11155, -BCBIAS_J*4);
     break;
 
   /* -- Unary ops --------------------------------------------------------- */
 
   case BC_MOV:
-    dasm_put(Dst, 11192);
+    dasm_put(Dst, 11186);
     break;
   case BC_NOT:
-    dasm_put(Dst, 11225, LJ_TISTRUECOND, LJ_TTRUE);
+    dasm_put(Dst, 11219, LJ_TISTRUECOND, LJ_TTRUE);
     break;
   case BC_UNM:
-    dasm_put(Dst, 11260, LJ_TISNUM);
+    dasm_put(Dst, 11254, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 11271);
+      dasm_put(Dst, 11265);
     } else {
-      dasm_put(Dst, 11301);
+      dasm_put(Dst, 11295);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_LEN:
-    dasm_put(Dst, 11310, LJ_TSTR);
+    dasm_put(Dst, 11304, LJ_TSTR);
     if (sse) {
-      dasm_put(Dst, 11324, Dt5(->len));
+      dasm_put(Dst, 11318, Dt5(->len));
     } else {
-      dasm_put(Dst, 11342, Dt5(->len));
+      dasm_put(Dst, 11336, Dt5(->len));
     }
-    dasm_put(Dst, 11351, LJ_TTAB);
+    dasm_put(Dst, 11345, LJ_TTAB);
     if (sse) {
-      dasm_put(Dst, 11391);
+      dasm_put(Dst, 11385);
     } else {
-      dasm_put(Dst, 11400);
+      dasm_put(Dst, 11394);
     }
-    dasm_put(Dst, 11410);
+    dasm_put(Dst, 11404);
     break;
 
   /* -- Binary ops -------------------------------------------------------- */
 
 
   case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11440);
+    dasm_put(Dst, 11434);
     } else {
-    dasm_put(Dst, 11454);
+    dasm_put(Dst, 11448);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11474);
+    dasm_put(Dst, 11468);
     } else {
-    dasm_put(Dst, 11488);
+    dasm_put(Dst, 11482);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11518);
+    dasm_put(Dst, 11512);
     } else {
-    dasm_put(Dst, 11532);
+    dasm_put(Dst, 11526);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11540);
+    dasm_put(Dst, 11534);
     } else {
-    dasm_put(Dst, 11554);
+    dasm_put(Dst, 11548);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11562);
+    dasm_put(Dst, 11556);
     } else {
-    dasm_put(Dst, 11576);
+    dasm_put(Dst, 11570);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11584);
+    dasm_put(Dst, 11578);
     } else {
-    dasm_put(Dst, 11598);
+    dasm_put(Dst, 11592);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_MULVN: case BC_MULNV: case BC_MULVV:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11606);
+    dasm_put(Dst, 11600);
     } else {
-    dasm_put(Dst, 11620);
+    dasm_put(Dst, 11614);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11628);
+    dasm_put(Dst, 11622);
     } else {
-    dasm_put(Dst, 11642);
+    dasm_put(Dst, 11636);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11650);
+    dasm_put(Dst, 11644);
     } else {
-    dasm_put(Dst, 11664);
+    dasm_put(Dst, 11658);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11672);
+    dasm_put(Dst, 11666);
     } else {
-    dasm_put(Dst, 11686);
+    dasm_put(Dst, 11680);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11694);
+    dasm_put(Dst, 11688);
     } else {
-    dasm_put(Dst, 11708);
+    dasm_put(Dst, 11702);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11716);
+    dasm_put(Dst, 11710);
     } else {
-    dasm_put(Dst, 11730);
+    dasm_put(Dst, 11724);
     }
       break;
     }
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_MODVN:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11738);
+    dasm_put(Dst, 11732);
     } else {
-    dasm_put(Dst, 11752);
+    dasm_put(Dst, 11746);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11760);
+    dasm_put(Dst, 11754);
     } else {
-    dasm_put(Dst, 11774);
+    dasm_put(Dst, 11768);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11782);
+    dasm_put(Dst, 11776);
     } else {
-    dasm_put(Dst, 11796);
+    dasm_put(Dst, 11790);
     }
       break;
     }
-    dasm_put(Dst, 11804);
+    dasm_put(Dst, 11798);
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_MODNV: case BC_MODVV:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11738);
+    dasm_put(Dst, 11732);
     } else {
-    dasm_put(Dst, 11752);
+    dasm_put(Dst, 11746);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11760);
+    dasm_put(Dst, 11754);
     } else {
-    dasm_put(Dst, 11774);
+    dasm_put(Dst, 11768);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11782);
+    dasm_put(Dst, 11776);
     } else {
-    dasm_put(Dst, 11796);
+    dasm_put(Dst, 11790);
     }
       break;
     }
-    dasm_put(Dst, 11810);
+    dasm_put(Dst, 11804);
     break;
   case BC_POW:
-    dasm_put(Dst, 11420);
+    dasm_put(Dst, 11414);
     vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
     switch (vk) {
     case 0:
-    dasm_put(Dst, 11428, LJ_TISNUM);
+    dasm_put(Dst, 11422, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11738);
+    dasm_put(Dst, 11732);
     } else {
-    dasm_put(Dst, 11752);
+    dasm_put(Dst, 11746);
     }
       break;
     case 1:
-    dasm_put(Dst, 11462, LJ_TISNUM);
+    dasm_put(Dst, 11456, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11760);
+    dasm_put(Dst, 11754);
     } else {
-    dasm_put(Dst, 11774);
+    dasm_put(Dst, 11768);
     }
       break;
     default:
-    dasm_put(Dst, 11496, LJ_TISNUM, LJ_TISNUM);
+    dasm_put(Dst, 11490, LJ_TISNUM, LJ_TISNUM);
     if (sse) {
-    dasm_put(Dst, 11782);
+    dasm_put(Dst, 11776);
     } else {
-    dasm_put(Dst, 11796);
+    dasm_put(Dst, 11790);
     }
       break;
     }
-    dasm_put(Dst, 11815);
+    dasm_put(Dst, 11809);
     if (sse) {
-    dasm_put(Dst, 11294);
+    dasm_put(Dst, 11288);
     } else {
-    dasm_put(Dst, 11306);
+    dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
 
   case BC_CAT:
-    dasm_put(Dst, 11819, Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 11813, Dt1(->base), Dt1(->base));
     break;
 
   /* -- Constant ops ------------------------------------------------------ */
 
   case BC_KSTR:
-    dasm_put(Dst, 11913, LJ_TSTR);
+    dasm_put(Dst, 11907, LJ_TSTR);
     break;
   case BC_KSHORT:
     if (sse) {
-      dasm_put(Dst, 11946);
+      dasm_put(Dst, 11940);
     } else {
-      dasm_put(Dst, 11961);
+      dasm_put(Dst, 11955);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_KNUM:
     if (sse) {
-      dasm_put(Dst, 11969);
+      dasm_put(Dst, 11963);
     } else {
-      dasm_put(Dst, 11982);
+      dasm_put(Dst, 11976);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_KPRI:
-    dasm_put(Dst, 11989);
+    dasm_put(Dst, 11983);
     break;
   case BC_KNIL:
-    dasm_put(Dst, 12015, LJ_TNIL);
+    dasm_put(Dst, 12009, LJ_TNIL);
     break;
 
   /* -- Upvalue and function ops ------------------------------------------ */
 
   case BC_UGET:
-    dasm_put(Dst, 12061, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 12055, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_USETV:
 #define TV2MARKOFS \
  ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
-    dasm_put(Dst, 12105, 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);
-    dasm_put(Dst, 12195);
+    dasm_put(Dst, 12099, 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);
+    dasm_put(Dst, 12189);
     break;
 #undef TV2MARKOFS
   case BC_USETS:
-    dasm_put(Dst, 12207, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
+    dasm_put(Dst, 12201, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
     break;
   case BC_USETN:
-    dasm_put(Dst, 12298);
+    dasm_put(Dst, 12292);
     if (sse) {
-      dasm_put(Dst, 12303);
+      dasm_put(Dst, 12297);
     } else {
-      dasm_put(Dst, 11113);
+      dasm_put(Dst, 11107);
     }
-    dasm_put(Dst, 12310, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 12304, offsetof(GCfuncL, uvptr), DtA(->v));
     if (sse) {
-      dasm_put(Dst, 12319);
+      dasm_put(Dst, 12313);
     } else {
-      dasm_put(Dst, 12325);
+      dasm_put(Dst, 12319);
     }
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
   case BC_USETP:
-    dasm_put(Dst, 12328, offsetof(GCfuncL, uvptr), DtA(->v));
+    dasm_put(Dst, 12322, offsetof(GCfuncL, uvptr), DtA(->v));
     break;
   case BC_UCLO:
-    dasm_put(Dst, 12365, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 12359, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
     break;
 
   case BC_FNEW:
-    dasm_put(Dst, 12419, Dt1(->base), Dt1(->base), LJ_TFUNC);
+    dasm_put(Dst, 12413, Dt1(->base), Dt1(->base), LJ_TFUNC);
     break;
 
   /* -- Table ops --------------------------------------------------------- */
 
   case BC_TNEW:
-    dasm_put(Dst, 12490, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 12484, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
     break;
   case BC_TDUP:
-    dasm_put(Dst, 12616, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
+    dasm_put(Dst, 12610, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
     break;
 
   case BC_GGET:
-    dasm_put(Dst, 12708, Dt7(->env));
+    dasm_put(Dst, 12702, Dt7(->env));
     break;
   case BC_GSET:
-    dasm_put(Dst, 12726, Dt7(->env));
+    dasm_put(Dst, 12720, Dt7(->env));
     break;
 
   case BC_TGETV:
-    dasm_put(Dst, 12744, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 12738, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 12777);
+      dasm_put(Dst, 12771);
     } else {
-      dasm_put(Dst, 12798);
+      dasm_put(Dst, 12792);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
-      dasm_put(Dst, 2538);
+      dasm_put(Dst, 2539);
     }
-    dasm_put(Dst, 12808, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 12896, LJ_TNIL, LJ_TSTR);
+    dasm_put(Dst, 12802, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 12890, LJ_TNIL, LJ_TSTR);
     break;
   case BC_TGETS:
-    dasm_put(Dst, 12925, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 13013, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 12919, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 13007, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
     break;
   case BC_TGETB:
-    dasm_put(Dst, 13083, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
-    dasm_put(Dst, 13182, LJ_TNIL);
+    dasm_put(Dst, 13077, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
+    dasm_put(Dst, 13176, LJ_TNIL);
     break;
 
   case BC_TSETV:
-    dasm_put(Dst, 13199, LJ_TTAB, LJ_TISNUM);
+    dasm_put(Dst, 13193, LJ_TTAB, LJ_TISNUM);
     if (sse) {
-      dasm_put(Dst, 12777);
+      dasm_put(Dst, 12771);
     } else {
-      dasm_put(Dst, 12798);
+      dasm_put(Dst, 12792);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
-      dasm_put(Dst, 2538);
+      dasm_put(Dst, 2539);
     }
-    dasm_put(Dst, 13232, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
-    dasm_put(Dst, 13315, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 13226, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
+    dasm_put(Dst, 13309, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
   case BC_TSETS:
-    dasm_put(Dst, 13377, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
-    dasm_put(Dst, 13452, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
-    dasm_put(Dst, 13544, 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));
+    dasm_put(Dst, 13371, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
+    dasm_put(Dst, 13446, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
+    dasm_put(Dst, 13538, 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));
     break;
   case BC_TSETB:
-    dasm_put(Dst, 13640, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
-    dasm_put(Dst, 13738, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 13634, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
+    dasm_put(Dst, 13732, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   case BC_TSETM:
-    dasm_put(Dst, 13784, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
-    dasm_put(Dst, 13933, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
+    dasm_put(Dst, 13778, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
+    dasm_put(Dst, 13927, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
     break;
 
   /* -- Calls and vararg handling ----------------------------------------- */
 
   case BC_CALL: case BC_CALLM:
-    dasm_put(Dst, 11424);
+    dasm_put(Dst, 11418);
     if (op == BC_CALLM) {
-      dasm_put(Dst, 13951);
+      dasm_put(Dst, 13945);
     }
-    dasm_put(Dst, 13956, LJ_TFUNC, Dt7(->pc));
+    dasm_put(Dst, 13950, LJ_TFUNC, Dt7(->pc));
     break;
 
   case BC_CALLMT:
-    dasm_put(Dst, 13951);
+    dasm_put(Dst, 13945);
     break;
   case BC_CALLT:
-    dasm_put(Dst, 13997, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
-    dasm_put(Dst, 14115, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
+    dasm_put(Dst, 13991, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
+    dasm_put(Dst, 14109, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
     break;
 
   case BC_ITERC:
-    dasm_put(Dst, 14185, LJ_TFUNC, 2+1, Dt7(->pc));
+    dasm_put(Dst, 14179, LJ_TFUNC, 2+1, Dt7(->pc));
     break;
 
   case BC_ITERN:
 #if LJ_HASJIT
 #endif
-    dasm_put(Dst, 14265, Dt6(->asize), Dt6(->array), LJ_TNIL);
+    dasm_put(Dst, 14259, Dt6(->asize), Dt6(->array), LJ_TNIL);
     if (sse) {
-      dasm_put(Dst, 14311);
+      dasm_put(Dst, 14305);
     } else {
-      dasm_put(Dst, 14317);
+      dasm_put(Dst, 14311);
     }
-    dasm_put(Dst, 14323);
+    dasm_put(Dst, 14317);
     if (sse) {
-      dasm_put(Dst, 11294);
+      dasm_put(Dst, 11288);
     } else {
-      dasm_put(Dst, 11306);
+      dasm_put(Dst, 11300);
     }
-    dasm_put(Dst, 14342, -BCBIAS_J*4);
+    dasm_put(Dst, 14336, -BCBIAS_J*4);
     if (!sse) {
-      dasm_put(Dst, 14393);
+      dasm_put(Dst, 14387);
     }
-    dasm_put(Dst, 14399, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
-    dasm_put(Dst, 14474);
+    dasm_put(Dst, 14393, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key.gcr), DtB(->key.it), DtB(->val.gcr), DtB(->val.it));
+    dasm_put(Dst, 14468);
     break;
 
   case BC_ISNEXT:
-    dasm_put(Dst, 14482, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
+    dasm_put(Dst, 14476, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
     break;
 
   case BC_VARG:
-    dasm_put(Dst, 14581, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
-    dasm_put(Dst, 14745, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 14575, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
+    dasm_put(Dst, 14739, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
     break;
 
   /* -- Returns ----------------------------------------------------------- */
 
   case BC_RETM:
-    dasm_put(Dst, 13951);
+    dasm_put(Dst, 13945);
     break;
 
   case BC_RET: case BC_RET0: case BC_RET1:
     if (op != BC_RET0) {
-      dasm_put(Dst, 14816);
+      dasm_put(Dst, 14810);
     }
-    dasm_put(Dst, 14820, FRAME_TYPE);
+    dasm_put(Dst, 14814, FRAME_TYPE);
     switch (op) {
     case BC_RET:
-      dasm_put(Dst, 14839);
+      dasm_put(Dst, 14833);
       break;
     case BC_RET1:
-      dasm_put(Dst, 14897);
+      dasm_put(Dst, 14891);
       /* fallthrough */
     case BC_RET0:
-      dasm_put(Dst, 14913);
+      dasm_put(Dst, 14907);
     default:
       break;
     }
-    dasm_put(Dst, 14924, Dt7(->pc), PC2PROTO(k));
+    dasm_put(Dst, 14918, Dt7(->pc), PC2PROTO(k));
     if (op == BC_RET) {
-      dasm_put(Dst, 14966, LJ_TNIL);
+      dasm_put(Dst, 14960, LJ_TNIL);
     } else {
-      dasm_put(Dst, 14975, LJ_TNIL);
+      dasm_put(Dst, 14969, LJ_TNIL);
     }
-    dasm_put(Dst, 14982, -FRAME_VARG, FRAME_TYPEP);
+    dasm_put(Dst, 14976, -FRAME_VARG, FRAME_TYPEP);
     if (op != BC_RET0) {
-      dasm_put(Dst, 15006);
+      dasm_put(Dst, 15000);
     }
-    dasm_put(Dst, 4710);
+    dasm_put(Dst, 4704);
     break;
 
   /* -- Loops and branches ------------------------------------------------ */
@@ -2206,7 +2213,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FORL:
 #if LJ_HASJIT
-    dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2218,57 +2225,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
   case BC_FORI:
   case BC_IFORL:
     vk = (op == BC_IFORL || op == BC_JFORL);
-    dasm_put(Dst, 15031);
+    dasm_put(Dst, 15025);
     if (!vk) {
-      dasm_put(Dst, 15035, LJ_TISNUM, LJ_TISNUM);
+      dasm_put(Dst, 15029, LJ_TISNUM, LJ_TISNUM);
     }
-    dasm_put(Dst, 15054);
+    dasm_put(Dst, 15048);
     if (!vk) {
-      dasm_put(Dst, 15058, LJ_TISNUM);
+      dasm_put(Dst, 15052, LJ_TISNUM);
     }
     if (sse) {
-      dasm_put(Dst, 15067);
+      dasm_put(Dst, 15061);
       if (vk) {
-	dasm_put(Dst, 15079);
+	dasm_put(Dst, 15073);
       } else {
-	dasm_put(Dst, 15098);
+	dasm_put(Dst, 15092);
       }
-      dasm_put(Dst, 15103);
+      dasm_put(Dst, 15097);
     } else {
-      dasm_put(Dst, 15116);
+      dasm_put(Dst, 15110);
       if (vk) {
-	dasm_put(Dst, 15122);
+	dasm_put(Dst, 15116);
       } else {
-	dasm_put(Dst, 15138);
+	dasm_put(Dst, 15132);
       }
-      dasm_put(Dst, 15146);
+      dasm_put(Dst, 15140);
       if (cmov) {
-      dasm_put(Dst, 10839);
+      dasm_put(Dst, 10833);
       } else {
-      dasm_put(Dst, 10845);
+      dasm_put(Dst, 10839);
       }
       if (!cmov) {
-	dasm_put(Dst, 15151);
+	dasm_put(Dst, 15145);
       }
     }
     if (op == BC_FORI) {
-      dasm_put(Dst, 15157, -BCBIAS_J*4);
+      dasm_put(Dst, 15151, -BCBIAS_J*4);
     } else if (op == BC_JFORI) {
-      dasm_put(Dst, 15167, -BCBIAS_J*4, BC_JLOOP);
+      dasm_put(Dst, 15161, -BCBIAS_J*4, BC_JLOOP);
     } else if (op == BC_IFORL) {
-      dasm_put(Dst, 15181, -BCBIAS_J*4);
+      dasm_put(Dst, 15175, -BCBIAS_J*4);
     } else {
-      dasm_put(Dst, 15177, BC_JLOOP);
+      dasm_put(Dst, 15171, BC_JLOOP);
     }
-    dasm_put(Dst, 10874);
+    dasm_put(Dst, 10868);
     if (sse) {
-      dasm_put(Dst, 15191);
+      dasm_put(Dst, 15185);
     }
     break;
 
   case BC_ITERL:
 #if LJ_HASJIT
-    dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
@@ -2277,33 +2284,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IITERL:
-    dasm_put(Dst, 15202, LJ_TNIL);
+    dasm_put(Dst, 15196, LJ_TNIL);
     if (op == BC_JITERL) {
-      dasm_put(Dst, 15217, BC_JLOOP);
+      dasm_put(Dst, 15211, BC_JLOOP);
     } else {
-      dasm_put(Dst, 15231, -BCBIAS_J*4);
+      dasm_put(Dst, 15225, -BCBIAS_J*4);
     }
-    dasm_put(Dst, 11171);
+    dasm_put(Dst, 11165);
     break;
 
   case BC_LOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 15010, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 15004, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
     break;
 
   case BC_ILOOP:
-    dasm_put(Dst, 10876);
+    dasm_put(Dst, 10870);
     break;
 
   case BC_JLOOP:
 #if LJ_HASJIT
-    dasm_put(Dst, 15247, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
+    dasm_put(Dst, 15241, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
 #endif
     break;
 
   case BC_JMP:
-    dasm_put(Dst, 15270, -BCBIAS_J*4);
+    dasm_put(Dst, 15264, -BCBIAS_J*4);
     break;
 
   /* -- Function headers -------------------------------------------------- */
@@ -2317,7 +2324,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
 
   case BC_FUNCF:
 #if LJ_HASJIT
-    dasm_put(Dst, 15294, HOTCOUNT_PCMASK, GG_DISP2HOT);
+    dasm_put(Dst, 15288, HOTCOUNT_PCMASK, GG_DISP2HOT);
 #endif
   case BC_FUNCV:  /* NYI: compiled vararg functions. */
     break;
@@ -2327,47 +2334,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
     break;
 #endif
   case BC_IFUNCF:
-    dasm_put(Dst, 15315, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
+    dasm_put(Dst, 15309, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
     if (op == BC_JFUNCF) {
-      dasm_put(Dst, 15345, BC_JLOOP);
+      dasm_put(Dst, 15339, BC_JLOOP);
     } else {
-      dasm_put(Dst, 10876);
+      dasm_put(Dst, 10870);
     }
-    dasm_put(Dst, 15354, LJ_TNIL);
+    dasm_put(Dst, 15348, LJ_TNIL);
     break;
 
   case BC_JFUNCV:
 #if !LJ_HASJIT
     break;
 #endif
-    dasm_put(Dst, 10274);
+    dasm_put(Dst, 10268);
     break;  /* NYI: compiled vararg functions. */
 
   case BC_IFUNCV:
-    dasm_put(Dst, 15376, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
+    dasm_put(Dst, 15370, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
     if (op == BC_JFUNCV) {
-      dasm_put(Dst, 15345, BC_JLOOP);
+      dasm_put(Dst, 15339, BC_JLOOP);
     } else {
-      dasm_put(Dst, 15467, -4+PC2PROTO(k));
+      dasm_put(Dst, 15461, -4+PC2PROTO(k));
     }
-    dasm_put(Dst, 15489, LJ_TNIL);
+    dasm_put(Dst, 15483, LJ_TNIL);
     break;
 
   case BC_FUNCC:
   case BC_FUNCCW:
-    dasm_put(Dst, 15511, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
+    dasm_put(Dst, 15505, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 15540);
+      dasm_put(Dst, 15534);
     } else {
-      dasm_put(Dst, 15544);
+      dasm_put(Dst, 15538);
     }
-    dasm_put(Dst, 15552, DISPATCH_GL(vmstate), ~LJ_VMST_C);
+    dasm_put(Dst, 15546, DISPATCH_GL(vmstate), ~LJ_VMST_C);
     if (op == BC_FUNCC) {
-      dasm_put(Dst, 15561);
+      dasm_put(Dst, 15555);
     } else {
-      dasm_put(Dst, 15565, DISPATCH_GL(wrapf));
+      dasm_put(Dst, 15559, DISPATCH_GL(wrapf));
     }
-    dasm_put(Dst, 15570, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
+    dasm_put(Dst, 15564, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
     break;
 
   /* ---------------------------------------------------------------------- */
@@ -2395,7 +2402,7 @@ static int build_backend(BuildCtx *ctx)
 
   build_subroutines(ctx, cmov, sse);
 
-  dasm_put(Dst, 15595);
+  dasm_put(Dst, 15589);
   for (op = 0; op < BC__MAX; op++)
     build_ins(ctx, (BCOp)op, op, cmov, sse);
 
diff --git a/src/lib_base.c b/src/lib_base.c
index aa55faba..c7ebafb6 100644
--- a/src/lib_base.c
+++ b/src/lib_base.c
@@ -249,6 +249,7 @@ LJLIB_ASM(next)
   return FFH_UNREACHABLE;
 }
 
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
 static int ffh_pairs(lua_State *L, MMS mm)
 {
   TValue *o = lj_lib_checkany(L, 1);
@@ -264,6 +265,9 @@ static int ffh_pairs(lua_State *L, MMS mm)
     return FFH_RES(3);
   }
 }
+#else
+#define ffh_pairs(L, mm)	(lj_lib_checktab(L, 1), FFH_UNREACHABLE)
+#endif
 
 LJLIB_PUSH(lastcl)
 LJLIB_ASM(pairs)
diff --git a/src/lj_obj.h b/src/lj_obj.h
index ea5c69c5..cbb25675 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -410,6 +410,12 @@ enum {
 #define setvmstate(g, st)	((g)->vmstate = ~LJ_VMST_##st)
 
 /* Metamethods. */
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+#define MMDEF_52(_) _(pairs) _(ipairs)
+#else
+#define MMDEF_52(_)
+#endif
+
 #define MMDEF(_) \
   _(index) _(newindex) _(gc) _(mode) _(eq) \
   /* Only the above (fast) metamethods are negative cached (max. 8). */ \
@@ -417,7 +423,7 @@ enum {
   /* The following must be in ORDER ARITH. */ \
   _(add) _(sub) _(mul) _(div) _(mod) _(pow) _(unm) \
   /* The following are used in the standard libraries. */ \
-  _(metatable) _(tostring) _(pairs) _(ipairs)
+  _(metatable) _(tostring) MMDEF_52(_)
 
 typedef enum {
 #define MMENUM(name)	MM_##name,
diff --git a/src/lj_record.c b/src/lj_record.c
index 4ff208f8..58b02a43 100644
--- a/src/lj_record.c
+++ b/src/lj_record.c
@@ -1426,7 +1426,10 @@ static void LJ_FASTCALL recff_ipairs_aux(jit_State *J, RecordFFData *rd)
 
 static void LJ_FASTCALL recff_ipairs(jit_State *J, RecordFFData *rd)
 {
-  if (!recff_metacall(J, rd, MM_ipairs)) {
+#ifdef LUAJIT_ENABLE_LUA52COMPAT
+  if (!recff_metacall(J, rd, MM_ipairs))
+#endif
+  {
     TRef tab = J->base[0];
     if (tref_istab(tab)) {
       J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0]));
-- 
cgit v1.2.3-55-g6feb