cubing 0.58.1 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/scramble.js +1 -1
- package/dist/bin/scramble.js.map +2 -2
- package/dist/lib/cubing/alg/index.d.ts +2 -2
- package/dist/lib/cubing/alg/index.js +1 -1
- package/dist/lib/cubing/bluetooth/index.d.ts +3 -3
- package/dist/lib/cubing/bluetooth/index.js +12 -9
- package/dist/lib/cubing/bluetooth/index.js.map +2 -2
- package/dist/lib/cubing/{bluetooth-puzzle-BIDZuWiS.d.ts → bluetooth-puzzle-CweI5h6j.d.ts} +1 -1
- package/dist/lib/cubing/chunks/{big-puzzle-orientation-CQUVRARW.js → big-puzzle-orientation-3GQ3L26S.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-3MMNI5O2.js → chunk-7D7ZUWUK.js} +8 -5
- package/dist/lib/cubing/chunks/{chunk-3MMNI5O2.js.map → chunk-7D7ZUWUK.js.map} +2 -2
- package/dist/lib/cubing/chunks/{chunk-BVZN7IXO.js → chunk-ABQAUY7H.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-7M7ZAS5G.js → chunk-AVOUJS6N.js} +3 -3
- package/dist/lib/cubing/chunks/chunk-AVOUJS6N.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-YICS6Q2F.js → chunk-I4OWC23M.js} +68 -84
- package/dist/lib/cubing/chunks/chunk-I4OWC23M.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-LII4MJEB.js → chunk-OJI4YUWF.js} +6 -6
- package/dist/lib/cubing/chunks/{chunk-CZGLT7LF.js → chunk-PSQEELP4.js} +2 -2
- package/dist/lib/cubing/chunks/{chunk-SR66SYE2.js → chunk-QDEGPHPS.js} +2 -2
- package/dist/lib/cubing/chunks/chunk-QDEGPHPS.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-Z4CZPP2W.js → chunk-RUSWM2KK.js} +12 -4
- package/dist/lib/cubing/chunks/chunk-RUSWM2KK.js.map +7 -0
- package/dist/lib/cubing/chunks/{chunk-ZVLDZYZD.js → chunk-UD4LT3FY.js} +3 -3
- package/dist/lib/cubing/chunks/{chunk-53UENZ7A.js → chunk-V7MAXDP4.js} +5 -5
- package/dist/lib/cubing/chunks/{chunk-53UENZ7A.js.map → chunk-V7MAXDP4.js.map} +1 -1
- package/dist/lib/cubing/chunks/{chunk-WI3YFILD.js → chunk-WIZJQ7QS.js} +4 -4
- package/dist/lib/cubing/chunks/{inside-ICFSQUAC.js → inside-4ARWPJBB.js} +35 -16
- package/dist/lib/cubing/chunks/inside-4ARWPJBB.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-5AC7RH72.js → search-dynamic-sgs-side-events-SYC27DSG.js} +6 -6
- package/dist/lib/cubing/chunks/{search-dynamic-sgs-unofficial-INRHQCBE.js → search-dynamic-sgs-unofficial-QGGV4PCJ.js} +6 -6
- package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-QGGV4PCJ.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-3x3x3-QHRLSVAC.js → search-dynamic-solve-3x3x3-B2L4IN34.js} +1 -1
- package/dist/lib/cubing/chunks/search-dynamic-solve-3x3x3-B2L4IN34.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-VNSEVV7B.js → search-dynamic-solve-4x4x4-AS5AIKBC.js} +7 -7
- package/dist/lib/cubing/chunks/{search-dynamic-solve-fto-BHX3R6ZT.js → search-dynamic-solve-fto-HZREG6ZH.js} +8 -8
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-HZREG6ZH.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-kilominx-SAJCQILQ.js → search-dynamic-solve-kilominx-GCNVEBDJ.js} +2 -2
- package/dist/lib/cubing/chunks/search-dynamic-solve-kilominx-GCNVEBDJ.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-master_tetraminx-3D4MBF3V.js → search-dynamic-solve-master_tetraminx-GIS7T5B7.js} +1 -1
- package/dist/lib/cubing/chunks/search-dynamic-solve-master_tetraminx-GIS7T5B7.js.map +7 -0
- package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
- package/dist/lib/cubing/chunks/search-worker-entry.js.map +2 -2
- package/dist/lib/cubing/chunks/{twisty-dynamic-3d-CCZCZBPC.js → twisty-dynamic-3d-SIRF3JVR.js} +6 -6
- package/dist/lib/cubing/chunks/twsearch-SXB7BAMF.js +433 -0
- package/dist/lib/cubing/chunks/twsearch-SXB7BAMF.js.map +7 -0
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-2J7XXRGI-WOU3FVAE.js +10 -0
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-2J7XXRGI-WOU3FVAE.js.map +7 -0
- package/dist/lib/cubing/{index-1uDGfzzz.d.ts → index-DsFKu-dM.d.ts} +5 -2
- package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
- package/dist/lib/cubing/kpuzzle/index.js +2 -2
- package/dist/lib/cubing/notation/index.d.ts +1 -1
- package/dist/lib/cubing/notation/index.js +4 -4
- package/dist/lib/cubing/protocol/index.d.ts +1 -1
- package/dist/lib/cubing/protocol/index.js +4 -4
- package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
- package/dist/lib/cubing/puzzle-geometry/index.js +1 -1
- package/dist/lib/cubing/puzzles/index.d.ts +1 -1
- package/dist/lib/cubing/puzzles/index.js +4 -4
- package/dist/lib/cubing/scramble/index.d.ts +2 -2
- package/dist/lib/cubing/scramble/index.js +8 -6
- package/dist/lib/cubing/search/index.d.ts +2 -2
- package/dist/lib/cubing/search/index.js +6 -6
- package/dist/lib/cubing/stream/index.d.ts +2 -2
- package/dist/lib/cubing/stream/index.js +1 -1
- package/dist/lib/cubing/twisty/index.d.ts +2 -2
- package/dist/lib/cubing/twisty/index.js +10 -10
- package/dist/lib/cubing/twisty/index.js.map +2 -2
- package/experimental-json-schema/kpuzzle/KPatternData.schema.json +1 -1
- package/experimental-json-schema/kpuzzle/KPuzzleDefinition.schema.json +1 -1
- package/experimental-json-schema/kpuzzle/KTransformationData.schema.json +1 -1
- package/package.json +9 -10
- package/dist/lib/cubing/chunks/chunk-7M7ZAS5G.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-SR66SYE2.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-YICS6Q2F.js.map +0 -7
- package/dist/lib/cubing/chunks/chunk-Z4CZPP2W.js.map +0 -7
- package/dist/lib/cubing/chunks/inside-ICFSQUAC.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-INRHQCBE.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-3x3x3-QHRLSVAC.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-BHX3R6ZT.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-kilominx-SAJCQILQ.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-master_tetraminx-3D4MBF3V.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch-T3W5T5WE.js +0 -481
- package/dist/lib/cubing/chunks/twsearch-T3W5T5WE.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js +0 -10
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-Q5AYUFKA-AHAAY6HU.js.map +0 -7
- package/dist/lib/cubing/{PuzzleLoader-BskBhUgu.d.ts → KPattern-DEaZMwD9.d.ts} +20 -20
- /package/dist/lib/cubing/chunks/{big-puzzle-orientation-CQUVRARW.js.map → big-puzzle-orientation-3GQ3L26S.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-BVZN7IXO.js.map → chunk-ABQAUY7H.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-LII4MJEB.js.map → chunk-OJI4YUWF.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-CZGLT7LF.js.map → chunk-PSQEELP4.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-ZVLDZYZD.js.map → chunk-UD4LT3FY.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{chunk-WI3YFILD.js.map → chunk-WIZJQ7QS.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-sgs-side-events-5AC7RH72.js.map → search-dynamic-sgs-side-events-SYC27DSG.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-VNSEVV7B.js.map → search-dynamic-solve-4x4x4-AS5AIKBC.js.map} +0 -0
- /package/dist/lib/cubing/chunks/{twisty-dynamic-3d-CCZCZBPC.js.map → twisty-dynamic-3d-SIRF3JVR.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cubing/vendor/mit/cs0x7f/min2phase/3x3x3-min2phase.js"],
|
|
4
|
+
"sourcesContent": ["// @ts-nocheck\n\nvar $intern_3 = { 3: 1 };\nvar $intern_9 = 4194303;\nvar $intern_10 = 1048575;\nvar $intern_11 = 524288;\nvar $intern_20 = 65535;\nvar $intern_26 = { 11: 1, 3: 1 };\nvar $intern_27 = { 17: 1, 3: 1 };\nvar $intern_28 = 14540032;\nvar $intern_29 = 286331153;\nvar $intern_30 = { 10: 1, 3: 1 };\nvar _;\nvar prototypesByTypeId_0 = {};\nfunction typeMarkerFn() {}\n\nfunction portableObjCreate(obj) {\n function F() {}\n\n F.prototype = obj || {};\n return new F();\n}\n\nfunction maybeGetClassLiteralFromPlaceHolder_0(entry) {\n return entry instanceof Array ? entry[0] : null;\n}\n\nfunction defineClass(typeId, superTypeId, castableTypeMap) {\n var prototypesByTypeId = prototypesByTypeId_0;\n var createSubclassPrototype = createSubclassPrototype_0;\n var maybeGetClassLiteralFromPlaceHolder =\n maybeGetClassLiteralFromPlaceHolder_0;\n var prototype_0 = prototypesByTypeId[typeId];\n var clazz = maybeGetClassLiteralFromPlaceHolder(prototype_0);\n if (prototype_0 && !clazz) {\n _ = prototype_0;\n } else {\n _ = prototypesByTypeId[typeId] = !superTypeId\n ? {}\n : createSubclassPrototype(superTypeId);\n _.castableTypeMap$ = castableTypeMap;\n _.constructor = _;\n !superTypeId && (_.typeMarker$ = typeMarkerFn);\n }\n for (let i = 3; i < arguments.length; ++i) {\n // biome-ignore lint/style/noArguments: Legacy code\n arguments[i].prototype = _;\n }\n clazz && (_.___clazz$ = clazz);\n}\n\nfunction createSubclassPrototype_0(superTypeId) {\n var prototypesByTypeId = prototypesByTypeId_0;\n return portableObjCreate(prototypesByTypeId[superTypeId]);\n}\n\nfunction Object_0() {}\n\ndefineClass(1, null, {}, Object_0);\n\nfunction narrow_byte(x_0) {\n return (x_0 << 24) >> 24;\n}\n\nfunction Class() {\n this.typeName = null;\n this.simpleName = null;\n this.packageName = null;\n this.compoundName = null;\n this.canonicalName = null;\n this.typeId = null;\n this.arrayLiterals = null;\n}\n\nfunction createClassObject(packageName, compoundClassName) {\n var clazz;\n clazz = new Class();\n clazz.packageName = packageName;\n clazz.compoundName = compoundClassName;\n return clazz;\n}\n\nfunction createForClass(packageName, compoundClassName, typeId) {\n var clazz;\n clazz = createClassObject(packageName, compoundClassName);\n maybeSetClassLiteral(typeId, clazz);\n return clazz;\n}\n\nfunction createForInterface(packageName, compoundClassName) {\n var clazz;\n clazz = createClassObject(packageName, compoundClassName);\n clazz.modifiers = 2;\n return clazz;\n}\n\nfunction createForPrimitive(className, primitiveTypeId) {\n var clazz;\n clazz = createClassObject(\"\", className);\n clazz.typeId = primitiveTypeId;\n clazz.modifiers = 1;\n return clazz;\n}\n\nfunction getClassLiteralForArray_0(leafClass, dimensions) {\n var arrayLiterals = (leafClass.arrayLiterals = leafClass.arrayLiterals || []);\n return (\n arrayLiterals[dimensions] ||\n (arrayLiterals[dimensions] =\n leafClass.createClassLiteralForArray(dimensions))\n );\n}\n\nfunction getPrototypeForClass(clazz) {\n if (clazz.isPrimitive()) {\n return null;\n }\n var typeId = clazz.typeId;\n var prototype_0 = prototypesByTypeId_0[typeId];\n return prototype_0;\n}\n\nfunction maybeSetClassLiteral(typeId, clazz) {\n if (!typeId) {\n return;\n }\n clazz.typeId = typeId;\n var prototype_0 = getPrototypeForClass(clazz);\n if (!prototype_0) {\n prototypesByTypeId_0[typeId] = [clazz];\n return;\n }\n prototype_0.___clazz$ = clazz;\n}\n\ndefineClass(79, 1, {}, Class);\n_.createClassLiteralForArray = function createClassLiteralForArray(dimensions) {\n var clazz;\n clazz = new Class();\n clazz.modifiers = 4;\n dimensions > 1\n ? (clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1))\n : (clazz.componentType = this);\n return clazz;\n};\n_.isPrimitive = function isPrimitive() {\n return (this.modifiers & 1) !== 0;\n};\n\nfunction getClassLiteralForArray(clazz, dimensions) {\n return getClassLiteralForArray_0(clazz, dimensions);\n}\n\nfunction initDim(\n leafClassLiteral,\n castableTypeMap,\n elementTypeId,\n length_0,\n elementTypeCategory,\n dimensions,\n) {\n var result;\n result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0);\n initValues(\n getClassLiteralForArray(leafClassLiteral, dimensions),\n castableTypeMap,\n elementTypeId,\n elementTypeCategory,\n result,\n );\n return result;\n}\n\nfunction initDims(\n leafClassLiteral,\n castableTypeMapExprs,\n elementTypeIds,\n leafElementTypeCategory,\n dimExprs,\n count,\n) {\n return initDims_0(\n leafClassLiteral,\n castableTypeMapExprs,\n elementTypeIds,\n leafElementTypeCategory,\n dimExprs,\n 0,\n count,\n );\n}\n\nfunction initDims_0(\n leafClassLiteral,\n castableTypeMapExprs,\n elementTypeIds,\n leafElementTypeCategory,\n dimExprs,\n index_0,\n count,\n) {\n var elementTypeCategory;\n var i;\n var isLastDim;\n var length_0;\n var result;\n length_0 = dimExprs[index_0];\n isLastDim = index_0 === count - 1;\n elementTypeCategory = isLastDim ? leafElementTypeCategory : 0;\n result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0);\n initValues(\n getClassLiteralForArray(leafClassLiteral, count - index_0),\n castableTypeMapExprs[index_0],\n elementTypeIds[index_0],\n elementTypeCategory,\n result,\n );\n if (!isLastDim) {\n ++index_0;\n for (i = 0; i < length_0; ++i) {\n result[i] = initDims_0(\n leafClassLiteral,\n castableTypeMapExprs,\n elementTypeIds,\n leafElementTypeCategory,\n dimExprs,\n index_0,\n count,\n );\n }\n }\n return result;\n}\n\nfunction initValues(\n arrayClass,\n castableTypeMap,\n elementTypeId,\n elementTypeCategory,\n array,\n) {\n array.___clazz$ = arrayClass;\n array.castableTypeMap$ = castableTypeMap;\n array.typeMarker$ = typeMarkerFn;\n array.__elementTypeId$ = elementTypeId;\n array.__elementTypeCategory$ = elementTypeCategory;\n return array;\n}\n\nfunction initializeArrayElementsWithDefaults(elementTypeCategory, length_0) {\n var array = new Array(length_0);\n var initValue;\n switch (elementTypeCategory) {\n case 6: {\n initValue = { l: 0, m: 0, h: 0 };\n break;\n }\n case 7: {\n initValue = 0;\n break;\n }\n case 8: {\n initValue = false;\n break;\n }\n default:\n return array;\n }\n for (var i = 0; i < length_0; ++i) {\n array[i] = initValue;\n }\n return array;\n}\n\nfunction create(value_0) {\n var a0;\n var a1;\n var a2;\n a0 = value_0 & $intern_9;\n a1 = (value_0 >> 22) & $intern_9;\n a2 = value_0 < 0 ? $intern_10 : 0;\n return create0(a0, a1, a2);\n}\n\nfunction create0(l, m, h) {\n return { l: l, m: m, h: h };\n}\n\nfunction add_1(a, b) {\n var sum0;\n var sum1;\n var sum2;\n sum0 = a.l + b.l;\n sum1 = a.m + b.m + (sum0 >> 22);\n sum2 = a.h + b.h + (sum1 >> 22);\n return { l: sum0 & $intern_9, m: sum1 & $intern_9, h: sum2 & $intern_10 };\n}\n\nfunction and(a, b) {\n return { l: a.l & b.l, m: a.m & b.m, h: a.h & b.h };\n}\n\nfunction fromInt(value_0) {\n var rebase;\n var result;\n if (value_0 > -129 && value_0 < 128) {\n rebase = value_0 + 128;\n boxedValues == null &&\n (boxedValues = initDim(\n Lcom_google_gwt_lang_LongLibBase$LongEmul_2_classLit,\n $intern_3,\n 293,\n 256,\n 0,\n 1,\n ));\n result = boxedValues[rebase];\n !result && (result = boxedValues[rebase] = create(value_0));\n return result;\n }\n return create(value_0);\n}\n\nfunction gte(a, b) {\n var signa;\n var signb;\n signa = a.h >> 19;\n signb = b.h >> 19;\n return signa === 0\n ? signb !== 0 ||\n a.h > b.h ||\n (a.h === b.h && a.m > b.m) ||\n (a.h === b.h && a.m === b.m && a.l >= b.l)\n : !(\n signb === 0 ||\n a.h < b.h ||\n (a.h === b.h && a.m < b.m) ||\n (a.h === b.h && a.m === b.m && a.l < b.l)\n );\n}\n\nfunction neq(a, b) {\n return a.l !== b.l || a.m !== b.m || a.h !== b.h;\n}\n\nfunction or(a, b) {\n return { l: a.l | b.l, m: a.m | b.m, h: a.h | b.h };\n}\n\nfunction shl(a, n) {\n var res0;\n var res1;\n var res2;\n n &= 63;\n if (n < 22) {\n res0 = a.l << n;\n res1 = (a.m << n) | (a.l >> (22 - n));\n res2 = (a.h << n) | (a.m >> (22 - n));\n } else if (n < 44) {\n res0 = 0;\n res1 = a.l << (n - 22);\n res2 = (a.m << (n - 22)) | (a.l >> (44 - n));\n } else {\n res0 = 0;\n res1 = 0;\n res2 = a.l << (n - 44);\n }\n return { l: res0 & $intern_9, m: res1 & $intern_9, h: res2 & $intern_10 };\n}\n\nfunction shr(a, n) {\n var a2;\n var negative;\n var res0;\n var res1;\n var res2;\n n &= 63;\n a2 = a.h;\n negative = (a2 & $intern_11) !== 0;\n negative && (a2 |= -1048576);\n if (n < 22) {\n res2 = a2 >> n;\n res1 = (a.m >> n) | (a2 << (22 - n));\n res0 = (a.l >> n) | (a.m << (22 - n));\n } else if (n < 44) {\n res2 = negative ? $intern_10 : 0;\n res1 = a2 >> (n - 22);\n res0 = (a.m >> (n - 22)) | (a2 << (44 - n));\n } else {\n res2 = negative ? $intern_10 : 0;\n res1 = negative ? $intern_9 : 0;\n res0 = a2 >> (n - 44);\n }\n return { l: res0 & $intern_9, m: res1 & $intern_9, h: res2 & $intern_10 };\n}\n\nfunction sub_0(a, b) {\n var sum0;\n var sum1;\n var sum2;\n sum0 = a.l - b.l;\n sum1 = a.m - b.m + (sum0 >> 22);\n sum2 = a.h - b.h + (sum1 >> 22);\n return { l: sum0 & $intern_9, m: sum1 & $intern_9, h: sum2 & $intern_10 };\n}\n\nfunction toInt(a) {\n return a.l | (a.m << 22);\n}\n\nvar boxedValues;\n\nfunction AbstractStringBuilder(string) {\n this.string = string;\n}\n\nfunction max_0(x_0, y_0) {\n return x_0 > y_0 ? x_0 : y_0;\n}\n\nfunction min_0(x_0, y_0) {\n return x_0 < y_0 ? x_0 : y_0;\n}\n\nfunction $indexOf_0(this$static, str) {\n return this$static.indexOf(str);\n}\n\nfunction _String(value_0) {\n return __valueOf(value_0, 0, value_0.length);\n}\n\nfunction __valueOf(x_0, start_0, end) {\n var s = \"\";\n for (var batchStart = start_0; batchStart < end; ) {\n var batchEnd = Math.min(batchStart + 10000, end);\n s += String.fromCharCode.apply(null, x_0.slice(batchStart, batchEnd));\n batchStart = batchEnd;\n }\n return s;\n}\n\nfunction fromCodePoint(codePoint) {\n return String.fromCharCode(codePoint & $intern_20);\n}\n\nvar Ljava_lang_String_2_classLit = createForClass(\"java.lang\", \"String\", 2);\n\nfunction $append(this$static) {\n this$static.string += \" \";\n return this$static;\n}\n\nfunction $append_1(this$static, x_0) {\n this$static.string += x_0;\n return this$static;\n}\n\nfunction StringBuffer() {\n AbstractStringBuilder.call(this, \"\");\n}\n\nfunction equals_7(array1, array2) {\n var i;\n if (array1 === array2) {\n return true;\n }\n if (array1.length !== array2.length) {\n return false;\n }\n for (i = 0; i < array1.length; ++i) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n\nlet $clinit_CoordCube_ran = false;\nfunction $clinit_CoordCube() {\n if ($clinit_CoordCube_ran) {\n return;\n }\n $clinit_CoordCube_ran = true;\n UDSliceMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [495, 18],\n 2,\n );\n TwistMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [324, 18],\n 2,\n );\n FlipMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [336, 18],\n 2,\n );\n UDSliceConj = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [495, 8],\n 2,\n );\n UDSliceTwistPrun = initDim(I_classLit, $intern_27, 0, 20048, 7, 1);\n UDSliceFlipPrun = initDim(I_classLit, $intern_27, 0, 20791, 7, 1);\n TwistFlipPrun = initDim(I_classLit, $intern_27, 0, 82945, 7, 1);\n CPermMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [2768, 10],\n 2,\n );\n EPermMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [2768, 10],\n 2,\n );\n MPermMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [24, 10],\n 2,\n );\n MPermConj = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [24, 16],\n 2,\n );\n CCombPConj = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [140, 16],\n 2,\n );\n MCPermPrun = initDim(I_classLit, $intern_27, 0, 8305, 7, 1);\n EPermCCombPPrun = initDim(I_classLit, $intern_27, 0, 48441, 7, 1);\n}\n\nfunction $doMovePrun(this$static, cc, m) {\n this$static.slice_0 = UDSliceMove[cc.slice_0][m];\n this$static.flip =\n FlipMove[cc.flip][($clinit_CubieCube(), Sym8Move)[(m << 3) | cc.fsym]];\n this$static.fsym = (this$static.flip & 7) ^ cc.fsym;\n this$static.flip >>= 3;\n this$static.twist = TwistMove[cc.twist][Sym8Move[(m << 3) | cc.tsym]];\n this$static.tsym = (this$static.twist & 7) ^ cc.tsym;\n this$static.twist >>= 3;\n this$static.prun = max_0(\n max_0(\n getPruning(\n UDSliceTwistPrun,\n this$static.twist * 495 +\n UDSliceConj[this$static.slice_0][this$static.tsym],\n ),\n getPruning(\n UDSliceFlipPrun,\n this$static.flip * 495 +\n UDSliceConj[this$static.slice_0][this$static.fsym],\n ),\n ),\n getPruning(\n TwistFlipPrun,\n (this$static.twist << 11) |\n FlipS2RF[\n (this$static.flip << 3) | (this$static.fsym ^ this$static.tsym)\n ],\n ),\n );\n return this$static.prun;\n}\n\nfunction $doMovePrunConj(this$static, cc, m) {\n m = ($clinit_CubieCube(), SymMove_0)[3][m];\n this$static.flipc =\n FlipMove[cc.flipc >> 3][Sym8Move[(m << 3) | (cc.flipc & 7)]] ^\n (cc.flipc & 7);\n this$static.twistc =\n TwistMove[cc.twistc >> 3][Sym8Move[(m << 3) | (cc.twistc & 7)]] ^\n (cc.twistc & 7);\n return getPruning(\n TwistFlipPrun,\n ((this$static.twistc >> 3) << 11) |\n FlipS2RF[this$static.flipc ^ (this$static.twistc & 7)],\n );\n}\n\nfunction $setWithPrun(this$static, cc, depth) {\n var pc;\n this$static.twist = ($clinit_CubieCube(), TwistR2S)[$getTwist(cc)];\n this$static.flip = FlipR2S[$getFlip(cc)];\n this$static.tsym = this$static.twist & 7;\n this$static.twist = this$static.twist >> 3;\n this$static.prun = getPruning(\n TwistFlipPrun,\n (this$static.twist << 11) | FlipS2RF[this$static.flip ^ this$static.tsym],\n );\n if (this$static.prun > depth) {\n return false;\n }\n this$static.fsym = this$static.flip & 7;\n this$static.flip = this$static.flip >> 3;\n this$static.slice_0 = 494 - getComb(cc.ea, 8, true);\n this$static.prun = max_0(\n this$static.prun,\n max_0(\n getPruning(\n UDSliceTwistPrun,\n this$static.twist * 495 +\n UDSliceConj[this$static.slice_0][this$static.tsym],\n ),\n getPruning(\n UDSliceFlipPrun,\n this$static.flip * 495 +\n UDSliceConj[this$static.slice_0][this$static.fsym],\n ),\n ),\n );\n if (this$static.prun > depth) {\n return false;\n }\n pc = new CubieCube();\n CornConjugate(cc, 1, pc);\n EdgeConjugate(cc, 1, pc);\n this$static.twistc = TwistR2S[$getTwist(pc)];\n this$static.flipc = FlipR2S[$getFlip(pc)];\n this$static.prun = max_0(\n this$static.prun,\n getPruning(\n TwistFlipPrun,\n ((this$static.twistc >> 3) << 11) |\n FlipS2RF[this$static.flipc ^ (this$static.twistc & 7)],\n ),\n );\n return this$static.prun <= depth;\n}\n\nfunction CoordCube() {\n $clinit_CoordCube();\n}\n\nfunction getPruning(table, index_0) {\n $clinit_CoordCube();\n return (table[index_0 >> 3] >> (index_0 << 2)) & 15;\n}\n\nfunction init_0(fullInit) {\n $clinit_CoordCube();\n if (initLevel === 2 || (initLevel === 1 && !fullInit)) {\n return;\n }\n if (initLevel === 0) {\n initPermSym2Raw();\n initCPermMove();\n initEPermMove();\n initMPermMoveConj();\n initCombPMoveConj();\n $clinit_CubieCube();\n initSym2Raw(\n 2048,\n FlipS2R,\n FlipR2S,\n (SymStateFlip = initDim(C_classLit, $intern_26, 0, 336, 7, 1)),\n 0,\n );\n initSym2Raw(\n 2187,\n TwistS2R,\n TwistR2S,\n (SymStateTwist = initDim(C_classLit, $intern_26, 0, 324, 7, 1)),\n 1,\n );\n initFlipMove();\n initTwistMove();\n initUDSliceMoveConj();\n }\n initRawSymPrun(\n MCPermPrun,\n MPermMove,\n MPermConj,\n CPermMove,\n ($clinit_CubieCube(), SymStatePerm),\n 584244,\n fullInit,\n );\n initRawSymPrun(\n EPermCCombPPrun,\n CCombPMove,\n CCombPConj,\n EPermMove,\n SymStatePerm,\n 514084,\n fullInit,\n );\n initRawSymPrun(\n UDSliceTwistPrun,\n UDSliceMove,\n UDSliceConj,\n TwistMove,\n SymStateTwist,\n 431619,\n fullInit,\n );\n initRawSymPrun(\n UDSliceFlipPrun,\n UDSliceMove,\n UDSliceConj,\n FlipMove,\n SymStateFlip,\n 431619,\n fullInit,\n );\n initRawSymPrun(\n TwistFlipPrun,\n null,\n null,\n TwistMove,\n SymStateTwist,\n 103939,\n fullInit,\n );\n initLevel = fullInit ? 2 : 1;\n}\n\nfunction initCPermMove() {\n var c;\n var d;\n var i;\n var j;\n c = new CubieCube();\n d = new CubieCube();\n for (i = 0; i < 2768; i++) {\n $setCPerm(c, ($clinit_CubieCube(), EPermS2R)[i]);\n for (j = 0; j < 10; j++) {\n CornMult(c, moveCube[($clinit_Util(), ud2std)[j]], d);\n CPermMove[i][j] =\n ESym2CSym(EPermR2S[getNPerm(d.ca, 8, false)]) & $intern_20;\n }\n }\n}\n\nfunction initCombPMoveConj() {\n var c;\n var d;\n var i;\n var j;\n var j0;\n c = new CubieCube();\n d = new CubieCube();\n CCombPMove = initDims(\n C_classLit,\n [$intern_3, $intern_26],\n [11, 0],\n 7,\n [140, 10],\n 2,\n );\n for (i = 0; i < 140; i++) {\n setComb(c.ca, i % 70, 0, false);\n for (j0 = 0; j0 < 10; j0++) {\n CornMult(\n c,\n ($clinit_CubieCube(), moveCube)[($clinit_Util(), ud2std)[j0]],\n d,\n );\n CCombPMove[i][j0] =\n (getComb(d.ca, 0, false) + 70 * (((165 >> j0) & 1) ^ ~~(i / 70))) &\n $intern_20;\n }\n for (j = 0; j < 16; j++) {\n CornConjugate(c, ($clinit_CubieCube(), SymMultInv)[0][j], d);\n CCombPConj[i][j] =\n (getComb(d.ca, 0, false) + 70 * ~~(i / 70)) & $intern_20;\n }\n }\n}\n\nfunction initEPermMove() {\n var c;\n var d;\n var i;\n var j;\n c = new CubieCube();\n d = new CubieCube();\n for (i = 0; i < 2768; i++) {\n $setEPerm(c, ($clinit_CubieCube(), EPermS2R)[i]);\n for (j = 0; j < 10; j++) {\n EdgeMult(c, moveCube[($clinit_Util(), ud2std)[j]], d);\n EPermMove[i][j] = EPermR2S[getNPerm(d.ea, 8, true)];\n }\n }\n}\n\nfunction initFlipMove() {\n var c;\n var d;\n var i;\n var j;\n c = new CubieCube();\n d = new CubieCube();\n for (i = 0; i < 336; i++) {\n $setFlip(c, ($clinit_CubieCube(), FlipS2R)[i]);\n for (j = 0; j < 18; j++) {\n EdgeMult(c, moveCube[j], d);\n FlipMove[i][j] = FlipR2S[$getFlip(d)];\n }\n }\n}\n\nfunction initMPermMoveConj() {\n var c;\n var d;\n var i;\n var j;\n var j0;\n c = new CubieCube();\n d = new CubieCube();\n for (i = 0; i < 24; i++) {\n setNPerm(c.ea, i, 12, true);\n for (j0 = 0; j0 < 10; j0++) {\n EdgeMult(\n c,\n ($clinit_CubieCube(), moveCube)[($clinit_Util(), ud2std)[j0]],\n d,\n );\n MPermMove[i][j0] = (getNPerm(d.ea, 12, true) % 24) & $intern_20;\n }\n for (j = 0; j < 16; j++) {\n EdgeConjugate(c, ($clinit_CubieCube(), SymMultInv)[0][j], d);\n MPermConj[i][j] = (getNPerm(d.ea, 12, true) % 24) & $intern_20;\n }\n }\n}\n\nfunction initRawSymPrun(\n PrunTable,\n RawMove,\n RawConj,\n SymMove,\n SymState,\n PrunFlag,\n fullInit,\n) {\n var INV_DEPTH;\n var ISTFP;\n var IS_PHASE2;\n var MAX_DEPTH;\n var MIN_DEPTH;\n var NEXT_AXIS_MAGIC;\n var N_MOVES;\n var N_RAW;\n var N_SIZE;\n var SEARCH_DEPTH;\n var SYM_E2C_MAGIC;\n var SYM_MASK;\n var SYM_SHIFT;\n var check;\n var depth;\n var flip;\n var fsym;\n var i;\n var i0;\n var idx;\n var idxx;\n var inv;\n var j;\n var m;\n var mask;\n var prun;\n var raw;\n var rawx;\n var selArrMask;\n var select;\n var sym;\n var symState;\n var symx;\n var val;\n var val0;\n var xorVal;\n SYM_SHIFT = PrunFlag & 15;\n SYM_E2C_MAGIC = ((PrunFlag >> 4) & 1) === 1 ? $intern_28 : 0;\n IS_PHASE2 = ((PrunFlag >> 5) & 1) === 1;\n INV_DEPTH = (PrunFlag >> 8) & 15;\n MAX_DEPTH = (PrunFlag >> 12) & 15;\n MIN_DEPTH = (PrunFlag >> 16) & 15;\n SEARCH_DEPTH = fullInit ? MAX_DEPTH : MIN_DEPTH;\n SYM_MASK = (1 << SYM_SHIFT) - 1;\n ISTFP = RawMove === null;\n N_RAW = ISTFP ? 2048 : RawMove.length;\n N_SIZE = N_RAW * SymMove.length;\n N_MOVES = IS_PHASE2 ? 10 : 18;\n NEXT_AXIS_MAGIC = N_MOVES === 10 ? 66 : 599186;\n depth = ((PrunTable[N_SIZE >> 3] >> (N_SIZE << 2)) & 15) - 1;\n\n if (depth === -1) {\n for (i = 0; i < ~~(N_SIZE / 8) + 1; i++) {\n PrunTable[i] = $intern_29;\n }\n PrunTable[0] ^= 1;\n depth = 0;\n }\n while (depth < SEARCH_DEPTH) {\n mask = ((depth + 1) * $intern_29) ^ -1;\n for (i0 = 0; i0 < PrunTable.length; i0++) {\n val0 = PrunTable[i0] ^ mask;\n val0 &= val0 >> 1;\n PrunTable[i0] += val0 & (val0 >> 2) & $intern_29;\n }\n inv = depth > INV_DEPTH;\n select = inv ? depth + 2 : depth;\n selArrMask = select * $intern_29;\n check = inv ? depth : depth + 2;\n ++depth;\n xorVal = depth ^ (depth + 1);\n val = 0;\n for (i = 0; i < N_SIZE; ++i, val >>= 4) {\n if ((i & 7) === 0) {\n val = PrunTable[i >> 3];\n if (\n (((val ^ selArrMask) - $intern_29) &\n ~(val ^ selArrMask) &\n -2004318072) ===\n 0\n ) {\n i += 7;\n continue;\n }\n }\n if ((val & 15) !== select) {\n continue;\n }\n raw = i % N_RAW;\n sym = ~~(i / N_RAW);\n flip = 0;\n fsym = 0;\n if (ISTFP) {\n flip = ($clinit_CubieCube(), FlipR2S)[raw];\n fsym = flip & 7;\n flip >>= 3;\n }\n for (m = 0; m < N_MOVES; m++) {\n symx = SymMove[sym][m];\n ISTFP\n ? (rawx = ($clinit_CubieCube(), FlipS2RF)[\n FlipMove[flip][Sym8Move[(m << 3) | fsym]] ^\n fsym ^\n (symx & SYM_MASK)\n ])\n : (rawx = RawConj[RawMove[raw][m]][symx & SYM_MASK]);\n symx >>= SYM_SHIFT;\n idx = symx * N_RAW + rawx;\n prun = (PrunTable[idx >> 3] >> (idx << 2)) & 15;\n if (prun !== check) {\n prun < depth - 1 && (m += (NEXT_AXIS_MAGIC >> m) & 3);\n continue;\n }\n if (inv) {\n PrunTable[i >> 3] ^= xorVal << (i << 2);\n break;\n }\n PrunTable[idx >> 3] ^= xorVal << (idx << 2);\n for (j = 1, symState = SymState[symx]; (symState >>= 1) !== 0; j++) {\n if ((symState & 1) !== 1) {\n continue;\n }\n idxx = symx * N_RAW;\n ISTFP\n ? (idxx += ($clinit_CubieCube(), FlipS2RF)[FlipR2S[rawx] ^ j])\n : (idxx += RawConj[rawx][j ^ ((SYM_E2C_MAGIC >> (j << 1)) & 3)]);\n if (((PrunTable[idxx >> 3] >> (idxx << 2)) & 15) === check) {\n PrunTable[idxx >> 3] ^= xorVal << (idxx << 2);\n }\n }\n }\n }\n }\n}\n\nfunction initTwistMove() {\n var c;\n var d;\n var i;\n var j;\n c = new CubieCube();\n d = new CubieCube();\n for (i = 0; i < 324; i++) {\n $setTwist(c, ($clinit_CubieCube(), TwistS2R)[i]);\n for (j = 0; j < 18; j++) {\n CornMult(c, moveCube[j], d);\n TwistMove[i][j] = TwistR2S[$getTwist(d)];\n }\n }\n}\n\nfunction initUDSliceMoveConj() {\n var c;\n var d;\n var i;\n var i0;\n var j;\n var j0;\n var k;\n var udslice;\n c = new CubieCube();\n d = new CubieCube();\n for (i0 = 0; i0 < 495; i0++) {\n setComb(c.ea, 494 - i0, 8, true);\n for (j0 = 0; j0 < 18; j0 += 3) {\n EdgeMult(c, ($clinit_CubieCube(), moveCube)[j0], d);\n UDSliceMove[i0][j0] = (494 - getComb(d.ea, 8, true)) & $intern_20;\n }\n for (j = 0; j < 16; j += 2) {\n EdgeConjugate(c, ($clinit_CubieCube(), SymMultInv)[0][j], d);\n UDSliceConj[i0][j >> 1] = (494 - getComb(d.ea, 8, true)) & $intern_20;\n }\n }\n for (i = 0; i < 495; i++) {\n for (j = 0; j < 18; j += 3) {\n udslice = UDSliceMove[i][j];\n for (k = 1; k < 3; k++) {\n udslice = UDSliceMove[udslice][j];\n UDSliceMove[i][j + k] = udslice & $intern_20;\n }\n }\n }\n}\n\ndefineClass(31, 1, { 31: 1 }, CoordCube);\n_.flip = 0;\n_.flipc = 0;\n_.fsym = 0;\n_.prun = 0;\n_.slice_0 = 0;\n_.tsym = 0;\n_.twist = 0;\n_.twistc = 0;\nvar CCombPConj;\nvar CCombPMove;\nvar CPermMove;\nvar EPermCCombPPrun;\nvar EPermMove;\nvar FlipMove;\nvar MCPermPrun;\nvar MPermConj;\nvar MPermMove;\nvar TwistFlipPrun;\nvar TwistMove;\nvar UDSliceConj;\nvar UDSliceFlipPrun;\nvar UDSliceMove;\nvar UDSliceTwistPrun;\nvar initLevel = 0;\nvar Lorg_cubing_min2phase_client_CoordCube_2_classLit = createForClass(\n \"org.cubing.min2phase.client\",\n \"CoordCube\",\n 31,\n);\nlet $clinit_CubieCube_ran = false;\nfunction $clinit_CubieCube() {\n if ($clinit_CubieCube_ran) {\n return;\n }\n $clinit_CubieCube_ran = true;\n CubeSym = initDim(\n Lorg_cubing_min2phase_client_CubieCube_2_classLit,\n $intern_3,\n 7,\n 16,\n 0,\n 1,\n );\n moveCube = initDim(\n Lorg_cubing_min2phase_client_CubieCube_2_classLit,\n $intern_3,\n 7,\n 18,\n 0,\n 1,\n );\n moveCubeSym = initDim(J_classLit, $intern_3, 0, 18, 6, 1);\n firstMoveSym = initDim(I_classLit, $intern_27, 0, 48, 7, 1);\n SymMult = initDims(\n I_classLit,\n [$intern_3, $intern_27],\n [17, 0],\n 7,\n [16, 16],\n 2,\n );\n SymMultInv = initDims(\n I_classLit,\n [$intern_3, $intern_27],\n [17, 0],\n 7,\n [16, 16],\n 2,\n );\n SymMove_0 = initDims(\n I_classLit,\n [$intern_3, $intern_27],\n [17, 0],\n 7,\n [16, 18],\n 2,\n );\n Sym8Move = initDim(I_classLit, $intern_27, 0, 144, 7, 1);\n SymMoveUD = initDims(\n I_classLit,\n [$intern_3, $intern_27],\n [17, 0],\n 7,\n [16, 18],\n 2,\n );\n FlipS2R = initDim(C_classLit, $intern_26, 0, 336, 7, 1);\n TwistS2R = initDim(C_classLit, $intern_26, 0, 324, 7, 1);\n EPermS2R = initDim(C_classLit, $intern_26, 0, 2768, 7, 1);\n Perm2CombP = initDim(B_classLit, $intern_30, 0, 2768, 7, 1);\n PermInvEdgeSym = initDim(C_classLit, $intern_26, 0, 2768, 7, 1);\n MPermInv = initDim(B_classLit, $intern_30, 0, 24, 7, 1);\n FlipR2S = initDim(C_classLit, $intern_26, 0, 2048, 7, 1);\n TwistR2S = initDim(C_classLit, $intern_26, 0, 2187, 7, 1);\n EPermR2S = initDim(C_classLit, $intern_26, 0, 40320, 7, 1);\n FlipS2RF = initDim(C_classLit, $intern_26, 0, 2688, 7, 1);\n urf1 = new CubieCube_0(2531, 1373, 67026819, 1367);\n urf2 = new CubieCube_0(2089, 1906, 322752913, 2040);\n urfMove = initValues(\n getClassLiteralForArray(B_classLit, 2),\n $intern_3,\n 10,\n 0,\n [\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [6, 7, 8, 0, 1, 2, 3, 4, 5, 15, 16, 17, 9, 10, 11, 12, 13, 14],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [3, 4, 5, 6, 7, 8, 0, 1, 2, 12, 13, 14, 15, 16, 17, 9, 10, 11],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [2, 1, 0, 5, 4, 3, 8, 7, 6, 11, 10, 9, 14, 13, 12, 17, 16, 15],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [8, 7, 6, 2, 1, 0, 5, 4, 3, 17, 16, 15, 11, 10, 9, 14, 13, 12],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [5, 4, 3, 8, 7, 6, 2, 1, 0, 14, 13, 12, 17, 16, 15, 11, 10, 9],\n ),\n ],\n );\n initMove();\n initSym();\n}\n\nfunction $$init(this$static) {\n this$static.ca = initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [0, 1, 2, 3, 4, 5, 6, 7],\n );\n this$static.ea = initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22],\n );\n}\n\nfunction $URFConjugate(this$static) {\n !this$static.temps && (this$static.temps = new CubieCube());\n CornMult(urf2, this$static, this$static.temps);\n CornMult(this$static.temps, urf1, this$static);\n EdgeMult(urf2, this$static, this$static.temps);\n EdgeMult(this$static.temps, urf1, this$static);\n}\n\nfunction $copy(this$static, c) {\n var i;\n var i0;\n for (i0 = 0; i0 < 8; i0++) {\n this$static.ca[i0] = c.ca[i0];\n }\n for (i = 0; i < 12; i++) {\n this$static.ea[i] = c.ea[i];\n }\n}\n\nfunction $getCPermSym(this$static) {\n return ESym2CSym(EPermR2S[getNPerm(this$static.ca, 8, false)]);\n}\n\nfunction $getEPermSym(this$static) {\n return EPermR2S[getNPerm(this$static.ea, 8, true)];\n}\n\nfunction $getFlip(this$static) {\n var i;\n var idx;\n idx = 0;\n for (i = 0; i < 11; i++) {\n idx = (idx << 1) | (this$static.ea[i] & 1);\n }\n return idx;\n}\n\nfunction $getTwist(this$static) {\n var i;\n var idx;\n idx = 0;\n for (i = 0; i < 7; i++) {\n idx += (idx << 1) + (this$static.ca[i] >> 3);\n }\n return idx;\n}\n\nfunction $invCubieCube(this$static) {\n var corn;\n var edge;\n !this$static.temps && (this$static.temps = new CubieCube());\n for (edge = 0; edge < 12; edge++) {\n this$static.temps.ea[this$static.ea[edge] >> 1] =\n (((edge << 1) | (this$static.ea[edge] & 1)) << 24) >> 24;\n }\n for (corn = 0; corn < 8; corn++) {\n this$static.temps.ca[this$static.ca[corn] & 7] =\n ((corn | ((32 >> (this$static.ca[corn] >> 3)) & 24)) << 24) >> 24;\n }\n $copy(this$static, this$static.temps);\n}\n\nfunction $selfSymmetry(this$static) {\n var c;\n var cperm;\n var cpermx;\n var d;\n var i;\n var sym;\n var urfInv;\n c = new CubieCube_1(this$static);\n d = new CubieCube();\n cperm = ESym2CSym(EPermR2S[getNPerm(c.ca, 8, false)]) >> 4;\n sym = { l: 0, m: 0, h: 0 };\n for (urfInv = 0; urfInv < 6; urfInv++) {\n cpermx = ESym2CSym(EPermR2S[getNPerm(c.ca, 8, false)]) >> 4;\n if (cperm === cpermx) {\n for (i = 0; i < 16; i++) {\n CornConjugate(c, SymMultInv[0][i], d);\n if (equals_7(d.ca, this$static.ca)) {\n EdgeConjugate(c, SymMultInv[0][i], d);\n equals_7(d.ea, this$static.ea) &&\n (sym = or(\n sym,\n shl(\n { l: 1, m: 0, h: 0 },\n ((urfInv << 4) | i) < 48 ? (urfInv << 4) | i : 48,\n ),\n ));\n }\n }\n }\n $URFConjugate(c);\n urfInv % 3 === 2 && $invCubieCube(c);\n }\n return sym;\n}\n\nfunction $setCPerm(this$static, idx) {\n setNPerm(this$static.ca, idx, 8, false);\n}\n\nfunction $setEPerm(this$static, idx) {\n setNPerm(this$static.ea, idx, 8, true);\n}\n\nfunction $setFlip(this$static, idx) {\n var i;\n var parity;\n var val;\n parity = 0;\n for (i = 10; i >= 0; --i, idx >>= 1) {\n parity ^= val = idx & 1;\n this$static.ea[i] = (((this$static.ea[i] & -2) | val) << 24) >> 24;\n }\n this$static.ea[11] = (((this$static.ea[11] & -2) | parity) << 24) >> 24;\n}\n\nfunction $setTwist(this$static, idx) {\n var i;\n var twst;\n var val;\n twst = 15;\n for (i = 6; i >= 0; --i, idx = ~~(idx / 3)) {\n twst -= val = idx % 3;\n this$static.ca[i] = (((this$static.ca[i] & 7) | (val << 3)) << 24) >> 24;\n }\n this$static.ca[7] =\n (((this$static.ca[7] & 7) | ((twst % 3) << 3)) << 24) >> 24;\n}\n\nfunction $verify(this$static) {\n var c;\n var cornMask;\n var e;\n var edgeMask;\n var sum;\n sum = 0;\n edgeMask = 0;\n for (e = 0; e < 12; e++) {\n edgeMask |= 1 << (this$static.ea[e] >> 1);\n sum ^= this$static.ea[e] & 1;\n }\n if (edgeMask !== 4095) {\n return -2;\n }\n if (sum !== 0) {\n return -3;\n }\n cornMask = 0;\n sum = 0;\n for (c = 0; c < 8; c++) {\n cornMask |= 1 << (this$static.ca[c] & 7);\n sum += this$static.ca[c] >> 3;\n }\n if (cornMask !== 255) {\n return -4;\n }\n if (sum % 3 !== 0) {\n return -5;\n }\n if (\n (getNParity(getNPerm(this$static.ea, 12, true), 12) ^\n getNParity(getNPerm(this$static.ca, 8, false), 8)) !==\n 0\n ) {\n return -6;\n }\n return 0;\n}\n\nfunction CornConjugate(a, idx, b) {\n $clinit_CubieCube();\n var corn;\n var ori;\n var oriA;\n var oriB;\n var s;\n var sinv;\n sinv = CubeSym[SymMultInv[0][idx]];\n s = CubeSym[idx];\n for (corn = 0; corn < 8; corn++) {\n oriA = sinv.ca[a.ca[s.ca[corn] & 7] & 7] >> 3;\n oriB = a.ca[s.ca[corn] & 7] >> 3;\n ori = oriA < 3 ? oriB : (3 - oriB) % 3;\n b.ca[corn] =\n (((sinv.ca[a.ca[s.ca[corn] & 7] & 7] & 7) | (ori << 3)) << 24) >> 24;\n }\n}\n\nfunction CornMult(a, b, prod) {\n $clinit_CubieCube();\n var corn;\n var oriA;\n var oriB;\n for (corn = 0; corn < 8; corn++) {\n oriA = a.ca[b.ca[corn] & 7] >> 3;\n oriB = b.ca[corn] >> 3;\n prod.ca[corn] =\n (((a.ca[b.ca[corn] & 7] & 7) | (((oriA + oriB) % 3) << 3)) << 24) >> 24;\n }\n}\n\nfunction CornMultFull(a, b, prod) {\n var corn;\n var ori;\n var oriA;\n var oriB;\n for (corn = 0; corn < 8; corn++) {\n oriA = a.ca[b.ca[corn] & 7] >> 3;\n oriB = b.ca[corn] >> 3;\n ori = oriA + (oriA < 3 ? oriB : 6 - oriB);\n ori = (ori % 3) + (oriA < 3 === oriB < 3 ? 0 : 3);\n prod.ca[corn] = (((a.ca[b.ca[corn] & 7] & 7) | (ori << 3)) << 24) >> 24;\n }\n}\n\nfunction CubieCube() {\n $clinit_CubieCube();\n $$init(this);\n}\n\nfunction CubieCube_0(cperm, twist, eperm, flip) {\n $$init(this);\n setNPerm(this.ca, cperm, 8, false);\n $setTwist(this, twist);\n setNPerm(this.ea, eperm, 12, true);\n $setFlip(this, flip);\n}\n\nfunction CubieCube_1(c) {\n $$init(this);\n $copy(this, c);\n}\n\nfunction ESym2CSym(idx) {\n $clinit_CubieCube();\n return idx ^ (($intern_28 >> ((idx & 15) << 1)) & 3);\n}\n\nfunction EdgeConjugate(a, idx, b) {\n $clinit_CubieCube();\n var ed;\n var s;\n var sinv;\n sinv = CubeSym[SymMultInv[0][idx]];\n s = CubeSym[idx];\n for (ed = 0; ed < 12; ed++) {\n b.ea[ed] =\n ((sinv.ea[a.ea[s.ea[ed] >> 1] >> 1] ^\n (a.ea[s.ea[ed] >> 1] & 1) ^\n (s.ea[ed] & 1)) <<\n 24) >>\n 24;\n }\n}\n\nfunction EdgeMult(a, b, prod) {\n $clinit_CubieCube();\n var ed;\n for (ed = 0; ed < 12; ed++) {\n prod.ea[ed] = ((a.ea[b.ea[ed] >> 1] ^ (b.ea[ed] & 1)) << 24) >> 24;\n }\n}\n\nfunction getPermSymInv(idx, sym, isCorner) {\n $clinit_CubieCube();\n var idxi;\n idxi = PermInvEdgeSym[idx];\n isCorner && (idxi = idxi ^ (($intern_28 >> ((idxi & 15) << 1)) & 3));\n return (idxi & 65520) | SymMult[idxi & 15][sym];\n}\n\nfunction getSkipMoves() {\n $clinit_CubieCube();\n // var i, ret;\n // ret = 0;\n // for (i = 1; neq((ssym = shr(ssym, 1)), { l: 0, m: 0, h: 0 }); i++) {\n // eq(and(ssym, { l: 1, m: 0, h: 0 }), { l: 1, m: 0, h: 0 }) &&\n // (ret |= firstMoveSym[i]);\n // }\n return 0;\n}\n\nfunction initMove() {\n var a;\n var p;\n moveCube[0] = new CubieCube_0(15120, 0, 119750400, 0);\n moveCube[3] = new CubieCube_0(21021, 1494, 323403417, 0);\n moveCube[6] = new CubieCube_0(8064, 1236, 29441808, 550);\n moveCube[9] = new CubieCube_0(9, 0, 5880, 0);\n moveCube[12] = new CubieCube_0(1230, 412, 2949660, 0);\n moveCube[15] = new CubieCube_0(224, 137, 328552, 137);\n for (a = 0; a < 18; a += 3) {\n for (p = 0; p < 2; p++) {\n moveCube[a + p + 1] = new CubieCube();\n EdgeMult(moveCube[a + p], moveCube[a], moveCube[a + p + 1]);\n CornMult(moveCube[a + p], moveCube[a], moveCube[a + p + 1]);\n }\n }\n}\n\nfunction initPermSym2Raw() {\n $clinit_CubieCube();\n var cc;\n var i;\n var i0;\n initSym2Raw(\n 40320,\n EPermS2R,\n EPermR2S,\n (SymStatePerm = initDim(C_classLit, $intern_26, 0, 2768, 7, 1)),\n 2,\n );\n cc = new CubieCube();\n for (i0 = 0; i0 < 2768; i0++) {\n $setEPerm(cc, EPermS2R[i0]);\n Perm2CombP[i0] =\n ((getComb(cc.ea, 0, true) + getNParity(EPermS2R[i0], 8) * 70) << 24) >>\n 24;\n $invCubieCube(cc);\n PermInvEdgeSym[i0] = EPermR2S[getNPerm(cc.ea, 8, true)];\n }\n for (i = 0; i < 24; i++) {\n setNPerm(cc.ea, i, 12, true);\n $invCubieCube(cc);\n MPermInv[i] = ((getNPerm(cc.ea, 12, true) % 24) << 24) >> 24;\n }\n}\n\nfunction initSym() {\n var c;\n var d;\n var f2;\n var i;\n var i0;\n var i1;\n var i2;\n var j;\n var j0;\n var j1;\n var k;\n var lr2;\n var m;\n var s;\n var t;\n var u4;\n c = new CubieCube();\n d = new CubieCube();\n f2 = new CubieCube_0(28783, 0, 259268407, 0);\n u4 = new CubieCube_0(15138, 0, 119765538, 7);\n lr2 = new CubieCube_0(5167, 0, 83473207, 0);\n for (i0 = 0; i0 < 8; i0++) {\n lr2.ca[i0] = narrow_byte(lr2.ca[i0] | 24);\n }\n for (i1 = 0; i1 < 16; i1++) {\n CubeSym[i1] = new CubieCube_1(c);\n CornMultFull(c, u4, d);\n EdgeMult(c, u4, d);\n t = d;\n d = c;\n c = t;\n if (i1 % 4 === 3) {\n CornMultFull(t, lr2, d);\n EdgeMult(t, lr2, d);\n t = d;\n d = c;\n c = t;\n }\n if (i1 % 8 === 7) {\n CornMultFull(t, f2, d);\n EdgeMult(t, f2, d);\n t = d;\n d = c;\n c = t;\n }\n }\n for (i2 = 0; i2 < 16; i2++) {\n for (j0 = 0; j0 < 16; j0++) {\n CornMultFull(CubeSym[i2], CubeSym[j0], c);\n for (k = 0; k < 16; k++) {\n if (equals_7(CubeSym[k].ca, c.ca)) {\n SymMult[i2][j0] = k;\n SymMultInv[k][j0] = i2;\n break;\n }\n }\n }\n }\n for (j1 = 0; j1 < 18; j1++) {\n for (s = 0; s < 16; s++) {\n CornConjugate(moveCube[j1], SymMultInv[0][s], c);\n for (m = 0; m < 18; m++) {\n if (equals_7(moveCube[m].ca, c.ca)) {\n SymMove_0[s][j1] = m;\n SymMoveUD[s][($clinit_Util(), std2ud)[j1]] = std2ud[m];\n break;\n }\n }\n s % 2 === 0 && (Sym8Move[(j1 << 3) | (s >> 1)] = SymMove_0[s][j1]);\n }\n }\n for (i = 0; i < 18; i++) {\n moveCubeSym[i] = $selfSymmetry(moveCube[i]);\n j = i;\n for (s = 0; s < 48; s++) {\n SymMove_0[s % 16][j] < i && (firstMoveSym[s] |= 1 << i);\n s % 16 === 15 && (j = urfMove[2][j]);\n }\n }\n}\n\nfunction initSym2Raw(N_RAW, Sym2Raw, Raw2Sym, SymState, coord) {\n $clinit_CubieCube();\n var c;\n var count;\n var d;\n var i;\n var idx;\n var isEdge;\n var s;\n var symIdx;\n var sym_inc;\n c = new CubieCube();\n d = new CubieCube();\n count = 0;\n idx = 0;\n sym_inc = coord >= 2 ? 1 : 2;\n isEdge = coord !== 1;\n for (i = 0; i < N_RAW; i++) {\n if (Raw2Sym[i] !== 0) {\n continue;\n }\n switch (coord) {\n case 0: {\n $setFlip(c, i);\n break;\n }\n case 1: {\n $setTwist(c, i);\n break;\n }\n case 2:\n setNPerm(c.ea, i, 8, true);\n }\n for (s = 0; s < 16; s += sym_inc) {\n isEdge ? EdgeConjugate(c, s, d) : CornConjugate(c, s, d);\n switch (coord) {\n case 0: {\n idx = $getFlip(d);\n break;\n }\n case 1: {\n idx = $getTwist(d);\n break;\n }\n case 2:\n idx = getNPerm(d.ea, 8, true);\n }\n coord === 0 && (FlipS2RF[(count << 3) | (s >> 1)] = idx & $intern_20);\n idx === i &&\n (SymState[count] =\n (SymState[count] | (1 << ~~(s / sym_inc))) & $intern_20);\n symIdx = ~~(((count << 4) | s) / sym_inc);\n Raw2Sym[idx] = symIdx & $intern_20;\n }\n Sym2Raw[count++] = i & $intern_20;\n }\n return count;\n}\n\nvar CubeSym;\nvar EPermR2S;\nvar EPermS2R;\nvar FlipR2S;\nvar FlipS2R;\nvar FlipS2RF;\nvar MPermInv;\nvar Perm2CombP;\nvar PermInvEdgeSym;\nvar Sym8Move;\nvar SymMove_0;\nvar SymMoveUD;\nvar SymMult;\nvar SymMultInv;\nvar SymStateFlip;\nvar SymStatePerm;\nvar SymStateTwist;\nvar TwistR2S;\nvar TwistS2R;\nvar firstMoveSym;\nvar moveCube;\nvar moveCubeSym;\nvar urf1;\nvar urf2;\nvar urfMove;\nvar Lorg_cubing_min2phase_client_CubieCube_2_classLit = createForClass(\n \"org.cubing.min2phase.client\",\n \"CubieCube\",\n 7,\n);\n\nfunction $initPhase2(\n this$static,\n p2corn,\n p2csym,\n p2edge,\n p2esym,\n p2mid,\n edgei,\n corni,\n) {\n var depth2;\n var i;\n var i0;\n var prun;\n var ret;\n prun = max_0(\n getPruning(\n ($clinit_CoordCube(), EPermCCombPPrun),\n (edgei >> 4) * 140 +\n CCombPConj[($clinit_CubieCube(), Perm2CombP)[corni >> 4] & 255][\n SymMultInv[edgei & 15][corni & 15]\n ],\n ),\n max_0(\n getPruning(\n EPermCCombPPrun,\n p2edge * 140 +\n CCombPConj[Perm2CombP[p2corn] & 255][SymMultInv[p2esym][p2csym]],\n ),\n getPruning(MCPermPrun, p2corn * 24 + MPermConj[p2mid][p2csym]),\n ),\n );\n if (prun > this$static.maxDep2) {\n return prun - this$static.maxDep2;\n }\n for (depth2 = this$static.maxDep2; depth2 >= prun; depth2--) {\n ret = $phase2(\n this$static,\n p2edge,\n p2esym,\n p2corn,\n p2csym,\n p2mid,\n depth2,\n this$static.depth1,\n 10,\n );\n if (ret < 0) {\n break;\n }\n depth2 -= ret;\n this$static.solLen = 0;\n this$static.solution = new Util$Solution();\n $setArgs(\n this$static.solution,\n this$static.verbose,\n this$static.urfIdx,\n this$static.depth1,\n );\n for (i0 = 0; i0 < this$static.depth1 + depth2; i0++) {\n $appendSolMove(this$static.solution, this$static.move[i0]);\n }\n for (i = this$static.preMoveLen - 1; i >= 0; i--) {\n $appendSolMove(this$static.solution, this$static.preMoves[i]);\n }\n this$static.solLen = this$static.solution.length_0;\n }\n if (depth2 !== this$static.maxDep2) {\n this$static.maxDep2 = min_0(\n MAX_DEPTH2,\n this$static.solLen - this$static.length1 - 1,\n );\n return gte(this$static.probe, this$static.probeMin) ? 0 : 1;\n }\n return 1;\n}\n\nfunction $initPhase2Pre(this$static) {\n var corni;\n var edgei;\n var i;\n var lastMove;\n var lastPre;\n var m;\n var p2corn;\n var p2csym;\n var p2edge;\n var p2esym;\n var p2mid;\n var p2switch;\n var p2switchMask;\n var p2switchMax;\n var ret;\n this$static.isRec = false;\n if (\n gte(\n this$static.probe,\n !this$static.solution ? this$static.probeMax : this$static.probeMin,\n )\n ) {\n return 0;\n }\n this$static.probe = add_1(this$static.probe, { l: 1, m: 0, h: 0 });\n for (i = this$static.valid1; i < this$static.depth1; i++) {\n CornMult(\n this$static.phase1Cubie[i],\n ($clinit_CubieCube(), moveCube)[this$static.move[i]],\n this$static.phase1Cubie[i + 1],\n );\n EdgeMult(\n this$static.phase1Cubie[i],\n moveCube[this$static.move[i]],\n this$static.phase1Cubie[i + 1],\n );\n }\n this$static.valid1 = this$static.depth1;\n p2corn = $getCPermSym(this$static.phase1Cubie[this$static.depth1]);\n p2csym = p2corn & 15;\n p2corn >>= 4;\n p2edge = $getEPermSym(this$static.phase1Cubie[this$static.depth1]);\n p2esym = p2edge & 15;\n p2edge >>= 4;\n p2mid =\n getNPerm(this$static.phase1Cubie[this$static.depth1].ea, 12, true) % 24;\n edgei = getPermSymInv(p2edge, p2esym, false);\n corni = getPermSymInv(p2corn, p2csym, true);\n lastMove =\n this$static.depth1 === 0 ? -1 : this$static.move[this$static.depth1 - 1];\n lastPre =\n this$static.preMoveLen === 0\n ? -1\n : this$static.preMoves[this$static.preMoveLen - 1];\n ret = 0;\n p2switchMax =\n (this$static.preMoveLen === 0 ? 1 : 2) * (this$static.depth1 === 0 ? 1 : 2);\n for (\n p2switch = 0, p2switchMask = (1 << p2switchMax) - 1;\n p2switch < p2switchMax;\n p2switch++\n ) {\n if (((p2switchMask >> p2switch) & 1) !== 0) {\n p2switchMask &= ~(1 << p2switch);\n ret = $initPhase2(\n this$static,\n p2corn,\n p2csym,\n p2edge,\n p2esym,\n p2mid,\n edgei,\n corni,\n );\n if (ret === 0 || ret > 2) {\n break;\n } else {\n ret === 2 && (p2switchMask &= 4 << p2switch);\n }\n }\n if (p2switchMask === 0) {\n break;\n }\n if ((p2switch & 1) === 0 && this$static.depth1 > 0) {\n m = ($clinit_Util(), std2ud)[~~(lastMove / 3) * 3 + 1];\n this$static.move[this$static.depth1 - 1] =\n ud2std[m] * 2 - this$static.move[this$static.depth1 - 1];\n p2mid = ($clinit_CoordCube(), MPermMove)[p2mid][m];\n p2corn = CPermMove[p2corn][($clinit_CubieCube(), SymMoveUD)[p2csym][m]];\n p2csym = SymMult[p2corn & 15][p2csym];\n p2corn >>= 4;\n p2edge = EPermMove[p2edge][SymMoveUD[p2esym][m]];\n p2esym = SymMult[p2edge & 15][p2esym];\n p2edge >>= 4;\n corni = getPermSymInv(p2corn, p2csym, true);\n edgei = getPermSymInv(p2edge, p2esym, false);\n } else if (this$static.preMoveLen > 0) {\n m = ($clinit_Util(), std2ud)[~~(lastPre / 3) * 3 + 1];\n this$static.preMoves[this$static.preMoveLen - 1] =\n ud2std[m] * 2 - this$static.preMoves[this$static.preMoveLen - 1];\n p2mid = ($clinit_CubieCube(), MPermInv)[\n ($clinit_CoordCube(), MPermMove)[MPermInv[p2mid]][m]\n ];\n p2corn = CPermMove[corni >> 4][SymMoveUD[corni & 15][m]];\n corni = (p2corn & -16) | SymMult[p2corn & 15][corni & 15];\n p2corn = getPermSymInv(corni >> 4, corni & 15, true);\n p2csym = p2corn & 15;\n p2corn >>= 4;\n p2edge = EPermMove[edgei >> 4][SymMoveUD[edgei & 15][m]];\n edgei = (p2edge & -16) | SymMult[p2edge & 15][edgei & 15];\n p2edge = getPermSymInv(edgei >> 4, edgei & 15, false);\n p2esym = p2edge & 15;\n p2edge >>= 4;\n }\n }\n this$static.depth1 > 0 &&\n (this$static.move[this$static.depth1 - 1] = lastMove);\n this$static.preMoveLen > 0 &&\n (this$static.preMoves[this$static.preMoveLen - 1] = lastPre);\n return ret === 0 ? 0 : 2;\n}\n\nfunction $initSearch(this$static) {\n var i;\n this$static.conjMask = 0;\n this$static.selfSym = $selfSymmetry(this$static.cc);\n this$static.conjMask |= neq(\n and(shr(this$static.selfSym, 16), {\n l: $intern_20,\n m: 0,\n h: 0,\n }),\n { l: 0, m: 0, h: 0 },\n )\n ? 18\n : 0;\n this$static.conjMask |= neq(\n and(shr(this$static.selfSym, 32), {\n l: $intern_20,\n m: 0,\n h: 0,\n }),\n { l: 0, m: 0, h: 0 },\n )\n ? 36\n : 0;\n this$static.conjMask |= neq(\n and(shr(this$static.selfSym, 48), {\n l: $intern_20,\n m: 0,\n h: 0,\n }),\n { l: 0, m: 0, h: 0 },\n )\n ? 56\n : 0;\n this$static.selfSym = and(this$static.selfSym, {\n l: $intern_9,\n m: $intern_9,\n h: 15,\n });\n this$static.maxPreMoves = this$static.conjMask > 7 ? 0 : 20;\n for (i = 0; i < 6; i++) {\n $copy(this$static.urfCubieCube[i], this$static.cc);\n $setWithPrun(this$static.urfCoordCube[i], this$static.urfCubieCube[i], 20);\n $URFConjugate(this$static.cc);\n i % 3 === 2 && $invCubieCube(this$static.cc);\n }\n}\n\nfunction $phase1(this$static, node, ssym, maxl, lm) {\n var axis_0;\n var m;\n var power;\n var prun;\n var ret;\n var skipMoves;\n if (node.prun === 0 && maxl < 5) {\n if (this$static.allowShorter || maxl === 0) {\n this$static.depth1 -= maxl;\n ret = $initPhase2Pre(this$static);\n this$static.depth1 += maxl;\n return ret;\n } else {\n return 1;\n }\n }\n skipMoves = getSkipMoves(fromInt(ssym));\n for (axis_0 = 0; axis_0 < 18; axis_0 += 3) {\n if (axis_0 === lm || axis_0 === lm - 9) {\n continue;\n }\n for (power = 0; power < 3; power++) {\n m = axis_0 + power;\n if (\n (this$static.isRec &&\n m !== this$static.move[this$static.depth1 - maxl]) ||\n (skipMoves !== 0 && (skipMoves & (1 << m)) !== 0)\n ) {\n continue;\n }\n prun = $doMovePrun(this$static.nodeUD[maxl], node, m);\n if (prun > maxl) {\n break;\n } else if (prun === maxl) {\n continue;\n }\n prun = $doMovePrunConj(this$static.nodeUD[maxl], node, m);\n if (prun > maxl) {\n break;\n } else if (prun === maxl) {\n continue;\n }\n this$static.move[this$static.depth1 - maxl] = m;\n this$static.valid1 = min_0(this$static.valid1, this$static.depth1 - maxl);\n ret = $phase1(\n this$static,\n this$static.nodeUD[maxl],\n ssym & toInt(($clinit_CubieCube(), moveCubeSym)[m]),\n maxl - 1,\n axis_0,\n );\n if (ret === 0) {\n return 0;\n } else if (ret >= 2) {\n break;\n }\n }\n }\n return 1;\n}\n\nfunction $phase1PreMoves(this$static, maxl, lm, cc, ssym) {\n var m;\n var ret;\n var skipMoves;\n this$static.preMoveLen = this$static.maxPreMoves - maxl;\n if (\n this$static.isRec\n ? this$static.depth1 === this$static.length1 - this$static.preMoveLen\n : this$static.preMoveLen === 0 || ((225207 >> lm) & 1) === 0\n ) {\n this$static.depth1 = this$static.length1 - this$static.preMoveLen;\n this$static.phase1Cubie[0] = cc;\n this$static.allowShorter =\n this$static.depth1 === MIN_P1LENGTH_PRE && this$static.preMoveLen !== 0;\n if (\n $setWithPrun(\n this$static.nodeUD[this$static.depth1 + 1],\n cc,\n this$static.depth1,\n ) &&\n $phase1(\n this$static,\n this$static.nodeUD[this$static.depth1 + 1],\n ssym,\n this$static.depth1,\n -1,\n ) === 0\n ) {\n return 0;\n }\n }\n if (\n maxl === 0 ||\n this$static.preMoveLen + MIN_P1LENGTH_PRE >= this$static.length1\n ) {\n return 1;\n }\n skipMoves = getSkipMoves(fromInt(ssym));\n (maxl === 1 ||\n this$static.preMoveLen + 1 + MIN_P1LENGTH_PRE >= this$static.length1) &&\n (skipMoves |= 225207);\n lm = ~~(lm / 3) * 3;\n for (m = 0; m < 18; m++) {\n if (m === lm || m === lm - 9 || m === lm + 9) {\n m += 2;\n continue;\n }\n if (\n (this$static.isRec &&\n m !== this$static.preMoves[this$static.maxPreMoves - maxl]) ||\n (skipMoves & (1 << m)) !== 0\n ) {\n continue;\n }\n CornMult(\n ($clinit_CubieCube(), moveCube)[m],\n cc,\n this$static.preMoveCubes[maxl],\n );\n EdgeMult(moveCube[m], cc, this$static.preMoveCubes[maxl]);\n this$static.preMoves[this$static.maxPreMoves - maxl] = m;\n ret = $phase1PreMoves(\n this$static,\n maxl - 1,\n m,\n this$static.preMoveCubes[maxl],\n ssym & toInt(moveCubeSym[m]),\n );\n if (ret === 0) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction $phase2(this$static, edge, esym, corn, csym, mid, maxl, depth, lm) {\n var corni;\n var cornx;\n var csymx;\n var edgei;\n var edgex;\n var esymx;\n var m;\n var midx;\n var moveMask;\n var prun;\n var ret;\n if (edge === 0 && corn === 0 && mid === 0) {\n return maxl;\n }\n moveMask = ($clinit_Util(), ckmv2bit)[lm];\n for (m = 0; m < 10; m++) {\n if (((moveMask >> m) & 1) !== 0) {\n m += (66 >> m) & 3;\n continue;\n }\n midx = ($clinit_CoordCube(), MPermMove)[mid][m];\n cornx = CPermMove[corn][($clinit_CubieCube(), SymMoveUD)[csym][m]];\n csymx = SymMult[cornx & 15][csym];\n cornx >>= 4;\n edgex = EPermMove[edge][SymMoveUD[esym][m]];\n esymx = SymMult[edgex & 15][esym];\n edgex >>= 4;\n edgei = getPermSymInv(edgex, esymx, false);\n corni = getPermSymInv(cornx, csymx, true);\n prun = getPruning(\n EPermCCombPPrun,\n (edgei >> 4) * 140 +\n CCombPConj[Perm2CombP[corni >> 4] & 255][\n SymMultInv[edgei & 15][corni & 15]\n ],\n );\n if (prun > maxl + 1) {\n return maxl - prun + 1;\n } else if (prun >= maxl) {\n m += (66 >> m) & 3 & (maxl - prun);\n continue;\n }\n prun = max_0(\n getPruning(MCPermPrun, cornx * 24 + MPermConj[midx][csymx]),\n getPruning(\n EPermCCombPPrun,\n edgex * 140 +\n CCombPConj[Perm2CombP[cornx] & 255][SymMultInv[esymx][csymx]],\n ),\n );\n if (prun >= maxl) {\n m += (66 >> m) & 3 & (maxl - prun);\n continue;\n }\n ret = $phase2(\n this$static,\n edgex,\n esymx,\n cornx,\n csymx,\n midx,\n maxl - 1,\n depth + 1,\n m,\n );\n if (ret >= 0) {\n this$static.move[depth] = ud2std[m];\n return ret;\n }\n if (ret < -2) {\n break;\n }\n ret < -1 && (m += (66 >> m) & 3);\n }\n return -1;\n}\n\nfunction $search(this$static) {\n for (\n this$static.length1 = this$static.isRec ? this$static.length1 : 0;\n this$static.length1 < this$static.solLen;\n this$static.length1++\n ) {\n this$static.maxDep2 = min_0(\n MAX_DEPTH2,\n this$static.solLen - this$static.length1 - 1,\n );\n for (\n this$static.urfIdx = this$static.isRec ? this$static.urfIdx : 0;\n this$static.urfIdx < 6;\n this$static.urfIdx++\n ) {\n if ((this$static.conjMask & (1 << this$static.urfIdx)) !== 0) {\n continue;\n }\n if (\n $phase1PreMoves(\n this$static,\n this$static.maxPreMoves,\n -30,\n this$static.urfCubieCube[this$static.urfIdx],\n toInt(and(this$static.selfSym, { l: $intern_20, m: 0, h: 0 })),\n ) === 0\n ) {\n return !this$static.solution\n ? \"Error 8\"\n : $toString_2(this$static.solution);\n }\n }\n }\n return !this$static.solution ? \"Error 7\" : $toString_2(this$static.solution);\n}\n\nfunction $solution(this$static, facelets) {\n var check;\n check = $verify_0(this$static, facelets);\n if (check !== 0) {\n return `Error ${check < 0 ? -check : check}`;\n }\n this$static.solLen = 22;\n this$static.probe = { l: 0, m: 0, h: 0 };\n this$static.probeMax = { l: 3531008, m: 23, h: 0 };\n this$static.probeMin = { l: 0, m: 0, h: 0 };\n this$static.verbose = 0;\n this$static.solution = null;\n this$static.isRec = false;\n init_0(false);\n $initSearch(this$static);\n return $search(this$static);\n}\n\nfunction $verify_0(this$static, facelets) {\n var center;\n var count;\n var f;\n var i;\n count = 0;\n f = initDim(B_classLit, $intern_30, 0, 54, 7, 1);\n // try {\n center = _String(\n initValues(getClassLiteralForArray(C_classLit, 1), $intern_26, 0, 7, [\n facelets.charCodeAt(4),\n facelets.charCodeAt(13),\n facelets.charCodeAt(22),\n facelets.charCodeAt(31),\n facelets.charCodeAt(40),\n facelets.charCodeAt(49),\n ]),\n );\n for (i = 0; i < 54; i++) {\n f[i] =\n ($indexOf_0(center, fromCodePoint(facelets.charCodeAt(i))) << 24) >> 24;\n if (f[i] === -1) {\n return -1;\n }\n count += 1 << (f[i] << 2);\n }\n // } catch ($e0) {\n // $e0 = wrap($e0);\n // if (instanceOf($e0, 9)) {\n // return -1;\n // } else throw unwrap($e0);\n // }\n if (count !== 10066329) {\n return -1;\n }\n toCubieCube(f, this$static.cc);\n return $verify(this$static.cc);\n}\n\nfunction Search() {\n var i;\n var i0;\n var i1;\n this.move = initDim(I_classLit, $intern_27, 0, 31, 7, 1);\n this.nodeUD = initDim(\n Lorg_cubing_min2phase_client_CoordCube_2_classLit,\n $intern_3,\n 31,\n 21,\n 0,\n 1,\n );\n this.nodeRL = initDim(\n Lorg_cubing_min2phase_client_CoordCube_2_classLit,\n $intern_3,\n 31,\n 21,\n 0,\n 1,\n );\n this.nodeFB = initDim(\n Lorg_cubing_min2phase_client_CoordCube_2_classLit,\n $intern_3,\n 31,\n 21,\n 0,\n 1,\n );\n this.cc = new CubieCube();\n this.urfCubieCube = initDim(\n Lorg_cubing_min2phase_client_CubieCube_2_classLit,\n $intern_3,\n 7,\n 6,\n 0,\n 1,\n );\n this.urfCoordCube = initDim(\n Lorg_cubing_min2phase_client_CoordCube_2_classLit,\n $intern_3,\n 31,\n 6,\n 0,\n 1,\n );\n this.phase1Cubie = initDim(\n Lorg_cubing_min2phase_client_CubieCube_2_classLit,\n $intern_3,\n 7,\n 21,\n 0,\n 1,\n );\n this.preMoveCubes = initDim(\n Lorg_cubing_min2phase_client_CubieCube_2_classLit,\n $intern_3,\n 7,\n 21,\n 0,\n 1,\n );\n this.preMoves = initDim(I_classLit, $intern_27, 0, 20, 7, 1);\n for (i0 = 0; i0 < 21; i0++) {\n this.nodeUD[i0] = new CoordCube();\n this.nodeRL[i0] = new CoordCube();\n this.nodeFB[i0] = new CoordCube();\n this.phase1Cubie[i0] = new CubieCube();\n }\n for (i1 = 0; i1 < 6; i1++) {\n this.urfCubieCube[i1] = new CubieCube();\n this.urfCoordCube[i1] = new CoordCube();\n }\n for (i = 0; i < 20; i++) {\n this.preMoveCubes[i + 1] = new CubieCube();\n }\n}\n\ndefineClass(72, 1, {}, Search);\n_.allowShorter = false;\n_.conjMask = 0;\n_.depth1 = 0;\n_.isRec = false;\n_.length1 = 0;\n_.maxDep2 = 0;\n_.maxPreMoves = 0;\n_.preMoveLen = 0;\n_.probe = { l: 0, m: 0, h: 0 };\n_.probeMax = { l: 0, m: 0, h: 0 };\n_.probeMin = { l: 0, m: 0, h: 0 };\n_.selfSym = { l: 0, m: 0, h: 0 };\n_.solLen = 0;\n_.urfIdx = 0;\n_.valid1 = 0;\n_.verbose = 0;\nvar MAX_DEPTH2 = 12;\nvar MIN_P1LENGTH_PRE = 7;\nlet $clinit_Util_ran = false;\nfunction $clinit_Util() {\n if ($clinit_Util_ran) {\n return;\n }\n $clinit_Util_ran = true;\n var i;\n var i0;\n var i1;\n var ix;\n var j;\n var jx;\n cornerFacelet = initValues(\n getClassLiteralForArray(B_classLit, 2),\n $intern_3,\n 10,\n 0,\n [\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [8, 9, 20],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [6, 18, 38],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [0, 36, 47],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [2, 45, 11],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [29, 26, 15],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [27, 44, 24],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [33, 53, 42],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [35, 17, 51],\n ),\n ],\n );\n edgeFacelet = initValues(\n getClassLiteralForArray(B_classLit, 2),\n $intern_3,\n 10,\n 0,\n [\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [5, 10],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [7, 19],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [3, 37],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [1, 46],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [32, 16],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [28, 25],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [30, 43],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [34, 52],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [23, 12],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [21, 41],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [50, 39],\n ),\n initValues(\n getClassLiteralForArray(B_classLit, 1),\n $intern_30,\n 0,\n 7,\n [48, 14],\n ),\n ],\n );\n Cnk = initDims(I_classLit, [$intern_3, $intern_27], [17, 0], 7, [13, 13], 2);\n move2str = initValues(\n getClassLiteralForArray(Ljava_lang_String_2_classLit, 1),\n $intern_3,\n 2,\n 4,\n [\n \"U \",\n \"U2\",\n \"U'\",\n \"R \",\n \"R2\",\n \"R'\",\n \"F \",\n \"F2\",\n \"F'\",\n \"D \",\n \"D2\",\n \"D'\",\n \"L \",\n \"L2\",\n \"L'\",\n \"B \",\n \"B2\",\n \"B'\",\n ],\n );\n ud2std = initValues(\n getClassLiteralForArray(I_classLit, 1),\n $intern_27,\n 0,\n 7,\n [0, 1, 2, 4, 7, 9, 10, 11, 13, 16, 3, 5, 6, 8, 12, 14, 15, 17],\n );\n std2ud = initDim(I_classLit, $intern_27, 0, 18, 7, 1);\n ckmv2bit = initDim(I_classLit, $intern_27, 0, 11, 7, 1);\n for (i0 = 0; i0 < 18; i0++) {\n std2ud[ud2std[i0]] = i0;\n }\n for (i1 = 0; i1 < 10; i1++) {\n ix = ~~(ud2std[i1] / 3);\n ckmv2bit[i1] = 0;\n for (j = 0; j < 10; j++) {\n jx = ~~(ud2std[j] / 3);\n ckmv2bit[i1] |=\n (ix === jx || (ix % 3 === jx % 3 && ix >= jx) ? 1 : 0) << j;\n }\n }\n ckmv2bit[10] = 0;\n for (i = 0; i < 13; i++) {\n Cnk[i][0] = Cnk[i][i] = 1;\n for (j = 1; j < i; j++) {\n Cnk[i][j] = Cnk[i - 1][j - 1] + Cnk[i - 1][j];\n }\n }\n}\n\nfunction getComb(arr, mask, isEdge) {\n $clinit_Util();\n var end;\n var i;\n var idxC;\n var perm;\n var r;\n end = arr.length - 1;\n idxC = 0;\n r = 4;\n for (i = end; i >= 0; i--) {\n perm = getVal(arr[i], isEdge);\n (perm & 12) === mask && (idxC += Cnk[i][r--]);\n }\n return idxC;\n}\n\nfunction getNParity(idx, n) {\n $clinit_Util();\n var i;\n var p;\n p = 0;\n for (i = n - 2; i >= 0; i--) {\n p ^= idx % (n - i);\n idx = ~~(idx / (n - i));\n }\n return p & 1;\n}\n\nfunction getNPerm(arr, n, isEdge) {\n $clinit_Util();\n var i;\n var idx;\n var v;\n var val;\n idx = 0;\n val = { l: 1323536, m: 2777561, h: 1043915 };\n for (i = 0; i < n - 1; i++) {\n v = getVal(arr[i], isEdge) << 2;\n idx = (n - i) * idx + toInt(and(shr(val, v), { l: 15, m: 0, h: 0 }));\n val = sub_0(val, shl({ l: 1118480, m: 279620, h: 69905 }, v));\n }\n return idx;\n}\n\nfunction getVal(val0, isEdge) {\n return isEdge ? val0 >> 1 : val0 & 7;\n}\n\nfunction setComb(arr, idxC, mask, isEdge) {\n $clinit_Util();\n var end;\n var fill;\n var i;\n var r;\n end = arr.length - 1;\n r = 4;\n fill = end;\n for (i = end; i >= 0; i--) {\n if (idxC >= Cnk[i][r]) {\n idxC -= Cnk[i][r--];\n arr[i] = setVal(arr[i], r | mask, isEdge);\n } else {\n (fill & 12) === mask && (fill -= 4);\n arr[i] = setVal(arr[i], fill--, isEdge);\n }\n }\n}\n\nfunction setNPerm(arr, idx, n, isEdge) {\n $clinit_Util();\n var extract;\n var i;\n var m;\n var p;\n var v;\n var val;\n val = { l: 1323536, m: 2777561, h: 1043915 };\n extract = { l: 0, m: 0, h: 0 };\n for (p = 2; p <= n; p++) {\n extract = or(shl(extract, 4), fromInt(idx % p));\n idx = ~~(idx / p);\n }\n for (i = 0; i < n - 1; i++) {\n v = (toInt(extract) & 15) << 2;\n extract = shr(extract, 4);\n arr[i] = setVal(\n arr[i],\n toInt(and(shr(val, v), { l: 15, m: 0, h: 0 })),\n isEdge,\n );\n m = sub_0(shl({ l: 1, m: 0, h: 0 }, v), { l: 1, m: 0, h: 0 });\n val = or(\n and(val, m),\n and(shr(val, 4), {\n l: ~m.l & $intern_9,\n m: ~m.m & $intern_9,\n h: ~m.h & $intern_10,\n }),\n );\n }\n arr[n - 1] = setVal(\n arr[n - 1],\n toInt(and(val, { l: 15, m: 0, h: 0 })),\n isEdge,\n );\n}\n\nfunction setVal(val0, val, isEdge) {\n return ((isEdge ? (val << 1) | (val0 & 1) : val | (val0 & -8)) << 24) >> 24;\n}\n\nfunction toCubieCube(f, ccRet) {\n $clinit_Util();\n var col1;\n var col2;\n var i;\n var i0;\n var i1;\n var i2;\n var j;\n var ori;\n for (i0 = 0; i0 < 8; i0++) {\n ccRet.ca[i0] = 0;\n }\n for (i1 = 0; i1 < 12; i1++) {\n ccRet.ea[i1] = 0;\n }\n for (i2 = 0; i2 < 8; i2++) {\n for (ori = 0; ori < 3; ori++) {\n if (f[cornerFacelet[i2][ori]] === 0 || f[cornerFacelet[i2][ori]] === 3) {\n break;\n }\n }\n col1 = f[cornerFacelet[i2][(ori + 1) % 3]];\n col2 = f[cornerFacelet[i2][(ori + 2) % 3]];\n for (j = 0; j < 8; j++) {\n if (\n col1 === ~~(cornerFacelet[j][1] / 9) &&\n col2 === ~~(cornerFacelet[j][2] / 9)\n ) {\n ccRet.ca[i2] = narrow_byte(((ori % 3) << 3) | j);\n break;\n }\n }\n }\n for (i = 0; i < 12; i++) {\n for (j = 0; j < 12; j++) {\n if (\n f[edgeFacelet[i][0]] === ~~(edgeFacelet[j][0] / 9) &&\n f[edgeFacelet[i][1]] === ~~(edgeFacelet[j][1] / 9)\n ) {\n ccRet.ea[i] = narrow_byte(j << 1);\n break;\n }\n if (\n f[edgeFacelet[i][0]] === ~~(edgeFacelet[j][1] / 9) &&\n f[edgeFacelet[i][1]] === ~~(edgeFacelet[j][0] / 9)\n ) {\n ccRet.ea[i] = narrow_byte((j << 1) | 1);\n break;\n }\n }\n }\n}\n\nvar Cnk;\nvar ckmv2bit;\nvar cornerFacelet;\nvar edgeFacelet;\nvar move2str;\nvar std2ud;\nvar ud2std;\nfunction $appendSolMove(this$static, curMove) {\n var axisCur;\n var axisLast;\n var pow_0;\n if (this$static.length_0 === 0) {\n this$static.moves[this$static.length_0++] = curMove;\n return;\n }\n axisCur = ~~(curMove / 3);\n axisLast = ~~(this$static.moves[this$static.length_0 - 1] / 3);\n if (axisCur === axisLast) {\n pow_0 =\n ((curMove % 3) + (this$static.moves[this$static.length_0 - 1] % 3) + 1) %\n 4;\n pow_0 === 3\n ? --this$static.length_0\n : (this$static.moves[this$static.length_0 - 1] = axisCur * 3 + pow_0);\n return;\n }\n if (\n this$static.length_0 > 1 &&\n axisCur % 3 === axisLast % 3 &&\n axisCur === ~~(this$static.moves[this$static.length_0 - 2] / 3)\n ) {\n pow_0 =\n ((curMove % 3) + (this$static.moves[this$static.length_0 - 2] % 3) + 1) %\n 4;\n if (pow_0 === 3) {\n this$static.moves[this$static.length_0 - 2] =\n this$static.moves[this$static.length_0 - 1];\n --this$static.length_0;\n } else {\n this$static.moves[this$static.length_0 - 2] = axisCur * 3 + pow_0;\n }\n return;\n }\n this$static.moves[this$static.length_0++] = curMove;\n}\n\nfunction $setArgs(this$static, verbose, urfIdx, depth1) {\n this$static.verbose = verbose;\n this$static.urfIdx = urfIdx;\n this$static.depth1 = depth1;\n}\n\nfunction $toString_2(this$static) {\n var s;\n var sb;\n var urf;\n sb = new StringBuffer();\n urf =\n (this$static.verbose & 2) !== 0\n ? (this$static.urfIdx + 3) % 6\n : this$static.urfIdx;\n if (urf < 3) {\n for (s = 0; s < this$static.length_0; s++) {\n (this$static.verbose & 1) !== 0 &&\n s === this$static.depth1 &&\n ((sb.string += \". \"), sb);\n $append(\n $append_1(\n sb,\n ($clinit_Util(), move2str)[\n ($clinit_CubieCube(), urfMove)[urf][this$static.moves[s]]\n ],\n ),\n );\n }\n } else {\n for (s = this$static.length_0 - 1; s >= 0; s--) {\n $append(\n $append_1(\n sb,\n ($clinit_Util(), move2str)[\n ($clinit_CubieCube(), urfMove)[urf][this$static.moves[s]]\n ],\n ),\n );\n (this$static.verbose & 1) !== 0 &&\n s === this$static.depth1 &&\n ((sb.string += \". \"), sb);\n }\n }\n return sb.string;\n}\n\nfunction Util$Solution() {\n this.moves = initDim(I_classLit, $intern_27, 0, 31, 7, 1);\n}\n\ndefineClass(150, 1, {}, Util$Solution);\n_.depth1 = 0;\n_.length_0 = 0;\n_.urfIdx = 0;\n_.verbose = 0;\nvar I_classLit = createForPrimitive(\"int\", \"I\");\ncreateForClass(\"com.google.gwt.lang\", \"CollapsedPropertyHolder\", 252);\n\ncreateForClass(\"com.google.gwt.lang\", \"JavaClassHierarchySetupUtil\", 254);\nconst Lcom_google_gwt_lang_LongLibBase$LongEmul_2_classLit = createForClass(\n \"com.google.gwt.lang\",\n \"LongLibBase/LongEmul\",\n null,\n);\ncreateForClass(\"com.google.gwt.lang\", \"ModuleUtils\", 257);\nvar B_classLit = createForPrimitive(\"byte\", \"B\");\nvar J_classLit = createForPrimitive(\"long\", \"J\");\nvar C_classLit = createForPrimitive(\"char\", \"C\");\ncreateForClass(\"com.google.gwt.user.client.rpc\", \"XsrfToken\", null),\n createForInterface(\"java.util\", \"Map/Entry\");\n\nexport const initialize = function () {\n init_0(false);\n};\nexport const solvePattern = function (s) {\n return $solution(new Search(), s);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import "./chunk-NAPITA3L.js";
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-I4OWC23M.js";
|
|
3
3
|
import {
|
|
4
4
|
random333Scramble
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-OJI4YUWF.js";
|
|
6
6
|
import "./chunk-7GUL3OBQ.js";
|
|
7
7
|
import "./chunk-RDSQRW3G.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-WIZJQ7QS.js";
|
|
9
|
+
import "./chunk-RUSWM2KK.js";
|
|
10
|
+
import "./chunk-PSQEELP4.js";
|
|
11
11
|
import {
|
|
12
12
|
Alg
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7D7ZUWUK.js";
|
|
14
14
|
|
|
15
15
|
// src/cubing/vendor/mit/cs0x7f/cstimer/src/js/lib/mathlib.ts
|
|
16
16
|
var Cnk = [];
|
|
@@ -2921,4 +2921,4 @@ export {
|
|
|
2921
2921
|
initialize,
|
|
2922
2922
|
random444Scramble
|
|
2923
2923
|
};
|
|
2924
|
-
//# sourceMappingURL=search-dynamic-solve-4x4x4-
|
|
2924
|
+
//# sourceMappingURL=search-dynamic-solve-4x4x4-AS5AIKBC.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Alg
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7D7ZUWUK.js";
|
|
4
4
|
|
|
5
5
|
// src/cubing/vendor/mit/cs0x7f/fto/scramble_fto_standalone.js
|
|
6
6
|
import { randomUIntBelow } from "random-uint-below";
|
|
7
7
|
var DEBUG = false;
|
|
8
|
-
var mathlib = function() {
|
|
8
|
+
var mathlib = (function() {
|
|
9
9
|
var fact = [1];
|
|
10
10
|
for (var i = 0; i < 32; ++i) {
|
|
11
11
|
fact[i + 1] = fact[i] * (i + 1);
|
|
@@ -461,8 +461,8 @@ var mathlib = function() {
|
|
|
461
461
|
rndPerm,
|
|
462
462
|
permOriMult
|
|
463
463
|
};
|
|
464
|
-
}();
|
|
465
|
-
var ftosolver = function() {
|
|
464
|
+
})();
|
|
465
|
+
var ftosolver = (function() {
|
|
466
466
|
function FtoCubie(cp, co, ep, uf, rl) {
|
|
467
467
|
this.cp = cp && cp.slice() || [0, 1, 2, 3, 4, 5];
|
|
468
468
|
this.co = co && co.slice() || [0, 0, 0, 0, 0, 0];
|
|
@@ -1349,8 +1349,8 @@ var ftosolver = function() {
|
|
|
1349
1349
|
FtoCubie,
|
|
1350
1350
|
testbench
|
|
1351
1351
|
};
|
|
1352
|
-
}();
|
|
1353
|
-
var fto_scrambler = function() {
|
|
1352
|
+
})();
|
|
1353
|
+
var fto_scrambler = (function() {
|
|
1354
1354
|
function getRandomScramble(solvedEdge, solvedCenter, solvedCorner) {
|
|
1355
1355
|
var fc = new ftosolver.FtoCubie();
|
|
1356
1356
|
if (!solvedEdge) {
|
|
@@ -1395,11 +1395,11 @@ var fto_scrambler = function() {
|
|
|
1395
1395
|
return {
|
|
1396
1396
|
getRandomScramble: getRandomScramble.bind(null, false, false, false)
|
|
1397
1397
|
};
|
|
1398
|
-
}();
|
|
1398
|
+
})();
|
|
1399
1399
|
function getRandomFTOScramble() {
|
|
1400
1400
|
return fto_scrambler.getRandomScramble();
|
|
1401
1401
|
}
|
|
1402
1402
|
export {
|
|
1403
1403
|
getRandomFTOScramble
|
|
1404
1404
|
};
|
|
1405
|
-
//# sourceMappingURL=search-dynamic-solve-fto-
|
|
1405
|
+
//# sourceMappingURL=search-dynamic-solve-fto-HZREG6ZH.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cubing/vendor/mit/cs0x7f/fto/scramble_fto_standalone.js"],
|
|
4
|
+
"sourcesContent": ["// @ts-nocheck\n\n// From https://gist.github.com/cs0x7f/1579492aa43c794d529057386c489702\n\n\"use strict\";\n\nimport { randomUIntBelow } from \"random-uint-below\";\nimport { Alg } from \"../../../../../cubing/alg\";\n\n/*\nMIT Licence\n\nCopyright (c) 2024 Chen Shuang\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/*\n\n*/\nvar DEBUG = false;\n\nvar mathlib = (function() {\n\tvar fact = [1];\n\tfor (var i = 0; i < 32; ++i) {\n\t\tfact[i + 1] = fact[i] * (i + 1);\n\t}\n\n\tfunction circle(arr) {\n\t\tvar length = arguments.length - 1,\n\t\t\ttemp = arr[arguments[length]];\n\t\tfor (var i = length; i > 1; i--) {\n\t\t\tarr[arguments[i]] = arr[arguments[i - 1]];\n\t\t}\n\t\tarr[arguments[1]] = temp;\n\t\treturn circle;\n\t}\n\n\tfunction getPruning(table, index) {\n\t\treturn table[index >> 3] >> ((index & 7) << 2) & 15;\n\t}\n\n\tfunction setNPerm(arr, idx, n, even) {\n\t\tvar prt = 0;\n\t\tif (even < 0) {\n\t\t\tidx <<= 1;\n\t\t}\n\t\tif (n >= 16) {\n\t\t\tarr[n - 1] = 0;\n\t\t\tfor (var i = n - 2; i >= 0; i--) {\n\t\t\t\tarr[i] = idx % (n - i);\n\t\t\t\tprt ^= arr[i];\n\t\t\t\tidx = ~~(idx / (n - i));\n\t\t\t\tfor (var j = i + 1; j < n; j--) {\n\t\t\t\t\tarr[j] >= arr[i] && arr[j]++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (even < 0 && (prt & 1) != 0) {\n\t\t\t\tvar tmp = arr[n - 1];\n\t\t\t\tarr[n - 1] = arr[n - 2];\n\t\t\t\tarr[n - 2] = tmp;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tvar vall = 0x76543210;\n\t\tvar valh = 0xfedcba98;\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar p = fact[n - 1 - i];\n\t\t\tvar v = idx / p;\n\t\t\tidx = idx % p;\n\t\t\tprt ^= v;\n\t\t\tv <<= 2;\n\t\t\tif (v >= 32) {\n\t\t\t\tv = v - 32;\n\t\t\t\tarr[i] = valh >> v & 0xf;\n\t\t\t\tvar m = (1 << v) - 1;\n\t\t\t\tvalh = (valh & m) + ((valh >> 4) & ~m);\n\t\t\t} else {\n\t\t\t\tarr[i] = vall >> v & 0xf;\n\t\t\t\tvar m = (1 << v) - 1;\n\t\t\t\tvall = (vall & m) + ((vall >>> 4) & ~m) + (valh << 28);\n\t\t\t\tvalh = valh >> 4;\n\t\t\t}\n\t\t}\n\t\tif (even < 0 && (prt & 1) != 0) {\n\t\t\tarr[n - 1] = arr[n - 2];\n\t\t\tarr[n - 2] = vall & 0xf;\n\t\t} else {\n\t\t\tarr[n - 1] = vall & 0xf;\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction getNPerm(arr, n, even) {\n\t\tn = n || arr.length;\n\t\tvar idx = 0;\n\t\tif (n >= 16) {\n\t\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\t\tidx *= n - i;\n\t\t\t\tfor (var j = i + 1; j < n; j++) {\n\t\t\t\t\tarr[j] < arr[i] && idx++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn even < 0 ? (idx >> 1) : idx;\n\t\t}\n\t\tvar vall = 0x76543210;\n\t\tvar valh = 0xfedcba98;\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar v = arr[i] << 2;\n\t\t\tidx *= n - i;\n\t\t\tif (v >= 32) {\n\t\t\t\tidx += (valh >> (v - 32)) & 0xf;\n\t\t\t\tvalh -= 0x11111110 << (v - 32);\n\t\t\t} else {\n\t\t\t\tidx += (vall >> v) & 0xf;\n\t\t\t\tvalh -= 0x11111111;\n\t\t\t\tvall -= 0x11111110 << v;\n\t\t\t}\n\t\t}\n\t\treturn even < 0 ? (idx >> 1) : idx;\n\t}\n\n\tfunction getNParity(idx, n) {\n\t\tvar i, p;\n\t\tp = 0;\n\t\tfor (i = n - 2; i >= 0; --i) {\n\t\t\tp ^= idx % (n - i);\n\t\t\tidx = ~~(idx / (n - i));\n\t\t}\n\t\treturn p & 1;\n\t}\n\n\tfunction getNOri(arr, n, evenbase) {\n\t\tvar base = Math.abs(evenbase);\n\t\tvar idx = evenbase < 0 ? 0 : arr[0] % base;\n\t\tfor (var i = n - 1; i > 0; i--) {\n\t\t\tidx = idx * base + arr[i] % base;\n\t\t}\n\t\treturn idx;\n\t}\n\n\tfunction setNOri(arr, idx, n, evenbase) {\n\t\tvar base = Math.abs(evenbase);\n\t\tvar parity = base * n;\n\t\tfor (var i = 1; i < n; i++) {\n\t\t\tarr[i] = idx % base;\n\t\t\tparity -= arr[i];\n\t\t\tidx = ~~(idx / base);\n\t\t}\n\t\tarr[0] = (evenbase < 0 ? parity : idx) % base;\n\t\treturn arr;\n\t}\n\n\tfunction bitCount(x) {\n\t\tx -= (x >> 1) & 0x55555555;\n\t\tx = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n\t\treturn ((x + (x >> 4) & 0xf0f0f0f) * 0x1010101) >> 24;\n\t}\n\n\tfunction getMPerm(arr, n, cnts, cums) {\n\t\tvar seen = ~0;\n\t\tvar idx = 0;\n\t\tvar x = 1;\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tvar pi = arr[i];\n\t\t\tidx = idx * (n - i) + bitCount(seen & ((1 << cums[pi]) - 1)) * x;\n\t\t\tx = x * cnts[pi]--;\n\t\t\tseen &= ~(1 << (cums[pi] + cnts[pi]));\n\t\t}\n\t\treturn Math.round(idx / x);\n\t}\n\n\tfunction setMPerm(arr, idx, n, cnts, x) {\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tfor (var j = 0; j < cnts.length; j++) {\n\t\t\t\tif (cnts[j] == 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar x2 = ~~(x * cnts[j] / (n - i));\n\t\t\t\tif (idx < x2) {\n\t\t\t\t\tcnts[j]--;\n\t\t\t\t\tarr[i] = j;\n\t\t\t\t\tx = x2;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tidx -= x2;\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\n\t// type: 'p' (permutation), 'o' (orientation), 'c' (combination)\n\t// evenbase: base for ori, sign for even parity, cnts for combination\n\tfunction Coord(type, length, evenbase) {\n\t\tthis.length = length;\n\t\tthis.evenbase = evenbase;\n\t\tif (type == 'p') {\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getNPerm(arr, this.length, this.evenbase);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setNPerm(arr, idx, this.length, this.evenbase);\n\t\t\t};\n\t\t} else if (type == 'o') {\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getNOri(arr, this.length, this.evenbase);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setNOri(arr, idx, this.length, this.evenbase);\n\t\t\t};\n\t\t} else if (type == 'c') {\n\t\t\tvar cnts = evenbase;\n\t\t\tthis.cnts = cnts.slice();\n\t\t\tthis.cntn = this.cnts.length;\n\t\t\tthis.cums = [0];\n\t\t\tfor (var i = 1; i <= this.cntn; i++) {\n\t\t\t\tthis.cums[i] = this.cums[i - 1] + cnts[i - 1];\n\t\t\t}\n\t\t\tthis.n = this.cums[this.cntn];\n\t\t\tvar n = this.n;\n\t\t\tvar x = 1;\n\t\t\tfor (var i = 0; i < this.cntn; i++) {\n\t\t\t\tfor (var j = 1; j <= cnts[i]; j++, n--) {\n\t\t\t\t\tx *= n / j;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.x = Math.round(x);\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getMPerm(arr, this.n, this.cnts.slice(), this.cums);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setMPerm(arr, idx, this.n, this.cnts.slice(), this.x);\n\t\t\t};\n\t\t} else { // invalid type\n\t\t\tdebugger;\n\t\t}\n\t}\n\n\tfunction fillFacelet(facelets, f, perm, ori, divcol) {\n\t\tfor (var i = 0; i < facelets.length; i++) {\n\t\t\tvar cubie = facelets[i];\n\t\t\tvar p = perm[i] === undefined ? i : perm[i];\n\t\t\tif (typeof(cubie) == 'number') {\n\t\t\t\tf[cubie] = ~~(facelets[p] / divcol);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar o = ori[i] || 0;\n\t\t\tfor (var j = 0; j < cubie.length; j++) {\n\t\t\t\tf[cubie[(j + o) % cubie.length]] = ~~(facelets[p][j] / divcol);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction detectFacelet(facelets, f, perm, ori, divcol) {\n\t\tfor (var i = 0; i < facelets.length; i++) {\n\t\t\tvar n_ori = facelets[i].length;\n\t\t\touter_loop: for (var j = 0; j < facelets.length + 1; j++) {\n\t\t\t\tif (j == facelets.length) { // not matched\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (facelets[j].length != n_ori) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var o = 0; o < n_ori; o++) {\n\t\t\t\t\tvar isMatch = true;\n\t\t\t\t\tfor (var t = 0; t < n_ori; t++) {\n\t\t\t\t\t\tif (~~(facelets[j][t] / divcol) != f[facelets[i][(t + o) % n_ori]]) {\n\t\t\t\t\t\t\tisMatch = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (isMatch) {\n\t\t\t\t\t\tperm[i] = j;\n\t\t\t\t\t\tori[i] = o;\n\t\t\t\t\t\tbreak outer_loop;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction createMoveHash(initState, validMoves, hashFunc, moveFunc) {\n\t\tvar states = [initState];\n\t\tvar hash2idx = {};\n\t\tvar depthEnds = [];\n\t\thash2idx[hashFunc(initState)] = 0;\n\t\tdepthEnds[0] = 1;\n\t\tvar moveTable = [];\n\t\tfor (var m = 0; m < validMoves.length; m++) {\n\t\t\tmoveTable[m] = [];\n\t\t}\n\t\tvar tt = +new Date;\n\t\tfor (var i = 0; i < states.length; i++) {\n\t\t\tif (i == depthEnds[depthEnds.length - 1]) {\n\t\t\t\tdepthEnds.push(states.length);\n\t\t\t}\n\t\t\tif (i % 10000 == 9999) {\n\t\t\t\tDEBUG && console.log(i, 'states scanned, tt=', +new Date - tt);\n\t\t\t}\n\t\t\tvar curState = states[i];\n\t\t\tfor (var m = 0; m < validMoves.length; m++) {\n\t\t\t\tvar newState = moveFunc(curState, validMoves[m]);\n\t\t\t\tif (!newState) {\n\t\t\t\t\tmoveTable[m][i] = -1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar newHash = hashFunc(newState);\n\t\t\t\tif (!(newHash in hash2idx)) {\n\t\t\t\t\thash2idx[newHash] = states.length;\n\t\t\t\t\tstates.push(newState);\n\t\t\t\t}\n\t\t\t\tmoveTable[m][i] = hash2idx[newHash];\n\t\t\t}\n\t\t}\n\t\tDEBUG && console.log('[move hash] ' + states.length + ' states generated, tt=', +new Date - tt, JSON.stringify(depthEnds));\n\t\treturn [moveTable, hash2idx];\n\t}\n\n\tfunction createPrun(prun, init, size, maxd, doMove, N_MOVES, N_POWER, N_INV) {\n\t\tvar isMoveTable = Array.isArray(doMove);\n\t\tN_MOVES = N_MOVES || 6;\n\t\tN_POWER = N_POWER || 3;\n\t\tN_INV = N_INV || 256;\n\t\tmaxd = maxd || 256;\n\t\tfor (var i = 0, len = (size + 7) >>> 3; i < len; i++) {\n\t\t\tprun[i] = -1;\n\t\t}\n\t\tif (!Array.isArray(init)) {\n\t\t\tinit = [init];\n\t\t}\n\t\tfor (var i = 0; i < init.length; i++) {\n\t\t\tprun[init[i] >> 3] ^= 15 << ((init[i] & 7) << 2);\n\t\t}\n\t\tvar val = 0;\n\t\t// var t = +new Date;\n\t\tfor (var l = 0; l <= maxd; l++) {\n\t\t\tvar done = 0;\n\t\t\tvar inv = l >= N_INV;\n\t\t\tvar fill = (l + 1) ^ 15;\n\t\t\tvar find = inv ? 0xf : l;\n\t\t\tvar check = inv ? l : 0xf;\n\n\t\t\touter_loop: for (var p = 0; p < size; p++, val >>= 4) {\n\t\t\t\tif ((p & 7) == 0) {\n\t\t\t\t\tval = prun[p >> 3];\n\t\t\t\t\tif (!inv && val == -1) {\n\t\t\t\t\t\tp += 7;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ((val & 0xf) != find) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var m = 0; m < N_MOVES; m++) {\n\t\t\t\t\tvar q = p;\n\t\t\t\t\tfor (var c = 0; c < N_POWER; c++) {\n\t\t\t\t\t\tq = isMoveTable ? doMove[m][q] : doMove(q, m);\n\t\t\t\t\t\tif (q < 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (getPruning(prun, q) != check) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++done;\n\t\t\t\t\t\tif (inv) {\n\t\t\t\t\t\t\tprun[p >> 3] ^= fill << ((p & 7) << 2);\n\t\t\t\t\t\t\tcontinue outer_loop;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprun[q >> 3] ^= fill << ((q & 7) << 2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (done == 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tDEBUG && console.log('[prun]', done);\n\t\t}\n\t}\n\n\t// ida search algorithm\n\t// isSolved(state) -> boolean, in case isSolved = null, getPrun(idx) == 0 is used\n\t// getPrun(state) -> int\n\t// doMove(state) -> newState\n\t// if ckmv[last_move] >> cur_move & 1, cur_move is skipped\n\tfunction Searcher(isSolved, getPrun, doMove, N_AXIS, N_POWER, ckmv) {\n\t\tthis.isSolved = isSolved || function() { return true; };\n\t\tthis.getPrun = getPrun;\n\t\tthis.doMove = doMove;\n\t\tthis.N_AXIS = N_AXIS;\n\t\tthis.N_POWER = N_POWER;\n\t\tthis.ckmv = ckmv || valuedArray(N_AXIS, function(i) { return 1 << i; } );\n\t}\n\n\tvar _ = Searcher.prototype;\n\n\t_.solve = function(idx, minl, MAXL, callback) {\n\t\tvar sols = this.solveMulti([idx], minl, MAXL, callback);\n\t\treturn sols == null ? null : sols[0];\n\t};\n\n\t_.solveMulti = function(idxs, minl, MAXL, callback) {\n\t\tthis.callback = callback || function() { return true; };\n\t\tvar sol = [];\n\t\touter_loop: for (var l = minl; l <= MAXL; l++) {\n\t\t\tfor (var s = 0; s < idxs.length; s++) {\n\t\t\t\tthis.sidx = s;\n\t\t\t\tif (this.idaSearch(idxs[s], l, -1, sol) == 0) {\n\t\t\t\t\tbreak outer_loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.sidx = -1;\n\t\t}\n\t\treturn this.sidx == -1 ? null : [sol, this.sidx];\n\t};\n\n\t_.idaSearch = function(idx, maxl, lm, sol) {\n\t\tvar prun = this.getPrun(idx);\n\t\tif (prun > maxl) {\n\t\t\treturn prun > maxl + 1 ? 2 : 1;\n\t\t}\n\t\tif (maxl == 0) {\n\t\t\treturn this.isSolved(idx) && this.callback(sol, this.sidx) ? 0 : 1;\n\t\t}\n\t\tif (prun == 0 && this.isSolved(idx) && maxl == 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tfor (var axis = 0; axis < this.N_AXIS; axis++) {\n\t\t\tif (this.ckmv[lm] >> axis & 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar idx1 = Array.isArray(idx) ? idx.slice() : idx;\n\t\t\tfor (var pow = 0; pow < this.N_POWER; pow++) {\n\t\t\t\tidx1 = this.doMove(idx1, axis);\n\t\t\t\tif (idx1 == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tsol.push([axis, pow]);\n\t\t\t\tvar ret = this.idaSearch(idx1, maxl - 1, axis, sol);\n\t\t\t\tif (ret == 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\tsol.pop();\n\t\t\t\tif (ret == 2) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 1;\n\t};\n\n\tfunction rn(n) {\n\t\treturn randomUIntBelow(n)\n\t}\n\n\tfunction rndPerm(n, isEven) {\n\t\tvar p = 0;\n\t\tvar arr = [];\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tarr[i] = i;\n\t\t}\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar k = rn(n - i);\n\t\t\tcircle(arr, i, i + k);\n\t\t\tp ^= k != 0;\n\t\t}\n\t\tif (isEven && p) {\n\t\t\tcircle(arr, 0, 1);\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction valuedArray(len, val) {\n\t\tvar ret = [];\n\t\tvar isFun = typeof val == 'function';\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tret[i] = isFun ? val(i) : val;\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction permOriMult(p1, p2, prod, o1, o2, ori, oriMod) {\n\t\tfor (var i = 0; i < p2.length; i++) {\n\t\t\tif (oriMod) {\n\t\t\t\tori[i] = (o1[p2[i]] + o2[i]) % oriMod;\n\t\t\t}\n\t\t\tprod[i] = p1[p2[i]];\n\t\t}\n\t}\n\n\treturn {\n\t\tbitCount: bitCount,\n\t\tgetPruning: getPruning,\n\t\tsetNOri: setNOri,\n\t\tgetNOri: getNOri,\n\t\tgetNPerm: getNPerm,\n\t\tgetNParity: getNParity,\n\t\tCoord: Coord,\n\t\tcreateMoveHash: createMoveHash,\n\t\tcreatePrun: createPrun,\n\t\tfillFacelet: fillFacelet,\n\t\tdetectFacelet: detectFacelet,\n\t\trn: rn,\n\t\tvaluedArray: valuedArray,\n\t\tSearcher: Searcher,\n\t\trndPerm: rndPerm,\n\t\tpermOriMult: permOriMult,\n\t};\n})();\n\nvar ftosolver = (function() {\n\t//face-turning octahedron cube w/o identical pieces\n\tfunction FtoCubie(cp, co, ep, uf, rl) {\n\t\tthis.cp = (cp && cp.slice()) || [0, 1, 2, 3, 4, 5];\n\t\tthis.co = (co && co.slice()) || [0, 0, 0, 0, 0, 0];\n\t\tthis.ep = (ep && ep.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t\tthis.uf = (uf && uf.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t\tthis.rl = (rl && rl.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t}\n\n\tvar U = 0, F = 9, r = 18, l = 27, D = 36, B = 45, R = 54, L = 63;\n\n\tvar cornFacelets = [\n\t\t[U + 0, R + 0, F + 0, L + 0],\n\t\t[U + 4, B + 8, r + 4, R + 8],\n\t\t[U + 8, L + 4, l + 8, B + 4],\n\t\t[l + 0, D + 0, r + 0, B + 0],\n\t\t[F + 4, D + 8, l + 4, L + 8],\n\t\t[r + 8, D + 4, F + 8, R + 4]\n\t];\n\n\tvar edgeFacelets = [\n\t\t[U + 1, R + 3], [U + 3, L + 1], [U + 6, B + 6],\n\t\t[l + 1, D + 3], [r + 3, D + 1], [F + 6, D + 6],\n\t\t[F + 3, R + 1], [F + 1, L + 3], [l + 6, L + 6],\n\t\t[l + 3, B + 1], [r + 1, B + 3], [r + 6, R + 6]\n\t];\n\n\tvar ctufFacelets = [\n\t\tU + 2, U + 5, U + 7,\n\t\tF + 2, F + 5, F + 7,\n\t\tr + 2, r + 5, r + 7,\n\t\tl + 2, l + 5, l + 7\n\t];\n\n\tvar ctrlFacelets = [\n\t\tD + 2, D + 5, D + 7,\n\t\tB + 2, B + 5, B + 7,\n\t\tL + 2, L + 5, L + 7,\n\t\tR + 2, R + 5, R + 7\n\t];\n\n\tFtoCubie.prototype.isEqual = function(fc) {\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif (this.ep[i] != fc.ep[i] || this.uf[i] != fc.uf[i] || this.rl[i] != fc.rl[i]\n\t\t\t\t\t|| i < 6 && (this.cp[i] != fc.cp[i] || this.co[i] != fc.co[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tFtoCubie.prototype.toFaceCube = function(todiv) {\n\t\tvar f = [];\n\t\ttodiv = todiv || 9;\n\t\tvar co = [];\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tco[i] = this.co[i] * 2;\n\t\t}\n\t\tmathlib.fillFacelet(cornFacelets, f, this.cp, co, todiv);\n\t\tmathlib.fillFacelet(edgeFacelets, f, this.ep, [], todiv);\n\t\tmathlib.fillFacelet(ctufFacelets, f, this.uf, null, todiv);\n\t\tmathlib.fillFacelet(ctrlFacelets, f, this.rl, null, todiv);\n\t\treturn f;\n\t}\n\n\tFtoCubie.prototype.fromFacelet = function(facelet) {\n\t\tvar count = 0;\n\t\tvar f = [];\n\t\tfor (var i = 0; i < 72; ++i) {\n\t\t\tf[i] = facelet[i];\n\t\t\tcount += Math.pow(16, f[i]);\n\t\t}\n\t\tif (count != 0x99999999) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar co = [];\n\t\tif (mathlib.detectFacelet(cornFacelets, f, this.cp, co, 9) == -1\n\t\t\t\t|| mathlib.detectFacelet(edgeFacelets, f, this.ep, [], 9) == -1) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar parity = 0;\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tthis.co[i] = co[i] >> 1;\n\t\t\tparity ^= this.co[i];\n\t\t}\n\t\tif (parity != 0\n\t\t\t\t|| mathlib.getNParity(mathlib.getNPerm(this.cp, 6), 6) != 0\n\t\t\t\t|| mathlib.getNParity(mathlib.getNPerm(this.ep, 12), 12) != 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar remainCnts = [3, 3, 3, 3];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar col = f[ctufFacelets[i]];\n\t\t\tif (!(remainCnts[col] > 0)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tthis.uf[i] = col * 3 + 3 - remainCnts[col];\n\t\t\tremainCnts[col]--;\n\t\t}\n\t\tremainCnts = [3, 3, 3, 3];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar col = [0, 1, 3, 2][f[ctrlFacelets[i]] - 4];\n\t\t\tif (!(remainCnts[col] > 0)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tthis.rl[i] = col * 3 + 3 - remainCnts[col];\n\t\t\tremainCnts[col]--;\n\t\t}\n\t\tif (mathlib.getNParity(mathlib.getNPerm(this.uf, 12), 12) != 0) {\n\t\t\tfor (var i = 0; i < 12; i++) { // swap 0 and 1 to fix parity\n\t\t\t\tthis.uf[i] ^= this.uf[i] < 2 ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\tif (mathlib.getNParity(mathlib.getNPerm(this.rl, 12), 12) != 0) {\n\t\t\tfor (var i = 0; i < 12; i++) { // swap 0 and 1 to fix parity\n\t\t\t\tthis.rl[i] ^= this.rl[i] < 2 ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tFtoCubie.prototype.toString = function(todiv) {\n\t\tvar f = this.toFaceCube(todiv);\n\t\tvar ret = '' +\n\t\t\t' U8 U7 U6 U5 U4 B8 B7 B6 B5 B4\\n' +\n\t\t\t'L4 U3 U2 U1 R8 r4 B3 B2 B1 l8\\n' +\n\t\t\t'L5 L1 U0 R3 R7 r5 r1 B0 l3 l7\\n' +\n\t\t\t'L6 L2 L0 R0 R2 R6 r6 r2 r0 l0 l2 l6\\n' +\n\t\t\t'L7 L3 F0 R1 R5 r7 r3 D0 l1 l5\\n' +\n\t\t\t'L8 F1 F2 F3 R4 r8 D1 D2 D3 l4\\n' +\n\t\t\t' F4 F5 F6 F7 F8 D4 D5 D6 D7 D8';\n\t\tret = ret.replace(/([UFrlDBRL])([0-8])/g, function(m, p1, p2) {\n\t\t\tvar i = 'UFrlDBRL'.indexOf(p1) * 9 + (~~p2);\n\t\t\treturn 'UFrlDBRL' [~~(f[i] / 9)] + (f[i] % 9);\n\t\t});\n\t\treturn ret;\n\t}\n\n\tFtoCubie.FtoMult = function() {\n\t\tvar prod = arguments[arguments.length - 1] || new FtoCubie();\n\t\tfor (var k = 0; k < arguments.length; k++) {\n\t\t\tvar a = arguments[arguments.length - 1 - k];\n\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\tprod.co[i] = k == 0 ? 0 : (a.co[prod.cp[i]] ^ prod.co[i]);\n\t\t\t\tprod.cp[i] = k == 0 ? i : a.cp[prod.cp[i]];\n\t\t\t}\n\t\t\tfor (var i = 0; i < 12; i++) {\n\t\t\t\tprod.ep[i] = k == 0 ? i : a.ep[prod.ep[i]];\n\t\t\t\tprod.uf[i] = k == 0 ? i : a.uf[prod.uf[i]];\n\t\t\t\tprod.rl[i] = k == 0 ? i : a.rl[prod.rl[i]];\n\t\t\t}\n\t\t}\n\t\treturn prod;\n\t}\n\n\tfunction initMoveCube() {\n\t\tvar rotU = new FtoCubie( //move[U]\n\t\t\t[1, 2, 0, 4, 5, 3], [0, 0, 0, 0, 0, 0], [2, 0, 1, 5, 3, 4, 10, 11, 6, 7, 8, 9],\n\t\t\t[1, 2, 0, 7, 8, 6, 10, 11, 9, 4, 5, 3], [2, 0, 1, 8, 6, 7, 11, 9, 10, 5, 3, 4]);\n\t\tvar rotR = new FtoCubie( //move[R]\n\t\t\t[5, 0, 4, 2, 3, 1], [1, 1, 0, 1, 1, 0], [6, 5, 7, 9, 2, 10, 11, 4, 3, 8, 1, 0],\n\t\t\t[5, 3, 4, 8, 6, 7, 2, 0, 1, 11, 9, 10], [4, 5, 3, 7, 8, 6, 1, 2, 0, 10, 11, 9]);\n\n\t\tvar rotUi = FtoCubie.FtoMult(rotU, rotU, null);\n\t\tvar rotRi = FtoCubie.FtoMult(rotR, rotR, null);\n\t\tvar rotL = FtoCubie.FtoMult(rotUi, rotR, rotU, null);\n\t\tvar rotF = FtoCubie.FtoMult(rotR, rotU, rotRi, null);\n\n\t\tvar moveCube = [];\n\t\tmoveCube[0] = new FtoCubie( //moveU\n\t\t\t[1, 2, 0, 3, 4, 5], [0, 0, 0, 0, 0, 0], [2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n\t\t\t[1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11], [0, 1, 2, 3, 6, 7, 11, 9, 8, 5, 10, 4]);\n\t\tmoveCube[2] = new FtoCubie( //moveF\n\t\t\t[4, 1, 2, 3, 5, 0], [1, 0, 0, 0, 1, 0], [0, 1, 2, 3, 4, 6, 7, 5, 8, 9, 10, 11],\n\t\t\t[0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11], [0, 9, 10, 3, 4, 5, 2, 7, 1, 8, 6, 11]);\n\t\tmoveCube[4] = new FtoCubie( //mover\n\t\t\t[0, 5, 2, 1, 4, 3], [0, 1, 0, 0, 0, 1], [0, 1, 2, 3, 10, 5, 6, 7, 8, 9, 11, 4],\n\t\t\t[0, 1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 11], [5, 3, 2, 11, 4, 10, 6, 7, 8, 9, 0, 1]);\n\t\tmoveCube[6] = new FtoCubie( //movel\n\t\t\t[0, 1, 3, 4, 2, 5], [0, 0, 1, 1, 0, 0], [0, 1, 2, 8, 4, 5, 6, 7, 9, 3, 10, 11],\n\t\t\t[0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 9], [8, 1, 7, 2, 0, 5, 6, 3, 4, 9, 10, 11]);\n\t\tmoveCube[8] = new FtoCubie( //moveD\n\t\t\t[0, 1, 2, 5, 3, 4], [0, 0, 0, 0, 0, 0], [0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11],\n\t\t\t[0, 1, 2, 3, 9, 10, 5, 7, 4, 8, 6, 11], [1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11]);\n\t\tmoveCube[10] = new FtoCubie( //moveB\n\t\t\t[0, 3, 1, 2, 4, 5], [0, 1, 1, 0, 0, 0], [0, 1, 10, 3, 4, 5, 6, 7, 8, 2, 9, 11],\n\t\t\t[0, 6, 7, 3, 4, 5, 11, 9, 8, 2, 10, 1], [0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11]);\n\t\tmoveCube[12] = new FtoCubie( //moveR\n\t\t\t[5, 0, 2, 3, 4, 1], [1, 1, 0, 0, 0, 0], [6, 1, 2, 3, 4, 5, 11, 7, 8, 9, 10, 0],\n\t\t\t[5, 3, 2, 8, 4, 7, 6, 0, 1, 9, 10, 11], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 9]);\n\t\tmoveCube[14] = new FtoCubie( //moveL\n\t\t\t[2, 1, 4, 3, 0, 5], [1, 0, 1, 0, 0, 0], [0, 8, 2, 3, 4, 5, 6, 1, 7, 9, 10, 11],\n\t\t\t[11, 1, 10, 2, 0, 5, 6, 7, 8, 9, 3, 4], [0, 1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 11]);\n\t\tmoveCube[16] = FtoCubie.FtoMult(rotU, moveCube[8], null); // moveUw = [U] * D\n\t\tmoveCube[18] = FtoCubie.FtoMult(rotF, moveCube[10], null); // moveFw = [F] * B\n\t\tmoveCube[20] = FtoCubie.FtoMult(rotR, moveCube[6], null); // moveRw = [R] * l\n\t\tmoveCube[22] = FtoCubie.FtoMult(rotL, moveCube[4], null); // moveLw = [L] * r\n\n\t\tfor (var i = 1; i < 24; i += 2) {\n\t\t\tmoveCube[i] = new FtoCubie();\n\t\t\tFtoCubie.FtoMult(moveCube[i - 1], moveCube[i - 1], moveCube[i]);\n\t\t}\n\n\t\tvar moveHash = [];\n\t\tfor (var i = 0; i < 24; i ++) {\n\t\t\tmoveHash[i] = moveCube[i].ep.join(',');\n\t\t}\n\t\t//init sym\n\t\tvar symCube = [];\n\t\tvar symMult = [];\n\t\tvar symMulI = [];\n\t\tvar symMulM = [];\n\t\tvar symHash = [];\n\t\tvar fc = new FtoCubie();\n\t\tvar fc2 = new FtoCubie();\n\t\tvar tmp;\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tsymCube[s] = new FtoCubie(fc.cp, fc.co, fc.ep, fc.uf, fc.rl);\n\t\t\tsymHash[s] = symCube[s].ep.join(',');\n\t\t\tsymMult[s] = [];\n\t\t\tsymMulI[s] = [];\n\t\t\tfc = FtoCubie.FtoMult(fc, rotU, null);\n\t\t\tif (s % 3 == 2) { // [F] or [R]\n\t\t\t\tfc = FtoCubie.FtoMult(fc, rotR, rotU, null);\n\t\t\t}\n\t\t\tif (s % 6 == 5) {\n\t\t\t\tfc = FtoCubie.FtoMult(fc, rotU, rotR, null);\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tfor (var j = 0; j < 12; j++) {\n\t\t\t\tFtoCubie.FtoMult(symCube[i], symCube[j], fc);\n\t\t\t\tvar k = symHash.indexOf(fc.ep.join(','));\n\t\t\t\tsymMult[i][j] = k;\n\t\t\t\tsymMulI[k][j] = i;\n\t\t\t}\n\t\t}\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tsymMulM[s] = [];\n\t\t\tfor (var j = 0; j < 8; j++) {\n\t\t\t\tFtoCubie.FtoMult(symCube[symMulI[0][s]], moveCube[j * 2], symCube[s], fc);\n\t\t\t\tvar k = moveHash.indexOf(fc.ep.join(','));\n\t\t\t\tsymMulM[s][j] = k >> 1;\n\t\t\t}\n\t\t}\n\t\tFtoCubie.moveCube = moveCube;\n\t\tFtoCubie.symCube = symCube;\n\t\tFtoCubie.symMult = symMult;\n\t\tFtoCubie.symMulI = symMulI;\n\t\tFtoCubie.symMulM = symMulM;\n\t};\n\n\tinitMoveCube();\n\n\tfunction ftoPermMove(key, perm, move) {\n\t\tvar ret = [];\n\t\tvar movePerm = FtoCubie.moveCube[move][key];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tret[i] = perm[movePerm[i]];\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction ftoFullMove(fc, move) {\n\t\treturn FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t}\n\n\tfunction phase1EdgeHash(ep) {\n\t\tvar ret = 0;\n\t\tvar e3fst = -1;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif ((0x38 >> ep[i] & 1) == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (e3fst == -1) {\n\t\t\t\te3fst = ep[i];\n\t\t\t}\n\t\t\tret += ((ep[i] - e3fst + 3) % 3 + 1) << i * 2;\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase1CtrlHash(rl) {\n\t\tvar ret = 0;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif (rl[i] < 3) {\n\t\t\t\tret |= 1 << i;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase2EdgeHash(ep) {\n\t\tvar edge2group = [0, 1, 2, 3, 3, 3, 0, 1, 1, 2, 2, 0];\n\t\tvar groups = [[0, 6, 11], [1, 7, 8], [2, 9, 10], [3, 4, 5]];\n\t\tvar ret = 0;\n\t\tvar egoff = [-1, -1, -1, -1];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar g = edge2group[ep[i]];\n\t\t\tvar gidx = groups[g].indexOf(ep[i]);\n\t\t\tif (egoff[g] == -1) {\n\t\t\t\tegoff[g] = gidx;\n\t\t\t}\n\t\t\tret += (g * 4 + (gidx - egoff[g] + 3) % 3) * Math.pow(16, i);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase2CtHash(ct) {\n\t\tvar ret = 0;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tret |= ~~(ct[i] / 3) << (i * 2);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase3EdgeHash(ep) {\n\t\treturn String.fromCharCode.apply(null, ep);\n\t}\n\n\tfunction phase3CcufHash(fc) {\n\t\treturn String.fromCharCode.apply(null, [].concat(fc.cp, fc.co));\n\t}\n\n\tfunction randomMoves(validMoves, len) {\n\t\tvar scramble = [];\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tscramble.push(validMoves[~~(Math.random() * validMoves.length)]);\n\t\t}\n\t\tvar fc = new FtoCubie();\n\t\tfor (var i = 0; i < scramble.length; i++) {\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[scramble[i]], null);\n\t\t}\n\t\treturn [fc, scramble];\n\t}\n\n\tfunction genCkmv(moves) {\n\t\tvar ckmv = [];\n\t\tvar tmp1 = new FtoCubie();\n\t\tvar tmp2 = new FtoCubie();\n\t\tfor (var m1 = 0; m1 < moves.length; m1++) {\n\t\t\tckmv[m1] = 1 << m1;\n\t\t\tfor (var m2 = 0; m2 < m1; m2++) {\n\t\t\t\tFtoCubie.FtoMult(FtoCubie.moveCube[moves[m1]], FtoCubie.moveCube[moves[m2]], tmp1);\n\t\t\t\tFtoCubie.FtoMult(FtoCubie.moveCube[moves[m2]], FtoCubie.moveCube[moves[m1]], tmp2);\n\t\t\t\tif (tmp1.isEqual(tmp2)) {\n\t\t\t\t\tckmv[m1] |= 1 << m2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn ckmv;\n\t}\n\n\tvar phase1Moves = [0, 2, 22, 6, 16, 10, 12, 14]; // keep the (D, DR) edge\n\tvar p1epMoves = null;\n\tvar p1rlMoves = null;\n\tvar ckmv1 = null;\n\tvar solv1 = null;\n\n\tvar pyraSymCube = [];\n\tfor (var i = 0; i < 12; i++) {\n\t\tpyraSymCube.push(new FtoCubie(\n\t\t\tFtoCubie.symCube[i].cp,\n\t\t\tFtoCubie.symCube[i].co,\n\t\t\tnull,\n\t\t\tFtoCubie.symCube[i].uf,\n\t\t\tnull\n\t\t));\n\t}\n\n\tfunction phase1Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp1epMoves = mathlib.createMoveHash(fc.ep.slice(), phase1Moves, phase1EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp1rlMoves = mathlib.createMoveHash(fc.rl.slice(), phase1Moves, phase1CtrlHash, ftoPermMove.bind(null, 'rl'));\n\t\tvar N_P1EP = p1epMoves[0][0].length;\n\t\tvar N_P1RL = p1rlMoves[0][0].length;\n\t\tDEBUG && console.log('p1ep len=' + N_P1EP + ' p1rl len=' + N_P1RL);\n\n\t\tckmv1 = genCkmv(phase1Moves);\n\t\tvar p1eprlPrun = [];\n\t\tmathlib.createPrun(p1eprlPrun, 0, N_P1EP * N_P1RL, 14, function(idx, move) {\n\t\t\tvar rl = ~~(idx / N_P1EP);\n\t\t\tvar ep = idx % N_P1EP;\n\t\t\treturn p1rlMoves[0][move][rl] * N_P1EP + p1epMoves[0][move][ep];\n\t\t}, phase1Moves.length, 2);\n\n\t\tsolv1 = new mathlib.Searcher(null, function(idx) {\n\t\t\treturn mathlib.getPruning(p1eprlPrun, idx[1] * N_P1EP + idx[0]);\n\t\t}, function(idx, move) {\n\t\t\treturn [\n\t\t\t\tp1epMoves[0][move][idx[0]],\n\t\t\t\tp1rlMoves[0][move][idx[1]]\n\t\t\t];\n\t\t}, 8, 2, ckmv1);\n\t}\n\n\tfunction phase1GenIdxs(fc) {\n\t\tvar idxs = [];\n\t\tvar syms = [];\n\t\tvar fc2 = new FtoCubie();\n\t\tvar fc3 = new FtoCubie();\n\n\t\tfor (var sidx = 0; sidx < 12; sidx += 3) {\n\t\t\tFtoCubie.FtoMult(FtoCubie.symCube[sidx % 12], fc, fc2);\n\t\t\tvar rot;\n\t\t\tfor (rot = 0; rot < 12; rot++) {\n\t\t\t\tFtoCubie.FtoMult(fc2, FtoCubie.symCube[rot], fc3);\n\t\t\t\tif (fc3.ep[4] == 4) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar epidxs = [];\n\t\t\tvar rlidxs = [];\n\t\t\tidxs.push([\n\t\t\t\tp1epMoves[1][phase1EdgeHash(fc3.ep)],\n\t\t\t\tp1rlMoves[1][phase1CtrlHash(fc3.rl)]\n\t\t\t]);\n\t\t\tsyms.push([sidx, rot]);\n\t\t}\n\t\treturn [idxs, syms];\n\t}\n\n\tfunction phase1ProcSol(sol, solsym, fc) {\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tsol[i] = phase1Moves[sol[i][0]] + sol[i][1];\n\t\t}\n\t\tvar std = move2std(sol);\n\t\tfor (var i = 0; i < std[0].length; i++) {\n\t\t\tvar move = std[0][i];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solsym[1]]][move >> 1] * 2 + (move & 1);\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[sol[i]], null);\n\t\t}\n\t\tsolsym[1] = FtoCubie.symMulI[solsym[1]][std[1]];\n\t\tfc = FtoCubie.FtoMult(\n\t\t\tpyraSymCube[~~(solsym[0] / 12)], FtoCubie.symCube[solsym[0] % 12],\n\t\t\tfc, FtoCubie.symCube[solsym[1]], null\n\t\t);\n\t\treturn [fc, sol, solsym[0], solsym[1]];\n\t}\n\n\tvar N_PHASE1_SOLS = 1000;\n\n\tfunction solvePhase1(fc) {\n\t\tif (!solv1) {\n\t\t\tphase1Init();\n\t\t}\n\n\t\tvar tt = performance.now();\n\t\tvar idxs = phase1GenIdxs(fc);\n\t\tvar syms = idxs[1];\n\t\tidxs = idxs[0];\n\n\t\tvar p1sols = [];\n\n\t\tvar sol1s = solv1.solveMulti(idxs, 0, 12, function(sol, sidx) {\n\t\t\tvar param = phase1ProcSol(sol.slice(), syms[sidx].slice(), fc);\n\t\t\tp1sols.push(param);\n\t\t\treturn p1sols.length >= N_PHASE1_SOLS;\n\t\t});\n\n\t\ttt = performance.now() - tt;\n\t\tfor (var i = 0; i < p1sols.length; i++) {\n\t\t\tp1sols[i].push(tt);\n\t\t}\n\t\treturn p1sols;\n\t}\n\n\tvar phase2Moves = [0, 12, 14, 8, 10];\n\tvar p2epMoves = null;\n\tvar p2rlMoves = null;\n\tvar p2ccMoves = null;\n\tvar p2cc2ufBit = {};\n\tvar ckmv2 = null;\n\tvar solv2 = null;\n\tvar P2EPRL_MAXL = 11;\n\tvar p2symMap = [];\n\tvar ufStd2Raw = [];\n\tvar ufRaw2Std = [];\n\tvar p2ufCoord = new mathlib.Coord('c', 12, [3, 3, 3, 3]);\n\n\tvar cornExFacelets = [\n\t\t[U + 2, R + 2, F + 2, L + 2],\n\t\t[U + 5, B + 7, r + 5, R + 7],\n\t\t[U + 7, L + 5, l + 7, B + 5],\n\t\t[l + 2, D + 2, r + 2, B + 2],\n\t\t[F + 5, D + 7, l + 5, L + 7],\n\t\t[r + 7, D + 5, F + 7, R + 5]\n\t];\n\n\tfunction phase2CpcoHash(fc) {\n\t\tvar ret = String.fromCharCode.apply(null, [].concat(fc.cp, fc.co));\n\t\tif (!(ret in p2cc2ufBit)) {\n\t\t\tvar co = [];\n\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\tco[i] = fc.co[i] * 2;\n\t\t\t}\n\t\t\tvar facelet = fc.toFaceCube();\n\t\t\tmathlib.fillFacelet(cornExFacelets, facelet, fc.cp, co, 9);\n\t\t\tvar fc2 = new FtoCubie().fromFacelet(facelet);\n\t\t\tp2cc2ufBit[ret] = phase2CtHash(fc2.uf);\n\t\t}\n\t\treturn ret;\n\t}\n\n\t// re-color the cube s.t. uf is minimized in lexicographical order\n\tfunction phase2ufStd(uf, symMap) {\n\t\tvar col1 = uf[0], col2 = -1;\n\t\tfor (var i = 1; i < 12; i++) {\n\t\t\tif (uf[i] != col1) {\n\t\t\t\tcol2 = uf[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar sym = symMap[col1 * 4 + col2];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tuf[i] = ~~(FtoCubie.symCube[sym].uf[uf[i] * 3] / 3);\n\t\t}\n\t\treturn sym;\n\t}\n\n\tfunction getPhase2ufIdx(uf) {\n\t\tvar ufstd = [];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tufstd[i] = ~~(uf[i] / 3);\n\t\t}\n\t\tvar sym = phase2ufStd(ufstd, p2symMap);\n\t\treturn ufRaw2Std[p2ufCoord.get(ufstd)] << 4 | sym;\n\t}\n\n\tfunction phase2Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp2epMoves = mathlib.createMoveHash(fc.ep.slice(), phase2Moves, phase2EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp2rlMoves = mathlib.createMoveHash(fc.rl.slice(), phase2Moves, phase2CtHash, ftoPermMove.bind(null, 'rl'));\n\t\tp2ccMoves = mathlib.createMoveHash(fc, phase2Moves, phase2CpcoHash, ftoFullMove);\n\n\t\tvar arr = [];\n\t\tvar arr2 = [];\n\t\tvar p2ufMoveStd = [[], [], [], [], []];\n\t\tvar ufStd2Bit = [];\n\t\tvar p2ccRecol = [];\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tvar uf = FtoCubie.symCube[s].uf;\n\t\t\tvar col1 = ~~(uf.indexOf(0) / 3);\n\t\t\tvar col2 = ~~(uf.indexOf(3) / 3);\n\t\t\tp2symMap[col1 * 4 + col2] = s;\n\t\t\tp2ccRecol[s] = [];\n\t\t}\n\t\tout: for (var i = 0; i < 42000; i++) {\n\t\t\tp2ufCoord.set(arr, i);\n\t\t\tfor (var j = 1; j < 12; j++) {\n\t\t\t\tif (arr[j] > 1) {\n\t\t\t\t\tcontinue out;\n\t\t\t\t} else if (arr[j] == 1) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tufRaw2Std[i] = ufStd2Raw.length;\n\t\t\tufStd2Raw.push(i);\n\t\t}\n\t\tfor (var i = 0; i < ufStd2Raw.length; i++) {\n\t\t\tp2ufCoord.set(arr, ufStd2Raw[i]);\n\t\t\tvar hash = 0;\n\t\t\tfor (var j = 0; j < 12; j++) {\n\t\t\t\thash |= arr[j] << (j * 2);\n\t\t\t}\n\t\t\tufStd2Bit[i] = hash;\n\t\t\tfor (var m = 0; m < phase2Moves.length; m++) {\n\t\t\t\tmathlib.permOriMult(arr, FtoCubie.moveCube[phase2Moves[m]].uf, arr2);\n\t\t\t\tvar sym = phase2ufStd(arr2, p2symMap);\n\t\t\t\tp2ufMoveStd[m][i] = ufRaw2Std[p2ufCoord.get(arr2)] << 4 | sym;\n\t\t\t}\n\t\t}\n\t\tvar cc2Bit = [];\n\t\tfor (var key in p2ccMoves[1]) {\n\t\t\tvar idx = p2ccMoves[1][key];\n\t\t\tcc2Bit[idx] = p2cc2ufBit[key];\n\t\t\tvar cpco = [];\n\t\t\tfor (var s = 0; s < 12; s++) {\n\t\t\t\tvar sc = FtoCubie.symCube[s];\n\t\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\t\tvar scpi = key.charCodeAt(i);\n\t\t\t\t\tcpco[i] = sc.cp[scpi];\n\t\t\t\t\tcpco[i + 6] = sc.co[scpi] ^ key.charCodeAt(i + 6);\n\t\t\t\t}\n\t\t\t\tvar hash = String.fromCharCode.apply(null, cpco);\n\t\t\t\tp2ccRecol[s][idx] = p2ccMoves[1][hash];\n\t\t\t}\n\t\t}\n\t\tvar p2necPrun = [ // idx = a * 7 + b, a: #mismatch 3 U corners, b: other corners\n\t\t\t0, 0, 3, 4, 5, 6, 8,\n\t\t\t0, 2, 3, 4, 5, 6, 8,\n\t\t\t1, 2, 4, 4, 5, 6, 8,\n\t\t\t1, 3, 4, 5, 6, 7, 8,\n\t\t\t3, 3, 4, 5, 6, 7, 9,\n\t\t\t4, 4, 5, 6, 7, 8, 9,\n\t\t\t5, 5, 6, 7, 8, 9, 10\n\t\t];\n\n\t\tvar N_P2EP = p2epMoves[0][0].length;\n\t\tvar N_P2RL = p2rlMoves[0][0].length;\n\t\tvar p2eprlPrun = [];\n\t\tmathlib.createPrun(p2eprlPrun, 0, N_P2EP * N_P2RL, P2EPRL_MAXL - 2, function(idx, move) {\n\t\t\tvar rl = ~~(idx / N_P2EP);\n\t\t\tvar ep = idx % N_P2EP;\n\t\t\treturn p2rlMoves[0][move][rl] * N_P2EP + p2epMoves[0][move][ep];\n\t\t}, phase2Moves.length, 2);\n\t\tckmv2 = genCkmv(phase2Moves);\n\n\t\tsolv2 = new mathlib.Searcher(function(idx) {\n\t\t\treturn ufStd2Bit[idx[3] >> 4] == cc2Bit[p2ccRecol[idx[3] & 0xf][idx[2]]];\n\t\t}, function(idx) {\n\t\t\tvar xors = ufStd2Bit[idx[3] >> 4] ^ cc2Bit[p2ccRecol[idx[3] & 0xf][idx[2]]];\n\t\t\txors = (xors | xors >> 1) & 0x555555;\n\t\t\tvar necIdx = mathlib.bitCount(xors & 0xc0c0ff) * 7 + mathlib.bitCount(xors & 0x3f3f00);\n\t\t\treturn Math.max(\n\t\t\t\tMath.min(P2EPRL_MAXL, mathlib.getPruning(p2eprlPrun, idx[1] * N_P2EP + idx[0])),\n\t\t\t\tp2necPrun[necIdx]\n\t\t\t);\n\t\t}, function(idx, move) {\n\t\t\tvar ufidx1 = p2ufMoveStd[move][idx[3] >> 4];\n\t\t\tvar ufcol = FtoCubie.symMult[ufidx1 & 0xf][idx[3] & 0xf];\n\t\t\treturn [\n\t\t\t\tp2epMoves[0][move][idx[0]],\n\t\t\t\tp2rlMoves[0][move][idx[1]],\n\t\t\t\tp2ccMoves[0][move][idx[2]],\n\t\t\t\tufidx1 & ~0xf | ufcol,\n\t\t\t];\n\t\t}, phase2Moves.length, 2, ckmv2);\n\t}\n\n\tfunction solvePhase2(solvInfos) {\n\t\tif (!solv2) {\n\t\t\tphase2Init();\n\t\t}\n\t\tvar tt = performance.now();\n\t\tvar idxs = [];\n\t\tfor (var i = 0; i < solvInfos.length; i++) {\n\t\t\tidxs.push([\n\t\t\t\tp2epMoves[1][phase2EdgeHash(solvInfos[i][0].ep)],\n\t\t\t\tp2rlMoves[1][phase2CtHash(solvInfos[i][0].rl)],\n\t\t\t\tp2ccMoves[1][phase2CpcoHash(solvInfos[i][0])],\n\t\t\t\tgetPhase2ufIdx(solvInfos[i][0].uf)\n\t\t\t]);\n\t\t}\n\t\tvar sol2s = solv2.solveMulti(idxs, 0, 25);\n\t\tvar sol = sol2s[0];\n\t\tvar src = sol2s[1];\n\t\tvar solvInfo = solvInfos[src];\n\t\tvar fc = solvInfo[0];\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tvar move = phase2Moves[sol[i][0]] + sol[i][1];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solvInfo[3]]][move >> 1] * 2 + (move & 1);\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t\t}\n\t\treturn [fc, sol, solvInfo[2], solvInfo[3], src, performance.now() - tt];\n\t}\n\n\tvar phase3Moves = [8, 10, 12, 14];\n\tvar p3epMoves = null;\n\tvar p3ufMoves = null;\n\tvar p3epPrun = null;\n\tvar p3ufPrun = null;\n\tvar ckmv3 = null;\n\tvar solv3 = null;\n\n\tfunction phase3Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp3epMoves = mathlib.createMoveHash(fc.ep.slice(), phase3Moves, phase3EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp3ufMoves = mathlib.createMoveHash(new FtoCubie(), phase3Moves, phase3CcufHash, ftoFullMove);\n\t\tp3epPrun = [];\n\t\tp3ufPrun = [];\n\t\tmathlib.createPrun(p3epPrun, 0, 81, 14, p3epMoves[0], 4, 2);\n\t\tmathlib.createPrun(p3ufPrun, 0, 11520, 14, p3ufMoves[0], 4, 2);\n\t\tckmv3 = genCkmv(phase3Moves);\n\n\t\tsolv3 = new mathlib.Searcher(null, function(idx) {\n\t\t\treturn Math.max(\n\t\t\t\tmathlib.getPruning(p3epPrun, idx[0]),\n\t\t\t\tmathlib.getPruning(p3ufPrun, idx[1])\n\t\t\t);\n\t\t}, function(idx, move) {\n\t\t\treturn [p3epMoves[0][move][idx[0]], p3ufMoves[0][move][idx[1]]];\n\t\t}, 4, 2, ckmv3);\n\t}\n\n\tfunction solvePhase3(solvInfo) {\n\t\tvar fc = solvInfo[0];\n\t\tif (!p3epPrun) {\n\t\t\tphase3Init();\n\t\t}\n\n\t\tvar tt = performance.now();\n\t\tvar p3epidx = p3epMoves[1][phase3EdgeHash(fc.ep)];\n\t\tvar p3ufidx = p3ufMoves[1][phase3CcufHash(fc)];\n\n\t\tvar sol = solv3.solve([p3epidx, p3ufidx], 0, 25);\n\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tvar move = phase3Moves[sol[i][0]] + sol[i][1];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solvInfo[3]]][move >> 1] * 2 + (move & 1);\n\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t\t}\n\t\treturn [fc, sol, solvInfo[2], solvInfo[3], performance.now() - tt];\n\t}\n\n\t// convert wide moves to face moves\n\tfunction move2std(moves) {\n\t\tvar sym = 0;\n\t\tvar ret = [];\n\t\t// Uw = [U] * D, Fw = [F] * B, Rw = [R] * l, Lw = [L] * r\n\t\tvar w2axis = [4, 5, 3, 2];\n\t\tvar w2rot = [1, 10, 5, 11];\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tvar rot = 0;\n\t\t\tvar axis = moves[i] >> 1;\n\t\t\tvar pow = moves[i] & 1;\n\t\t\tif (axis >= 8) {\n\t\t\t\trot = w2rot[axis - 8];\n\t\t\t\taxis = w2axis[axis - 8];\n\t\t\t}\n\t\t\tif (!pow) {\n\t\t\t\trot = FtoCubie.symMult[rot][rot];\n\t\t\t}\n\t\t\tret.push(FtoCubie.symMulM[sym][axis] * 2 + pow);\n\t\t\tsym = FtoCubie.symMult[rot][sym];\n\t\t}\n\t\treturn [ret, sym];\n\t}\n\n\tfunction applyMoves(fc, moves) {\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[moves[i]], null);\n\t\t}\n\t\treturn fc;\n\t}\n\n\tvar move2str = [\"U\", \"U'\", \"F\", \"F'\", \"r\", \"r'\", \"l\", \"l'\", \"D\", \"D'\", \"B\", \"B'\", \"R\", \"R'\", \"L\", \"L'\"]\n\n\tfunction prettyMoves(moves) {\n\t\tvar buf = [];\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tbuf[i] = move2str[moves[i]];\n\t\t}\n\t\treturn buf.join(' ').replace(/l/g, 'BL').replace(/r/g, 'BR');\n\t}\n\n\tfunction FtoSolver() {}\n\n\tFtoSolver.prototype.solveFto = function(fc, invSol) {\n\t\tif (!solv1) {\n\t\t\tvar tt = performance.now();\n\t\t\tphase1Init();\n\t\t\tphase2Init();\n\t\t\tphase3Init();\n\t\t\tDEBUG && console.log('[ftosolver] init time:', performance.now() - tt);\n\t\t}\n\t\tvar solvInfos = solvePhase1(fc);\n\n\t\tvar solvInfo2 = solvePhase2(solvInfos);\n\n\t\tvar solvInfo1 = solvInfos[solvInfo2[4]];\n\t\tthis.sol1 = solvInfo1[1].slice();\n\t\tthis.tt1 = solvInfo1[4];\n\t\tvar sym1Idx = solvInfo1[2];\n\n\t\tthis.sol2 = solvInfo2[1].slice();\n\t\tthis.tt2 = solvInfo2[5];\n\t\tsolvInfo2[0] = FtoCubie.FtoMult(pyraSymCube[FtoCubie.symMulI[0][~~(sym1Idx / 12)]], solvInfo2[0], null);\n\n\t\tvar solvInfo3 = solvePhase3(solvInfo2);\n\t\tthis.sol3 = solvInfo3[1].slice();\n\t\tthis.tt3 = solvInfo3[4];\n\n\t\tvar sol = [].concat(this.sol1, this.sol2, this.sol3);\n\t\tif (invSol) {\n\t\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\t\tsol[i] ^= 1;\n\t\t\t}\n\t\t\tsol.reverse();\n\t\t}\n\t\treturn prettyMoves(sol);\n\t}\n\n\tvar solver = new FtoSolver();\n\n\tfunction solveTest(n_moves) {\n\t\tvar solvInfo = randomMoves([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], n_moves);\n\n\t\tvar scramble = prettyMoves(solvInfo[1].slice());\n\t\tvar solution = solver.solveFto(solvInfo[0]);\n\n\t\tvar fc = solvInfo[0];\n\t\tDEBUG && console.log('scrambled state\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol1);\n\t\tDEBUG && console.log('after phase 1 (' + prettyMoves(solver.sol1) + '):\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol2);\n\t\tDEBUG && console.log('after phase 2 (' + prettyMoves(solver.sol2) + '):\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol3);\n\t\tDEBUG && console.log('after phase 3 (' + prettyMoves(solver.sol3) + '):\\n', fc.toString(1));\n\n\t\tvar facelets = fc.toFaceCube();\n\t\tvar isSolved = true;\n\t\touter_loop: for (var i = 0; i < 8; i++) {\n\t\t\tfor (var j = 1; j < 9; j++) {\n\t\t\t\tif (facelets[i * 9 + j] != facelets[i * 9]) {\n\t\t\t\t\tisSolved = false;\n\t\t\t\t\tbreak outer_loop;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!isSolved) {\n\t\t\tconsole.log('error, FTO not solved!!!');\n\t\t}\n\n\t\tDEBUG && console.log(scramble, solution);\n\t\treturn [\n\t\t\tsolver.sol1.length + solver.sol2.length + solver.sol3.length,\n\t\t\tsolver.sol1.length,\n\t\t\tsolver.sol2.length,\n\t\t\tsolver.sol3.length,\n\t\t\tsolver.tt1,\n\t\t\tsolver.tt2,\n\t\t\tsolver.tt3\n\t\t];\n\t}\n\n\tfunction testbench(ntest) {\n\t\tntest = ntest || 100;\n\t\tvar cumlen = [];\n\t\tfor (var nsolv = 0; nsolv < ntest; nsolv++) {\n\t\t\tvar lengths = solveTest(200);\n\t\t\tfor (var i = 0; i < lengths.length; i++) {\n\t\t\t\tcumlen[i] = (cumlen[i] || 0) + lengths[i];\n\t\t\t}\n\t\t\tconsole.log('AvgL: ', cumlen[0] / (nsolv + 1));\n\t\t}\n\t\tconsole.log('AvgL1:', cumlen[1] / ntest);\n\t\tconsole.log('AvgL2:', cumlen[2] / ntest);\n\t\tconsole.log('AvgL3:', cumlen[3] / ntest);\n\t\tconsole.log('AvgT1:', cumlen[4] / ntest);\n\t\tconsole.log('AvgT2:', cumlen[5] / ntest);\n\t\tconsole.log('AvgT3:', cumlen[6] / ntest);\n\t}\n\n\tfunction solveFacelet(facelet, invSol) {\n\t\tvar fc = new FtoCubie();\n\t\tif (fc.fromFacelet(facelet) == -1) {\n\t\t\treturn \"FTO Solver ERROR!\";\n\t\t}\n\t\treturn solver.solveFto(fc, invSol);\n\t}\n\n\treturn {\n\t\tsolveFacelet: solveFacelet,\n\t\tFtoCubie: FtoCubie,\n\t\ttestbench: testbench\n\t};\n})();\n\nvar fto_scrambler = (function() {\n\n\tfunction getRandomScramble(solvedEdge, solvedCenter, solvedCorner) {\n\t\tvar fc = new ftosolver.FtoCubie();\n\t\tif (!solvedEdge) {\n\t\t\tfc.ep = mathlib.rndPerm(12, true);\n\t\t}\n\t\tif (!solvedCenter) {\n\t\t\tfc.uf = mathlib.rndPerm(12, true);\n\t\t\tfc.rl = mathlib.rndPerm(12, true);\n\t\t}\n\t\tif (!solvedCorner) {\n\t\t\tfc.cp = mathlib.rndPerm(6, true);\n\t\t\tmathlib.setNOri(fc.co, mathlib.rn(32), 6, -2);\n\t\t}\n\t\treturn new Alg(ftosolver.solveFacelet(fc.toFaceCube(), true));\n\t}\n\n\tfunction getLNTScramble(ufs) {\n\t\tvar solved = false;\n\t\tvar nCorn = ufs.length >> 1;\n\t\tvar fc = new ftosolver.FtoCubie();\n\t\tvar cp, co, uf;\n\t\tdo {\n\t\t\tcp = mathlib.rndPerm(nCorn, true);\n\t\t\tco = mathlib.setNOri([], mathlib.rn(1 << nCorn >> 1), nCorn, -2);\n\t\t\tuf = mathlib.rndPerm(ufs.length, true);\n\t\t\tsolved = true;\n\t\t\tfor (var i = 0; i < ufs.length; i++) {\n\t\t\t\tsolved = solved && (~~(ufs[uf[i]] / 3) == ~~(ufs[i] / 3));\n\t\t\t}\n\t\t\tfor (var i = 0; i < nCorn; i++) {\n\t\t\t\tsolved = solved && cp[i] == i && co[i] == 0;\n\t\t\t}\n\t\t} while (solved);\n\t\tfor (var i = 0; i < nCorn; i++) {\n\t\t\tfc.cp[i] = cp[i];\n\t\t\tfc.co[i] = co[i];\n\t\t}\n\t\tfor (var i = 0; i < ufs.length; i++) {\n\t\t\tfc.uf[ufs[i]] = ufs[uf[i]];\n\t\t}\n\t\treturn ftosolver.solveFacelet(fc.toFaceCube(), true);\n\t}\n\n\treturn {\n\t\tgetRandomScramble: getRandomScramble.bind(null, false, false, false)\n\t};\n})();\n\n// TODO: solve an externally generated random state\nexport function getRandomFTOScramble() {\n\treturn fto_scrambler.getRandomScramble();\n};\n\n// export function setRandomGen(gen) {\n// \tmathlib.setRandomGen(gen);\n// };\n\n// export function fto_testbench() {\n// \tftosolver.testbench();\n// };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["i", "idx"]
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Alg
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7D7ZUWUK.js";
|
|
4
4
|
|
|
5
5
|
// src/cubing/vendor/mpl/xyzzy/kilosolver.js
|
|
6
6
|
import { randomUIntBelow } from "random-uint-below";
|
|
@@ -768,4 +768,4 @@ function getRandomKilominxScramble() {
|
|
|
768
768
|
export {
|
|
769
769
|
getRandomKilominxScramble
|
|
770
770
|
};
|
|
771
|
-
//# sourceMappingURL=search-dynamic-solve-kilominx-
|
|
771
|
+
//# sourceMappingURL=search-dynamic-solve-kilominx-GCNVEBDJ.js.map
|