cubing 0.63.2 → 0.63.3

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.
Files changed (62) hide show
  1. package/dist/bin/chunks/{chunk-52ODPET6.js → chunk-OI3YIXMQ.js} +2 -2
  2. package/dist/bin/order.js +1 -1
  3. package/dist/bin/puzzle-geometry-bin.js +1 -1
  4. package/dist/bin/scramble.js +1 -1
  5. package/dist/lib/cubing/{PuzzleLoader-R-puDLmC.d.ts → PuzzleLoader-Bp8zngUn.d.ts} +10 -0
  6. package/dist/lib/cubing/alg/index.d.ts +2 -2
  7. package/dist/lib/cubing/bluetooth/index.d.ts +2 -2
  8. package/dist/lib/cubing/chunks/chunk-44CFF24P.js +239 -0
  9. package/dist/lib/cubing/chunks/chunk-44CFF24P.js.map +7 -0
  10. package/dist/lib/cubing/chunks/chunk-DQGYYYHZ.js +1180 -0
  11. package/dist/lib/cubing/chunks/chunk-DQGYYYHZ.js.map +7 -0
  12. package/dist/lib/cubing/chunks/chunk-FTE3QI5X.js +1074 -0
  13. package/dist/lib/cubing/chunks/chunk-FTE3QI5X.js.map +7 -0
  14. package/dist/lib/cubing/chunks/chunk-FZBKZ5ZB.js +265 -0
  15. package/dist/lib/cubing/chunks/chunk-FZBKZ5ZB.js.map +7 -0
  16. package/dist/lib/cubing/chunks/chunk-OUM32GEA.js +239 -0
  17. package/dist/lib/cubing/chunks/chunk-OUM32GEA.js.map +7 -0
  18. package/dist/lib/cubing/chunks/chunk-SGJ5WPE4.js +1074 -0
  19. package/dist/lib/cubing/chunks/chunk-SGJ5WPE4.js.map +7 -0
  20. package/dist/lib/cubing/chunks/chunk-TAVR35KU.js +265 -0
  21. package/dist/lib/cubing/chunks/chunk-TAVR35KU.js.map +7 -0
  22. package/dist/lib/cubing/chunks/chunk-VRTKWZPL.js +10084 -0
  23. package/dist/lib/cubing/chunks/chunk-VRTKWZPL.js.map +7 -0
  24. package/dist/lib/cubing/chunks/chunk-VSMFYTG6.js +10086 -0
  25. package/dist/lib/cubing/chunks/chunk-VSMFYTG6.js.map +7 -0
  26. package/dist/lib/cubing/chunks/inside-IHWQVDVU.js +564 -0
  27. package/dist/lib/cubing/chunks/inside-IHWQVDVU.js.map +7 -0
  28. package/dist/lib/cubing/chunks/inside-L2JI2BEY.js +564 -0
  29. package/dist/lib/cubing/chunks/inside-L2JI2BEY.js.map +7 -0
  30. package/dist/lib/cubing/chunks/search-dynamic-sgs-side-events-MXHP7O4R.js +1890 -0
  31. package/dist/lib/cubing/chunks/search-dynamic-sgs-side-events-MXHP7O4R.js.map +7 -0
  32. package/dist/lib/cubing/chunks/search-dynamic-sgs-side-events-XFECDWOF.js +1890 -0
  33. package/dist/lib/cubing/chunks/search-dynamic-sgs-side-events-XFECDWOF.js.map +7 -0
  34. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-CM33KT7L.js +1267 -0
  35. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-CM33KT7L.js.map +7 -0
  36. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-Q4LLHL2O.js +1267 -0
  37. package/dist/lib/cubing/chunks/search-dynamic-sgs-unofficial-Q4LLHL2O.js.map +7 -0
  38. package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-COSEVJBV.js +2922 -0
  39. package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-COSEVJBV.js.map +7 -0
  40. package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-NANDMURR.js +2922 -0
  41. package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-NANDMURR.js.map +7 -0
  42. package/dist/lib/cubing/chunks/twisty-dynamic-3d-5NZRNZ7C.js +1881 -0
  43. package/dist/lib/cubing/chunks/twisty-dynamic-3d-5NZRNZ7C.js.map +7 -0
  44. package/dist/lib/cubing/chunks/twisty-dynamic-3d-VGZIQ64W.js +1927 -0
  45. package/dist/lib/cubing/chunks/twisty-dynamic-3d-VGZIQ64W.js.map +7 -0
  46. package/dist/lib/cubing/chunks/twisty-dynamic-3d-XLUOPCLN.js +1881 -0
  47. package/dist/lib/cubing/chunks/twisty-dynamic-3d-XLUOPCLN.js.map +7 -0
  48. package/dist/lib/cubing/{events-IfSwQLYm.d.ts → events-CewDA1aS.d.ts} +1 -1
  49. package/dist/lib/cubing/{index-btIxbuNp.d.ts → index-DabjED-w.d.ts} +1 -1
  50. package/dist/lib/cubing/kpuzzle/index.d.ts +1 -1
  51. package/dist/lib/cubing/notation/index.d.ts +1 -1
  52. package/dist/lib/cubing/protocol/index.d.ts +1 -1
  53. package/dist/lib/cubing/puzzle-geometry/index.d.ts +2 -2
  54. package/dist/lib/cubing/puzzles/index.d.ts +1 -1
  55. package/dist/lib/cubing/scramble/index.d.ts +2 -2
  56. package/dist/lib/cubing/search/index.d.ts +3 -3
  57. package/dist/lib/cubing/stream/index.d.ts +3 -3
  58. package/dist/lib/cubing/twisty/index.d.ts +2 -2
  59. package/dist/lib/cubing/twisty/index.js +37 -4
  60. package/dist/lib/cubing/twisty/index.js.map +3 -3
  61. package/package.json +1 -1
  62. /package/dist/bin/chunks/{chunk-52ODPET6.js.map → chunk-OI3YIXMQ.js.map} +0 -0
@@ -0,0 +1,1267 @@
1
+ import {
2
+ parseSGS
3
+ } from "./chunk-ROB5TROI.js";
4
+ import {
5
+ puzzles
6
+ } from "./chunk-VSMFYTG6.js";
7
+ import "./chunk-RINY3U6G.js";
8
+ import {
9
+ Alg
10
+ } from "./chunk-O6HEZXGY.js";
11
+
12
+ // src/cubing/vendor/mpl/xyzzy/redi_cube.js
13
+ import { randomUIntBelow } from "random-uint-below";
14
+ function factorial(n) {
15
+ if (n < 2) {
16
+ return n;
17
+ }
18
+ let f = 1;
19
+ for (let i = 2; i <= n; i++) {
20
+ f *= i;
21
+ }
22
+ return f;
23
+ }
24
+ function C(n, k) {
25
+ if (k < 0 || k > n) {
26
+ return 0;
27
+ }
28
+ if (k === 0 || k === n) {
29
+ return 1;
30
+ }
31
+ let c = 1;
32
+ for (let i = 0; i < k; i++) {
33
+ c = c * (n - i) / (i + 1) | 0;
34
+ }
35
+ return c;
36
+ }
37
+ function permutation_to_index(perm) {
38
+ perm = perm.slice();
39
+ let n = perm.length;
40
+ let f = factorial(n - 1);
41
+ let ind = 0;
42
+ while (n > 1) {
43
+ n--;
44
+ let e = perm[0];
45
+ ind += e * f;
46
+ for (let i = 0; i < n; i++) {
47
+ let x = perm[i + 1];
48
+ perm[i] = x - (x > e);
49
+ }
50
+ f /= n;
51
+ }
52
+ return ind;
53
+ }
54
+ function index_to_permutation(ind, n) {
55
+ let perm = [];
56
+ let f = factorial(n - 1);
57
+ for (let i = 0; i < n; i++) {
58
+ perm[i] = ind / f | 0;
59
+ ind %= f;
60
+ f /= n - 1 - i;
61
+ }
62
+ for (let i = n - 2; i >= 0; i--) {
63
+ for (let j = i + 1; j < n; j++) {
64
+ perm[j] += +(perm[j] >= perm[i]);
65
+ }
66
+ }
67
+ return perm;
68
+ }
69
+ function permutation_parity(A) {
70
+ let n = A.length;
71
+ let parity = 0;
72
+ for (let i = 0; i < n - 1; i++) {
73
+ for (let j = i; j < n; j++) {
74
+ if (A[i] > A[j]) {
75
+ parity ^= 1;
76
+ }
77
+ }
78
+ }
79
+ return parity;
80
+ }
81
+ function index_to_evenpermutation(ind, n) {
82
+ let perm = [];
83
+ let f = factorial(n - 1) / 2;
84
+ let parity = 0;
85
+ for (let i = 0; i < n - 1; i++) {
86
+ perm[i] = ind / f | 0;
87
+ ind %= f;
88
+ f /= n - 1 - i;
89
+ }
90
+ perm[n - 1] = 0;
91
+ for (let i = n - 2; i >= 0; i--) {
92
+ for (let j = i + 1; j < n; j++) {
93
+ if (perm[j] >= perm[i]) {
94
+ perm[j]++;
95
+ } else {
96
+ parity ^= 1;
97
+ }
98
+ }
99
+ }
100
+ if (parity === 1) {
101
+ [perm[n - 2], perm[n - 1]] = [perm[n - 1], perm[n - 2]];
102
+ }
103
+ return perm;
104
+ }
105
+ function evenpermutation_to_index(perm) {
106
+ return permutation_to_index(perm) >> 1;
107
+ }
108
+ function comb_to_index(l) {
109
+ let bits = l.length;
110
+ let ones = 0;
111
+ for (let i = 0; i < bits; i++) {
112
+ ones += +(l[i] === 1);
113
+ }
114
+ let zeros = bits - ones;
115
+ if (zeros === 0 || ones === 0 || bits === 1) {
116
+ return 0;
117
+ }
118
+ let b = C(bits - 1, ones);
119
+ let ind = 0;
120
+ for (let i = 0; zeros > 0 && ones > 0 && bits > 1; i++) {
121
+ bits--;
122
+ if (l[i] === 0) {
123
+ b = b * --zeros / bits;
124
+ } else {
125
+ ind += b;
126
+ b = b * ones-- / bits;
127
+ }
128
+ }
129
+ return ind;
130
+ }
131
+ function index_to_comb(ind, ones, bits) {
132
+ let zeros = bits - ones;
133
+ let b = C(bits - 1, ones);
134
+ let l = [];
135
+ let n = bits - 1;
136
+ for (let i = 0; i < n; i++) {
137
+ bits--;
138
+ if (ind < b) {
139
+ l.push(0);
140
+ b = b * --zeros / bits;
141
+ } else {
142
+ l.push(1);
143
+ ind -= b;
144
+ b = b * ones-- / bits;
145
+ }
146
+ }
147
+ l.push(ones);
148
+ return l;
149
+ }
150
+ function compose(A, B) {
151
+ let C2 = [];
152
+ for (let i = 0; i < B.length; i++) {
153
+ C2[i] = A[B[i]];
154
+ }
155
+ return C2;
156
+ }
157
+ function permutation_from_cycle(cycle, n) {
158
+ let perm = [];
159
+ for (let i = 0; i < n; i++) {
160
+ perm[i] = i;
161
+ }
162
+ for (let i = 0; i < cycle.length; i++) {
163
+ perm[cycle[i]] = cycle[(i + 1) % cycle.length];
164
+ }
165
+ return perm;
166
+ }
167
+ function unsparsify_list(d, n) {
168
+ let l = Array(n).fill(0);
169
+ for (let k in d) {
170
+ l[k] = d[k];
171
+ }
172
+ return l;
173
+ }
174
+ function compose_state(state1, state2) {
175
+ let o = Array(8).fill(0);
176
+ for (let i = 0; i < 8; i++) {
177
+ o[i] = (state1[1][i] + state2[1][i]) % 3;
178
+ }
179
+ return [compose(state1[0], state2[0]), o];
180
+ }
181
+ var move_UL = [
182
+ permutation_from_cycle([0, 1, 4], 12),
183
+ unsparsify_list({ 0: 2 }, 8)
184
+ ];
185
+ var move_U = [
186
+ permutation_from_cycle([1, 2, 5], 12),
187
+ unsparsify_list({ 1: 2 }, 8)
188
+ ];
189
+ var move_UR = [
190
+ permutation_from_cycle([2, 3, 6], 12),
191
+ unsparsify_list({ 2: 2 }, 8)
192
+ ];
193
+ var move_F = [
194
+ permutation_from_cycle([3, 0, 7], 12),
195
+ unsparsify_list({ 3: 2 }, 8)
196
+ ];
197
+ var move_L = [
198
+ permutation_from_cycle([9, 8, 4], 12),
199
+ unsparsify_list({ 4: 2 }, 8)
200
+ ];
201
+ var move_B = [
202
+ permutation_from_cycle([10, 9, 5], 12),
203
+ unsparsify_list({ 5: 2 }, 8)
204
+ ];
205
+ var move_R = [
206
+ permutation_from_cycle([11, 10, 6], 12),
207
+ unsparsify_list({ 6: 2 }, 8)
208
+ ];
209
+ var move_D = [
210
+ permutation_from_cycle([8, 11, 7], 12),
211
+ unsparsify_list({ 7: 2 }, 8)
212
+ ];
213
+ var solved = [index_to_permutation(0, 12), Array(8).fill(0)];
214
+ var moves = [move_UL, move_U, move_UR, move_F, move_L, move_B, move_R, move_D];
215
+ var move_names = ["UL", "U", "UR", "F", "L", "B", "R", "D"];
216
+ var tetrad = [0, 1, 0, 1, 1, 0, 1, 0];
217
+ function stringify_move_sequence(move_sequence) {
218
+ let suffixes = ["0", "", "'"];
219
+ let s = move_sequence.map(([m, r]) => move_names[m] + suffixes[r]);
220
+ return s.join(" ");
221
+ }
222
+ function generate_random_state() {
223
+ let p = index_to_evenpermutation(
224
+ Math.floor(randomUIntBelow(factorial(12)) / 2),
225
+ 12
226
+ );
227
+ let o = Array(8);
228
+ for (let i = 0; i < 8; i++) {
229
+ o[i] = randomUIntBelow(3);
230
+ }
231
+ return [p, o];
232
+ }
233
+ function generate_random_state_scramble() {
234
+ return solve(generate_random_state());
235
+ }
236
+ function solve(state) {
237
+ let phase1_indices = index_phase1(state);
238
+ let phase1_mtables = [
239
+ generate_phase1_edge_mtable(),
240
+ generate_phase1_separate_mtable()
241
+ ];
242
+ let phase1_ptables = [
243
+ generate_phase1_edge_ptable(),
244
+ generate_phase1_separate_ptable()
245
+ ];
246
+ let phase2_mtables = [
247
+ generate_phase2_edge_mtable(),
248
+ generate_phase2_corner_mtable()
249
+ ];
250
+ let phase2_ptables = [
251
+ generate_phase2_edge_ptable(),
252
+ generate_phase1_corner_ptable()
253
+ ];
254
+ let phase1gen = ida_solve_gen(phase1_indices, phase1_mtables, phase1_ptables);
255
+ let best = void 0;
256
+ let intermediate_states = /* @__PURE__ */ new Set();
257
+ let start_time = +/* @__PURE__ */ new Date();
258
+ for (let i = 0; i < 25; i++) {
259
+ let { value: sol1, done } = phase1gen.next();
260
+ let new_state = state;
261
+ for (let [m, r] of sol1) {
262
+ for (let i2 = 0; i2 < r; i2++) {
263
+ new_state = compose_state(new_state, moves[m]);
264
+ }
265
+ }
266
+ if (intermediate_states.has(new_state.toString())) {
267
+ continue;
268
+ } else {
269
+ intermediate_states.add(new_state.toString());
270
+ }
271
+ let edge_ind = evenpermutation_to_index(new_state[0].slice(0, 8));
272
+ let corner_ind = 0;
273
+ for (let i2 = 0; i2 < 4; i2++) {
274
+ corner_ind += new_state[1][i2] * 3 ** i2;
275
+ }
276
+ let phase2_indices = [edge_ind, corner_ind];
277
+ let moves_left = best ? best.length - sol1.length - 1 : 999999;
278
+ let sol2 = ida_solve(
279
+ phase2_indices,
280
+ phase2_mtables,
281
+ phase2_ptables,
282
+ moves_left
283
+ );
284
+ if (sol2 === void 0) {
285
+ continue;
286
+ }
287
+ if (best === void 0 || best.length > sol1.length + sol2.length) {
288
+ best = sol1.concat(sol2);
289
+ }
290
+ if (/* @__PURE__ */ new Date() - start_time > 300) {
291
+ break;
292
+ }
293
+ }
294
+ return best;
295
+ }
296
+ function index_phase1(state) {
297
+ let edge_ind = 0;
298
+ for (let i = 0; i < 4; i++) {
299
+ edge_ind += state[0].indexOf(i + 8) * 12 ** i;
300
+ }
301
+ let corner_ind = 0;
302
+ for (let i = 0; i < 4; i++) {
303
+ corner_ind += state[1][i + 4] * 3 ** i;
304
+ }
305
+ let filtered = state[0].map((x) => Math.max(-1, x - 8));
306
+ let separate_ind = comb_to_index(filtered.map((x) => +(x >= 0))) * 2 + permutation_parity(filtered.filter((x) => x >= 0));
307
+ return [edge_ind, corner_ind + 81 * separate_ind];
308
+ }
309
+ var tables = {};
310
+ function generate_phase1_corner_mtable() {
311
+ if (tables.phase1cm) {
312
+ return tables.phase1cm;
313
+ }
314
+ let mtable = [];
315
+ for (let i = 0; i < 81; i++) {
316
+ mtable[i] = Array(8);
317
+ let o = [
318
+ i % 3,
319
+ Math.floor(i / 3) % 3,
320
+ Math.floor(i / 9) % 3,
321
+ Math.floor(i / 27)
322
+ ];
323
+ mtable[i][0] = mtable[i][1] = mtable[i][2] = mtable[i][3] = i;
324
+ for (let j = 0; j < 4; j++) {
325
+ o[j] = (o[j] + 2) % 3;
326
+ mtable[i][4 + j] = o[0] + o[1] * 3 + o[2] * 9 + o[3] * 27;
327
+ o[j] = (o[j] + 1) % 3;
328
+ }
329
+ }
330
+ return tables.phase1cm = mtable;
331
+ }
332
+ function generate_phase1_corner_ptable() {
333
+ if (tables.phase1cp) {
334
+ return tables.phase1cp;
335
+ }
336
+ let ptable = Array(81);
337
+ for (let i = 0; i < 81; i++) {
338
+ let o = [
339
+ i % 3,
340
+ Math.floor(i / 3) % 3,
341
+ Math.floor(i / 9) % 3,
342
+ Math.floor(i / 27)
343
+ ];
344
+ ptable[i] = (o[0] !== 0) + (o[1] !== 0) + (o[2] !== 0) + (o[3] !== 0);
345
+ }
346
+ return tables.phase1cp = ptable;
347
+ }
348
+ function generate_phase1_edge_mtable() {
349
+ if (tables.phase1em) {
350
+ return tables.phase1em;
351
+ }
352
+ let mtable_single = [];
353
+ for (let i = 0; i < 12; i++) {
354
+ mtable_single[i] = [];
355
+ for (let m = 0; m < 8; m++) {
356
+ mtable_single[i][m] = moves[m][0].indexOf(i);
357
+ }
358
+ }
359
+ let mtable = Array(12 ** 4);
360
+ for (let i = 0; i < 12 ** 4; i++) {
361
+ mtable[i] = Array(8);
362
+ for (let m = 0; m < 8; m++) {
363
+ let I = 0;
364
+ for (let j = 0; j < 4; j++) {
365
+ I += mtable_single[Math.floor(i / 12 ** j) % 12][m] * 12 ** j;
366
+ }
367
+ mtable[i][m] = I;
368
+ }
369
+ }
370
+ return tables.phase1em = mtable;
371
+ }
372
+ function generate_phase1_edge_ptable() {
373
+ if (tables.phase1ep) {
374
+ return tables.phase1ep;
375
+ }
376
+ return tables.phase1ep = bfs(generate_phase1_edge_mtable(), [
377
+ 8 + 12 * (9 + 12 * (10 + 12 * 11))
378
+ ]);
379
+ }
380
+ function generate_phase1_separate_mtable() {
381
+ if (tables.phase1sm) {
382
+ return tables.phase1sm;
383
+ }
384
+ const C12_4 = C(12, 4);
385
+ let mtable_c = [];
386
+ for (let i = 0; i < C12_4; i++) {
387
+ mtable_c[i] = [];
388
+ let comb = index_to_comb(i, 4, 12);
389
+ let perm = [];
390
+ for (let j = 0, k = 0; j < 12; j++) {
391
+ if (comb[j] === 0) {
392
+ perm[j] = -1;
393
+ } else {
394
+ perm[j] = k++;
395
+ }
396
+ }
397
+ for (let m = 0; m < 8; m++) {
398
+ let new_perm = compose(perm, moves[m][0]);
399
+ let new_comb = compose(comb, moves[m][0]);
400
+ let parity = permutation_parity(new_perm.filter((x) => x >= 0));
401
+ mtable_c[i][m] = comb_to_index(new_comb) * 2 + parity;
402
+ }
403
+ }
404
+ let mtable_co = generate_phase1_corner_mtable();
405
+ let mtable = [];
406
+ for (let j = 0; j < C12_4; j++) {
407
+ for (let i = 0; i < 81; i++) {
408
+ let m0 = mtable[i + 81 * (2 * j)] = [];
409
+ let m1 = mtable[i + 81 * (2 * j + 1)] = [];
410
+ for (let m = 0; m < 8; m++) {
411
+ m0[m] = mtable_co[i][m] + 81 * mtable_c[j][m];
412
+ m1[m] = mtable_co[i][m] + 81 * (mtable_c[j][m] ^ 1);
413
+ }
414
+ }
415
+ }
416
+ return tables.phase1sm = mtable;
417
+ }
418
+ function generate_phase1_separate_ptable() {
419
+ if (tables.phase1sp) {
420
+ return tables.phase1sp;
421
+ }
422
+ return tables.phase1sp = bfs(generate_phase1_separate_mtable(), [0]);
423
+ }
424
+ function generate_phase2_corner_mtable() {
425
+ if (tables.phase2cm) {
426
+ return tables.phase2cm;
427
+ }
428
+ let phase1_mtable = generate_phase1_corner_mtable();
429
+ let mtable = Array(81);
430
+ for (let i = 0; i < 81; i++) {
431
+ mtable[i] = phase1_mtable[i].slice(4, 8);
432
+ }
433
+ return tables.phase2cm = mtable;
434
+ }
435
+ function generate_phase2_edge_mtable() {
436
+ if (tables.phase2em) {
437
+ return tables.phase2em;
438
+ }
439
+ const n = 8;
440
+ const HALFFACT8 = factorial(n) / 2;
441
+ let mtable = Array(HALFFACT8);
442
+ let perm = [0, 1, 2, 3, 4, 5, 6, 7];
443
+ for (let i = 0; i < HALFFACT8; i++) {
444
+ mtable[i] = Array(4);
445
+ for (let m = 0; m < 4; m++) {
446
+ let new_perm = compose(perm, moves[m][0].slice(0, 8));
447
+ mtable[i][m] = evenpermutation_to_index(new_perm);
448
+ }
449
+ if (i === HALFFACT8 - 1) {
450
+ break;
451
+ }
452
+ let parity = 0;
453
+ do {
454
+ for (let k = n - 2; k >= 0; k--) {
455
+ if (perm[k] > perm[k + 1]) {
456
+ continue;
457
+ }
458
+ let l = k + 1;
459
+ for (let L = l; L < n; L++) {
460
+ if (perm[L] > perm[k]) {
461
+ l = L;
462
+ }
463
+ }
464
+ [perm[k], perm[l]] = [perm[l], perm[k]];
465
+ parity ^= 1;
466
+ for (let j = 0; k + 1 + j < n - 1 - j; j++, parity ^= 1) {
467
+ [perm[k + 1 + j], perm[n - 1 - j]] = [
468
+ perm[n - 1 - j],
469
+ perm[k + 1 + j]
470
+ ];
471
+ }
472
+ break;
473
+ }
474
+ } while (parity !== 0);
475
+ }
476
+ return tables.phase2em = mtable;
477
+ }
478
+ function generate_phase2_edge_ptable() {
479
+ if (tables.phase2ep) {
480
+ return tables.phase2ep;
481
+ }
482
+ return tables.phase2ep = bfs(generate_phase2_edge_mtable(), [0]);
483
+ }
484
+ function bfs(mtable, goal_states) {
485
+ let N = mtable.length;
486
+ let nmoves = mtable[0].length;
487
+ let ptable = Array(N).fill(-1);
488
+ let queue = goal_states.slice();
489
+ let new_queue = [];
490
+ let depth = 0;
491
+ while (queue.length > 0) {
492
+ new_queue.length = 0;
493
+ for (let state of queue) {
494
+ if (ptable[state] !== -1) {
495
+ continue;
496
+ }
497
+ ptable[state] = depth;
498
+ for (let move_index = 0; move_index < nmoves; move_index++) {
499
+ let new_state = mtable[state][move_index];
500
+ while (new_state !== state) {
501
+ new_queue.push(new_state);
502
+ new_state = mtable[new_state][move_index];
503
+ }
504
+ }
505
+ }
506
+ [queue, new_queue] = [new_queue, queue];
507
+ depth += 1;
508
+ }
509
+ return ptable;
510
+ }
511
+ function ida_solve(indices, mtables, ptables, max_bound) {
512
+ max_bound = max_bound || 999999;
513
+ let ncoords = indices.length;
514
+ let bound = 0;
515
+ for (let i = 0; i < ncoords; i++) {
516
+ bound = Math.max(bound, ptables[i][indices[i]]);
517
+ }
518
+ while (bound <= max_bound) {
519
+ let path = ida_search(indices, mtables, ptables, bound, -1);
520
+ if (path !== void 0) {
521
+ return path;
522
+ }
523
+ bound++;
524
+ }
525
+ }
526
+ function ida_search(indices, mtables, ptables, bound, last) {
527
+ let ncoords = indices.length;
528
+ let nmoves = mtables[0][0].length;
529
+ let heuristic = 0;
530
+ for (let i = 0; i < ncoords; i++) {
531
+ heuristic = Math.max(heuristic, ptables[i][indices[i]]);
532
+ }
533
+ if (heuristic > bound) {
534
+ return;
535
+ }
536
+ if (bound === 0) {
537
+ return [];
538
+ }
539
+ if (heuristic === 0 && bound === 1) {
540
+ return;
541
+ }
542
+ for (let m = 0; m < nmoves; m++) {
543
+ if (m === last) {
544
+ continue;
545
+ }
546
+ if (m < last && tetrad[m] === tetrad[last]) {
547
+ continue;
548
+ }
549
+ let new_indices = indices.slice();
550
+ for (let c = 0; c < ncoords; c++) {
551
+ new_indices[c] = mtables[c][indices[c]][m];
552
+ }
553
+ let r = 1;
554
+ while (indices.some((_, i) => indices[i] !== new_indices[i])) {
555
+ let subpath = ida_search(new_indices, mtables, ptables, bound - 1, m);
556
+ if (subpath !== void 0) {
557
+ return [[m, r]].concat(subpath);
558
+ }
559
+ for (let c = 0; c < ncoords; c++) {
560
+ new_indices[c] = mtables[c][new_indices[c]][m];
561
+ }
562
+ r++;
563
+ }
564
+ }
565
+ return;
566
+ }
567
+ function* ida_solve_gen(indices, mtables, ptables) {
568
+ let ncoords = indices.length;
569
+ let bound = 0;
570
+ for (let i = 0; i < ncoords; i++) {
571
+ bound = Math.max(bound, ptables[i][indices[i]]);
572
+ }
573
+ while (true) {
574
+ yield* ida_search_gen(indices, mtables, ptables, bound, -1);
575
+ bound++;
576
+ }
577
+ }
578
+ function* ida_search_gen(indices, mtables, ptables, bound, last) {
579
+ let ncoords = indices.length;
580
+ let nmoves = mtables[0][0].length;
581
+ let heuristic = 0;
582
+ for (let i = 0; i < ncoords; i++) {
583
+ heuristic = Math.max(heuristic, ptables[i][indices[i]]);
584
+ }
585
+ if (heuristic > bound) {
586
+ return;
587
+ }
588
+ if (bound === 0) {
589
+ yield [];
590
+ return;
591
+ }
592
+ if (heuristic === 0 && bound === 1) {
593
+ return;
594
+ }
595
+ for (let m = 0; m < nmoves; m++) {
596
+ if (m === last) {
597
+ continue;
598
+ }
599
+ if (m < last && tetrad[m] === tetrad[last]) {
600
+ continue;
601
+ }
602
+ let new_indices = indices.slice();
603
+ for (let c = 0; c < ncoords; c++) {
604
+ new_indices[c] = mtables[c][indices[c]][m];
605
+ }
606
+ let r = 1;
607
+ while (indices.some((_, i) => indices[i] !== new_indices[i])) {
608
+ let subpath_gen = ida_search_gen(
609
+ new_indices,
610
+ mtables,
611
+ ptables,
612
+ bound - 1,
613
+ m
614
+ );
615
+ while (true) {
616
+ let { value: subpath, done } = subpath_gen.next();
617
+ if (done) {
618
+ break;
619
+ }
620
+ yield [[m, r]].concat(subpath);
621
+ }
622
+ for (let c = 0; c < ncoords; c++) {
623
+ new_indices[c] = mtables[c][new_indices[c]][m];
624
+ }
625
+ r++;
626
+ }
627
+ }
628
+ }
629
+ async function getRandomRediCubeScramble() {
630
+ return new Alg(stringify_move_sequence(generate_random_state_scramble()));
631
+ }
632
+
633
+ // src/cubing/search/inside/solve/puzzles/dynamic/sgs-unofficial/fto.sgs.ts
634
+ var cachedData = null;
635
+ async function sgsDataFTO() {
636
+ return cachedData ??= uncachedSGSDataFTO();
637
+ }
638
+ async function uncachedSGSDataFTO() {
639
+ return parseSGS(
640
+ await puzzles["fto"].kpuzzle(),
641
+ `SubgroupSizes 24 12 11 12 12 11 10 9 11 8 10 9 7 8 10 10 6 9 8 5 7 6 5 4 4 8 7 3 6 6 360
642
+
643
+ Alg T
644
+ Alg B
645
+ Alg B T
646
+ Alg B'
647
+ Alg B' T
648
+ Alg U
649
+ Alg U T
650
+ Alg U'
651
+ Alg U' T
652
+ Alg B BL
653
+ Alg B BL T
654
+ Alg B BL'
655
+ Alg B BL' T
656
+ Alg B' BR
657
+ Alg B' BR T
658
+ Alg B' BR'
659
+ Alg B' BR' T
660
+ Alg U R'
661
+ Alg U R' T
662
+ Alg U' L
663
+ Alg U' L T
664
+ Alg B BL' D
665
+ Alg B BL' D T
666
+
667
+ Alg R
668
+ Alg R'
669
+ Alg R D
670
+ Alg R D'
671
+ Alg R BR
672
+ Alg R BR'
673
+ Alg R' F
674
+ Alg R' L
675
+ Alg R' L'
676
+ Alg B L B'
677
+ Alg U L' U'
678
+
679
+ Alg B U B'
680
+ Alg B U' B'
681
+ Alg B R B'
682
+ Alg B R' B'
683
+ Alg B' U' B
684
+ Alg B' U B L
685
+ Alg B' U B L'
686
+ Alg B' U' B BL'
687
+ Alg B U' B' BR
688
+ Alg B' R' B F
689
+
690
+ Alg BR
691
+ Alg BR'
692
+ Alg BR BL
693
+ Alg BR BL'
694
+ Alg BR' F
695
+ Alg BR' F'
696
+ Alg BR' D
697
+ Alg B BR B'
698
+ Alg U F U'
699
+ Alg BR BL L
700
+ Alg BR' D BR'
701
+
702
+ Alg B' BL B
703
+ Alg B' BL' B
704
+ Alg BR D' BR'
705
+ Alg B' BL B D'
706
+ Alg B' BL B BL
707
+ Alg B' BL B BL'
708
+ Alg B' BL L B
709
+ Alg B' BL' B F'
710
+ Alg B' BL' B L'
711
+ Alg B' BL' B BL'
712
+ Alg B' BL' L BL' B
713
+
714
+ Alg R' BR R
715
+ Alg R' BR' R
716
+ Alg BR BL' D BR
717
+ Alg R' BR D R
718
+ Alg R' BR D' R
719
+ Alg R' BR R BL
720
+ Alg B' D' BL D B
721
+ Alg BR B D' B' BR'
722
+ Alg BR BL' D BR L'
723
+ Alg BR BL' D BL BR
724
+
725
+ Alg U BR U'
726
+ Alg U BR' U'
727
+ Alg U' R U
728
+ Alg U' R' U
729
+ Alg U BR B' U'
730
+ Alg U BR' U' D
731
+ Alg U BR' U' D'
732
+ Alg U' R F' U
733
+ Alg U' R' U L'
734
+
735
+ Alg U B U'
736
+ Alg U B' U'
737
+ Alg U B U' L
738
+ Alg U B U' L'
739
+ Alg U B' U' BL'
740
+ Alg U B U' L F
741
+ Alg U B U' L F'
742
+ Alg U B' U' BL' D'
743
+
744
+ Alg B BL' L BL B'
745
+ Alg B BL' L' BL B'
746
+ Alg U B' D B U'
747
+ Alg U B' D' B U'
748
+ Alg U R D R' U'
749
+ Alg U R D' R' U'
750
+ Alg R' F L F' R
751
+ Alg R' F L' F' R
752
+ Alg B L' B F' D B
753
+ Alg U B' D' B U' D
754
+
755
+ Alg F
756
+ Alg F'
757
+ Alg F D
758
+ Alg F D'
759
+ Alg F' L
760
+ Alg F' L'
761
+ Alg F D' BL
762
+
763
+ Alg F BL F'
764
+ Alg F BL' F'
765
+ Alg BR' BL BR
766
+ Alg BR' BL' BR
767
+ Alg F BR F' BR'
768
+ Alg F BL F' BL'
769
+ Alg F BL' F' L
770
+ Alg F BL' L' F'
771
+ Alg F BR' BL BR F'
772
+
773
+ Alg F' BL F
774
+ Alg F' BL' F
775
+ Alg U BL U'
776
+ Alg U BL' U'
777
+ Alg F U' F' U
778
+ Alg F' BL F D'
779
+ Alg F' BL F BL'
780
+ Alg F' BL D F
781
+
782
+ Alg L
783
+ Alg L'
784
+ Alg L BL
785
+ Alg L BL'
786
+ Alg F' D F
787
+ Alg L BL D
788
+
789
+ Alg L' BL L
790
+ Alg L' BL' L
791
+ Alg L' BL D L
792
+ Alg L' BL D' L
793
+ Alg L' BL L BL'
794
+ Alg L' BL D' L BL
795
+ Alg L' BL D' L BL'
796
+
797
+ Alg L D L'
798
+ Alg L D' L'
799
+ Alg R' D R
800
+ Alg R' D' R
801
+ Alg L D L' D'
802
+ Alg L R L' R'
803
+ Alg L' B' L B
804
+ Alg R' D R BL
805
+ Alg L BL' L' BL L'
806
+
807
+ Alg U L' D L U'
808
+ Alg U B D B' U'
809
+ Alg U L' D' L U'
810
+ Alg U B D' B' U'
811
+ Alg R' D' BL' D R
812
+ Alg U B D' B' U' D
813
+ Alg U B' L B L' U'
814
+ Alg U B D B' U' BL'
815
+ Alg U B D' B' L' D' L U'
816
+
817
+ Alg F L F'
818
+ Alg F L' F'
819
+ Alg F L F' D
820
+ Alg F L F' D'
821
+ Alg F L' F' BL'
822
+
823
+ Alg L BL' D BL L'
824
+ Alg L BL' D' BL L'
825
+ Alg F D L D' L' F'
826
+ Alg F L D L' D' F'
827
+ Alg F L' B' L B F'
828
+ Alg F' D' R' D R F
829
+ Alg F D L D' L' F' BL'
830
+ Alg F' R' B' R' B R' F
831
+
832
+ Alg B D B'
833
+ Alg B D' B'
834
+ Alg L' D L
835
+ Alg L' D' L
836
+ Alg B D B' D'
837
+ Alg B' L B L'
838
+ Alg B D B' D' BL
839
+
840
+ Alg D
841
+ Alg D'
842
+ Alg D BL
843
+ Alg D BL'
844
+
845
+ Alg D BL' D BL D'
846
+ Alg D BL' D' BL D'
847
+ Alg B D R D' R' B'
848
+ Alg B R D R' D' B'
849
+ Alg D BL' D BL D' BL
850
+ Alg D BL' D BL D' BL'
851
+
852
+ Alg D BL D BL' D'
853
+ Alg D BL D' BL' D'
854
+ Alg B' BL' B BR D' BR'
855
+ Alg D BL D BL' D' BL
856
+ Alg D BL D BL' D' BL'
857
+
858
+ Alg D' BL D
859
+ Alg D' BL' D
860
+ Alg D' BL D BL
861
+ Alg D' BL D BL'
862
+
863
+ Alg B D' B' BL B D B'
864
+ Alg B D' B' BL' B D B'
865
+ Alg D' BL' D BL D' BL D
866
+
867
+ Alg B R' B' BL B R B'
868
+ Alg B R' B' BL' B R B'
869
+ Alg L R L' BL' L R' L'
870
+
871
+ Alg F BL' B' BL F' BL' B
872
+ Alg F' R' F BL F' R F
873
+ Alg F' R' F BL' F' R F
874
+ Alg BR R BR' BL' BR R' BR'
875
+ Alg F L' BL U BL' U' L F'
876
+ Alg F' U' F D F' U F D'
877
+ Alg F BL F' D F BL' F' BL D'
878
+
879
+ Alg F D F U' F' U D' F'
880
+ Alg F D F' BL F BL' D' F'
881
+ Alg F U D BL' U' BL D' F'
882
+ Alg F U' D F U F' D' F'
883
+ Alg F' BR L F BR' F' L' F
884
+ Alg U R BL' F BL F' R' U'
885
+
886
+ Alg BL
887
+ Alg BL'
888
+
889
+ Alg F U BL U' BL' F'
890
+ Alg F BL U BL' U' F'
891
+ Alg U BL BR BL' BR' U'
892
+ Alg BR F BL F' BL' BR'
893
+ Alg F U' F' U BL' U BL U'
894
+
895
+ Alg F U' F' D F U F' D'
896
+ Alg B' U' F U B U' F' U
897
+ Alg D F U' F' D' F U F'
898
+ Alg BR' U BR D' BR' U' BR D
899
+ Alg D' BR BL' F BL' F' BL BR' BL D
900
+
901
+ Alg D BL D F' U' B L' BL' L R' BR' R L' BL L B' U F D
902
+ Alg B D BR F' R' BR' R B' F D' BL D B BR' D' B'
903
+ Alg L B' BR' L F BR L' B BR' L U F U' BR' F L BL BR'
904
+ Alg L BL' D' BR' B R' U' R BR B' D BL' L'
905
+ Alg B BR B' D' B D B F' R' B' R BR' B' BR F BR' BL
906
+ Alg L' BL D L' D' L' D L' U' R' F' R U D'
907
+ Alg U' L BL L U' D R' BL B' BL F' BL' B R BL' U D' L U
908
+ Alg L BL BR' L U' D R' F' R BL' U BL D' BR L
909
+ Alg D L' R F' R' L BL' BR BL' B' BL B BR' F BL' F' D'
910
+ Alg B BL B BR' L R' U' R BR L' B
911
+ Alg L B' R' BR B F BL D' BL' D BL' B' F' BR' R U B L'
912
+ Alg D' L' BL F' D' BL' D B F' R' BR R B' F' BL' L D
913
+ Alg B D' R D' R' BL BR' B BR' B' BL' D' BR B R' B' R B' BL' D'
914
+ Alg U' L R' F U L' BL' L B BL' B' BL L U' L' F' R L' U
915
+ Alg F' D BL' BR' BL' BR B' U' F L F' U B D F L U BL' U' L'
916
+ Alg L' U BR' U D R' BL F R BL' U D' BR' L' BL' BR' L'
917
+ Alg U' L' U' D R' BL B' BL F BL' B R BL' U D' L' BL' L' U
918
+ Alg D F BL L' BL' B L' B' L' B L' B' L' BL L BL' F' D'
919
+ Alg F' BR' B BL' BR BL B' F L' F' L B BR' B' BR L' F L BL'
920
+ Alg F' L F' L U' D R' F R U D' L' BL' F L' F
921
+ Alg F U' F' BR F' R' BR' U F' L' BL F' D' BL'
922
+ Alg B BR' U R BR' R' BR U' B' BR
923
+ Alg F' BR' B BR' R BR' BL' BR R' BR BL B' BR F
924
+ Alg L' U BL B' U' BL U BL' B BR BL' BR' U' L
925
+ Alg BR BL' BR' BL L' BL BR BL' BR' L
926
+ Alg U BR' U' BR L' BL BR BL' BR' L
927
+ Alg U' L F BL' F' BL F' BR F BR' L' U
928
+ Alg F L F' BL D F' D' F BL' L'
929
+ Alg U BR' U BR L BL BR BL' BR' L' U
930
+ Alg F BR R BL' F' BL' F R' BL BR' BL F'
931
+ Alg D BL D B U BR' D BR' L' U' BR' U BR L D' BR U' B' D
932
+ Alg U BL' U' BL U BL D L' D BR D' L D BR U BR U D
933
+ Alg B' U F U' B' U F' BR' U' B L B' U BR U' B L' B BL
934
+ Alg B U' B BL U' BL L U' D R' F' R U' D' L' BL' U B
935
+ Alg B L R F D' BR' D F' R' BL' U' L U L' U BL L' B'
936
+ Alg D BL D F' BR' F BL' D R' BR' R F D' BL F' BR D
937
+ Alg L' D F' R' U BR L BL B' BL B BL' BR' L' U' R D' L
938
+ Alg F BL' U D L' U' BR R F' R' BR' U L D BL U' D BL F'
939
+ Alg BR' BL' U' L' BL D F' L' F' L F L U L' D' BR L BL
940
+ Alg B' L' BL U D R' F' R U D' L' BL L U BL' L B
941
+ Alg B BL' L U B' L BL' L B' U' B' L' D L' U' B L' B' D'
942
+ Alg B' R' L U L' R BR BL' B BR' B' BL B' BL' B'
943
+ Alg F L R BL B' U' B R' BL' L' BL F' BL BR' BL L BL' BR L'
944
+ Alg B' U' BL L U D R' F R U D' L' BL' U BL' B' U B'
945
+ Alg U BR BL' BR' D' B D' F' D B' D' F BL' U' BL' F' BL' F D'
946
+ Alg D' BL' D L BL L' D' BL D F' D F D' BL' D' BL D
947
+ Alg B' BL' B' BL L' B' BL' F' D F L F' D' F BL' L BL' B L B
948
+ Alg F BL' U D' BL' D' L' U' BR R F R' BR' U L U' D' BL F'
949
+ Alg U' D' B D F' D' BR' D' BR D BR B' BL' D F BL U BL'
950
+ Alg B BL BR D' BR L' R F R' BR' L D BL' BR' BL' B'
951
+ Alg L' F L' U BR' U' BR L F' BR' L U BR U'
952
+ Alg F' BL' D' BR' BL B' U' BL U B BL' BR D F
953
+ Alg F' D' BR' U R' U BL U' R U' BL' BR D F
954
+ Alg F U' BR F' U' BL' B U F BR' R F' U BL L
955
+ Alg B' BL' U' BL U B BL' B BL BR BL' BR' B' BL
956
+ Alg D' F' U BL U' L F U' F' U L' BL' F D
957
+ Alg F' BL' D' BR' BL BR' F' BR U' B' BR' U R' BR' F'
958
+ Alg B' U' B BL' B U' B BL' L U' L BL' L B
959
+ Alg F' D' F U' F U F' BL F' BL' D F
960
+ Alg F' D BR F' R F R' BR' F D'
961
+ Alg D BL D B BR' D L' BL' L' BL' BR' BL L BL L D' BR B' D
962
+ Alg B L BL L' BL' L' D F' R' BR R D' F L' BL' L' B'
963
+ Alg B BL' F' BL BR D' BR' F D' B' D L F' BL' F L D L D' BL
964
+ Alg B D' BR' D' BR' F D' BL' D' BL D BL F' D BR D' B'
965
+ Alg B D' B U B' D B F' BR' F L' F BR F' L U' B BL
966
+ Alg L BL' B' U BL L' BL L U L' BL' L BL' U' B BL' L'
967
+ Alg U D F' D BR BL' BR' BL B D' F D B' D BR BL BR' U'
968
+ Alg F' D BR L' U' R F' R' U BR' L D BR' BL BR D F
969
+ Alg BR' L BL L' BL' BR BL' F BL' L R BL B' U B R' BL' L' F'
970
+ Alg D BL BR D B F' R' U' BR' U R B' F D' BR' D'
971
+ Alg D' B BR' D L' BL' L' BL' BR BL L BL L D' BR B' D' BL' D'
972
+ Alg B U' R B' BL' B R' U' B BL' B' U' BL B' U' L U L'
973
+ Alg B D' B' D' BR' BL BR D' B' L B BR' U B U' BL' BR BL L' BL'
974
+ Alg B D BR' D' F BL' D' BL' D BL D F' BR D BR D B'
975
+ Alg D' B D F' D' BR' D' BR D BR BL BR' BL' BR B' BL' D F
976
+ Alg L BL B' U BL L' BL L U' L' BL' L BL' U' B BL L'
977
+ Alg B' U B' D' B U' B' D BL' U BL' U' BL' B' U BL' U'
978
+ Alg D' BR' B' L' U L' B' U B L U' L B BR D BL
979
+ Alg L' D L' F U' F' L D' L' F U BR F' L F BR' F' L BL'
980
+ Alg D BR D B F' R' U' BR U R B' F D' BR' BL' D'
981
+ Alg BR BL D F BR' BL BR BL' BR F' BR' D' BL' BR'
982
+ Alg BR' U' L' BL F' BL' F L BL' U BL BR
983
+ Alg D' BR' B' U BR U' BL U' BL' U BR' B BR D
984
+ Alg F U BR' U R U' BR B U' F' BL U' L' U BL' B'
985
+ Alg B U' L F BR F' L F' BR' F L U B'
986
+ Alg BR BL F BL' L F' BR' BL' F BL L' BL' F' BL
987
+ Alg U' BR' L BL' BR L U' BR' U L' BL L' U' BR U'
988
+ Alg L' F L' U BR' U' BR L F' L BL' BR BL BR'
989
+ Alg F' D' BR' BL U R' U BL' U' R U' BR D F
990
+ Alg F' BR' B F' U F BR U' BR' B' F BL BR BL'
991
+ Alg L B' U' R' BR B F BL D' BL D BL' B' F' BR' R B L'
992
+ Alg B F BL B L F BR' R' BL U' R BL' BR' F' L' F' BR' B
993
+ Alg U BR F' D F BR' U' L' BL L' BL' L U L B' BL L' B U'
994
+ Alg F' L B F BL B R U' R' B' BL' B' F' L BL L F
995
+ Alg D BL D B BR' D BR' D' BR D BR BL BR' BL' D' B' D
996
+ Alg D' BR' BL B BR B' BL' D BL D' B' BL B BR' BL' BR D
997
+ Alg D F' U BR U' L U' BR' U L' D B D' F D B' D BL
998
+ Alg L B BL' B L F R U' R' F' L' B' BL B' L' BL'
999
+ Alg B D' B U B' D F' BR F L' F BR' F' L B U' B BL
1000
+ Alg B' BL L B' L' B' L B' BR' R' U' R BR L'
1001
+ Alg D' F' U' B L' BL' L R' BR R L' BL L B' U F D' BL' D'
1002
+ Alg B' F' BL' B' F U D' R BR R' BL U' BL' D B'
1003
+ Alg F' BL' D BL F BL' D' B' U' B D F' D' B' F U B
1004
+ Alg F' L' BL' L' B F BL B R U R' B' BL' B' F' L' F
1005
+ Alg L' BL U' D F D' BL' D BL F' BL' D' BL D F' U D' BL L
1006
+ Alg B' BR L R' U R BR F L' B' BL' B L F' BR L' B
1007
+ Alg B' L B' BR' B L' B' D F' U F D' F U' F' BR B' BL'
1008
+ Alg B' BR D' BL' BR' BL B L' R' L' R BR L D L BL BR' B BL
1009
+ Alg L' D F' L F L' F D' L' BL' L' D BL' BR' BL' BR BL' D'
1010
+ Alg B' F BR F BR L R' BL U R BL' BR L' B' BL' B' F
1011
+ Alg F L' F' BR' B BR' F' BR B' BR' F' L F' BR'
1012
+ Alg BR' B' BR BL' D' BR D BR' BL B
1013
+ Alg L' F L' U BR' U' L U' BR U F' L
1014
+ Alg F U' BR' R U' BR BL BR' U' BL' U' R' F' BR U
1015
+ Alg B' BR' R' U' BL D' BL U BL' D R BL' BR B
1016
+ Alg D BR' U' L BL' F' BL F L' BL U BL' BR D'
1017
+ Alg F' BL' D' F BR' BL BR BL' BR F' BR' D BL F
1018
+ Alg F' BR' BL' BR D' F' BR F BR' D BL F
1019
+ Alg F' BR R' BR BL' BR' R BR' BL F
1020
+ Alg B BR F' BR' B' F BL F BL' F'
1021
+ Alg B D' B U B' D BL' F R' F BL F' R B F' U' B BL
1022
+ Alg L BL' B' U L U L BL L B' BL B' U' BL' U' B' L' BL
1023
+ Alg L' BL' U' D F D' BL' D BL F BL' D' BL D F' U D' BL' L
1024
+ Alg F' L F' BL' D' BR' B R' U' R BR B' D BL' F L' F
1025
+ Alg U D' BR' D BR' U' L U BR L' D' BR D L U' L' BL
1026
+ Alg B' BR' B' BL B L F' BR' R' U' R BR F BR L' B
1027
+ Alg U' F' D BR' F' BR D L D L' U D' B D' B' F D' BL F
1028
+ Alg B F BL B F' L F BR' R' BL U' R BL' BR' F' BR' L' B
1029
+ Alg F' D' BL B BR' BL BR BL' BR' D' BR' D BR D F D' B' D
1030
+ Alg B' BR' B' BL B L F BR' R' U' R BR F' BR L' B
1031
+ Alg L' F BR L' R' BR BL' BR' R BR' BL B' L F' L' B L' BL'
1032
+ Alg B' U' BL' U D' BL' D F L' R U R' F' L U' BL U B
1033
+ Alg D' B D BL BR BL' BR' D' BR' D BR D' BR B' D' BL' D'
1034
+ Alg B' BR' L F' BR' R' U R BR F L' B' BL' B BR B
1035
+ Alg L U L' D' BR' D L U' L' U D' BR D BR BL BR' BL' U' BL'
1036
+ Alg F' L F' BL D' B BR' R' U R B' BR D BL F L' F
1037
+ Alg B' L B' BR' B L' F' R F' BL F R' F BL' B' BR B' BL'
1038
+ Alg F' L BL' BR' R' BL U R BR B L' B L B L' F BL' B
1039
+ Alg L' F D' BR U' BR' D BR' U BR L' B' L F' L' B L' BL'
1040
+ Alg B' BR' L F BR' R' U R BR F' L' B' BL' B BR B
1041
+ Alg L F' D' F BR' BL BR BL' BR F' BR' D F L'
1042
+ Alg F' BL' D F BL' F' BL D' BR' BL BR F
1043
+ Alg B' BR' R' BL D' BL U' BL' D BL' U R BR B
1044
+ Alg B' L BL' BR BL L' B' F BL F' BL' B BR' B
1045
+ Alg F U' BR' R BR F' U BL L U BL' B U'
1046
+ Alg B' BR B' BL F BL' B F' L BL' BR' BL L' B
1047
+ Alg U' L BL' U' R U' BL' U R' U BL' L' U
1048
+ Alg F U' BR' R' F' BR' F BL BR R BL' F' BR U
1049
+ Alg B U' L' F' BR F L' F BR' F' L' U B'
1050
+ Alg F' BR' B' F BR' BL' BR F BL B F' BL BR BL'
1051
+ Alg B BL' U' L U BL' B' BL' B' L' BL U B' U' BL L BL L
1052
+ Alg B R' U' B U R B' BR F D' B' D BL F' BL' BR' BL
1053
+ Alg U BL U' B BL U BL U' BL D' B U B' D B U' B
1054
+ Alg B BL B BL' B BR B' BL BR' R' L U' L' R B
1055
+ Alg U' L BL' B BL B' L' F U B' R U R' U F' U B BL
1056
+ Alg F' BL' D' BR' L' B' L B BL BR BL' B' L' B L D BL F BL
1057
+ Alg L B' L' F U B' R BR B BR' R' BR BL' BR' BL B U' F' BL
1058
+ Alg D' F BL B BR' B BR B' BL' D BL D' B' F' D
1059
+ Alg B' L' BL F U F' L' U B U' L F U' F' BL' L BL' B BL B
1060
+ Alg D BL D B U F' R' BR' R F U' B' D
1061
+ Alg B BR B' D' BL BR D BR D B' BL' B D BR' BL' D' BL' D'
1062
+ Alg B' R BR B' BR' R' B U' F' L B L' BL' F BL U BL'
1063
+ Alg U BR BL' BR' D' B D' F' D B' BL' BR BL BR' D' F U' D'
1064
+ Alg U' D' BR' U' BR' D' L' D BR' D' L D' BL' U' BL' U BL U'
1065
+ Alg L' F' BR F' R F' R' L F' BR' D L BL' L' BL D' F BL'
1066
+ Alg B D BL' D B U R BR R' U' B' D' BL D' B' BL
1067
+ Alg B' U L' U B BL L' F' BL F D' B' U B D B' L B L'
1068
+ Alg L BL' B' U L F R U' R' F' U L F' L B L' F
1069
+ Alg L' D R' U BR L BL B' BL' B BL' BR' L' U' R F D' L
1070
+ Alg D' B U F' R' BR R F U' B' D' BL' D'
1071
+ Alg B D BL' B' U' BL L' D L D' BL' U B BL B' D'
1072
+ Alg B U' BL' U' F U' B U B' F' U BL U' B U' B
1073
+ Alg U BR' U L BL' L U' BR U BR' L' BL BR L' U
1074
+ Alg F' D' BR' BL B' U' BL' U B BL' BR D BL F
1075
+ Alg B' L' B' F BL' F' BL F' BR F BR' B L B
1076
+ Alg F' BL' D' BR F' BR' F D BR' BL BR F
1077
+ Alg F D' F' U' F' D' BR D F' D' BR' D' F' U
1078
+ Alg BR' BL' U' BL L U' F U F' L' U BR
1079
+ Alg F BR R U' BR B U BR' F BR BL' BR D BL F
1080
+ Alg F' BR' F U' BL L' U BL' B' F' BL' BR D' BL F
1081
+ Alg B' U L' B' U L' D F L F' D' L U' B L U' L B L'
1082
+ Alg B BL B L F BR' R' U' R BR F' L' B
1083
+ Alg B D' B BR' R' U' B' U R BR U' D' F L' F' U L' D' L
1084
+ Alg L U' L' U B BL' U B BL B' U R B' BL B R' U B'
1085
+ Alg D F' D BL U' R U' BL' U R' U B D' F D B' D BL
1086
+ Alg B BL U B BR' L R' F' U' F R BR L' B' U' B'
1087
+ Alg B' U' B F' D F D' B' U B D BL F' BL' D' BL F
1088
+ Alg B D BR B F' U' R' BR' R U B' F BR' D' BL B'
1089
+ Alg L B' F R BL' U' R' BL B F' L U BR' U' BL L U BR U'
1090
+ Alg F' L F' BL L U' D R' F' R U D' L' F L' F
1091
+ Alg L U L' F' BL' F L B BL' U BL' U' BL B' BL L U' L
1092
+ Alg B' L F BR' R' U R BR F' L' B' BL' B'
1093
+ Alg U BR' U' L' U' BR' F' BR F BR D R' F R U D' L' BL' L'
1094
+ Alg B L BL L F' D R' BR' R F D' L BL L BL' L' B'
1095
+ Alg F' BL' D F' D' B D' B' U' D L D BR' L' F BR D' F U
1096
+ Alg B U B BR' L R' F' U F R BR L' B' U' BL' B'
1097
+ Alg U B' L BL' B L' U' L' BL L BL' L U BR F' D' F BR' U'
1098
+ Alg B BL' D BR B F' U' R' BR R U B' F BR' D' B'
1099
+ Alg B BR B F BR' U BL' L R BR' R' L' F' U BR U BL B BL'
1100
+ Alg B' BR' L R' U R BR L' B' BL' B'
1101
+ Alg B' U BR' R L F' BR' F L' R' BR U' B' BR B'
1102
+ Alg F' BL' F' BR R U' BR B F BR BL' D F U BL'
1103
+ Alg F' BR' B' U BR' F BR' F' BR U' BR B BR F
1104
+ Alg BR' BL' U' BL L' F' BL F BL' L U BR
1105
+ Alg U' L BL U' R U' BL U R' U BL L' U
1106
+ Alg F BR' F' U' L F BR U F' U' L' BL U BL'
1107
+ Alg L' F U' BR' U L' U BR U' L F' L
1108
+ Alg F' BR' B' U' BR' U F BR B U' BL U BR BL'
1109
+ Alg F' BR' U BR D' BR U' BR' D F
1110
+ Alg F BL' BR R BL' F' BL F R' BL BR' F'
1111
+ Alg L BL' B BL' U BL U' BL B' L' F' BL F L U' L U L
1112
+ Alg B F BL B F' L F' BR' R' BL U' R BL' BR' F BR' L' B
1113
+ Alg F BL B' F' BR B' BR' B L F BL B' BR B BL' BR' F' L' B
1114
+ Alg B F D' BL U R BL' BR' R' U' D B F' BL B
1115
+ Alg L B' U B' BR B BR U' BR' B L' F BL' B F' BR' B' BL'
1116
+ Alg U' L R' F L U L' BL' B BL B' L' BL L U' F' R L' U
1117
+ Alg BR BL F BL' F' L' F' BR' L B BR B' L' F L B BR' B' BL
1118
+ Alg B' BR' L F L' B' BL B L F' BR' R' U' R BR' L' B
1119
+ Alg D L U' BR U L U' R BL' F' R' F BL F' BR' U L D BL D
1120
+ Alg B F BL B F BR' L R' BL U' R BL' BR' L' F BR' B
1121
+ Alg L B' L' U L' B' U L' D F L' F' D' L U' B L U' B
1122
+ Alg B' BR L F' BR R' BL U R BL' BR F L' B' F BL' B' F'
1123
+ Alg B' BL L B L' B' BL' L' U BL' U R' L' R U' BL U' L B
1124
+ Alg B U' D' F D B BL' B' U D' R BR R' U' F' U D B'
1125
+ Alg D F L F' L' F R L' BL B L B' BL' L R' F' L D'
1126
+ Alg L BL D' B BR' R' U R B' BR D BL L'
1127
+ Alg D F D' B' U' B U' D F' D' F U B' U B F' BL'
1128
+ Alg D' BR' BL BR B' BL' B D BL' D' BL B BR' B' BL' BR D
1129
+ Alg U BR' U' L U R' L R BR L' B' L' B L U' L' BL'
1130
+ Alg BR' L R' U R BR B L' B L B L' BL' B
1131
+ Alg B BR' B U BR' R L F' BR F L' R' BR U' B
1132
+ Alg F' L B' BR' B L BL' L' B' BR B L BL L F
1133
+ Alg D F U' F' U D' BR U' D' F U F' D BR'
1134
+ Alg B' BL' BR D' BR' D BL BR' B BR
1135
+ Alg B BL U' BR' L U BR' F' BL D BL BR F BR
1136
+ Alg L' U BR BL BR' B' BL U' BL' U B BL' U' L
1137
+ Alg U B' BL U' L' BL' U' F BR' R' BR U F'
1138
+ Alg D BR' BL U' BL' L F' BL' F BL L' U BR D'
1139
+ Alg BR L' BL BR' BL' L BL' BR BL BR'
1140
+ Alg F BL F' BL' B F' BR F BR' B'
1141
+ Alg D BR L' U' R F' R' U BR L BL B' BL B BL' BR D'
1142
+ Alg D' BL' D BL D F' D' F D' BL' D L BL' L' D' BL D
1143
+ Alg B F D' F' U' BL' B U B' BL F D B U' B' U B' F' BL
1144
+ Alg B U F' D' R BR' R' U' D B BL B' U F U' B'
1145
+ Alg B BL B L B BR' F BR B' BR' R' U' R F' BR L' B
1146
+ Alg B BL B L F' U' F' U F BR' R' U' R BR' F BR' L' B
1147
+ Alg B' U' B F' D F D' B' U B U' D BL' F' BL D' F U BL
1148
+ Alg L F' BR B' F' R BL' U' R' BL B F' BR L BL BR L
1149
+ Alg D F' D' BL F' D' F R BL B' L U L' B R' F' BL' D F
1150
+ Alg B BL BR BL D' BR L' R F' R' BR' L D BR' BL' B'
1151
+ Alg B' L B' BR' B L' BL' U BL U' B' BR B' U BL' U'
1152
+ Alg D' B BR' F BL' F' D BR D' BL F' BR B' F D' BL' D'
1153
+ Alg B D F' L' R F D BR' D' F' R BR' L D B' BL' D' F D'
1154
+ Alg D L BL' F' R U R' B F' L BL' L' B' F' BL L' D'
1155
+ Alg B' BR' L F R' U R BR B BR' F' BR B' L' B' BL' B'
1156
+ Alg D L F BL F L BL' L D' BL' D' F' D' F' L BL D' BL'
1157
+ Alg D F BL F' BR B' BL' B BL BR' BL L' R F R' L D'
1158
+ Alg L BL' B' L B L B' L F R U R' B F'
1159
+ Alg F' D' BL F R B' L U' L' B R' BL' F' D F BL' D F D'
1160
+ Alg B' L' BL U' D' L' BL' L U' D R' F R U' BL' L B
1161
+ Alg L' F L' BL U' BL' U L F' L U' BL U BL'
1162
+ Alg D' F' BL L U' F U F' L' U BL' U' F D
1163
+ Alg B' U F D F' U F D' F U B U' F U
1164
+ Alg U B' BR' U R' U' R BR U' B
1165
+ Alg F' BL' D F BL F' BR F' BR' F BL' D' BL F
1166
+ Alg F' BR' BL' BR D BL' F BL F' D' BL F
1167
+ Alg U' F R F' BL' F R' F BL F U
1168
+ Alg F' BR F BR' L BL' BR' BL BR L'
1169
+ Alg F U' B F U' BR U BR' U F' U' B' U F'
1170
+ Alg D F' BR R F' R' F BR' D' F
1171
+ Alg B D' B U B' D B U' B BR BL BR' D BL BR BL BR' BL D'
1172
+ Alg B' U' L' D' F D' L' F' L D F' D L U B BL'
1173
+ Alg D L' F R L' BL B L' B' BL' L R' F' L F L' F' D'
1174
+ Alg D L' D' BL D F' D F D' BL' L BL D'
1175
+ Alg D' B R U' B' F' BL' L BL L' BL B F U R' BR' B' D
1176
+ Alg D L BL' F L BL L' B' F R U' R' B F BL L' D'
1177
+ Alg D F' BL F BL U BL F' D B D' F D B' D BR BL BR' U'
1178
+ Alg B F' BL B F' BR' F' L F R' U' R BL' BR BL F' L' B
1179
+ Alg L F BR B' D BL D' R U' R' D BL' D' B BR' F' L BL L
1180
+ Alg B F BL B F' BR' L R' U' R BL' BR BL L' B
1181
+ Alg D' B U BR' D BR' L' U' BR U BR L D' BR U' B' D' BL' D'
1182
+ Alg F' D' BR' BL' BR D' BR L' U' R F R' U BR' L D' F
1183
+ Alg D F U D' BL U' B D' F BR F' D' F' D BR' D B' BL
1184
+ Alg B U' D' F D BL' D' BR D' BR' D BL B' BL' B F' U D B'
1185
+ Alg L' BL' L' F BR B' D BL D' R U R' D BL' D' B BR' F' L'
1186
+ Alg B U F' U' B BL' B' U D' R BR R' D F U' B'
1187
+ Alg B L BL' U' L U' L' U R BL F D' BR D F' R' L' B'
1188
+ Alg B' L B' BR' B L' F' BL F BL' B' BR B' F U' F' U BL'
1189
+ Alg D' B BR R U' B' F' BL' L BL' L' BL B F U R' B' D
1190
+ Alg B BL' U' B BL' B D B D' B D B D' BL B' U BL B'
1191
+ Alg U BR' U' BR L' F BR' L' U BR U' L F' L
1192
+ Alg L' U BR BL BR' B U BR' U' BR B' BL' U' L
1193
+ Alg BR BL D BR' BL' L BL' BR BL L' BL D' BL' BR'
1194
+ Alg F' BL' D' BR' D BL BR' B U BR U' B' BR F
1195
+ Alg F U' F' D F' U' B' U F' U' B U' F' D'
1196
+ Alg B' U BR' R' U R U' BR B U'
1197
+ Alg L U BL U' BL' L' BL L' F' BL' F BL L BL'
1198
+ Alg U B' BL' BR' U F' BR' D' F BR' U BL' L' BL'
1199
+ Alg F BL' L' F' BL D' F' BR U' R' F' U F' BR'
1200
+ Alg U B U' BL L U' L' U BL' B'
1201
+ Alg U BL U' B BR' B U BL' U' BL L B' BR B L' B
1202
+ Alg B BL B L F' U' F U F BR' R' U' R BR' F' BR' L' B
1203
+ Alg B BR D L' D' F' D F D' F' D' F D' BR' L D' B D B
1204
+ Alg F' L B' L' F L' U' F R U R' F' L' U' B BL L'
1205
+ Alg B' L' F U F L' F R U' R' U L F R U R' U B F' BL
1206
+ Alg B U F' D' F' U R BR' R' U' F D B BL B' F U' B'
1207
+ Alg F BL U BL' U' F' BL L U' L D BR L' U L U' BR' U D' L
1208
+ Alg B U' D' B' F BL B BL' D' BR D BR' D BL D' F' U D B'
1209
+ Alg B BL' D' B' D B BL D BR' BL BR' R D R' BR BL' BR D' B'
1210
+ Alg B F U' F' D' F' U' R BL' BR' R' BL U' F D B BL B
1211
+ Alg D BR' BL B' BL' B BL' BR' L' U' R F R' U BR' L D'
1212
+ Alg B' F' U' F' BL' D' B BR' R' U R B' BR D F U B F
1213
+ Alg B' D' B' D BR L' D F' D F D F' D' F D L D' BR' B'
1214
+ Alg D' B F D BL' D' BL B BR' B' BR B' BL' F' D
1215
+ Alg B D B' F BL L' BL' F' L BL L' BL' BR L R L' R' BR' L' D'
1216
+ Alg B U B F' BL' B' D' F' U R BR R' U' F D F U' B'
1217
+ Alg BR BL' L' F' BR U F' U' BR L' B' BR' L F' BR L' B L'
1218
+ Alg D BL' L' BL D F' D' F D' BL' D L D'
1219
+ Alg F' BL' B F U' B U B' D' F' BL' B U' B' BL U F D B'
1220
+ Alg B' F' L BL' BR' R' BL U R BR L' B' F BL' B'
1221
+ Alg BR BL' BR' BL L' F L' BL' BR BL BR' L F' L
1222
+ Alg B BL BR' F U' L F U BR' F BL D BR' BL
1223
+ Alg B' BL' B' U BR' U' BR BL' BR BL BR' B BL B
1224
+ Alg BR' U' L F U' F' U L' BL' U BL BR
1225
+ Alg B U BR R' BR U' B' BR U' B' U BR' R' BR
1226
+ Alg B BR BL L BL BR' BL' L U' BL' U BL L BL' B'
1227
+ Alg F' BR' B BL' BR' R BR' BL BR R' BR B' BR F
1228
+ Alg F' BR' B U BR' U' B' BR BL' D' BR D BL F
1229
+ Alg D' F' BR U' R' F' U F' BR' F BL' L' F' BL
1230
+ Alg B BL U' L U L' BL' U B' U'
1231
+ Alg L' F' R B F' BR L' D' F' D BR' L B' F R' F BL L
1232
+ Alg D F BL L' BL' B L B' L B L B' L BL L BL' F' D'
1233
+ Alg B BL B BR' L R' U' R BR L' B U BR' U' BR BL' BR BL BR'
1234
+ Alg B' F R U' R' F' L' B L' B' L' B BL L'
1235
+ Alg B' L' F D R' F' L' U L F R' U D' L' B BL L F' L
1236
+ Alg D' L' BL F R' BR' R B' F D' BL D B F BL' L D
1237
+ Alg B' BR' R' U' BL' U' L R' F R F' L' R U' BL BR B BL
1238
+ Alg BR L BL BR L U' D R' BL F' R BL' U' D' BR U' L
1239
+ Alg BR L B' L F R F U F' U' R' L' B L F' BR' L BL
1240
+ Alg B F U D' R BL' BR' R' BL U' D B F' BL B
1241
+ Alg L' BL L' D B D' BL' B' D' L R' D R BL' U' L U BL'
1242
+ Alg L' D BL' U' R' BL F R U D' BR L' BL' BR' L'
1243
+ Alg U BR' U' L' BL' U BR U' L' B' F R BL' U R' BL B F' L'
1244
+ Alg BR L' BL' L' B' F R BL' U R' BL B F BR F BR L'
1245
+ Alg B' F' L F BR BL B' BR' B BL' F' L' B' BR B BR' B F BL'
1246
+ Alg B D BR B' D' BL' D B F' R' BR R F BR' D' B'
1247
+ Alg D BL' L' BL' L BL L' BL F' BL' L' F L BL F BL' L D'
1248
+ Alg U' D R' F R U L D' L D L D' BL' L
1249
+ Alg U D' BR D' L' D R F BR F' BR' R' BR' D' L U' D' BL'
1250
+ Alg B' F' BR' L R' BL U R BL' BR L' B' F BL' B'
1251
+ Alg L' F BL' F' BL F' BR F BR' L
1252
+ Alg L BL F' D F D' BL' F L' F'
1253
+ Alg F' D' BR U BR' D BR' U' BR F
1254
+ Alg BR' L BL' BR BL BR L' F' BR' F
1255
+ Alg B BR F BR' B' BR F' R' BR' BL' BR R BR' BL
1256
+ Alg BR' B U BR' R BR R' U' BR B'
1257
+ Alg F' BL' BR R' BR BL BR' R BR' F
1258
+ Alg BR L' BL BR' BL' BR' L U BR U'
1259
+ Alg U BR' U' BR BL' BR BL BR'
1260
+ `
1261
+ );
1262
+ }
1263
+ export {
1264
+ getRandomRediCubeScramble,
1265
+ sgsDataFTO
1266
+ };
1267
+ //# sourceMappingURL=search-dynamic-sgs-unofficial-Q4LLHL2O.js.map