aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md105
-rwxr-xr-xconvert.sh22
-rw-r--r--cpp/examples/move.cpp17
-rw-r--r--cpp/examples/move_convert.cpp24
-rw-r--r--cpp/nissy.cpp66
-rw-r--r--cpp/nissy.h7
-rw-r--r--python/nissy_module.c59
-rwxr-xr-xrun-oldbin0 -> 177064 bytes
-rw-r--r--shell/shell.c97
-rw-r--r--src/arch/avx2.h2
-rw-r--r--src/core/core.h1
-rw-r--r--src/core/cube.h178
-rw-r--r--src/nissy.c92
-rw-r--r--src/nissy.h102
-rw-r--r--test/001_pieces/01_solved.in2
-rw-r--r--test/001_pieces/02_scrambled.in2
-rw-r--r--test/001_pieces/pieces_tests.c2
-rw-r--r--test/020_io_H48_read_write/01_solved_oneline.in1
-rw-r--r--test/020_io_H48_read_write/01_solved_oneline.out1
-rw-r--r--test/020_io_H48_read_write/02_solved_oneline_whitespace.in1
-rw-r--r--test/020_io_H48_read_write/02_solved_oneline_whitespace.out1
-rw-r--r--test/020_io_H48_read_write/03_solved_multiline.in9
-rw-r--r--test/020_io_H48_read_write/03_solved_multiline.out1
-rw-r--r--test/020_io_H48_read_write/04_unsolvable_ep.in1
-rw-r--r--test/020_io_H48_read_write/05_unsolvable_eo.in1
-rw-r--r--test/020_io_H48_read_write/06_unsolvable_cp.in1
-rw-r--r--test/020_io_H48_read_write/07_unsolvable_co.in1
-rw-r--r--test/020_io_H48_read_write/08_unsolved.in6
-rw-r--r--test/020_io_H48_read_write/08_unsolved.out1
-rw-r--r--test/020_io_cube_read_write/00_garbage.in (renamed from test/020_io_H48_read_write/00_garbage.in)0
-rw-r--r--test/020_io_cube_read_write/00_garbage.out (renamed from test/020_io_H48_read_write/00_garbage.out)0
-rw-r--r--test/020_io_cube_read_write/01_solved_oneline.in1
-rw-r--r--test/020_io_cube_read_write/01_solved_oneline.out1
-rw-r--r--test/020_io_cube_read_write/04_unsolvable_ep.in1
-rw-r--r--test/020_io_cube_read_write/04_unsolvable_ep.out (renamed from test/020_io_H48_read_write/04_unsolvable_ep.out)0
-rw-r--r--test/020_io_cube_read_write/05_unsolvable_eo.in1
-rw-r--r--test/020_io_cube_read_write/05_unsolvable_eo.out (renamed from test/020_io_H48_read_write/05_unsolvable_eo.out)0
-rw-r--r--test/020_io_cube_read_write/06_unsolvable_cp.in1
-rw-r--r--test/020_io_cube_read_write/06_unsolvable_cp.out (renamed from test/020_io_H48_read_write/06_unsolvable_cp.out)0
-rw-r--r--test/020_io_cube_read_write/07_unsolvable_co.in1
-rw-r--r--test/020_io_cube_read_write/07_unsolvable_co.out (renamed from test/020_io_H48_read_write/07_unsolvable_co.out)0
-rw-r--r--test/020_io_cube_read_write/08_unsolved.in1
-rw-r--r--test/020_io_cube_read_write/08_unsolved.out1
-rw-r--r--test/020_io_cube_read_write/io_cube_tests.c (renamed from test/020_io_H48_read_write/io_H48_tests.c)4
-rw-r--r--test/021_io_B32_write/00_solved.in1
-rw-r--r--test/021_io_B32_write/00_solved.out1
-rw-r--r--test/021_io_B32_write/01_F.in1
-rw-r--r--test/021_io_B32_write/01_F.out1
-rw-r--r--test/021_io_B32_write/02_scrambled.in1
-rw-r--r--test/021_io_B32_write/02_scrambled.out1
-rw-r--r--test/021_io_B32_write/io_B32_read_tests.c22
-rw-r--r--test/022_io_B32_read/00_solved.in1
-rw-r--r--test/022_io_B32_read/00_solved.out1
-rw-r--r--test/022_io_B32_read/01_F.in1
-rw-r--r--test/022_io_B32_read/01_F.out1
-rw-r--r--test/022_io_B32_read/02_scrambled.in1
-rw-r--r--test/022_io_B32_read/02_scrambled.out1
-rw-r--r--test/022_io_B32_read/io_B32_read_tests.c22
-rw-r--r--test/023_io_LST_write/01_solved.in1
-rw-r--r--test/023_io_LST_write/01_solved.out1
-rw-r--r--test/023_io_LST_write/02_scrambled.in1
-rw-r--r--test/023_io_LST_write/02_scrambled.out1
-rw-r--r--test/023_io_LST_write/io_LST_write_tests.c22
-rw-r--r--test/024_io_LST_read/01_solved.in1
-rw-r--r--test/024_io_LST_read/01_solved.out1
-rw-r--r--test/024_io_LST_read/02_scrambled.in1
-rw-r--r--test/024_io_LST_read/02_scrambled.out1
-rw-r--r--test/024_io_LST_read/io_LST_read_tests.c22
-rw-r--r--test/030_move/000_nomove_solved.in2
-rw-r--r--test/030_move/000_nomove_solved.out2
-rw-r--r--test/030_move/001_nomove_scrambled.in2
-rw-r--r--test/030_move/001_nomove_scrambled.out2
-rw-r--r--test/030_move/010_U_solved.in2
-rw-r--r--test/030_move/010_U_solved.out2
-rw-r--r--test/030_move/011_U_scrambled.in2
-rw-r--r--test/030_move/011_U_scrambled.out2
-rw-r--r--test/030_move/012_U_inverse.in2
-rw-r--r--test/030_move/012_U_inverse.out2
-rw-r--r--test/030_move/020_U2_solved.in2
-rw-r--r--test/030_move/020_U2_solved.out2
-rw-r--r--test/030_move/021_U2_scrambled.in2
-rw-r--r--test/030_move/021_U2_scrambled.out2
-rw-r--r--test/030_move/022_U2_inverse.in2
-rw-r--r--test/030_move/022_U2_inverse.out2
-rw-r--r--test/030_move/030_U3_solved.in2
-rw-r--r--test/030_move/030_U3_solved.out2
-rw-r--r--test/030_move/031_U3_inverse.in2
-rw-r--r--test/030_move/031_U3_inverse.out2
-rw-r--r--test/030_move/032_U3_scrambled.in2
-rw-r--r--test/030_move/032_U3_scrambled.out2
-rw-r--r--test/030_move/033_U3_with_prime.in2
-rw-r--r--test/030_move/033_U3_with_prime.out2
-rw-r--r--test/030_move/040_D_solved.in2
-rw-r--r--test/030_move/040_D_solved.out2
-rw-r--r--test/030_move/050_D2_solved.in2
-rw-r--r--test/030_move/050_D2_solved.out2
-rw-r--r--test/030_move/060_D3_solved.in2
-rw-r--r--test/030_move/060_D3_solved.out2
-rw-r--r--test/030_move/070_R_solved.in2
-rw-r--r--test/030_move/070_R_solved.out2
-rw-r--r--test/030_move/071_R_scrambled.in2
-rw-r--r--test/030_move/071_R_scrambled.out2
-rw-r--r--test/030_move/080_R2_solved.in2
-rw-r--r--test/030_move/080_R2_solved.out2
-rw-r--r--test/030_move/090_R3_solved.in2
-rw-r--r--test/030_move/090_R3_solved.out2
-rw-r--r--test/030_move/100_L_solved.in2
-rw-r--r--test/030_move/100_L_solved.out2
-rw-r--r--test/030_move/110_L2_solved.in2
-rw-r--r--test/030_move/110_L2_solved.out2
-rw-r--r--test/030_move/120_L3_solved.in2
-rw-r--r--test/030_move/120_L3_solved.out2
-rw-r--r--test/030_move/130_F_solved.in2
-rw-r--r--test/030_move/130_F_solved.out2
-rw-r--r--test/030_move/132_F_scrambled.in2
-rw-r--r--test/030_move/132_F_scrambled.out2
-rw-r--r--test/030_move/133_F_scrambled_2.in2
-rw-r--r--test/030_move/133_F_scrambled_2.out2
-rw-r--r--test/030_move/140_F2_solved.in2
-rw-r--r--test/030_move/140_F2_solved.out2
-rw-r--r--test/030_move/150_F3_solved.in2
-rw-r--r--test/030_move/150_F3_solved.out2
-rw-r--r--test/030_move/160_B_solved.in2
-rw-r--r--test/030_move/160_B_solved.out2
-rw-r--r--test/030_move/170_B2_solved.in2
-rw-r--r--test/030_move/170_B2_solved.out2
-rw-r--r--test/030_move/180_B3_solved.in2
-rw-r--r--test/030_move/180_B3_solved.out2
-rw-r--r--test/030_move/200_scramble_solved.in2
-rw-r--r--test/030_move/200_scramble_solved.out2
-rw-r--r--test/030_move/201_solution_scrambled.in2
-rw-r--r--test/030_move/201_solution_scrambled.out2
-rw-r--r--test/030_move/300_multimove_solved.in2
-rw-r--r--test/030_move/300_multimove_solved.out2
-rw-r--r--test/030_move/301_multimove_scrambled.in2
-rw-r--r--test/030_move/301_multimove_scrambled.out2
-rw-r--r--test/030_move/move_tests.c4
-rw-r--r--test/031_premove/001_U_solved.in2
-rw-r--r--test/031_premove/001_U_solved.out2
-rw-r--r--test/031_premove/002_U_scrambled.in2
-rw-r--r--test/031_premove/002_U_scrambled.out2
-rw-r--r--test/031_premove/003_F3_scrambled.in2
-rw-r--r--test/031_premove/003_F3_scrambled.out2
-rw-r--r--test/031_premove/premove_tests.c4
-rw-r--r--test/040_inverse_cube/00_solved.in2
-rw-r--r--test/040_inverse_cube/00_solved.out2
-rw-r--r--test/040_inverse_cube/01_scrambled.in2
-rw-r--r--test/040_inverse_cube/01_scrambled.out2
-rw-r--r--test/040_inverse_cube/inverse_tests.c4
-rw-r--r--test/050_compose/00_solved_solved.in4
-rw-r--r--test/050_compose/00_solved_solved.out2
-rw-r--r--test/050_compose/01_solved_U.in4
-rw-r--r--test/050_compose/01_solved_U.out2
-rw-r--r--test/050_compose/02_solved_scrambled.in4
-rw-r--r--test/050_compose/02_solved_scrambled.out2
-rw-r--r--test/050_compose/11_U_solved.in4
-rw-r--r--test/050_compose/11_U_solved.out2
-rw-r--r--test/050_compose/12_scrambled_solved.in4
-rw-r--r--test/050_compose/12_scrambled_solved.out2
-rw-r--r--test/050_compose/20_U_U.in4
-rw-r--r--test/050_compose/20_U_U.out2
-rw-r--r--test/050_compose/21_U_Uinverse.in4
-rw-r--r--test/050_compose/21_U_Uinverse.out2
-rw-r--r--test/050_compose/22_F_Finverse.in4
-rw-r--r--test/050_compose/22_F_Finverse.out2
-rw-r--r--test/050_compose/23_F2_F2.in4
-rw-r--r--test/050_compose/23_F2_F2.out2
-rw-r--r--test/050_compose/24_U_F.in4
-rw-r--r--test/050_compose/24_U_F.out2
-rw-r--r--test/050_compose/25_F_R.in4
-rw-r--r--test/050_compose/25_F_R.out2
-rw-r--r--test/050_compose/30_scrambled_inverse.in4
-rw-r--r--test/050_compose/30_scrambled_inverse.out2
-rw-r--r--test/050_compose/31_scrambled_scrambled.in4
-rw-r--r--test/050_compose/31_scrambled_scrambled.out2
-rw-r--r--test/050_compose/compose_tests.c6
-rw-r--r--test/060_transform/000_solved_UFr.in2
-rw-r--r--test/060_transform/000_solved_UFr.out2
-rw-r--r--test/060_transform/001_solved_BLm.in2
-rw-r--r--test/060_transform/001_solved_BLm.out2
-rw-r--r--test/060_transform/100_UFr_U.in2
-rw-r--r--test/060_transform/100_UFr_U.out2
-rw-r--r--test/060_transform/101_UFm_U.in2
-rw-r--r--test/060_transform/101_UFm_U.out2
-rw-r--r--test/060_transform/102_UFr_R.in2
-rw-r--r--test/060_transform/102_UFr_R.out2
-rw-r--r--test/060_transform/103_UFm_R.in2
-rw-r--r--test/060_transform/103_UFm_R.out2
-rw-r--r--test/060_transform/104_UFr_F.in2
-rw-r--r--test/060_transform/104_UFr_F.out2
-rw-r--r--test/060_transform/105_UFm_F.in2
-rw-r--r--test/060_transform/105_UFm_F.out2
-rw-r--r--test/060_transform/106_ULr_U.in2
-rw-r--r--test/060_transform/106_ULr_U.out2
-rw-r--r--test/060_transform/107_ULm_U.in2
-rw-r--r--test/060_transform/107_ULm_U.out2
-rw-r--r--test/060_transform/108_ULr_R.in2
-rw-r--r--test/060_transform/108_ULr_R.out2
-rw-r--r--test/060_transform/109_ULm_R.in2
-rw-r--r--test/060_transform/109_ULm_R.out2
-rw-r--r--test/060_transform/110_ULr_F.in2
-rw-r--r--test/060_transform/110_ULr_F.out2
-rw-r--r--test/060_transform/111_ULm_F.in2
-rw-r--r--test/060_transform/111_ULm_F.out2
-rw-r--r--test/060_transform/112_UBr_U.in2
-rw-r--r--test/060_transform/112_UBr_U.out2
-rw-r--r--test/060_transform/113_UBm_U.in2
-rw-r--r--test/060_transform/113_UBm_U.out2
-rw-r--r--test/060_transform/114_UBr_R.in2
-rw-r--r--test/060_transform/114_UBr_R.out2
-rw-r--r--test/060_transform/115_UBm_R.in2
-rw-r--r--test/060_transform/115_UBm_R.out2
-rw-r--r--test/060_transform/116_UBr_F.in2
-rw-r--r--test/060_transform/116_UBr_F.out2
-rw-r--r--test/060_transform/117_UBm_F.in2
-rw-r--r--test/060_transform/117_UBm_F.out2
-rw-r--r--test/060_transform/118_URr_U.in2
-rw-r--r--test/060_transform/118_URr_U.out2
-rw-r--r--test/060_transform/119_URm_U.in2
-rw-r--r--test/060_transform/119_URm_U.out2
-rw-r--r--test/060_transform/120_URr_R.in2
-rw-r--r--test/060_transform/120_URr_R.out2
-rw-r--r--test/060_transform/121_URm_R.in2
-rw-r--r--test/060_transform/121_URm_R.out2
-rw-r--r--test/060_transform/122_URr_F.in2
-rw-r--r--test/060_transform/122_URr_F.out2
-rw-r--r--test/060_transform/123_URm_F.in2
-rw-r--r--test/060_transform/123_URm_F.out2
-rw-r--r--test/060_transform/124_DFr_U.in2
-rw-r--r--test/060_transform/124_DFr_U.out2
-rw-r--r--test/060_transform/125_DFm_U.in2
-rw-r--r--test/060_transform/125_DFm_U.out2
-rw-r--r--test/060_transform/126_DFr_R.in2
-rw-r--r--test/060_transform/126_DFr_R.out2
-rw-r--r--test/060_transform/127_DFm_R.in2
-rw-r--r--test/060_transform/127_DFm_R.out2
-rw-r--r--test/060_transform/128_DFr_F.in2
-rw-r--r--test/060_transform/128_DFr_F.out2
-rw-r--r--test/060_transform/129_DFm_F.in2
-rw-r--r--test/060_transform/129_DFm_F.out2
-rw-r--r--test/060_transform/130_DLr_U.in2
-rw-r--r--test/060_transform/130_DLr_U.out2
-rw-r--r--test/060_transform/131_DLm_U.in2
-rw-r--r--test/060_transform/131_DLm_U.out2
-rw-r--r--test/060_transform/132_DLr_R.in2
-rw-r--r--test/060_transform/132_DLr_R.out2
-rw-r--r--test/060_transform/133_DLm_R.in2
-rw-r--r--test/060_transform/133_DLm_R.out2
-rw-r--r--test/060_transform/134_DLr_F.in2
-rw-r--r--test/060_transform/134_DLr_F.out2
-rw-r--r--test/060_transform/135_DLm_F.in2
-rw-r--r--test/060_transform/135_DLm_F.out2
-rw-r--r--test/060_transform/136_DBr_U.in2
-rw-r--r--test/060_transform/136_DBr_U.out2
-rw-r--r--test/060_transform/137_DBm_U.in2
-rw-r--r--test/060_transform/137_DBm_U.out2
-rw-r--r--test/060_transform/138_DBr_R.in2
-rw-r--r--test/060_transform/138_DBr_R.out2
-rw-r--r--test/060_transform/139_DBm_R.in2
-rw-r--r--test/060_transform/139_DBm_R.out2
-rw-r--r--test/060_transform/140_DBr_F.in2
-rw-r--r--test/060_transform/140_DBr_F.out2
-rw-r--r--test/060_transform/141_DBm_F.in2
-rw-r--r--test/060_transform/141_DBm_F.out2
-rw-r--r--test/060_transform/142_DRr_U.in2
-rw-r--r--test/060_transform/142_DRr_U.out2
-rw-r--r--test/060_transform/143_DRm_U.in2
-rw-r--r--test/060_transform/143_DRm_U.out2
-rw-r--r--test/060_transform/144_DRr_R.in2
-rw-r--r--test/060_transform/144_DRr_R.out2
-rw-r--r--test/060_transform/145_DRm_R.in2
-rw-r--r--test/060_transform/145_DRm_R.out2
-rw-r--r--test/060_transform/146_DRr_F.in2
-rw-r--r--test/060_transform/146_DRr_F.out2
-rw-r--r--test/060_transform/147_DRm_F.in2
-rw-r--r--test/060_transform/147_DRm_F.out2
-rw-r--r--test/060_transform/148_RUr_U.in2
-rw-r--r--test/060_transform/148_RUr_U.out2
-rw-r--r--test/060_transform/149_RUm_U.in2
-rw-r--r--test/060_transform/149_RUm_U.out2
-rw-r--r--test/060_transform/150_RUr_R.in2
-rw-r--r--test/060_transform/150_RUr_R.out2
-rw-r--r--test/060_transform/151_RUm_R.in2
-rw-r--r--test/060_transform/151_RUm_R.out2
-rw-r--r--test/060_transform/152_RUr_F.in2
-rw-r--r--test/060_transform/152_RUr_F.out2
-rw-r--r--test/060_transform/153_RUm_F.in2
-rw-r--r--test/060_transform/153_RUm_F.out2
-rw-r--r--test/060_transform/154_RFr_U.in2
-rw-r--r--test/060_transform/154_RFr_U.out2
-rw-r--r--test/060_transform/155_RFm_U.in2
-rw-r--r--test/060_transform/155_RFm_U.out2
-rw-r--r--test/060_transform/156_RFr_R.in2
-rw-r--r--test/060_transform/156_RFr_R.out2
-rw-r--r--test/060_transform/157_RFm_R.in2
-rw-r--r--test/060_transform/157_RFm_R.out2
-rw-r--r--test/060_transform/158_RFr_F.in2
-rw-r--r--test/060_transform/158_RFr_F.out2
-rw-r--r--test/060_transform/159_RFm_F.in2
-rw-r--r--test/060_transform/159_RFm_F.out2
-rw-r--r--test/060_transform/160_RDr_U.in2
-rw-r--r--test/060_transform/160_RDr_U.out2
-rw-r--r--test/060_transform/161_RDm_U.in2
-rw-r--r--test/060_transform/161_RDm_U.out2
-rw-r--r--test/060_transform/162_RDr_R.in2
-rw-r--r--test/060_transform/162_RDr_R.out2
-rw-r--r--test/060_transform/163_RDm_R.in2
-rw-r--r--test/060_transform/163_RDm_R.out2
-rw-r--r--test/060_transform/164_RDr_F.in2
-rw-r--r--test/060_transform/164_RDr_F.out2
-rw-r--r--test/060_transform/165_RDm_F.in2
-rw-r--r--test/060_transform/165_RDm_F.out2
-rw-r--r--test/060_transform/166_RBr_U.in2
-rw-r--r--test/060_transform/166_RBr_U.out2
-rw-r--r--test/060_transform/167_RBm_U.in2
-rw-r--r--test/060_transform/167_RBm_U.out2
-rw-r--r--test/060_transform/168_RBr_R.in2
-rw-r--r--test/060_transform/168_RBr_R.out2
-rw-r--r--test/060_transform/169_RBm_R.in2
-rw-r--r--test/060_transform/169_RBm_R.out2
-rw-r--r--test/060_transform/170_RBr_F.in2
-rw-r--r--test/060_transform/170_RBr_F.out2
-rw-r--r--test/060_transform/171_RBm_F.in2
-rw-r--r--test/060_transform/171_RBm_F.out2
-rw-r--r--test/060_transform/172_LUr_U.in2
-rw-r--r--test/060_transform/172_LUr_U.out2
-rw-r--r--test/060_transform/173_LUm_U.in2
-rw-r--r--test/060_transform/173_LUm_U.out2
-rw-r--r--test/060_transform/174_LUr_R.in2
-rw-r--r--test/060_transform/174_LUr_R.out2
-rw-r--r--test/060_transform/175_LUm_R.in2
-rw-r--r--test/060_transform/175_LUm_R.out2
-rw-r--r--test/060_transform/176_LUr_F.in2
-rw-r--r--test/060_transform/176_LUr_F.out2
-rw-r--r--test/060_transform/177_LUm_F.in2
-rw-r--r--test/060_transform/177_LUm_F.out2
-rw-r--r--test/060_transform/178_LFr_U.in2
-rw-r--r--test/060_transform/178_LFr_U.out2
-rw-r--r--test/060_transform/179_LFm_U.in2
-rw-r--r--test/060_transform/179_LFm_U.out2
-rw-r--r--test/060_transform/180_LFr_R.in2
-rw-r--r--test/060_transform/180_LFr_R.out2
-rw-r--r--test/060_transform/181_LFm_R.in2
-rw-r--r--test/060_transform/181_LFm_R.out2
-rw-r--r--test/060_transform/182_LFr_F.in2
-rw-r--r--test/060_transform/182_LFr_F.out2
-rw-r--r--test/060_transform/183_LFm_F.in2
-rw-r--r--test/060_transform/183_LFm_F.out2
-rw-r--r--test/060_transform/184_LDr_U.in2
-rw-r--r--test/060_transform/184_LDr_U.out2
-rw-r--r--test/060_transform/185_LDm_U.in2
-rw-r--r--test/060_transform/185_LDm_U.out2
-rw-r--r--test/060_transform/186_LDr_R.in2
-rw-r--r--test/060_transform/186_LDr_R.out2
-rw-r--r--test/060_transform/187_LDm_R.in2
-rw-r--r--test/060_transform/187_LDm_R.out2
-rw-r--r--test/060_transform/188_LDr_F.in2
-rw-r--r--test/060_transform/188_LDr_F.out2
-rw-r--r--test/060_transform/189_LDm_F.in2
-rw-r--r--test/060_transform/189_LDm_F.out2
-rw-r--r--test/060_transform/190_LBr_U.in2
-rw-r--r--test/060_transform/190_LBr_U.out2
-rw-r--r--test/060_transform/191_LBm_U.in2
-rw-r--r--test/060_transform/191_LBm_U.out2
-rw-r--r--test/060_transform/192_LBr_R.in2
-rw-r--r--test/060_transform/192_LBr_R.out2
-rw-r--r--test/060_transform/193_LBm_R.in2
-rw-r--r--test/060_transform/193_LBm_R.out2
-rw-r--r--test/060_transform/194_LBr_F.in2
-rw-r--r--test/060_transform/194_LBr_F.out2
-rw-r--r--test/060_transform/195_LBm_F.in2
-rw-r--r--test/060_transform/195_LBm_F.out2
-rw-r--r--test/060_transform/196_FUr_U.in2
-rw-r--r--test/060_transform/196_FUr_U.out2
-rw-r--r--test/060_transform/197_FUm_U.in2
-rw-r--r--test/060_transform/197_FUm_U.out2
-rw-r--r--test/060_transform/198_FUr_R.in2
-rw-r--r--test/060_transform/198_FUr_R.out2
-rw-r--r--test/060_transform/199_FUm_R.in2
-rw-r--r--test/060_transform/199_FUm_R.out2
-rw-r--r--test/060_transform/200_FUr_F.in2
-rw-r--r--test/060_transform/200_FUr_F.out2
-rw-r--r--test/060_transform/201_FUm_F.in2
-rw-r--r--test/060_transform/201_FUm_F.out2
-rw-r--r--test/060_transform/202_FRr_U.in2
-rw-r--r--test/060_transform/202_FRr_U.out2
-rw-r--r--test/060_transform/203_FRm_U.in2
-rw-r--r--test/060_transform/203_FRm_U.out2
-rw-r--r--test/060_transform/204_FRr_R.in2
-rw-r--r--test/060_transform/204_FRr_R.out2
-rw-r--r--test/060_transform/205_FRm_R.in2
-rw-r--r--test/060_transform/205_FRm_R.out2
-rw-r--r--test/060_transform/206_FRr_F.in2
-rw-r--r--test/060_transform/206_FRr_F.out2
-rw-r--r--test/060_transform/207_FRm_F.in2
-rw-r--r--test/060_transform/207_FRm_F.out2
-rw-r--r--test/060_transform/208_FDr_U.in2
-rw-r--r--test/060_transform/208_FDr_U.out2
-rw-r--r--test/060_transform/209_FDm_U.in2
-rw-r--r--test/060_transform/209_FDm_U.out2
-rw-r--r--test/060_transform/210_FDr_R.in2
-rw-r--r--test/060_transform/210_FDr_R.out2
-rw-r--r--test/060_transform/211_FDm_R.in2
-rw-r--r--test/060_transform/211_FDm_R.out2
-rw-r--r--test/060_transform/212_FDr_F.in2
-rw-r--r--test/060_transform/212_FDr_F.out2
-rw-r--r--test/060_transform/213_FDm_F.in2
-rw-r--r--test/060_transform/213_FDm_F.out2
-rw-r--r--test/060_transform/214_FLr_U.in2
-rw-r--r--test/060_transform/214_FLr_U.out2
-rw-r--r--test/060_transform/215_FLm_U.in2
-rw-r--r--test/060_transform/215_FLm_U.out2
-rw-r--r--test/060_transform/216_FLr_R.in2
-rw-r--r--test/060_transform/216_FLr_R.out2
-rw-r--r--test/060_transform/217_FLm_R.in2
-rw-r--r--test/060_transform/217_FLm_R.out2
-rw-r--r--test/060_transform/218_FLr_F.in2
-rw-r--r--test/060_transform/218_FLr_F.out2
-rw-r--r--test/060_transform/219_FLm_F.in2
-rw-r--r--test/060_transform/219_FLm_F.out2
-rw-r--r--test/060_transform/220_BUr_U.in2
-rw-r--r--test/060_transform/220_BUr_U.out2
-rw-r--r--test/060_transform/221_BUm_U.in2
-rw-r--r--test/060_transform/221_BUm_U.out2
-rw-r--r--test/060_transform/222_BUr_R.in2
-rw-r--r--test/060_transform/222_BUr_R.out2
-rw-r--r--test/060_transform/223_BUm_R.in2
-rw-r--r--test/060_transform/223_BUm_R.out2
-rw-r--r--test/060_transform/224_BUr_F.in2
-rw-r--r--test/060_transform/224_BUr_F.out2
-rw-r--r--test/060_transform/225_BUm_F.in2
-rw-r--r--test/060_transform/225_BUm_F.out2
-rw-r--r--test/060_transform/226_BRr_U.in2
-rw-r--r--test/060_transform/226_BRr_U.out2
-rw-r--r--test/060_transform/227_BRm_U.in2
-rw-r--r--test/060_transform/227_BRm_U.out2
-rw-r--r--test/060_transform/228_BRr_R.in2
-rw-r--r--test/060_transform/228_BRr_R.out2
-rw-r--r--test/060_transform/229_BRm_R.in2
-rw-r--r--test/060_transform/229_BRm_R.out2
-rw-r--r--test/060_transform/230_BRr_F.in2
-rw-r--r--test/060_transform/230_BRr_F.out2
-rw-r--r--test/060_transform/231_BRm_F.in2
-rw-r--r--test/060_transform/231_BRm_F.out2
-rw-r--r--test/060_transform/232_BDr_U.in2
-rw-r--r--test/060_transform/232_BDr_U.out2
-rw-r--r--test/060_transform/233_BDm_U.in2
-rw-r--r--test/060_transform/233_BDm_U.out2
-rw-r--r--test/060_transform/234_BDr_R.in2
-rw-r--r--test/060_transform/234_BDr_R.out2
-rw-r--r--test/060_transform/235_BDm_R.in2
-rw-r--r--test/060_transform/235_BDm_R.out2
-rw-r--r--test/060_transform/236_BDr_F.in2
-rw-r--r--test/060_transform/236_BDr_F.out2
-rw-r--r--test/060_transform/237_BDm_F.in2
-rw-r--r--test/060_transform/237_BDm_F.out2
-rw-r--r--test/060_transform/238_BLr_U.in2
-rw-r--r--test/060_transform/238_BLr_U.out2
-rw-r--r--test/060_transform/239_BLm_U.in2
-rw-r--r--test/060_transform/239_BLm_U.out2
-rw-r--r--test/060_transform/240_BLr_R.in2
-rw-r--r--test/060_transform/240_BLr_R.out2
-rw-r--r--test/060_transform/241_BLm_R.in2
-rw-r--r--test/060_transform/241_BLm_R.out2
-rw-r--r--test/060_transform/242_BLr_F.in2
-rw-r--r--test/060_transform/242_BLr_F.out2
-rw-r--r--test/060_transform/243_BLm_F.in2
-rw-r--r--test/060_transform/243_BLm_F.out2
-rw-r--r--test/060_transform/transform_tests.c4
-rw-r--r--test/062_transform_move/100_UFr_U.out2
-rw-r--r--test/062_transform_move/101_UFm_U.out2
-rw-r--r--test/062_transform_move/102_UFr_R.out2
-rw-r--r--test/062_transform_move/103_UFm_R.out2
-rw-r--r--test/062_transform_move/104_UFr_F.out2
-rw-r--r--test/062_transform_move/105_UFm_F.out2
-rw-r--r--test/062_transform_move/106_ULr_U.out2
-rw-r--r--test/062_transform_move/107_ULm_U.out2
-rw-r--r--test/062_transform_move/108_ULr_R.out2
-rw-r--r--test/062_transform_move/109_ULm_R.out2
-rw-r--r--test/062_transform_move/110_ULr_F.out2
-rw-r--r--test/062_transform_move/111_ULm_F.out2
-rw-r--r--test/062_transform_move/112_UBr_U.out2
-rw-r--r--test/062_transform_move/113_UBm_U.out2
-rw-r--r--test/062_transform_move/114_UBr_R.out2
-rw-r--r--test/062_transform_move/115_UBm_R.out2
-rw-r--r--test/062_transform_move/116_UBr_F.out2
-rw-r--r--test/062_transform_move/117_UBm_F.out2
-rw-r--r--test/062_transform_move/118_URr_U.out2
-rw-r--r--test/062_transform_move/119_URm_U.out2
-rw-r--r--test/062_transform_move/120_URr_R.out2
-rw-r--r--test/062_transform_move/121_URm_R.out2
-rw-r--r--test/062_transform_move/122_URr_F.out2
-rw-r--r--test/062_transform_move/123_URm_F.out2
-rw-r--r--test/062_transform_move/124_DFr_U.out2
-rw-r--r--test/062_transform_move/125_DFm_U.out2
-rw-r--r--test/062_transform_move/126_DFr_R.out2
-rw-r--r--test/062_transform_move/127_DFm_R.out2
-rw-r--r--test/062_transform_move/128_DFr_F.out2
-rw-r--r--test/062_transform_move/129_DFm_F.out2
-rw-r--r--test/062_transform_move/130_DLr_U.out2
-rw-r--r--test/062_transform_move/131_DLm_U.out2
-rw-r--r--test/062_transform_move/132_DLr_R.out2
-rw-r--r--test/062_transform_move/133_DLm_R.out2
-rw-r--r--test/062_transform_move/134_DLr_F.out2
-rw-r--r--test/062_transform_move/135_DLm_F.out2
-rw-r--r--test/062_transform_move/136_DBr_U.out2
-rw-r--r--test/062_transform_move/137_DBm_U.out2
-rw-r--r--test/062_transform_move/138_DBr_R.out2
-rw-r--r--test/062_transform_move/139_DBm_R.out2
-rw-r--r--test/062_transform_move/140_DBr_F.out2
-rw-r--r--test/062_transform_move/141_DBm_F.out2
-rw-r--r--test/062_transform_move/142_DRr_U.out2
-rw-r--r--test/062_transform_move/143_DRm_U.out2
-rw-r--r--test/062_transform_move/144_DRr_R.out2
-rw-r--r--test/062_transform_move/145_DRm_R.out2
-rw-r--r--test/062_transform_move/146_DRr_F.out2
-rw-r--r--test/062_transform_move/147_DRm_F.out2
-rw-r--r--test/062_transform_move/148_RUr_U.out2
-rw-r--r--test/062_transform_move/149_RUm_U.out2
-rw-r--r--test/062_transform_move/150_RUr_R.out2
-rw-r--r--test/062_transform_move/151_RUm_R.out2
-rw-r--r--test/062_transform_move/152_RUr_F.out2
-rw-r--r--test/062_transform_move/153_RUm_F.out2
-rw-r--r--test/062_transform_move/154_RFr_U.out2
-rw-r--r--test/062_transform_move/155_RFm_U.out2
-rw-r--r--test/062_transform_move/156_RFr_R.out2
-rw-r--r--test/062_transform_move/157_RFm_R.out2
-rw-r--r--test/062_transform_move/158_RFr_F.out2
-rw-r--r--test/062_transform_move/159_RFm_F.out2
-rw-r--r--test/062_transform_move/160_RDr_U.out2
-rw-r--r--test/062_transform_move/161_RDm_U.out2
-rw-r--r--test/062_transform_move/162_RDr_R.out2
-rw-r--r--test/062_transform_move/163_RDm_R.out2
-rw-r--r--test/062_transform_move/164_RDr_F.out2
-rw-r--r--test/062_transform_move/165_RDm_F.out2
-rw-r--r--test/062_transform_move/166_RBr_U.out2
-rw-r--r--test/062_transform_move/167_RBm_U.out2
-rw-r--r--test/062_transform_move/168_RBr_R.out2
-rw-r--r--test/062_transform_move/169_RBm_R.out2
-rw-r--r--test/062_transform_move/170_RBr_F.out2
-rw-r--r--test/062_transform_move/171_RBm_F.out2
-rw-r--r--test/062_transform_move/172_LUr_U.out2
-rw-r--r--test/062_transform_move/173_LUm_U.out2
-rw-r--r--test/062_transform_move/174_LUr_R.out2
-rw-r--r--test/062_transform_move/175_LUm_R.out2
-rw-r--r--test/062_transform_move/176_LUr_F.out2
-rw-r--r--test/062_transform_move/177_LUm_F.out2
-rw-r--r--test/062_transform_move/178_LFr_U.out2
-rw-r--r--test/062_transform_move/179_LFm_U.out2
-rw-r--r--test/062_transform_move/180_LFr_R.out2
-rw-r--r--test/062_transform_move/181_LFm_R.out2
-rw-r--r--test/062_transform_move/182_LFr_F.out2
-rw-r--r--test/062_transform_move/183_LFm_F.out2
-rw-r--r--test/062_transform_move/184_LDr_U.out2
-rw-r--r--test/062_transform_move/185_LDm_U.out2
-rw-r--r--test/062_transform_move/186_LDr_R.out2
-rw-r--r--test/062_transform_move/187_LDm_R.out2
-rw-r--r--test/062_transform_move/188_LDr_F.out2
-rw-r--r--test/062_transform_move/189_LDm_F.out2
-rw-r--r--test/062_transform_move/190_LBr_U.out2
-rw-r--r--test/062_transform_move/191_LBm_U.out2
-rw-r--r--test/062_transform_move/192_LBr_R.out2
-rw-r--r--test/062_transform_move/193_LBm_R.out2
-rw-r--r--test/062_transform_move/194_LBr_F.out2
-rw-r--r--test/062_transform_move/195_LBm_F.out2
-rw-r--r--test/062_transform_move/196_FUr_U.out2
-rw-r--r--test/062_transform_move/197_FUm_U.out2
-rw-r--r--test/062_transform_move/198_FUr_R.out2
-rw-r--r--test/062_transform_move/199_FUm_R.out2
-rw-r--r--test/062_transform_move/200_FUr_F.out2
-rw-r--r--test/062_transform_move/201_FUm_F.out2
-rw-r--r--test/062_transform_move/202_FRr_U.out2
-rw-r--r--test/062_transform_move/203_FRm_U.out2
-rw-r--r--test/062_transform_move/204_FRr_R.out2
-rw-r--r--test/062_transform_move/205_FRm_R.out2
-rw-r--r--test/062_transform_move/206_FRr_F.out2
-rw-r--r--test/062_transform_move/207_FRm_F.out2
-rw-r--r--test/062_transform_move/208_FDr_U.out2
-rw-r--r--test/062_transform_move/209_FDm_U.out2
-rw-r--r--test/062_transform_move/210_FDr_R.out2
-rw-r--r--test/062_transform_move/211_FDm_R.out2
-rw-r--r--test/062_transform_move/212_FDr_F.out2
-rw-r--r--test/062_transform_move/213_FDm_F.out2
-rw-r--r--test/062_transform_move/214_FLr_U.out2
-rw-r--r--test/062_transform_move/215_FLm_U.out2
-rw-r--r--test/062_transform_move/216_FLr_R.out2
-rw-r--r--test/062_transform_move/217_FLm_R.out2
-rw-r--r--test/062_transform_move/218_FLr_F.out2
-rw-r--r--test/062_transform_move/219_FLm_F.out2
-rw-r--r--test/062_transform_move/220_BUr_U.out2
-rw-r--r--test/062_transform_move/221_BUm_U.out2
-rw-r--r--test/062_transform_move/222_BUr_R.out2
-rw-r--r--test/062_transform_move/223_BUm_R.out2
-rw-r--r--test/062_transform_move/224_BUr_F.out2
-rw-r--r--test/062_transform_move/225_BUm_F.out2
-rw-r--r--test/062_transform_move/226_BRr_U.out2
-rw-r--r--test/062_transform_move/227_BRm_U.out2
-rw-r--r--test/062_transform_move/228_BRr_R.out2
-rw-r--r--test/062_transform_move/229_BRm_R.out2
-rw-r--r--test/062_transform_move/230_BRr_F.out2
-rw-r--r--test/062_transform_move/231_BRm_F.out2
-rw-r--r--test/062_transform_move/232_BDr_U.out2
-rw-r--r--test/062_transform_move/233_BDm_U.out2
-rw-r--r--test/062_transform_move/234_BDr_R.out2
-rw-r--r--test/062_transform_move/235_BDm_R.out2
-rw-r--r--test/062_transform_move/236_BDr_F.out2
-rw-r--r--test/062_transform_move/237_BDm_F.out2
-rw-r--r--test/062_transform_move/238_BLr_U.out2
-rw-r--r--test/062_transform_move/239_BLm_U.out2
-rw-r--r--test/062_transform_move/240_BLr_R.out2
-rw-r--r--test/062_transform_move/241_BLm_R.out2
-rw-r--r--test/062_transform_move/242_BLr_F.out2
-rw-r--r--test/062_transform_move/243_BLm_F.out2
-rw-r--r--test/062_transform_move/244_modifier_LBr_R2.out2
-rw-r--r--test/062_transform_move/245_modifier_URr_F3.out2
-rw-r--r--test/062_transform_move/246_modifier_RBm_U3.out2
-rw-r--r--test/062_transform_move/247_axis_UBr_L.out2
-rw-r--r--test/062_transform_move/248_axis_BDm_D3.out2
-rw-r--r--test/062_transform_move/249_axis_DLr_B2.out2
-rw-r--r--test/062_transform_move/transform_move_tests.c2
-rw-r--r--test/063_symmetry_mask/00_solved.in2
-rw-r--r--test/063_symmetry_mask/01_U.in2
-rw-r--r--test/063_symmetry_mask/02_B2.in2
-rw-r--r--test/063_symmetry_mask/03_superflip.in2
-rw-r--r--test/063_symmetry_mask/04_scrambled.in2
-rw-r--r--test/063_symmetry_mask/symmetry_mask_tests.c2
-rw-r--r--test/071_coord_eo/00_solved.in2
-rw-r--r--test/071_coord_eo/01_U.in2
-rw-r--r--test/071_coord_eo/02_U2.in2
-rw-r--r--test/071_coord_eo/03_U3.in2
-rw-r--r--test/071_coord_eo/04_D.in2
-rw-r--r--test/071_coord_eo/07_R.in2
-rw-r--r--test/071_coord_eo/08_R2.in2
-rw-r--r--test/071_coord_eo/10_L.in2
-rw-r--r--test/071_coord_eo/13_F.in2
-rw-r--r--test/071_coord_eo/14_F2.in2
-rw-r--r--test/071_coord_eo/15_F3.in2
-rw-r--r--test/071_coord_eo/16_B.in2
-rw-r--r--test/071_coord_eo/17_B2.in2
-rw-r--r--test/071_coord_eo/18_B3.in2
-rw-r--r--test/071_coord_eo/20_scrambled.in2
-rw-r--r--test/071_coord_eo/coord_eo_tests.c2
-rw-r--r--test/072_coord_co/00_solved.in2
-rw-r--r--test/072_coord_co/01_U.in2
-rw-r--r--test/072_coord_co/02_U2.in2
-rw-r--r--test/072_coord_co/03_U3.in2
-rw-r--r--test/072_coord_co/04_D.in2
-rw-r--r--test/072_coord_co/07_R.in2
-rw-r--r--test/072_coord_co/08_R2.in2
-rw-r--r--test/072_coord_co/10_L.in2
-rw-r--r--test/072_coord_co/13_F.in2
-rw-r--r--test/072_coord_co/14_F2.in2
-rw-r--r--test/072_coord_co/16_B.in2
-rw-r--r--test/072_coord_co/17_B2.in2
-rw-r--r--test/072_coord_co/20_scrambled.in2
-rw-r--r--test/072_coord_co/coord_co_tests.c2
-rw-r--r--test/073_coord_csep/00_solved.in2
-rw-r--r--test/073_coord_csep/01_U.in2
-rw-r--r--test/073_coord_csep/02_U2.in2
-rw-r--r--test/073_coord_csep/03_U3.in2
-rw-r--r--test/073_coord_csep/04_D.in2
-rw-r--r--test/073_coord_csep/07_R.in2
-rw-r--r--test/073_coord_csep/08_R2.in2
-rw-r--r--test/073_coord_csep/13_F.in2
-rw-r--r--test/073_coord_csep/20_scrambled.in2
-rw-r--r--test/073_coord_csep/coord_csep_tests.c2
-rw-r--r--test/074_coord_esep/00_solved.in2
-rw-r--r--test/074_coord_esep/01_U.in2
-rw-r--r--test/074_coord_esep/02_U2.in2
-rw-r--r--test/074_coord_esep/20_scrambled.in2
-rw-r--r--test/074_coord_esep/21_swapaxis_FB.in2
-rw-r--r--test/074_coord_esep/22_swapaxis_RL.in2
-rw-r--r--test/074_coord_esep/23_swapaxis_UD.in2
-rw-r--r--test/074_coord_esep/coord_esep_tests.c2
-rw-r--r--test/075_set_eo/00_solved_0.in2
-rw-r--r--test/075_set_eo/00_solved_0.out2
-rw-r--r--test/075_set_eo/01_solved_1.in2
-rw-r--r--test/075_set_eo/01_solved_1.out2
-rw-r--r--test/075_set_eo/02_solved_other.in2
-rw-r--r--test/075_set_eo/02_solved_other.out2
-rw-r--r--test/075_set_eo/03_solved_firstlast.in2
-rw-r--r--test/075_set_eo/03_solved_firstlast.out2
-rw-r--r--test/075_set_eo/10_scrambled_0.in2
-rw-r--r--test/075_set_eo/10_scrambled_0.out2
-rw-r--r--test/075_set_eo/11_scrambled_1.in2
-rw-r--r--test/075_set_eo/11_scrambled_1.out2
-rw-r--r--test/075_set_eo/set_eo_tests.c4
-rw-r--r--test/076_copy_corners/00_solved_scrambled.in4
-rw-r--r--test/076_copy_corners/00_solved_scrambled.out2
-rw-r--r--test/076_copy_corners/copy_corners_tests.c6
-rw-r--r--test/077_copy_edges/00_solved_scrambled.in4
-rw-r--r--test/077_copy_edges/00_solved_scrambled.out2
-rw-r--r--test/077_copy_edges/copy_edges_tests.c6
-rw-r--r--test/078_invcoord_esep/00_solved.in2
-rw-r--r--test/078_invcoord_esep/01_U.in2
-rw-r--r--test/078_invcoord_esep/02_U2.in2
-rw-r--r--test/078_invcoord_esep/20_scrambled.in2
-rw-r--r--test/078_invcoord_esep/21_swapaxis_FB.in2
-rw-r--r--test/078_invcoord_esep/22_swapaxis_RL.in2
-rw-r--r--test/078_invcoord_esep/23_swapaxis_UD.in2
-rw-r--r--test/078_invcoord_esep/invcoord_esep_tests.c2
-rw-r--r--test/081_getcube/00_solved_0.out2
-rw-r--r--test/081_getcube/02_scrambled.out2
-rw-r--r--test/081_getcube/getcube_tests.c2
-rw-r--r--test/101_cocsep_transform_invariant/00_solved.in2
-rw-r--r--test/101_cocsep_transform_invariant/01_U.in2
-rw-r--r--test/101_cocsep_transform_invariant/02_scrambled.in2
-rw-r--r--test/101_cocsep_transform_invariant/cocsep_transform_invariant.c2
-rw-r--r--test/102_cocsep_selfsim/00_all.in4
-rw-r--r--test/102_cocsep_selfsim/cocsep_selfsim_tests.c2
-rw-r--r--test/110_coord_invcoord_h48/00_all.in16
-rw-r--r--test/110_coord_invcoord_h48/coord_invcoord_h48_tests.c2
-rw-r--r--test/121_coorddata_dr/coorddata_dr.c2
-rw-r--r--test/122_coorddata_dreo/coorddata_dreo.c2
-rw-r--r--test/test.h4
-rw-r--r--tools/300_solve_small/solve_small.c2
-rw-r--r--tools/301_solve_file/solve_file.c2
-rw-r--r--tools/302_solve_multisol/solve_multisol.c2
-rw-r--r--tools/400_solvetest/solve_test.c2
-rw-r--r--utils/convert.c (renamed from src/core/io_formats.h)6
-rw-r--r--utils/cubes/TRANSFORMATIONS.txt8
-rw-r--r--utils/cubes/move_00_U.txt2
-rw-r--r--utils/cubes/move_01_U2.txt2
-rw-r--r--utils/cubes/move_02_U3.txt2
-rw-r--r--utils/cubes/move_03_D.txt2
-rw-r--r--utils/cubes/move_04_D2.txt2
-rw-r--r--utils/cubes/move_05_D3.txt2
-rw-r--r--utils/cubes/move_06_R.txt2
-rw-r--r--utils/cubes/move_07_R2.txt2
-rw-r--r--utils/cubes/move_08_R3.txt2
-rw-r--r--utils/cubes/move_09_L.txt2
-rw-r--r--utils/cubes/move_10_L2.txt2
-rw-r--r--utils/cubes/move_11_L3.txt2
-rw-r--r--utils/cubes/move_12_F.txt2
-rw-r--r--utils/cubes/move_13_F2.txt2
-rw-r--r--utils/cubes/move_14_F3.txt2
-rw-r--r--utils/cubes/move_15_B.txt2
-rw-r--r--utils/cubes/move_16_B2.txt2
-rw-r--r--utils/cubes/move_17_B3.txt2
-rw-r--r--utils/cubes/solved.txt2
-rw-r--r--utils/cubes/transform_00_UFr.txt2
-rw-r--r--utils/cubes/transform_01_ULr.txt2
-rw-r--r--utils/cubes/transform_02_UBr.txt2
-rw-r--r--utils/cubes/transform_03_URr.txt2
-rw-r--r--utils/cubes/transform_04_DFr.txt2
-rw-r--r--utils/cubes/transform_05_DLr.txt2
-rw-r--r--utils/cubes/transform_06_DBr.txt2
-rw-r--r--utils/cubes/transform_07_DRr.txt2
-rw-r--r--utils/cubes/transform_08_RUr.txt2
-rw-r--r--utils/cubes/transform_09_RFr.txt2
-rw-r--r--utils/cubes/transform_10_RDr.txt2
-rw-r--r--utils/cubes/transform_11_RBr.txt2
-rw-r--r--utils/cubes/transform_12_LUr.txt2
-rw-r--r--utils/cubes/transform_13_LFr.txt2
-rw-r--r--utils/cubes/transform_14_LDr.txt2
-rw-r--r--utils/cubes/transform_15_LBr.txt2
-rw-r--r--utils/cubes/transform_16_FUr.txt2
-rw-r--r--utils/cubes/transform_17_FRr.txt2
-rw-r--r--utils/cubes/transform_18_FDr.txt2
-rw-r--r--utils/cubes/transform_19_FLr.txt2
-rw-r--r--utils/cubes/transform_20_BUr.txt2
-rw-r--r--utils/cubes/transform_21_BRr.txt2
-rw-r--r--utils/cubes/transform_22_BDr.txt2
-rw-r--r--utils/cubes/transform_23_BLr.txt2
-rw-r--r--utils/cubes/transform_24_UFm.txt2
-rw-r--r--utils/cubes/transform_25_ULm.txt2
-rw-r--r--utils/cubes/transform_26_UBm.txt2
-rw-r--r--utils/cubes/transform_27_URm.txt2
-rw-r--r--utils/cubes/transform_28_DFm.txt2
-rw-r--r--utils/cubes/transform_29_DLm.txt2
-rw-r--r--utils/cubes/transform_30_DBm.txt2
-rw-r--r--utils/cubes/transform_31_DRm.txt2
-rw-r--r--utils/cubes/transform_32_RUm.txt2
-rw-r--r--utils/cubes/transform_33_RFm.txt2
-rw-r--r--utils/cubes/transform_34_RDm.txt2
-rw-r--r--utils/cubes/transform_35_RBm.txt2
-rw-r--r--utils/cubes/transform_36_LUm.txt2
-rw-r--r--utils/cubes/transform_37_LFm.txt2
-rw-r--r--utils/cubes/transform_38_LDm.txt2
-rw-r--r--utils/cubes/transform_39_LBm.txt2
-rw-r--r--utils/cubes/transform_40_FUm.txt2
-rw-r--r--utils/cubes/transform_41_FRm.txt2
-rw-r--r--utils/cubes/transform_42_FDm.txt2
-rw-r--r--utils/cubes/transform_43_FLm.txt2
-rw-r--r--utils/cubes/transform_44_BUm.txt2
-rw-r--r--utils/cubes/transform_45_BRm.txt2
-rw-r--r--utils/cubes/transform_46_BDm.txt2
-rw-r--r--utils/cubes/transform_47_BLm.txt2
-rw-r--r--utils/generated_trans_tests/100_UFr_U.in2
-rw-r--r--utils/generated_trans_tests/100_UFr_U.out2
-rw-r--r--utils/generated_trans_tests/101_UFm_U.in2
-rw-r--r--utils/generated_trans_tests/101_UFm_U.out2
-rw-r--r--utils/generated_trans_tests/102_UFr_R.in2
-rw-r--r--utils/generated_trans_tests/102_UFr_R.out2
-rw-r--r--utils/generated_trans_tests/103_UFm_R.in2
-rw-r--r--utils/generated_trans_tests/103_UFm_R.out2
-rw-r--r--utils/generated_trans_tests/104_UFr_F.in2
-rw-r--r--utils/generated_trans_tests/104_UFr_F.out2
-rw-r--r--utils/generated_trans_tests/105_UFm_F.in2
-rw-r--r--utils/generated_trans_tests/105_UFm_F.out2
-rw-r--r--utils/generated_trans_tests/106_ULr_U.in2
-rw-r--r--utils/generated_trans_tests/106_ULr_U.out2
-rw-r--r--utils/generated_trans_tests/107_ULm_U.in2
-rw-r--r--utils/generated_trans_tests/107_ULm_U.out2
-rw-r--r--utils/generated_trans_tests/108_ULr_R.in2
-rw-r--r--utils/generated_trans_tests/108_ULr_R.out2
-rw-r--r--utils/generated_trans_tests/109_ULm_R.in2
-rw-r--r--utils/generated_trans_tests/109_ULm_R.out2
-rw-r--r--utils/generated_trans_tests/110_ULr_F.in2
-rw-r--r--utils/generated_trans_tests/110_ULr_F.out2
-rw-r--r--utils/generated_trans_tests/111_ULm_F.in2
-rw-r--r--utils/generated_trans_tests/111_ULm_F.out2
-rw-r--r--utils/generated_trans_tests/112_UBr_U.in2
-rw-r--r--utils/generated_trans_tests/112_UBr_U.out2
-rw-r--r--utils/generated_trans_tests/113_UBm_U.in2
-rw-r--r--utils/generated_trans_tests/113_UBm_U.out2
-rw-r--r--utils/generated_trans_tests/114_UBr_R.in2
-rw-r--r--utils/generated_trans_tests/114_UBr_R.out2
-rw-r--r--utils/generated_trans_tests/115_UBm_R.in2
-rw-r--r--utils/generated_trans_tests/115_UBm_R.out2
-rw-r--r--utils/generated_trans_tests/116_UBr_F.in2
-rw-r--r--utils/generated_trans_tests/116_UBr_F.out2
-rw-r--r--utils/generated_trans_tests/117_UBm_F.in2
-rw-r--r--utils/generated_trans_tests/117_UBm_F.out2
-rw-r--r--utils/generated_trans_tests/118_URr_U.in2
-rw-r--r--utils/generated_trans_tests/118_URr_U.out2
-rw-r--r--utils/generated_trans_tests/119_URm_U.in2
-rw-r--r--utils/generated_trans_tests/119_URm_U.out2
-rw-r--r--utils/generated_trans_tests/120_URr_R.in2
-rw-r--r--utils/generated_trans_tests/120_URr_R.out2
-rw-r--r--utils/generated_trans_tests/121_URm_R.in2
-rw-r--r--utils/generated_trans_tests/121_URm_R.out2
-rw-r--r--utils/generated_trans_tests/122_URr_F.in2
-rw-r--r--utils/generated_trans_tests/122_URr_F.out2
-rw-r--r--utils/generated_trans_tests/123_URm_F.in2
-rw-r--r--utils/generated_trans_tests/123_URm_F.out2
-rw-r--r--utils/generated_trans_tests/124_DFr_U.in2
-rw-r--r--utils/generated_trans_tests/124_DFr_U.out2
-rw-r--r--utils/generated_trans_tests/125_DFm_U.in2
-rw-r--r--utils/generated_trans_tests/125_DFm_U.out2
-rw-r--r--utils/generated_trans_tests/126_DFr_R.in2
-rw-r--r--utils/generated_trans_tests/126_DFr_R.out2
-rw-r--r--utils/generated_trans_tests/127_DFm_R.in2
-rw-r--r--utils/generated_trans_tests/127_DFm_R.out2
-rw-r--r--utils/generated_trans_tests/128_DFr_F.in2
-rw-r--r--utils/generated_trans_tests/128_DFr_F.out2
-rw-r--r--utils/generated_trans_tests/129_DFm_F.in2
-rw-r--r--utils/generated_trans_tests/129_DFm_F.out2
-rw-r--r--utils/generated_trans_tests/130_DLr_U.in2
-rw-r--r--utils/generated_trans_tests/130_DLr_U.out2
-rw-r--r--utils/generated_trans_tests/131_DLm_U.in2
-rw-r--r--utils/generated_trans_tests/131_DLm_U.out2
-rw-r--r--utils/generated_trans_tests/132_DLr_R.in2
-rw-r--r--utils/generated_trans_tests/132_DLr_R.out2
-rw-r--r--utils/generated_trans_tests/133_DLm_R.in2
-rw-r--r--utils/generated_trans_tests/133_DLm_R.out2
-rw-r--r--utils/generated_trans_tests/134_DLr_F.in2
-rw-r--r--utils/generated_trans_tests/134_DLr_F.out2
-rw-r--r--utils/generated_trans_tests/135_DLm_F.in2
-rw-r--r--utils/generated_trans_tests/135_DLm_F.out2
-rw-r--r--utils/generated_trans_tests/136_DBr_U.in2
-rw-r--r--utils/generated_trans_tests/136_DBr_U.out2
-rw-r--r--utils/generated_trans_tests/137_DBm_U.in2
-rw-r--r--utils/generated_trans_tests/137_DBm_U.out2
-rw-r--r--utils/generated_trans_tests/138_DBr_R.in2
-rw-r--r--utils/generated_trans_tests/138_DBr_R.out2
-rw-r--r--utils/generated_trans_tests/139_DBm_R.in2
-rw-r--r--utils/generated_trans_tests/139_DBm_R.out2
-rw-r--r--utils/generated_trans_tests/140_DBr_F.in2
-rw-r--r--utils/generated_trans_tests/140_DBr_F.out2
-rw-r--r--utils/generated_trans_tests/141_DBm_F.in2
-rw-r--r--utils/generated_trans_tests/141_DBm_F.out2
-rw-r--r--utils/generated_trans_tests/142_DRr_U.in2
-rw-r--r--utils/generated_trans_tests/142_DRr_U.out2
-rw-r--r--utils/generated_trans_tests/143_DRm_U.in2
-rw-r--r--utils/generated_trans_tests/143_DRm_U.out2
-rw-r--r--utils/generated_trans_tests/144_DRr_R.in2
-rw-r--r--utils/generated_trans_tests/144_DRr_R.out2
-rw-r--r--utils/generated_trans_tests/145_DRm_R.in2
-rw-r--r--utils/generated_trans_tests/145_DRm_R.out2
-rw-r--r--utils/generated_trans_tests/146_DRr_F.in2
-rw-r--r--utils/generated_trans_tests/146_DRr_F.out2
-rw-r--r--utils/generated_trans_tests/147_DRm_F.in2
-rw-r--r--utils/generated_trans_tests/147_DRm_F.out2
-rw-r--r--utils/generated_trans_tests/148_RUr_U.in2
-rw-r--r--utils/generated_trans_tests/148_RUr_U.out2
-rw-r--r--utils/generated_trans_tests/149_RUm_U.in2
-rw-r--r--utils/generated_trans_tests/149_RUm_U.out2
-rw-r--r--utils/generated_trans_tests/150_RUr_R.in2
-rw-r--r--utils/generated_trans_tests/150_RUr_R.out2
-rw-r--r--utils/generated_trans_tests/151_RUm_R.in2
-rw-r--r--utils/generated_trans_tests/151_RUm_R.out2
-rw-r--r--utils/generated_trans_tests/152_RUr_F.in2
-rw-r--r--utils/generated_trans_tests/152_RUr_F.out2
-rw-r--r--utils/generated_trans_tests/153_RUm_F.in2
-rw-r--r--utils/generated_trans_tests/153_RUm_F.out2
-rw-r--r--utils/generated_trans_tests/154_RFr_U.in2
-rw-r--r--utils/generated_trans_tests/154_RFr_U.out2
-rw-r--r--utils/generated_trans_tests/155_RFm_U.in2
-rw-r--r--utils/generated_trans_tests/155_RFm_U.out2
-rw-r--r--utils/generated_trans_tests/156_RFr_R.in2
-rw-r--r--utils/generated_trans_tests/156_RFr_R.out2
-rw-r--r--utils/generated_trans_tests/157_RFm_R.in2
-rw-r--r--utils/generated_trans_tests/157_RFm_R.out2
-rw-r--r--utils/generated_trans_tests/158_RFr_F.in2
-rw-r--r--utils/generated_trans_tests/158_RFr_F.out2
-rw-r--r--utils/generated_trans_tests/159_RFm_F.in2
-rw-r--r--utils/generated_trans_tests/159_RFm_F.out2
-rw-r--r--utils/generated_trans_tests/160_RDr_U.in2
-rw-r--r--utils/generated_trans_tests/160_RDr_U.out2
-rw-r--r--utils/generated_trans_tests/161_RDm_U.in2
-rw-r--r--utils/generated_trans_tests/161_RDm_U.out2
-rw-r--r--utils/generated_trans_tests/162_RDr_R.in2
-rw-r--r--utils/generated_trans_tests/162_RDr_R.out2
-rw-r--r--utils/generated_trans_tests/163_RDm_R.in2
-rw-r--r--utils/generated_trans_tests/163_RDm_R.out2
-rw-r--r--utils/generated_trans_tests/164_RDr_F.in2
-rw-r--r--utils/generated_trans_tests/164_RDr_F.out2
-rw-r--r--utils/generated_trans_tests/165_RDm_F.in2
-rw-r--r--utils/generated_trans_tests/165_RDm_F.out2
-rw-r--r--utils/generated_trans_tests/166_RBr_U.in2
-rw-r--r--utils/generated_trans_tests/166_RBr_U.out2
-rw-r--r--utils/generated_trans_tests/167_RBm_U.in2
-rw-r--r--utils/generated_trans_tests/167_RBm_U.out2
-rw-r--r--utils/generated_trans_tests/168_RBr_R.in2
-rw-r--r--utils/generated_trans_tests/168_RBr_R.out2
-rw-r--r--utils/generated_trans_tests/169_RBm_R.in2
-rw-r--r--utils/generated_trans_tests/169_RBm_R.out2
-rw-r--r--utils/generated_trans_tests/170_RBr_F.in2
-rw-r--r--utils/generated_trans_tests/170_RBr_F.out2
-rw-r--r--utils/generated_trans_tests/171_RBm_F.in2
-rw-r--r--utils/generated_trans_tests/171_RBm_F.out2
-rw-r--r--utils/generated_trans_tests/172_LUr_U.in2
-rw-r--r--utils/generated_trans_tests/172_LUr_U.out2
-rw-r--r--utils/generated_trans_tests/173_LUm_U.in2
-rw-r--r--utils/generated_trans_tests/173_LUm_U.out2
-rw-r--r--utils/generated_trans_tests/174_LUr_R.in2
-rw-r--r--utils/generated_trans_tests/174_LUr_R.out2
-rw-r--r--utils/generated_trans_tests/175_LUm_R.in2
-rw-r--r--utils/generated_trans_tests/175_LUm_R.out2
-rw-r--r--utils/generated_trans_tests/176_LUr_F.in2
-rw-r--r--utils/generated_trans_tests/176_LUr_F.out2
-rw-r--r--utils/generated_trans_tests/177_LUm_F.in2
-rw-r--r--utils/generated_trans_tests/177_LUm_F.out2
-rw-r--r--utils/generated_trans_tests/178_LFr_U.in2
-rw-r--r--utils/generated_trans_tests/178_LFr_U.out2
-rw-r--r--utils/generated_trans_tests/179_LFm_U.in2
-rw-r--r--utils/generated_trans_tests/179_LFm_U.out2
-rw-r--r--utils/generated_trans_tests/180_LFr_R.in2
-rw-r--r--utils/generated_trans_tests/180_LFr_R.out2
-rw-r--r--utils/generated_trans_tests/181_LFm_R.in2
-rw-r--r--utils/generated_trans_tests/181_LFm_R.out2
-rw-r--r--utils/generated_trans_tests/182_LFr_F.in2
-rw-r--r--utils/generated_trans_tests/182_LFr_F.out2
-rw-r--r--utils/generated_trans_tests/183_LFm_F.in2
-rw-r--r--utils/generated_trans_tests/183_LFm_F.out2
-rw-r--r--utils/generated_trans_tests/184_LDr_U.in2
-rw-r--r--utils/generated_trans_tests/184_LDr_U.out2
-rw-r--r--utils/generated_trans_tests/185_LDm_U.in2
-rw-r--r--utils/generated_trans_tests/185_LDm_U.out2
-rw-r--r--utils/generated_trans_tests/186_LDr_R.in2
-rw-r--r--utils/generated_trans_tests/186_LDr_R.out2
-rw-r--r--utils/generated_trans_tests/187_LDm_R.in2
-rw-r--r--utils/generated_trans_tests/187_LDm_R.out2
-rw-r--r--utils/generated_trans_tests/188_LDr_F.in2
-rw-r--r--utils/generated_trans_tests/188_LDr_F.out2
-rw-r--r--utils/generated_trans_tests/189_LDm_F.in2
-rw-r--r--utils/generated_trans_tests/189_LDm_F.out2
-rw-r--r--utils/generated_trans_tests/190_LBr_U.in2
-rw-r--r--utils/generated_trans_tests/190_LBr_U.out2
-rw-r--r--utils/generated_trans_tests/191_LBm_U.in2
-rw-r--r--utils/generated_trans_tests/191_LBm_U.out2
-rw-r--r--utils/generated_trans_tests/192_LBr_R.in2
-rw-r--r--utils/generated_trans_tests/192_LBr_R.out2
-rw-r--r--utils/generated_trans_tests/193_LBm_R.in2
-rw-r--r--utils/generated_trans_tests/193_LBm_R.out2
-rw-r--r--utils/generated_trans_tests/194_LBr_F.in2
-rw-r--r--utils/generated_trans_tests/194_LBr_F.out2
-rw-r--r--utils/generated_trans_tests/195_LBm_F.in2
-rw-r--r--utils/generated_trans_tests/195_LBm_F.out2
-rw-r--r--utils/generated_trans_tests/196_FUr_U.in2
-rw-r--r--utils/generated_trans_tests/196_FUr_U.out2
-rw-r--r--utils/generated_trans_tests/197_FUm_U.in2
-rw-r--r--utils/generated_trans_tests/197_FUm_U.out2
-rw-r--r--utils/generated_trans_tests/198_FUr_R.in2
-rw-r--r--utils/generated_trans_tests/198_FUr_R.out2
-rw-r--r--utils/generated_trans_tests/199_FUm_R.in2
-rw-r--r--utils/generated_trans_tests/199_FUm_R.out2
-rw-r--r--utils/generated_trans_tests/200_FUr_F.in2
-rw-r--r--utils/generated_trans_tests/200_FUr_F.out2
-rw-r--r--utils/generated_trans_tests/201_FUm_F.in2
-rw-r--r--utils/generated_trans_tests/201_FUm_F.out2
-rw-r--r--utils/generated_trans_tests/202_FRr_U.in2
-rw-r--r--utils/generated_trans_tests/202_FRr_U.out2
-rw-r--r--utils/generated_trans_tests/203_FRm_U.in2
-rw-r--r--utils/generated_trans_tests/203_FRm_U.out2
-rw-r--r--utils/generated_trans_tests/204_FRr_R.in2
-rw-r--r--utils/generated_trans_tests/204_FRr_R.out2
-rw-r--r--utils/generated_trans_tests/205_FRm_R.in2
-rw-r--r--utils/generated_trans_tests/205_FRm_R.out2
-rw-r--r--utils/generated_trans_tests/206_FRr_F.in2
-rw-r--r--utils/generated_trans_tests/206_FRr_F.out2
-rw-r--r--utils/generated_trans_tests/207_FRm_F.in2
-rw-r--r--utils/generated_trans_tests/207_FRm_F.out2
-rw-r--r--utils/generated_trans_tests/208_FDr_U.in2
-rw-r--r--utils/generated_trans_tests/208_FDr_U.out2
-rw-r--r--utils/generated_trans_tests/209_FDm_U.in2
-rw-r--r--utils/generated_trans_tests/209_FDm_U.out2
-rw-r--r--utils/generated_trans_tests/210_FDr_R.in2
-rw-r--r--utils/generated_trans_tests/210_FDr_R.out2
-rw-r--r--utils/generated_trans_tests/211_FDm_R.in2
-rw-r--r--utils/generated_trans_tests/211_FDm_R.out2
-rw-r--r--utils/generated_trans_tests/212_FDr_F.in2
-rw-r--r--utils/generated_trans_tests/212_FDr_F.out2
-rw-r--r--utils/generated_trans_tests/213_FDm_F.in2
-rw-r--r--utils/generated_trans_tests/213_FDm_F.out2
-rw-r--r--utils/generated_trans_tests/214_FLr_U.in2
-rw-r--r--utils/generated_trans_tests/214_FLr_U.out2
-rw-r--r--utils/generated_trans_tests/215_FLm_U.in2
-rw-r--r--utils/generated_trans_tests/215_FLm_U.out2
-rw-r--r--utils/generated_trans_tests/216_FLr_R.in2
-rw-r--r--utils/generated_trans_tests/216_FLr_R.out2
-rw-r--r--utils/generated_trans_tests/217_FLm_R.in2
-rw-r--r--utils/generated_trans_tests/217_FLm_R.out2
-rw-r--r--utils/generated_trans_tests/218_FLr_F.in2
-rw-r--r--utils/generated_trans_tests/218_FLr_F.out2
-rw-r--r--utils/generated_trans_tests/219_FLm_F.in2
-rw-r--r--utils/generated_trans_tests/219_FLm_F.out2
-rw-r--r--utils/generated_trans_tests/220_BUr_U.in2
-rw-r--r--utils/generated_trans_tests/220_BUr_U.out2
-rw-r--r--utils/generated_trans_tests/221_BUm_U.in2
-rw-r--r--utils/generated_trans_tests/221_BUm_U.out2
-rw-r--r--utils/generated_trans_tests/222_BUr_R.in2
-rw-r--r--utils/generated_trans_tests/222_BUr_R.out2
-rw-r--r--utils/generated_trans_tests/223_BUm_R.in2
-rw-r--r--utils/generated_trans_tests/223_BUm_R.out2
-rw-r--r--utils/generated_trans_tests/224_BUr_F.in2
-rw-r--r--utils/generated_trans_tests/224_BUr_F.out2
-rw-r--r--utils/generated_trans_tests/225_BUm_F.in2
-rw-r--r--utils/generated_trans_tests/225_BUm_F.out2
-rw-r--r--utils/generated_trans_tests/226_BRr_U.in2
-rw-r--r--utils/generated_trans_tests/226_BRr_U.out2
-rw-r--r--utils/generated_trans_tests/227_BRm_U.in2
-rw-r--r--utils/generated_trans_tests/227_BRm_U.out2
-rw-r--r--utils/generated_trans_tests/228_BRr_R.in2
-rw-r--r--utils/generated_trans_tests/228_BRr_R.out2
-rw-r--r--utils/generated_trans_tests/229_BRm_R.in2
-rw-r--r--utils/generated_trans_tests/229_BRm_R.out2
-rw-r--r--utils/generated_trans_tests/230_BRr_F.in2
-rw-r--r--utils/generated_trans_tests/230_BRr_F.out2
-rw-r--r--utils/generated_trans_tests/231_BRm_F.in2
-rw-r--r--utils/generated_trans_tests/231_BRm_F.out2
-rw-r--r--utils/generated_trans_tests/232_BDr_U.in2
-rw-r--r--utils/generated_trans_tests/232_BDr_U.out2
-rw-r--r--utils/generated_trans_tests/233_BDm_U.in2
-rw-r--r--utils/generated_trans_tests/233_BDm_U.out2
-rw-r--r--utils/generated_trans_tests/234_BDr_R.in2
-rw-r--r--utils/generated_trans_tests/234_BDr_R.out2
-rw-r--r--utils/generated_trans_tests/235_BDm_R.in2
-rw-r--r--utils/generated_trans_tests/235_BDm_R.out2
-rw-r--r--utils/generated_trans_tests/236_BDr_F.in2
-rw-r--r--utils/generated_trans_tests/236_BDr_F.out2
-rw-r--r--utils/generated_trans_tests/237_BDm_F.in2
-rw-r--r--utils/generated_trans_tests/237_BDm_F.out2
-rw-r--r--utils/generated_trans_tests/238_BLr_U.in2
-rw-r--r--utils/generated_trans_tests/238_BLr_U.out2
-rw-r--r--utils/generated_trans_tests/239_BLm_U.in2
-rw-r--r--utils/generated_trans_tests/239_BLm_U.out2
-rw-r--r--utils/generated_trans_tests/240_BLr_R.in2
-rw-r--r--utils/generated_trans_tests/240_BLr_R.out2
-rw-r--r--utils/generated_trans_tests/241_BLm_R.in2
-rw-r--r--utils/generated_trans_tests/241_BLm_R.out2
-rw-r--r--utils/generated_trans_tests/242_BLr_F.in2
-rw-r--r--utils/generated_trans_tests/242_BLr_F.out2
-rw-r--r--utils/generated_trans_tests/243_BLm_F.in2
-rw-r--r--utils/generated_trans_tests/243_BLm_F.out2
-rwxr-xr-xutils/genmovecode.sh15
-rwxr-xr-xutils/genmoveswitch.sh8
-rwxr-xr-xutils/gentranscode.sh25
-rwxr-xr-xutils/gentransswitch.sh14
-rwxr-xr-xutils/gentranstests.sh35
-rw-r--r--utils/h48_to_lst.c22
-rw-r--r--utils/invert.c19
-rwxr-xr-xutils/mirror.sh3
1084 files changed, 1419 insertions, 1741 deletions
diff --git a/README.md b/README.md
index f70c87a..44423a6 100644
--- a/README.md
+++ b/README.md
@@ -129,27 +129,24 @@ Then you can for example get a cube from a sequence of moves:
129 129
130``` 130```
131$ ./run frommoves -moves "R' U' F" 131$ ./run frommoves -moves "R' U' F"
132JLQWSVUH=ZLCUABGIVTKH 132JLQWSVUH=ZLCUABGIVTKH=A
133``` 133```
134 134
135Or you can get a random cube 135The cube format is meant to be easy to copy-paste and read for the
136software, but not necessarily intuitive for the user. See below for a
137detaileed description.
136 138
137``` 139You can also get a random cube
138$ ./run randomcube
139WDSQREVX=VBKYDUCJXWAb
140```
141
142If you don't like this format, you can convert it:
143 140
144``` 141```
145$ ./run convert -fin B32 -fout H48 -cubestr "WDSQREVX=VBKYDUCJXWAb" 142$ ./run randomcube
146UL1 UB0 BL0 FR1 DF0 UR1 DB0 FL0 DR1 DL1 UF0 BR1 DFR2 DBR0 DFL2 UFR2 UBL2 UFL0 UBR2 DBL2 143WDSQREVX=VBKYDUCJXWAb=A
147``` 144```
148 145
149To solve a cube you can use: 146To solve a cube you can use:
150 147
151``` 148```
152$ ./run solve -solver h48h0k4 -n 1 -M 4 -cube "JLQWSVUH=ZLCUABGIVTKH" 149$ ./run solve -solver h48h0k4 -n 1 -M 4 -cube "JLQWSVUH=ZLCUABGIVTKH=A"
153F' U' R 150F' U' R
154``` 151```
155 152
@@ -244,8 +241,8 @@ $ python # In the main folder
244From here you can call the library functions directly, for example: 241From here you can call the library functions directly, for example:
245 242
246``` 243```
247>>> nissy.compose("NEORSQLH=ZFCYUAGLHTKB", "NEORSQLH=ZFCYUAGLHTKB") 244>>> nissy.compose('NEORSQLH=ZFCYUAGLHTKB=A', 'NEORSQLH=ZFCYUAGLHTKB=A')
248'ASTUGFBH=DACXEZGBLIKF' 245'ASTUGFBH=DACXEZGBLIKF=A'
249``` 246```
250 247
251The `python/examples` folder contains some examples, that you 248The `python/examples` folder contains some examples, that you
@@ -261,94 +258,50 @@ with the comments in nissy.h for more details.
261 258
262NOTE: Support for the Python module is still rudimentary. 259NOTE: Support for the Python module is still rudimentary.
263 260
264## Cube formats 261## Cube format
265
266The cube is represented as a string in one of the following formats,
267all explained below:
268
269* H48
270* LST
271* B32 (the default)
272
273In all of the formats, the permutation of the center pieces is not
274stored. This means that the cube is assumed to be in a fixed orientation.
275
276More formats will become available in the future.
277
278### Cube format: H48
279 262
280In the H48 format, each edge is represented by two letters denoting the 263This format is a "base 32" encoding of the cube. It is not meant to be
281sides it belongs to and one number denoting its orientation (0 oriented, 1 264human-readable, but it is compact while still being plain text. Each
282mis-oriented). Similarly, each corner is represented by three letters and 265piece, including the orientation value, is encoded as a number from 0
283a number (0 oriented, 1 twisted clockwise, 2 twisted counter-clockwise). 266to 31, and this number is then converted to an uppercase letter (0-26)
284 267or to a lowercase letter (27-31).
285The solved cube looks like this:
286
287```
288UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
289```
290 268
291The cube after the move F looks like this: 269The format looks like this:
292 270
293``` 271```
294FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 272cccccccc=eeeeeeeeeeee=r
295``` 273```
296 274
297Whitespace (including newlines) between pieces is ignored when reading the 275Where the first 8 characters represent the corner, the 12 characters
298cube. A single whitespace character is added between pieces when writing. 276after the first 12 represent the edges and the last character represents
299 277the orientation of the cube with respect to the base orientation.
300You can find more examples of this format in the utils/cubes folder.
301
302## Cube format: LST
303
304In the LST format, a cube is represented by a comma-separated list of
305integers. Each piece is represented by an (unsigned) 8-bit integer. The 4
306least-significant bits determine which piece it is, the other 4 determine
307the orientation.
308 278
309Edges are numbered as follows (see also constants.h): 279Edges are numbered as follows (see also constants.h):
310 280
311UF=0 UB=1 DB=2 DF=3 UR=4 UL=5 DL=6 DR=7 FR=8 FL=9 BL=10 BR=11
312
313Corners are numbered as follows:
314
315UFR=0 UBL=1 DFL=2 DBR=3 UFL=4 UBR=5 DFR=6 DBL=7
316
317The orientation of the edges is with respect to F/B, the orientation of
318corners is with respect to U/D.
319
320In this format, the solved cube looks like this:
321
322``` 281```
3230, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 282UF=0 UB=1 DB=2 DF=3 UR=4 UL=5 DL=6 DR=7 FR=8 FL=9 BL=10 BR=11
324``` 283```
325 284
326The cube after the move F looks like this: 285Corners are numbered as follows:
327 286
328``` 287```
32936, 1, 38, 3, 66, 5, 64, 7, 25, 1, 2, 24, 4, 5, 6, 7, 16, 19, 10, 11 288UFR=0 UBL=1 DFL=2 DBR=3 UFL=4 UBR=5 DFR=6 DBL=7
330``` 289```
331 290
332### Cube format: B32 291At the moment, the only orientation supported is the standard one, as wide
333 292moves, rotations and slice moves are not supported.
334This format is a "base 32" encoding of the cube. It is not meant to be
335human-readable, but it is compact while still being plain text. Each
336piece, including the orientation value, is encoded as a number from 0
337to 31, and this number is then converted to an uppercase letter (0-26)
338or to a lowercase letter (27-31). Edges and corners are separated by a
339single = character.
340 293
341In this format, the solved cube looks like this: 294In this format, the solved cube looks like this:
342 295
343``` 296```
344ABCDEFGH=ABCDEFGHIJKL 297ABCDEFGH=ABCDEFGHIJKL=A
345``` 298```
346 299
347The cube after the move F looks like this: 300The cube after the move F looks like this:
348 301
349``` 302```
350MBODSFQH=ZBCYEFGHQTKL 303MBODSFQH=ZBCYEFGHQTKL=A
351``` 304```
352 305
353A cube in B32 format is always 21 characters long (22 if the terminating 306A cube in B32 format is always 23 characters long (24 if the terminating
354null character is included). 307null character is included).
diff --git a/convert.sh b/convert.sh
new file mode 100755
index 0000000..ba5aa96
--- /dev/null
+++ b/convert.sh
@@ -0,0 +1,22 @@
1#!/bin/sh
2
3for f in $@; do
4 if [ ! -f "$f" ]; then
5 echo "File $f does not exist"
6 exit 1
7 fi
8done
9
10for f in $@; do
11 while read -r line; do
12 #c=$(cat "$f")
13 c="$line"
14 cc="$(./run-old convert -fin H48 -fout B32 -cubestr "$c" 2>/dev/null)"
15 if [ -z "$cc" ]; then
16 echo "$line"
17 else
18 echo "$cc=A"
19 fi
20 done < "$f" > "$f.new"
21 mv "$f.new" "$f"
22done
diff --git a/cpp/examples/move.cpp b/cpp/examples/move.cpp
new file mode 100644
index 0000000..970a65d
--- /dev/null
+++ b/cpp/examples/move.cpp
@@ -0,0 +1,17 @@
1/* A simple example showing how to move a cube and print it in H48 format. */
2
3#include "../nissy.h"
4#include <iostream>
5
6int main() {
7 nissy::cube c;
8 if (!c.move("R' U' F").ok()) {
9 std::cout << "Error moving the cube!" << std::endl;
10 return 1;
11 }
12
13 auto str = c.to_string();
14 std::cout << "Cube after R' U' F:" << std::endl << str << std::endl;
15
16 return 0;
17}
diff --git a/cpp/examples/move_convert.cpp b/cpp/examples/move_convert.cpp
deleted file mode 100644
index 11398df..0000000
--- a/cpp/examples/move_convert.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
1/* A simple example showing how to move a cube and print it in H48 format. */
2
3#include "../nissy.h"
4#include <iostream>
5
6int main() {
7 nissy::cube c;
8 if (!c.move("R' U' F").ok()) {
9 std::cout << "Error moving the cube!" << std::endl;
10 return 1;
11 }
12
13 auto string_or_error = c.to_string("H48");
14 if (std::holds_alternative<nissy::error>(string_or_error)) {
15 std::cout << "Error converting cube!" << std::endl;
16 return 1;
17 }
18
19 auto str = std::get<std::string>(string_or_error);
20 std::cout << "Cube in H48 format after R' U' F:" << std::endl
21 << str << std::endl;
22
23 return 0;
24}
diff --git a/cpp/nissy.cpp b/cpp/nissy.cpp
index 88df0f2..3535553 100644
--- a/cpp/nissy.cpp
+++ b/cpp/nissy.cpp
@@ -13,8 +13,6 @@ extern "C" {
13 long long nissy_inverse(const char *, char *); 13 long long nissy_inverse(const char *, char *);
14 long long nissy_applymoves(const char *, const char *, char *); 14 long long nissy_applymoves(const char *, const char *, char *);
15 long long nissy_applytrans(const char *, const char *, char *); 15 long long nissy_applytrans(const char *, const char *, char *);
16 long long nissy_convert(const char *, const char *, const char *,
17 unsigned, char *);
18 long long nissy_getcube(long long, long long, long long, long long, 16 long long nissy_getcube(long long, long long, long long, long long,
19 const char *, char *); 17 const char *, char *);
20 long long nissy_solverinfo(const char *, char *); 18 long long nissy_solverinfo(const char *, char *);
@@ -43,7 +41,6 @@ namespace nissy {
43 const error error::UNSOLVABLE_CUBE{-11}; 41 const error error::UNSOLVABLE_CUBE{-11};
44 const error error::INVALID_MOVES{-20}; 42 const error error::INVALID_MOVES{-20};
45 const error error::INVALID_TRANS{-30}; 43 const error error::INVALID_TRANS{-30};
46 const error error::INVALID_FORMAT{-40};
47 const error error::INVALID_SOLVER{-50}; 44 const error error::INVALID_SOLVER{-50};
48 const error error::NULL_POINTER{-60}; 45 const error error::NULL_POINTER{-60};
49 const error error::BUFFER_SIZE{-61}; 46 const error error::BUFFER_SIZE{-61};
@@ -52,9 +49,7 @@ namespace nissy {
52 const error error::UNKNOWN{-999}; 49 const error error::UNKNOWN{-999};
53 50
54 namespace size { 51 namespace size {
55 constexpr size_t B32 = 22; 52 constexpr size_t CUBE = 22;
56 constexpr size_t H48 = 88;
57 constexpr size_t CUBE_MAX = H48;
58 constexpr size_t TRANSFORMATION = 12; 53 constexpr size_t TRANSFORMATION = 12;
59 constexpr size_t DATAID = 255; 54 constexpr size_t DATAID = 255;
60 } 55 }
@@ -65,71 +60,54 @@ namespace nissy {
65 60
66 error cube::move(const std::string& moves) 61 error cube::move(const std::string& moves)
67 { 62 {
68 char result[size::B32]; 63 char result[size::CUBE];
69 long long err = nissy_applymoves( 64 long long err = nissy_applymoves(
70 m_b32.c_str(), moves.c_str(), result); 65 m_str.c_str(), moves.c_str(), result);
71 if (err < 0) 66 if (err < 0)
72 return error{err}; 67 return error{err};
73 m_b32 = result; 68 m_str = result;
74 return error::OK; 69 return error::OK;
75 } 70 }
76 71
77 error cube::transform(const std::string& trans) 72 error cube::transform(const std::string& trans)
78 { 73 {
79 char result[size::B32]; 74 char result[size::CUBE];
80 long long err = nissy_applytrans( 75 long long err = nissy_applytrans(
81 m_b32.c_str(), trans.c_str(), result); 76 m_str.c_str(), trans.c_str(), result);
82 if (err < 0) 77 if (err < 0)
83 return error{err}; 78 return error{err};
84 m_b32 = result; 79 m_str = result;
85 return error::OK; 80 return error::OK;
86 } 81 }
87 82
88 void cube::invert() 83 void cube::invert()
89 { 84 {
90 char result[size::B32]; 85 char result[size::CUBE];
91 nissy_inverse(m_b32.c_str(), result); 86 nissy_inverse(m_str.c_str(), result);
92 m_b32 = result; 87 m_str = result;
93 } 88 }
94 89
95 void cube::compose(const cube& other) 90 void cube::compose(const cube& other)
96 { 91 {
97 char result[size::B32]; 92 char result[size::CUBE];
98 nissy_compose( 93 nissy_compose(
99 m_b32.c_str(), other.to_string().c_str(), result); 94 m_str.c_str(), other.to_string().c_str(), result);
100 m_b32 = result; 95 m_str = result;
101 } 96 }
102 97
103 std::string cube::to_string() const { return m_b32; } 98 std::string cube::to_string() const { return m_str; }
104
105 std::variant<std::string, error>
106 cube::to_string(const std::string& format) const
107 {
108 char result[size::CUBE_MAX];
109 auto err = nissy_convert("B32", format.c_str(),
110 m_b32.c_str(), size::CUBE_MAX, result);
111 if (err < 0)
112 return error{err};
113 else
114 return result;
115 }
116 99
117 std::variant<cube, error> 100 std::variant<cube, error>
118 cube::from_string(const std::string& str) 101 cube::from_string(const std::string& str)
119 { 102 {
120 return from_string(str, "B32"); 103 /* Check that the cube is valid by making a single move */
121 } 104 char result[size::CUBE];
122 105 auto err = nissy_applymoves(str.c_str(), "U", result);
123 std::variant<cube, error>
124 cube::from_string(const std::string& str, const std::string& format)
125 {
126 char result[size::B32];
127 cube c;
128 auto err = nissy_convert(format.c_str(),
129 "B32", c.m_b32.c_str(), size::B32, result);
130 if (err < 0) 106 if (err < 0)
131 return error{err}; 107 return error{err};
132 c.m_b32 = result; 108
109 cube c;
110 c.m_str = str;
133 return c; 111 return c;
134 } 112 }
135 113
@@ -143,13 +121,13 @@ namespace nissy {
143 cube::get(long long ep, long long eo, long long cp, long long co, 121 cube::get(long long ep, long long eo, long long cp, long long co,
144 const std::string& options) 122 const std::string& options)
145 { 123 {
146 char result[size::B32]; 124 char result[size::CUBE];
147 cube c; 125 cube c;
148 auto err = nissy_getcube( 126 auto err = nissy_getcube(
149 ep, eo, cp, co, options.c_str(), result); 127 ep, eo, cp, co, options.c_str(), result);
150 if (err < 0) 128 if (err < 0)
151 return error{err}; 129 return error{err};
152 c.m_b32 = result; 130 c.m_str = result;
153 return c; 131 return c;
154 } 132 }
155 133
diff --git a/cpp/nissy.h b/cpp/nissy.h
index 4b9c1c9..2eb0f42 100644
--- a/cpp/nissy.h
+++ b/cpp/nissy.h
@@ -38,7 +38,6 @@ namespace nissy {
38 static const error UNSOLVABLE_CUBE; 38 static const error UNSOLVABLE_CUBE;
39 static const error INVALID_MOVES; 39 static const error INVALID_MOVES;
40 static const error INVALID_TRANS; 40 static const error INVALID_TRANS;
41 static const error INVALID_FORMAT;
42 static const error INVALID_SOLVER; 41 static const error INVALID_SOLVER;
43 static const error NULL_POINTER; 42 static const error NULL_POINTER;
44 static const error BUFFER_SIZE; 43 static const error BUFFER_SIZE;
@@ -55,13 +54,9 @@ namespace nissy {
55 void invert(); 54 void invert();
56 void compose(const cube&); 55 void compose(const cube&);
57 std::string to_string() const; 56 std::string to_string() const;
58 std::variant<std::string, error> to_string(
59 const std::string& format) const;
60 57
61 static std::variant<cube, error> from_string( 58 static std::variant<cube, error> from_string(
62 const std::string&); 59 const std::string&);
63 static std::variant<cube, error> from_string(
64 const std::string& str, const std::string& format);
65 static std::variant<cube, error> get( 60 static std::variant<cube, error> get(
66 long long ep, long long eo, long long cp, long long co); 61 long long ep, long long eo, long long cp, long long co);
67 static std::variant<cube, error> get( 62 static std::variant<cube, error> get(
@@ -69,7 +64,7 @@ namespace nissy {
69 const std::string& options); 64 const std::string& options);
70 65
71 private: 66 private:
72 std::string m_b32{"ABCDEFGH=ABCDEFGHIJKL"}; 67 std::string m_str{"ABCDEFGH=ABCDEFGHIJKL=A"};
73 }; 68 };
74 69
75 class solver { 70 class solver {
diff --git a/python/nissy_module.c b/python/nissy_module.c
index b389297..58a5b67 100644
--- a/python/nissy_module.c
+++ b/python/nissy_module.c
@@ -4,7 +4,6 @@
4 4
5#include "../src/nissy.h" 5#include "../src/nissy.h"
6 6
7#define MAX_CUBE_STR_LEN 1024 /* Update when adding formats */
8#define MAX_SOLUTIONS_SIZE 250000 7#define MAX_SOLUTIONS_SIZE 250000
9 8
10static bool 9static bool
@@ -24,7 +23,6 @@ check_error(long long err)
24 case NISSY_ERROR_UNSOLVABLE_CUBE: /* Fallthrough */ 23 case NISSY_ERROR_UNSOLVABLE_CUBE: /* Fallthrough */
25 case NISSY_ERROR_INVALID_MOVES: 24 case NISSY_ERROR_INVALID_MOVES:
26 case NISSY_ERROR_INVALID_TRANS: 25 case NISSY_ERROR_INVALID_TRANS:
27 case NISSY_ERROR_INVALID_FORMAT:
28 case NISSY_ERROR_INVALID_SOLVER: 26 case NISSY_ERROR_INVALID_SOLVER:
29 case NISSY_ERROR_NULL_POINTER: 27 case NISSY_ERROR_NULL_POINTER:
30 case NISSY_ERROR_BUFFER_SIZE: 28 case NISSY_ERROR_BUFFER_SIZE:
@@ -70,17 +68,17 @@ PyDoc_STRVAR(compose_doc,
70"Apply 'permutation' on 'cube'.\n" 68"Apply 'permutation' on 'cube'.\n"
71"\n" 69"\n"
72"Parameters:\n" 70"Parameters:\n"
73" - cube: a cube in B32 format\n" 71" - cube: a cube\n"
74" - permutation: another cube in B32 format\n" 72" - permutation: another cube\n"
75"\n" 73"\n"
76"Returns: the resulting cube string in B32 format\n" 74"Returns: the resulting cube string\n"
77); 75);
78static PyObject * 76static PyObject *
79compose(PyObject *self, PyObject *args) 77compose(PyObject *self, PyObject *args)
80{ 78{
81 long long err; 79 long long err;
82 const char *cube, *permutation; 80 const char *cube, *permutation;
83 char result[NISSY_SIZE_B32]; 81 char result[NISSY_SIZE_CUBE];
84 82
85 if (!PyArg_ParseTuple(args, "ss", &cube, &permutation)) 83 if (!PyArg_ParseTuple(args, "ss", &cube, &permutation))
86 return NULL; 84 return NULL;
@@ -95,16 +93,16 @@ PyDoc_STRVAR(inverse_doc,
95"Invert 'cube'.\n" 93"Invert 'cube'.\n"
96"\n" 94"\n"
97"Parameters:\n" 95"Parameters:\n"
98" - cube: a cube in B32 format\n" 96" - cube: a cube in\n"
99"\n" 97"\n"
100"Returns: the inverse cube in B32 format\n" 98"Returns: the inverse cube\n"
101); 99);
102static PyObject * 100static PyObject *
103inverse(PyObject *self, PyObject *args) 101inverse(PyObject *self, PyObject *args)
104{ 102{
105 long long err; 103 long long err;
106 const char *cube; 104 const char *cube;
107 char result[NISSY_SIZE_B32]; 105 char result[NISSY_SIZE_CUBE];
108 106
109 if (!PyArg_ParseTuple(args, "s", &cube)) 107 if (!PyArg_ParseTuple(args, "s", &cube))
110 return NULL; 108 return NULL;
@@ -119,17 +117,17 @@ PyDoc_STRVAR(applymoves_doc,
119"Apply 'moves' to 'cube'.\n" 117"Apply 'moves' to 'cube'.\n"
120"\n" 118"\n"
121"Parameters:\n" 119"Parameters:\n"
122" - cube: a cube in B32 format\n" 120" - cube: a cube in\n"
123" - moves: the moves to apply on the cube\n" 121" - moves: the moves to apply on the cube\n"
124"\n" 122"\n"
125"Returns: the resulting cube in B32 format\n" 123"Returns: the resulting cube\n"
126); 124);
127static PyObject * 125static PyObject *
128applymoves(PyObject *self, PyObject *args) 126applymoves(PyObject *self, PyObject *args)
129{ 127{
130 long long err; 128 long long err;
131 const char *cube, *moves; 129 const char *cube, *moves;
132 char result[NISSY_SIZE_B32]; 130 char result[NISSY_SIZE_CUBE];
133 131
134 if (!PyArg_ParseTuple(args, "ss", &cube, &moves)) 132 if (!PyArg_ParseTuple(args, "ss", &cube, &moves))
135 return NULL; 133 return NULL;
@@ -144,19 +142,19 @@ PyDoc_STRVAR(applytrans_doc,
144"Apply 'transformation' to 'cube'.\n" 142"Apply 'transformation' to 'cube'.\n"
145"\n" 143"\n"
146"Parameters:\n" 144"Parameters:\n"
147" - cube: a cube in B32 format\n" 145" - cube: a cube\n"
148" - transformation: the transformation to apply on the cube, formatted as\n" 146" - transformation: the transformation to apply on the cube, formatted as\n"
149" (rotation|mirrored) (2 letters)\n" 147" (rotation|mirrored) (2 letters)\n"
150" for example 'mirrored ur' or 'rotation lf'\n" 148" for example 'mirrored ur' or 'rotation lf'\n"
151"\n" 149"\n"
152"Returns: the resulting cube in B32 format\n" 150"Returns: the resulting cube\n"
153); 151);
154static PyObject * 152static PyObject *
155applytrans(PyObject *self, PyObject *args) 153applytrans(PyObject *self, PyObject *args)
156{ 154{
157 long long err; 155 long long err;
158 const char *cube, *trans; 156 const char *cube, *trans;
159 char result[NISSY_SIZE_B32]; 157 char result[NISSY_SIZE_CUBE];
160 158
161 if (!PyArg_ParseTuple(args, "ss", &cube, &trans)) 159 if (!PyArg_ParseTuple(args, "ss", &cube, &trans))
162 return NULL; 160 return NULL;
@@ -165,32 +163,6 @@ applytrans(PyObject *self, PyObject *args)
165 return string_result(err, result); 163 return string_result(err, result);
166} 164}
167 165
168PyDoc_STRVAR(convert_doc,
169"convert(fin, fout, cube)\n"
170"--\n\n"
171"Convert 'cube' from format 'fin' to format 'fout'.\n"
172"\n"
173"Parameters:\n"
174" - fin: the format in which 'cube' is given\n"
175" - fout: the format to which 'cube' has to be converted\n"
176" - cube: a cube in B32 format\n"
177"\n"
178"Returns: 'cube' in 'fout' format\n"
179);
180static PyObject *
181convert(PyObject *self, PyObject *args)
182{
183 long long err;
184 const char *fin, *fout, *cube;
185 char result[MAX_CUBE_STR_LEN];
186
187 if (!PyArg_ParseTuple(args, "sss", &fin, &fout, &cube))
188 return NULL;
189
190 err = nissy_convert(fin, fout, cube, MAX_CUBE_STR_LEN, result);
191 return string_result(err, result);
192}
193
194PyDoc_STRVAR(getcube_doc, 166PyDoc_STRVAR(getcube_doc,
195"getcube(ep, eo, cp, co, options)\n" 167"getcube(ep, eo, cp, co, options)\n"
196"--\n\n" 168"--\n\n"
@@ -210,7 +182,7 @@ getcube(PyObject *self, PyObject *args)
210{ 182{
211 long long ep, eo, cp, co, err; 183 long long ep, eo, cp, co, err;
212 const char *options; 184 const char *options;
213 char result[NISSY_SIZE_B32]; 185 char result[NISSY_SIZE_CUBE];
214 186
215 if (!PyArg_ParseTuple(args, "LLLLs", &ep, &eo, &cp, &co, &options)) 187 if (!PyArg_ParseTuple(args, "LLLLs", &ep, &eo, &cp, &co, &options))
216 return NULL; 188 return NULL;
@@ -321,7 +293,7 @@ PyDoc_STRVAR(solve_doc,
321"See the documentation for libnissy (in nissy.h) for details.\n" 293"See the documentation for libnissy (in nissy.h) for details.\n"
322"\n" 294"\n"
323"Parameters:\n" 295"Parameters:\n"
324" - cube: a cube in B32 format\n" 296" - cube: a cube\n"
325" - solver: the solver to use\n" 297" - solver: the solver to use\n"
326" - minmoves: the minimum number of moves to use\n" 298" - minmoves: the minimum number of moves to use\n"
327" - maxmoves: the maximum number of moves to use\n" 299" - maxmoves: the maximum number of moves to use\n"
@@ -400,7 +372,6 @@ static PyMethodDef nissy_methods[] = {
400 { "inverse", inverse, METH_VARARGS, inverse_doc }, 372 { "inverse", inverse, METH_VARARGS, inverse_doc },
401 { "applymoves", applymoves, METH_VARARGS, applymoves_doc }, 373 { "applymoves", applymoves, METH_VARARGS, applymoves_doc },
402 { "applytrans", applytrans, METH_VARARGS, applytrans_doc }, 374 { "applytrans", applytrans, METH_VARARGS, applytrans_doc },
403 { "convert", convert, METH_VARARGS, convert_doc },
404 { "getcube", getcube, METH_VARARGS, getcube_doc }, 375 { "getcube", getcube, METH_VARARGS, getcube_doc },
405 { "solverinfo", solverinfo, METH_VARARGS, solverinfo_doc }, 376 { "solverinfo", solverinfo, METH_VARARGS, solverinfo_doc },
406 { "gendata", gendata, METH_VARARGS, gendata_doc }, 377 { "gendata", gendata, METH_VARARGS, gendata_doc },
diff --git a/run-old b/run-old
new file mode 100755
index 0000000..aff1c5a
--- /dev/null
+++ b/run-old
Binary files differ
diff --git a/shell/shell.c b/shell/shell.c
index 104e7e0..ecd39f2 100644
--- a/shell/shell.c
+++ b/shell/shell.c
@@ -18,9 +18,6 @@
18#define FLAG_PERM "-perm" 18#define FLAG_PERM "-perm"
19#define FLAG_COMMAND "-command" 19#define FLAG_COMMAND "-command"
20#define FLAG_STR_CUBE "-cubestr" 20#define FLAG_STR_CUBE "-cubestr"
21#define FLAG_FORMAT "-format"
22#define FLAG_FORMAT_IN "-fin"
23#define FLAG_FORMAT_OUT "-fout"
24#define FLAG_MOVES "-moves" 21#define FLAG_MOVES "-moves"
25#define FLAG_TRANS "-trans" 22#define FLAG_TRANS "-trans"
26#define FLAG_SOLVER "-solver" 23#define FLAG_SOLVER "-solver"
@@ -31,23 +28,18 @@
31#define FLAG_MAXSOLUTIONS "-n" 28#define FLAG_MAXSOLUTIONS "-n"
32#define FLAG_THREADS "-t" 29#define FLAG_THREADS "-t"
33 30
34#define INFO_CUBEFORMAT(cube) cube " must be given in B32 format."
35#define INFO_MOVESFORMAT "The accepted moves are U, D, R, L, F and B, " \ 31#define INFO_MOVESFORMAT "The accepted moves are U, D, R, L, F and B, " \
36 "optionally followed by a 2, a ' or a 3." 32 "optionally followed by a 2, a ' or a 3."
37#define INFO_TRANSFORMAT "The transformation must be given in the format " \ 33#define INFO_TRANSFORMAT "The transformation must be given in the format " \
38 "(rotation|mirrored) (2 letters), for exmple " \ 34 "(rotation|mirrored) (2 letters), for exmple " \
39 "'rotation UF' or 'mirrored BL'." 35 "'rotation UF' or 'mirrored BL'."
40#define INFO_FORMATS "The available formats are H48, B32 and SRC."
41 36
42typedef struct { 37typedef struct {
43 int command_index; 38 int command_index;
44 char cube[22]; 39 char cube[NISSY_SIZE_CUBE];
45 char cube_perm[22]; 40 char cube_perm[NISSY_SIZE_CUBE];
46 char *str_command; 41 char *str_command;
47 char *str_cube; 42 char *str_cube;
48 char *str_format;
49 char *str_format_in;
50 char *str_format_out;
51 char *str_moves; 43 char *str_moves;
52 char *str_trans; 44 char *str_trans;
53 char *str_solver; 45 char *str_solver;
@@ -64,7 +56,6 @@ static int64_t inverse_exec(args_t *);
64static int64_t applymoves_exec(args_t *); 56static int64_t applymoves_exec(args_t *);
65static int64_t applytrans_exec(args_t *); 57static int64_t applytrans_exec(args_t *);
66static int64_t frommoves_exec(args_t *); 58static int64_t frommoves_exec(args_t *);
67static int64_t convert_exec(args_t *);
68static int64_t randomcube_exec(args_t *); 59static int64_t randomcube_exec(args_t *);
69static int64_t solverinfo_exec(args_t *); 60static int64_t solverinfo_exec(args_t *);
70static int64_t gendata_exec(args_t *); 61static int64_t gendata_exec(args_t *);
@@ -81,9 +72,6 @@ static bool set_cube(int, char **, args_t *);
81static bool set_cube_perm(int, char **, args_t *); 72static bool set_cube_perm(int, char **, args_t *);
82static bool set_str_command(int, char **, args_t *); 73static bool set_str_command(int, char **, args_t *);
83static bool set_str_cube(int, char **, args_t *); 74static bool set_str_cube(int, char **, args_t *);
84static bool set_str_format(int, char **, args_t *);
85static bool set_str_format_in(int, char **, args_t *);
86static bool set_str_format_out(int, char **, args_t *);
87static bool set_str_moves(int, char **, args_t *); 75static bool set_str_moves(int, char **, args_t *);
88static bool set_str_trans(int, char **, args_t *); 76static bool set_str_trans(int, char **, args_t *);
89static bool set_str_solver(int, char **, args_t *); 77static bool set_str_solver(int, char **, args_t *);
@@ -107,9 +95,6 @@ struct {
107 OPTION(FLAG_PERM, 1, set_cube_perm), 95 OPTION(FLAG_PERM, 1, set_cube_perm),
108 OPTION(FLAG_COMMAND, 1, set_str_command), 96 OPTION(FLAG_COMMAND, 1, set_str_command),
109 OPTION(FLAG_STR_CUBE, 1, set_str_cube), 97 OPTION(FLAG_STR_CUBE, 1, set_str_cube),
110 OPTION(FLAG_FORMAT, 1, set_str_format),
111 OPTION(FLAG_FORMAT_IN, 1, set_str_format_in),
112 OPTION(FLAG_FORMAT_OUT, 1, set_str_format_out),
113 OPTION(FLAG_MOVES, 1, set_str_moves), 98 OPTION(FLAG_MOVES, 1, set_str_moves),
114 OPTION(FLAG_TRANS, 1, set_str_trans), 99 OPTION(FLAG_TRANS, 1, set_str_trans),
115 OPTION(FLAG_SOLVER, 1, set_str_solver), 100 OPTION(FLAG_SOLVER, 1, set_str_solver),
@@ -133,29 +118,27 @@ struct {
133 COMMAND( 118 COMMAND(
134 "compose", 119 "compose",
135 "compose " FLAG_CUBE " CUBE " FLAG_PERM " PERM", 120 "compose " FLAG_CUBE " CUBE " FLAG_PERM " PERM",
136 "Apply on CUBE the permutation defined by PERM. " 121 "Apply on CUBE the permutation defined by PERM.",
137 INFO_CUBEFORMAT("CUBE and PERM"),
138 compose_exec 122 compose_exec
139 ), 123 ),
140 COMMAND( 124 COMMAND(
141 "inverse", 125 "inverse",
142 "inverse " FLAG_CUBE " CUBE ", 126 "inverse " FLAG_CUBE " CUBE ",
143 "Compute the inverse of the given CUBE. " 127 "Compute the inverse of the given CUBE.",
144 INFO_CUBEFORMAT("CUBE"),
145 inverse_exec 128 inverse_exec
146 ), 129 ),
147 COMMAND( 130 COMMAND(
148 "applymoves", 131 "applymoves",
149 "applymoves " FLAG_CUBE " CUBE " FLAG_MOVES " MOVES", 132 "applymoves " FLAG_CUBE " CUBE " FLAG_MOVES " MOVES",
150 "Apply the given MOVES to the given CUBE. " 133 "Apply the given MOVES to the given CUBE. "
151 INFO_CUBEFORMAT("CUBE") " " INFO_MOVESFORMAT, 134 INFO_MOVESFORMAT,
152 applymoves_exec 135 applymoves_exec
153 ), 136 ),
154 COMMAND( 137 COMMAND(
155 "applytrans", 138 "applytrans",
156 "applytrans " FLAG_CUBE " CUBE " FLAG_TRANS " TRANS", 139 "applytrans " FLAG_CUBE " CUBE " FLAG_TRANS " TRANS",
157 "Apply the single transformation TRANS to the given CUBE. " 140 "Apply the single transformation TRANS to the given CUBE. "
158 INFO_CUBEFORMAT("CUBE") " " INFO_TRANSFORMAT, 141 INFO_TRANSFORMAT,
159 applytrans_exec 142 applytrans_exec
160 ), 143 ),
161 COMMAND( 144 COMMAND(
@@ -166,19 +149,9 @@ struct {
166 frommoves_exec 149 frommoves_exec
167 ), 150 ),
168 COMMAND( 151 COMMAND(
169 "convert",
170 "convert " FLAG_STR_CUBE " CUBESTR "
171 FLAG_FORMAT_IN " FORMAT_IN " FLAG_FORMAT_OUT " FORMAT_OUT",
172 "Convert the cube described by CUBESTR from FORMAT_IN to "
173 "FORMAT_OUT."
174 INFO_FORMATS " "
175 "CUBESTR must be a valid cube in the FORMAT_IN format.",
176 convert_exec
177 ),
178 COMMAND(
179 "randomcube", 152 "randomcube",
180 "randomcube", 153 "randomcube",
181 "Returns a random cube in B32 format.", 154 "Returns a random.",
182 randomcube_exec 155 randomcube_exec
183 ), 156 ),
184 COMMAND( 157 COMMAND(
@@ -202,8 +175,7 @@ struct {
202 FLAG_CUBE " CUBE" 175 FLAG_CUBE " CUBE"
203 FLAG_THREADS " T", 176 FLAG_THREADS " T",
204 "Solve the given CUBE using SOLVER, " 177 "Solve the given CUBE using SOLVER, "
205 "using at least n and at most N moves, and T threads. " 178 "using at least n and at most N moves, and T threads.",
206 INFO_CUBEFORMAT("CUBE"),
207 solve_exec 179 solve_exec
208 ), 180 ),
209 COMMAND( 181 COMMAND(
@@ -254,7 +226,7 @@ rand64(void)
254static int64_t 226static int64_t
255compose_exec(args_t *args) 227compose_exec(args_t *args)
256{ 228{
257 char result[22]; 229 char result[NISSY_SIZE_CUBE];
258 int64_t ret; 230 int64_t ret;
259 231
260 ret = nissy_compose(args->cube, args->cube_perm, result); 232 ret = nissy_compose(args->cube, args->cube_perm, result);
@@ -267,7 +239,7 @@ compose_exec(args_t *args)
267static int64_t 239static int64_t
268inverse_exec(args_t *args) 240inverse_exec(args_t *args)
269{ 241{
270 char result[22]; 242 char result[NISSY_SIZE_CUBE];
271 int64_t ret; 243 int64_t ret;
272 244
273 ret = nissy_inverse(args->cube, result); 245 ret = nissy_inverse(args->cube, result);
@@ -280,7 +252,7 @@ inverse_exec(args_t *args)
280static int64_t 252static int64_t
281applymoves_exec(args_t *args) 253applymoves_exec(args_t *args)
282{ 254{
283 char result[22]; 255 char result[NISSY_SIZE_CUBE];
284 int64_t ret; 256 int64_t ret;
285 257
286 ret = nissy_applymoves(args->cube, args->str_moves, result); 258 ret = nissy_applymoves(args->cube, args->str_moves, result);
@@ -293,7 +265,7 @@ applymoves_exec(args_t *args)
293static int64_t 265static int64_t
294applytrans_exec(args_t *args) 266applytrans_exec(args_t *args)
295{ 267{
296 char result[22]; 268 char result[NISSY_SIZE_CUBE];
297 int64_t ret; 269 int64_t ret;
298 270
299 ret = nissy_applytrans(args->cube, args->str_trans, result); 271 ret = nissy_applytrans(args->cube, args->str_trans, result);
@@ -311,20 +283,6 @@ frommoves_exec(args_t *args)
311} 283}
312 284
313static int64_t 285static int64_t
314convert_exec(args_t *args)
315{
316 char result[PRINTCUBE_BUFFER_SIZE];
317 int64_t ret;
318
319 ret = nissy_convert(args->str_format_in, args->str_format_out,
320 args->str_cube, PRINTCUBE_BUFFER_SIZE, result);
321 if (ret == NISSY_OK || ret == NISSY_WARNING_UNSOLVABLE)
322 printf("%s\n", result);
323
324 return ret;
325}
326
327static int64_t
328randomcube_exec(args_t *args) 286randomcube_exec(args_t *args)
329{ 287{
330 char result[PRINTCUBE_BUFFER_SIZE]; 288 char result[PRINTCUBE_BUFFER_SIZE];
@@ -575,9 +533,6 @@ parse_args(int argc, char **argv, args_t *args)
575 .cube = "", 533 .cube = "",
576 .cube_perm = "", 534 .cube_perm = "",
577 .str_cube = "", 535 .str_cube = "",
578 .str_format = "",
579 .str_format_in = "",
580 .str_format_out = "",
581 .str_moves = "", 536 .str_moves = "",
582 .str_trans = "", 537 .str_trans = "",
583 .str_solver = "", 538 .str_solver = "",
@@ -668,7 +623,7 @@ parse_nisstype(const char *arg)
668static bool 623static bool
669set_cube(int argc, char **argv, args_t *args) 624set_cube(int argc, char **argv, args_t *args)
670{ 625{
671 memcpy(args->cube, argv[0], 22); 626 memcpy(args->cube, argv[0], NISSY_SIZE_CUBE);
672 args->cube[21] = 0; 627 args->cube[21] = 0;
673 628
674 return true; 629 return true;
@@ -677,7 +632,7 @@ set_cube(int argc, char **argv, args_t *args)
677static bool 632static bool
678set_cube_perm(int argc, char **argv, args_t *args) 633set_cube_perm(int argc, char **argv, args_t *args)
679{ 634{
680 memcpy(args->cube_perm, argv[0], 22); 635 memcpy(args->cube_perm, argv[0], NISSY_SIZE_CUBE);
681 args->cube_perm[21] = 0; 636 args->cube_perm[21] = 0;
682 637
683 return true; 638 return true;
@@ -700,30 +655,6 @@ set_str_cube(int argc, char **argv, args_t *args)
700} 655}
701 656
702static bool 657static bool
703set_str_format(int argc, char **argv, args_t *args)
704{
705 args->str_format = argv[0];
706
707 return true;
708}
709
710static bool
711set_str_format_in(int argc, char **argv, args_t *args)
712{
713 args->str_format_in = argv[0];
714
715 return true;
716}
717
718static bool
719set_str_format_out(int argc, char **argv, args_t *args)
720{
721 args->str_format_out = argv[0];
722
723 return true;
724}
725
726static bool
727set_str_moves(int argc, char **argv, args_t *args) 658set_str_moves(int argc, char **argv, args_t *args)
728{ 659{
729 args->str_moves = argv[0]; 660 args->str_moves = argv[0];
diff --git a/src/arch/avx2.h b/src/arch/avx2.h
index ad4ee0d..b1f8a59 100644
--- a/src/arch/avx2.h
+++ b/src/arch/avx2.h
@@ -134,7 +134,7 @@ inverse(cube_t c)
134 vp = _mm256_andnot_si256(ORIENT_AVX2, vi); 134 vp = _mm256_andnot_si256(ORIENT_AVX2, vi);
135 ret = _mm256_or_si256(vp, vo); 135 ret = _mm256_or_si256(vp, vo);
136 ret = _mm256_and_si256(ret, USED_AVX2); 136 ret = _mm256_and_si256(ret, USED_AVX2);
137 137
138 return invertco(ret); 138 return invertco(ret);
139} 139}
140 140
diff --git a/src/core/core.h b/src/core/core.h
index de1c198..fce1751 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -1,5 +1,4 @@
1#include "constant_cubes.h" 1#include "constant_cubes.h"
2#include "cube.h" 2#include "cube.h"
3#include "io_formats.h"
4#include "moves.h" 3#include "moves.h"
5#include "transform.h" 4#include "transform.h"
diff --git a/src/core/cube.h b/src/core/cube.h
index ce8a6b8..a045e55 100644
--- a/src/core/cube.h
+++ b/src/core/cube.h
@@ -174,3 +174,181 @@ getcube(int64_t ep, int64_t eo, int64_t cp, int64_t co)
174 174
175 return cubefromarray(carr, earr); 175 return cubefromarray(carr, earr);
176} 176}
177
178
179/******************************************************************************/
180
181STATIC cube_t readcube(const char *);
182STATIC int64_t writecube(cube_t, size_t n, char [n]);
183STATIC uint8_t readco(const char *);
184STATIC uint8_t readcp(const char *);
185STATIC uint8_t readeo(const char *);
186STATIC uint8_t readep(const char *);
187
188STATIC uint8_t b32toedge(char);
189STATIC uint8_t b32tocorner(char);
190STATIC char edgetob32(uint8_t);
191STATIC char cornertob32(uint8_t);
192
193STATIC uint8_t
194readco(const char *str)
195{
196 if (*str == '0')
197 return 0;
198 if (*str == '1')
199 return CTWIST_CW;
200 if (*str == '2')
201 return CTWIST_CCW;
202
203 LOG("Error reading CO\n");
204 return UINT8_ERROR;
205}
206
207STATIC uint8_t
208readcp(const char *str)
209{
210 uint8_t c;
211
212 for (c = 0; c < 8; c++)
213 if (!strncmp(str, cornerstr[c], 3) ||
214 !strncmp(str, cornerstralt[c], 3))
215 return c;
216
217 LOG("Error reading CP\n");
218 return UINT8_ERROR;
219}
220
221STATIC uint8_t
222readeo(const char *str)
223{
224 if (*str == '0')
225 return 0;
226 if (*str == '1')
227 return EFLIP;
228
229 LOG("Error reading EO\n");
230 return UINT8_ERROR;
231}
232
233STATIC uint8_t
234readep(const char *str)
235{
236 uint8_t e;
237
238 for (e = 0; e < 12; e++)
239 if (!strncmp(str, edgestr[e], 2))
240 return e;
241
242 LOG("Error reading EP\n");
243 return UINT8_ERROR;
244}
245
246STATIC cube_t
247readcube(const char *buf)
248{
249 int i;
250 uint8_t c[8], e[12];
251
252 for (i = 0; i < 8; i++) {
253 c[i] = b32tocorner(buf[i]);
254 if (c[i] == UINT8_ERROR) {
255 LOG("Error reading corner %d ", i);
256 if (buf[i] == 0) {
257 LOG("(string terminated early)\n");
258 } else {
259 LOG("(char '%c')\n", buf[i]);
260 }
261 return ZERO_CUBE;
262 }
263 }
264
265 if (buf[8] != '=') {
266 LOG("Error reading separator: a single '=' "
267 "must be used to separate edges and corners\n");
268 return ZERO_CUBE;
269 }
270
271 for (i = 0; i < 12; i++) {
272 e[i] = b32toedge(buf[i+9]);
273 if (e[i] == UINT8_ERROR) {
274 LOG("Error reading edge %d ", i);
275 if (buf[i+9] == 0) {
276 LOG("(string terminated early)\n");
277 } else {
278 LOG("(char '%c')\n", buf[i+9]);
279 }
280 return ZERO_CUBE;
281 }
282 }
283
284 return cubefromarray(c, e);
285}
286
287STATIC int64_t
288writecube(cube_t cube, size_t buf_size, char buf[buf_size])
289{
290 int i;
291 uint8_t corner[8], edge[12];
292
293 if (buf_size < NISSY_SIZE_CUBE) {
294 LOG("Cannot write cube: buffer size must be at least %u "
295 "bytes, but the provided one is %zu bytes.\n",
296 NISSY_SIZE_CUBE, buf_size);
297 return NISSY_ERROR_BUFFER_SIZE;
298 }
299
300 pieces(&cube, corner, edge);
301
302 for (i = 0; i < 8; i++)
303 buf[i] = cornertob32(corner[i]);
304
305 buf[8] = '=';
306
307 for (i = 0; i < 12; i++)
308 buf[i+9] = edgetob32(edge[i]);
309
310/* TODO */
311 buf[21] = '=';
312 buf[22] = 'A';
313 buf[23] = '\0';
314
315 return NISSY_OK;
316}
317
318STATIC uint8_t
319b32toedge(char c)
320{
321 if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'f')))
322 return UINT8_ERROR;
323
324 return c <= 'Z' ? (uint8_t)(c - 'A') : (uint8_t)(c - 'a') + 26;
325}
326
327STATIC uint8_t
328b32tocorner(char c) {
329 uint8_t val;
330
331 if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'f')))
332 return UINT8_ERROR;
333
334 val = c <= 'Z' ? (uint8_t)(c - 'A') : (uint8_t)(c - 'a') + 26;
335
336 return (val & 7) | ((val & 24) << 2);
337}
338
339STATIC char
340edgetob32(uint8_t edge)
341{
342 return edge < 26 ? 'A' + (char)edge : 'a' + (char)(edge - 26);
343}
344
345STATIC char
346cornertob32(uint8_t corner)
347{
348 uint8_t val;
349
350 val = (corner & 7) | ((corner & 96) >> 2);
351
352 return val < 26 ? 'A' + (char)val : 'a' + (char)(val - 26);
353}
354/******************************************************************************/
diff --git a/src/nissy.c b/src/nissy.c
index dfa1a90..8aa0334 100644
--- a/src/nissy.c
+++ b/src/nissy.c
@@ -17,7 +17,7 @@ long long parse_h48_solver(
17STATIC bool checkdata(const unsigned char *, const tableinfo_t [static 1]); 17STATIC bool checkdata(const unsigned char *, const tableinfo_t [static 1]);
18STATIC bool distribution_equal(const uint64_t [static INFO_DISTRIBUTION_LEN], 18STATIC bool distribution_equal(const uint64_t [static INFO_DISTRIBUTION_LEN],
19 const uint64_t [static INFO_DISTRIBUTION_LEN], uint8_t); 19 const uint64_t [static INFO_DISTRIBUTION_LEN], uint8_t);
20STATIC long long write_result(cube_t, char [static NISSY_SIZE_B32]); 20STATIC long long write_result(cube_t, char [static NISSY_SIZE_CUBE]);
21STATIC size_t my_strnlen(const char *, size_t); 21STATIC size_t my_strnlen(const char *, size_t);
22STATIC long long nissy_dataid(const char *, char [static NISSY_SIZE_DATAID]); 22STATIC long long nissy_dataid(const char *, char [static NISSY_SIZE_DATAID]);
23STATIC long long nissy_gendata_unsafe( 23STATIC long long nissy_gendata_unsafe(
@@ -117,9 +117,9 @@ distribution_equal(
117} 117}
118 118
119STATIC long long 119STATIC long long
120write_result(cube_t cube, char result[static NISSY_SIZE_B32]) 120write_result(cube_t cube, char result[static NISSY_SIZE_CUBE])
121{ 121{
122 writecube("B32", cube, NISSY_SIZE_B32, result); 122 writecube(cube, NISSY_SIZE_CUBE, result);
123 123
124 if (!issolvable(cube)) { 124 if (!issolvable(cube)) {
125 LOG("Warning: resulting cube is not solvable\n"); 125 LOG("Warning: resulting cube is not solvable\n");
@@ -143,15 +143,15 @@ my_strnlen(const char *str, size_t maxlen)
143 143
144long long 144long long
145nissy_compose( 145nissy_compose(
146 const char cube[static NISSY_SIZE_B32], 146 const char cube[static NISSY_SIZE_CUBE],
147 const char permutation[static NISSY_SIZE_B32], 147 const char permutation[static NISSY_SIZE_CUBE],
148 char result[static NISSY_SIZE_B32] 148 char result[static NISSY_SIZE_CUBE]
149) 149)
150{ 150{
151 cube_t c, p, res; 151 cube_t c, p, res;
152 long long err; 152 long long err;
153 153
154 c = readcube("B32", cube); 154 c = readcube(cube);
155 155
156 if (!isconsistent(c)) { 156 if (!isconsistent(c)) {
157 LOG("[compose] Error: the given cube is invalid\n"); 157 LOG("[compose] Error: the given cube is invalid\n");
@@ -159,7 +159,7 @@ nissy_compose(
159 goto nissy_compose_error; 159 goto nissy_compose_error;
160 } 160 }
161 161
162 p = readcube("B32", permutation); 162 p = readcube(permutation);
163 163
164 if (!isconsistent(p)) { 164 if (!isconsistent(p)) {
165 LOG("[compose] Error: given permutation is invalid\n"); 165 LOG("[compose] Error: given permutation is invalid\n");
@@ -178,20 +178,20 @@ nissy_compose(
178 return write_result(res, result); 178 return write_result(res, result);
179 179
180nissy_compose_error: 180nissy_compose_error:
181 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 181 writecube(ZERO_CUBE, NISSY_SIZE_CUBE, result);
182 return err; 182 return err;
183} 183}
184 184
185long long 185long long
186nissy_inverse( 186nissy_inverse(
187 const char cube[static NISSY_SIZE_B32], 187 const char cube[static NISSY_SIZE_CUBE],
188 char result[static NISSY_SIZE_B32] 188 char result[static NISSY_SIZE_CUBE]
189) 189)
190{ 190{
191 cube_t c, res; 191 cube_t c, res;
192 long long err; 192 long long err;
193 193
194 c = readcube("B32", cube); 194 c = readcube(cube);
195 195
196 if (iserror(c)) { 196 if (iserror(c)) {
197 LOG("[inverse] Error: the given cube is invalid\n"); 197 LOG("[inverse] Error: the given cube is invalid\n");
@@ -210,15 +210,15 @@ nissy_inverse(
210 return write_result(res, result); 210 return write_result(res, result);
211 211
212nissy_inverse_error: 212nissy_inverse_error:
213 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 213 writecube(ZERO_CUBE, NISSY_SIZE_CUBE, result);
214 return err; 214 return err;
215} 215}
216 216
217long long 217long long
218nissy_applymoves( 218nissy_applymoves(
219 const char cube[static NISSY_SIZE_B32], 219 const char cube[static NISSY_SIZE_CUBE],
220 const char *moves, 220 const char *moves,
221 char result[static NISSY_SIZE_B32] 221 char result[static NISSY_SIZE_CUBE]
222) 222)
223{ 223{
224 cube_t c, res; 224 cube_t c, res;
@@ -230,7 +230,7 @@ nissy_applymoves(
230 goto nissy_applymoves_error; 230 goto nissy_applymoves_error;
231 } 231 }
232 232
233 c = readcube("B32", cube); 233 c = readcube(cube);
234 234
235 if (!isconsistent(c)) { 235 if (!isconsistent(c)) {
236 LOG("[applymoves] Error: given cube is invalid\n"); 236 LOG("[applymoves] Error: given cube is invalid\n");
@@ -249,21 +249,21 @@ nissy_applymoves(
249 return write_result(res, result); 249 return write_result(res, result);
250 250
251nissy_applymoves_error: 251nissy_applymoves_error:
252 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 252 writecube(ZERO_CUBE, NISSY_SIZE_CUBE, result);
253 return err; 253 return err;
254} 254}
255 255
256long long 256long long
257nissy_applytrans( 257nissy_applytrans(
258 const char cube[static NISSY_SIZE_B32], 258 const char cube[static NISSY_SIZE_CUBE],
259 const char transformation[static NISSY_SIZE_TRANSFORMATION], 259 const char transformation[static NISSY_SIZE_TRANSFORMATION],
260 char result[static NISSY_SIZE_B32] 260 char result[static NISSY_SIZE_CUBE]
261) 261)
262{ 262{
263 cube_t c, res; 263 cube_t c, res;
264 long long err; 264 long long err;
265 265
266 c = readcube("B32", cube); 266 c = readcube(cube);
267 267
268 if (!isconsistent(c)) { 268 if (!isconsistent(c)) {
269 LOG("[applytrans] Error: given cube is invalid\n"); 269 LOG("[applytrans] Error: given cube is invalid\n");
@@ -282,51 +282,7 @@ nissy_applytrans(
282 return write_result(res, result); 282 return write_result(res, result);
283 283
284nissy_applytrans_error: 284nissy_applytrans_error:
285 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 285 writecube(ZERO_CUBE, NISSY_SIZE_CUBE, result);
286 return err;
287}
288
289long long
290nissy_convert(
291 const char *format_in,
292 const char *format_out,
293 const char *cube_string,
294 unsigned result_size,
295 char result[result_size]
296)
297{
298 cube_t c;
299 long long err;
300
301 if (format_in == NULL) {
302 LOG("[convert] Error: 'format_in' argument is NULL\n");
303 err = NISSY_ERROR_NULL_POINTER;
304 goto nissy_convert_error;
305 }
306
307 if (format_out == NULL) {
308 LOG("[convert] Error: 'format_out' argument is NULL\n");
309 err = NISSY_ERROR_NULL_POINTER;
310 goto nissy_convert_error;
311 }
312
313 if (cube_string == NULL) {
314 LOG("[convert] Error: 'cube_string' argument is NULL\n");
315 err = NISSY_ERROR_NULL_POINTER;
316 goto nissy_convert_error;
317 }
318
319 c = readcube(format_in, cube_string);
320
321 if (!isconsistent(c)) {
322 err = NISSY_ERROR_INVALID_CUBE;
323 goto nissy_convert_error;
324 }
325
326 return writecube(format_out, c, result_size, result);
327
328nissy_convert_error:
329 result[0] = '\0';
330 return err; 286 return err;
331} 287}
332 288
@@ -337,7 +293,7 @@ nissy_getcube(
337 long long cp, 293 long long cp,
338 long long co, 294 long long co,
339 const char *options, 295 const char *options,
340 char result[static NISSY_SIZE_B32] 296 char result[static NISSY_SIZE_CUBE]
341) 297)
342{ 298{
343 int i; 299 int i;
@@ -526,7 +482,7 @@ nissy_checkdata(
526 482
527long long 483long long
528nissy_solve( 484nissy_solve(
529 const char cube[static NISSY_SIZE_B32], 485 const char cube[static NISSY_SIZE_CUBE],
530 const char *solver, 486 const char *solver,
531 unsigned nissflag, 487 unsigned nissflag,
532 unsigned minmoves, 488 unsigned minmoves,
@@ -551,7 +507,7 @@ nissy_solve(
551 return NISSY_ERROR_NULL_POINTER; 507 return NISSY_ERROR_NULL_POINTER;
552 } 508 }
553 509
554 c = readcube_B32(cube); 510 c = readcube(cube);
555 511
556 if (!isconsistent(c)) { 512 if (!isconsistent(c)) {
557 LOG("[solve] Error: cube is invalid\n"); 513 LOG("[solve] Error: cube is invalid\n");
diff --git a/src/nissy.h b/src/nissy.h
index a5b3015..4b2d1eb 100644
--- a/src/nissy.h
+++ b/src/nissy.h
@@ -2,12 +2,11 @@
2This is libnissy (temporarily also known as h48), a Rubik's cube library. 2This is libnissy (temporarily also known as h48), a Rubik's cube library.
3 3
4All the functions return 0 or a positive integer in case of success and 4All the functions return 0 or a positive integer in case of success and
5a negative integer in case of error, unless otherwise specified. See at 5a negative integer in case of error, unless otherwise specified. See
6the bottom of this file for the list of error codes and their meaning. 6below for the list of error codes and their meaning.
7 7
8All cube arguments are in B32 formats, unless otherwise specified. 8Cubes are passed as strings in the cccccccc=eeeeeeeeeeee=r format,
9Other available formats are H48 and SRC. See README.md for more info on 9see the README.md file for more information.
10these formats.
11 10
12Accepted moves are U, D, R, L, F and B, optionally followed by a 2, 11Accepted moves are U, D, R, L, F and B, optionally followed by a 2,
13a ' or a 3. 12a ' or a 3.
@@ -21,9 +20,7 @@ for example 'rotation UF' or 'mirrored BL'.
21/* Constants *****************************************************************/ 20/* Constants *****************************************************************/
22 21
23/* Some constants for size for I/O buffers */ 22/* Some constants for size for I/O buffers */
24#define NISSY_SIZE_B32 22U 23#define NISSY_SIZE_CUBE 24U
25#define NISSY_SIZE_H48 88U
26#define NISSY_SIZE_CUBE_MAX NISSY_SIZE_H48
27#define NISSY_SIZE_TRANSFORMATION 12U 24#define NISSY_SIZE_TRANSFORMATION 12U
28#define NISSY_SIZE_SOLVE_STATS 10U 25#define NISSY_SIZE_SOLVE_STATS 10U
29#define NISSY_SIZE_DATAID 255U 26#define NISSY_SIZE_DATAID 255U
@@ -37,8 +34,8 @@ for example 'rotation UF' or 'mirrored BL'.
37#define NISSY_NISSFLAG_ALL \ 34#define NISSY_NISSFLAG_ALL \
38 (NISSY_NISSFLAG_NORMAL | NISSY_NISSFLAG_INVERSE | NISSY_NISSFLAG_MIXED) 35 (NISSY_NISSFLAG_NORMAL | NISSY_NISSFLAG_INVERSE | NISSY_NISSFLAG_MIXED)
39 36
40/* The solved cube in B32 format */ 37/* The solved cube */
41#define NISSY_SOLVED_CUBE "ABCDEFGH=ABCDEFGHIJKL" 38#define NISSY_SOLVED_CUBE "ABCDEFGH=ABCDEFGHIJKL=A"
42 39
43/* Error codes ***************************************************************/ 40/* Error codes ***************************************************************/
44 41
@@ -58,8 +55,7 @@ provided an unsolvable cube as input.
58 55
59/* 56/*
60The value NISSY_ERROR_INVALID_CUBE means that the provided cube is 57The value NISSY_ERROR_INVALID_CUBE means that the provided cube is
61invalid. It could be written in an unknown format, or in a format 58invalid. It could be written in an unknown format, or be ill-formed.
62different from what specified, or simply ill-formed.
63*/ 59*/
64#define NISSY_ERROR_INVALID_CUBE -10LL 60#define NISSY_ERROR_INVALID_CUBE -10LL
65 61
@@ -85,12 +81,6 @@ is invalid.
85#define NISSY_ERROR_INVALID_TRANS -30LL 81#define NISSY_ERROR_INVALID_TRANS -30LL
86 82
87/* 83/*
88The value NISSY_ERROR_INVALID_FORMAT means that the given format is
89not known.
90*/
91#define NISSY_ERROR_INVALID_FORMAT -40LL
92
93/*
94The value NISSY_ERROR_INVALID_SOLVER means that the given solver is 84The value NISSY_ERROR_INVALID_SOLVER means that the given solver is
95not known. 85not known.
96*/ 86*/
@@ -139,10 +129,10 @@ of this kind to sebastiano@tronto.net. Thanks!
139Apply the secod argument as a permutation on the first argument. 129Apply the secod argument as a permutation on the first argument.
140 130
141Parameters: 131Parameters:
142 cube - The first cube, in B32 format. 132 cube - The first cube.
143 permutation - The second cube, in B32 format. This cube is treated as a 133 permutation - The second cub. This cube is treated as a permutation and
144 permutation and "applied" to the first cube. 134 "applied" to the first cube.
145 result - The return parameter for the resulting cube, in B32 format. 135 result - The return parameter for the resulting cube.
146 136
147Return values: 137Return values:
148 NISSY_OK - The cubes were composed succesfully. 138 NISSY_OK - The cubes were composed succesfully.
@@ -155,17 +145,17 @@ Return values:
155*/ 145*/
156long long 146long long
157nissy_compose( 147nissy_compose(
158 const char cube[static NISSY_SIZE_B32], 148 const char cube[static NISSY_SIZE_CUBE],
159 const char permutation[static NISSY_SIZE_B32], 149 const char permutation[static NISSY_SIZE_CUBE],
160 char result[static NISSY_SIZE_B32] 150 char result[static NISSY_SIZE_CUBE]
161); 151);
162 152
163/* 153/*
164Compute the inverse of the given cube. 154Compute the inverse of the given cube.
165 155
166Parameters: 156Parameters:
167 cube - The cube to be inverted, in B32 format. 157 cube - The cube to be inverted.
168 result - The return parameter for the resulting cube, in B32 format. 158 result - The return parameter for the resulting cube.
169 159
170Return values: 160Return values:
171 NISSY_OK - The cube was inverted succesfully. 161 NISSY_OK - The cube was inverted succesfully.
@@ -177,17 +167,17 @@ Return values:
177*/ 167*/
178long long 168long long
179nissy_inverse( 169nissy_inverse(
180 const char cube[static NISSY_SIZE_B32], 170 const char cube[static NISSY_SIZE_CUBE],
181 char result[static NISSY_SIZE_B32] 171 char result[static NISSY_SIZE_CUBE]
182); 172);
183 173
184/* 174/*
185Apply the given sequence of moves on the given cube. 175Apply the given sequence of moves on the given cube.
186 176
187Parameters: 177Parameters:
188 cube - The cube to move, in B32 format. 178 cube - The cube to move.
189 moves - The moves to apply to the cube. Must be a NULL-terminated string. 179 moves - The moves to apply to the cube. Must be a NULL-terminated string.
190 result - The return parameter for the resulting cube, in B32 format. 180 result - The return parameter for the resulting cube.
191 181
192Return values: 182Return values:
193 NISSY_OK - The moves were applied succesfully. 183 NISSY_OK - The moves were applied succesfully.
@@ -200,18 +190,18 @@ Return values:
200*/ 190*/
201long long 191long long
202nissy_applymoves( 192nissy_applymoves(
203 const char cube[static NISSY_SIZE_B32], 193 const char cube[static NISSY_SIZE_CUBE],
204 const char *moves, 194 const char *moves,
205 char result[static NISSY_SIZE_B32] 195 char result[static NISSY_SIZE_CUBE]
206); 196);
207 197
208/* 198/*
209Apply the single given transformation to the given cube. 199Apply the single given transformation to the given cube.
210 200
211Parameters: 201Parameters:
212 cube - The cube to be transformed, in B32 format. 202 cube - The cube to be transformed.
213 transformation - The transformation in (rotation|mirrored) xy format. 203 transformation - The transformation in "(rotation|mirrored) __" format.
214 result - The return parameter for the resulting cube, in B32 format. 204 result - The return parameter for the resulting cube.
215 205
216Return values: 206Return values:
217 NISSY_OK - The transformation was performed succesfully. 207 NISSY_OK - The transformation was performed succesfully.
@@ -222,37 +212,9 @@ Return values:
222*/ 212*/
223long long 213long long
224nissy_applytrans( 214nissy_applytrans(
225 const char cube[static NISSY_SIZE_B32], 215 const char cube[static NISSY_SIZE_CUBE],
226 const char transformation[static NISSY_SIZE_TRANSFORMATION], 216 const char transformation[static NISSY_SIZE_TRANSFORMATION],
227 char result[static NISSY_SIZE_B32] 217 char result[static NISSY_SIZE_CUBE]
228);
229
230/*
231Convert the given cube between the two given formats.
232
233Parameters:
234 format_in - The input format.
235 format_out - The output format.
236 cube_string - The cube, in format_in format.
237 result_size - The allocated size of the result array.
238 result - Return parameter for the cube in format_out format.
239
240Return values:
241 NISSY_OK - The conversion was performed succesfully.
242 NISSY_ERROR_BUFFER_SIZE - The given buffer is too small for the result.
243 NISSY_ERROR_INVALID_CUBE - The given cube is invalid.
244 NISSY_ERROR_INVALID_FORMAT - At least one of the given formats is invalid.
245 NISSY_ERROR_UNKNOWN - An unknown error occurred.
246 NISSY_ERROR_NULL_POINTER - At least one of 'format_in', 'format_out' or
247 'cube_string' arguments is NULL.
248*/
249long long
250nissy_convert(
251 const char *format_in,
252 const char *format_out,
253 const char *cube_string,
254 unsigned result_size,
255 char result[result_size]
256); 218);
257 219
258/* 220/*
@@ -267,7 +229,7 @@ Parameters:
267 cp - The corner permutation, 0 <= cp <= 40320 (8!) 229 cp - The corner permutation, 0 <= cp <= 40320 (8!)
268 co - The corner orientation, 0 <= co <= 2187 (3^7) 230 co - The corner orientation, 0 <= co <= 2187 (3^7)
269 options - Other options. 231 options - Other options.
270 result - The return parameter for the resulting cube, in B32 format. 232 result - The return parameter for the resulting cube.
271 233
272Return values: 234Return values:
273 NISSY_OK - The cube was generated succesfully. 235 NISSY_OK - The cube was generated succesfully.
@@ -281,7 +243,7 @@ nissy_getcube(
281 long long cp, 243 long long cp,
282 long long co, 244 long long co,
283 const char *options, 245 const char *options,
284 char result[static NISSY_SIZE_B32] 246 char result[static NISSY_SIZE_CUBE]
285); 247);
286 248
287/* 249/*
@@ -354,7 +316,7 @@ nissy_checkdata(
354Solve the given cube using the given solver and options. 316Solve the given cube using the given solver and options.
355 317
356Parameters: 318Parameters:
357 cube - The cube to solver, in B32 format. 319 cube - The cube to solver.
358 solver - The name of the solver. 320 solver - The name of the solver.
359 nissflag - The flags for NISS (linear, inverse, mixed, or combinations). 321 nissflag - The flags for NISS (linear, inverse, mixed, or combinations).
360 minmoves - The minimum number of moves for a solution. 322 minmoves - The minimum number of moves for a solution.
@@ -386,7 +348,7 @@ Return values:
386*/ 348*/
387long long 349long long
388nissy_solve( 350nissy_solve(
389 const char cube[static NISSY_SIZE_B32], 351 const char cube[static NISSY_SIZE_CUBE],
390 const char *solver, 352 const char *solver,
391 unsigned nissflag, 353 unsigned nissflag,
392 unsigned minmoves, 354 unsigned minmoves,
diff --git a/test/001_pieces/01_solved.in b/test/001_pieces/01_solved.in
index dff224d..5aa6ba7 100644
--- a/test/001_pieces/01_solved.in
+++ b/test/001_pieces/01_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/001_pieces/02_scrambled.in b/test/001_pieces/02_scrambled.in
index 6a05bbc..4dfa7b7 100644
--- a/test/001_pieces/02_scrambled.in
+++ b/test/001_pieces/02_scrambled.in
@@ -1 +1 @@
FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0 OINUTCXB=JCRIEDAbVaGH=A
diff --git a/test/001_pieces/pieces_tests.c b/test/001_pieces/pieces_tests.c
index 2e6460b..452a11b 100644
--- a/test/001_pieces/pieces_tests.c
+++ b/test/001_pieces/pieces_tests.c
@@ -13,7 +13,7 @@ void run(void) {
13 while (*aux != '\n') 13 while (*aux != '\n')
14 aux++; 14 aux++;
15 15
16 cube = readcube("H48", str); 16 cube = readcube(str);
17 pieces(&cube, corner, edge); 17 pieces(&cube, corner, edge);
18 18
19 for (i = 0; i < 8; i++) 19 for (i = 0; i < 8; i++)
diff --git a/test/020_io_H48_read_write/01_solved_oneline.in b/test/020_io_H48_read_write/01_solved_oneline.in
deleted file mode 100644
index dff224d..0000000
--- a/test/020_io_H48_read_write/01_solved_oneline.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/01_solved_oneline.out b/test/020_io_H48_read_write/01_solved_oneline.out
deleted file mode 100644
index dff224d..0000000
--- a/test/020_io_H48_read_write/01_solved_oneline.out
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/02_solved_oneline_whitespace.in b/test/020_io_H48_read_write/02_solved_oneline_whitespace.in
deleted file mode 100644
index 5d10368..0000000
--- a/test/020_io_H48_read_write/02_solved_oneline_whitespace.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/02_solved_oneline_whitespace.out b/test/020_io_H48_read_write/02_solved_oneline_whitespace.out
deleted file mode 100644
index dff224d..0000000
--- a/test/020_io_H48_read_write/02_solved_oneline_whitespace.out
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/03_solved_multiline.in b/test/020_io_H48_read_write/03_solved_multiline.in
deleted file mode 100644
index 9f9652b..0000000
--- a/test/020_io_H48_read_write/03_solved_multiline.in
+++ /dev/null
@@ -1,9 +0,0 @@
1UF0 UB0
2DB0 DF0 UR0 UL0 DL0
3DR0 FR0 FL0 BL0 BR0 UFR0
4
5UBL0 DFL0 DBR0
6
7
8UFL0 UBR0 DFR0
9 DBL0
diff --git a/test/020_io_H48_read_write/03_solved_multiline.out b/test/020_io_H48_read_write/03_solved_multiline.out
deleted file mode 100644
index dff224d..0000000
--- a/test/020_io_H48_read_write/03_solved_multiline.out
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/04_unsolvable_ep.in b/test/020_io_H48_read_write/04_unsolvable_ep.in
deleted file mode 100644
index 8483962..0000000
--- a/test/020_io_H48_read_write/04_unsolvable_ep.in
+++ /dev/null
@@ -1 +0,0 @@
1UB0 UF0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/05_unsolvable_eo.in b/test/020_io_H48_read_write/05_unsolvable_eo.in
deleted file mode 100644
index a92089d..0000000
--- a/test/020_io_H48_read_write/05_unsolvable_eo.in
+++ /dev/null
@@ -1 +0,0 @@
1UF1 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/06_unsolvable_cp.in b/test/020_io_H48_read_write/06_unsolvable_cp.in
deleted file mode 100644
index 2085dd5..0000000
--- a/test/020_io_H48_read_write/06_unsolvable_cp.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/07_unsolvable_co.in b/test/020_io_H48_read_write/07_unsolvable_co.in
deleted file mode 100644
index abd74e2..0000000
--- a/test/020_io_H48_read_write/07_unsolvable_co.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR1 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/020_io_H48_read_write/08_unsolved.in b/test/020_io_H48_read_write/08_unsolved.in
deleted file mode 100644
index c992ce7..0000000
--- a/test/020_io_H48_read_write/08_unsolved.in
+++ /dev/null
@@ -1,6 +0,0 @@
1UL1 DR0 UB0 DL1
2UR0 FR1 DB0 BR0
3UF1 DF0 BL0 FL0
4
5UBL0 DLF1 DBR2 UFR1
6DFR1 UBR1 UFL0 DBL0
diff --git a/test/020_io_H48_read_write/08_unsolved.out b/test/020_io_H48_read_write/08_unsolved.out
deleted file mode 100644
index 8c132cf..0000000
--- a/test/020_io_H48_read_write/08_unsolved.out
+++ /dev/null
@@ -1 +0,0 @@
1UL1 DR0 UB0 DL1 UR0 FR1 DB0 BR0 UF1 DF0 BL0 FL0 UBL0 DFL1 DBR2 UFR1 DFR1 UBR1 UFL0 DBL0
diff --git a/test/020_io_H48_read_write/00_garbage.in b/test/020_io_cube_read_write/00_garbage.in
index 9ac203a..9ac203a 100644
--- a/test/020_io_H48_read_write/00_garbage.in
+++ b/test/020_io_cube_read_write/00_garbage.in
diff --git a/test/020_io_H48_read_write/00_garbage.out b/test/020_io_cube_read_write/00_garbage.out
index 5b9114e..5b9114e 100644
--- a/test/020_io_H48_read_write/00_garbage.out
+++ b/test/020_io_cube_read_write/00_garbage.out
diff --git a/test/020_io_cube_read_write/01_solved_oneline.in b/test/020_io_cube_read_write/01_solved_oneline.in
new file mode 100644
index 0000000..5aa6ba7
--- /dev/null
+++ b/test/020_io_cube_read_write/01_solved_oneline.in
@@ -0,0 +1 @@
ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/020_io_cube_read_write/01_solved_oneline.out b/test/020_io_cube_read_write/01_solved_oneline.out
new file mode 100644
index 0000000..5aa6ba7
--- /dev/null
+++ b/test/020_io_cube_read_write/01_solved_oneline.out
@@ -0,0 +1 @@
ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/020_io_cube_read_write/04_unsolvable_ep.in b/test/020_io_cube_read_write/04_unsolvable_ep.in
new file mode 100644
index 0000000..9c83290
--- /dev/null
+++ b/test/020_io_cube_read_write/04_unsolvable_ep.in
@@ -0,0 +1 @@
ABCDEFGH=BACDEFGHIJKL=A
diff --git a/test/020_io_H48_read_write/04_unsolvable_ep.out b/test/020_io_cube_read_write/04_unsolvable_ep.out
index e35c6e4..e35c6e4 100644
--- a/test/020_io_H48_read_write/04_unsolvable_ep.out
+++ b/test/020_io_cube_read_write/04_unsolvable_ep.out
diff --git a/test/020_io_cube_read_write/05_unsolvable_eo.in b/test/020_io_cube_read_write/05_unsolvable_eo.in
new file mode 100644
index 0000000..84cc36d
--- /dev/null
+++ b/test/020_io_cube_read_write/05_unsolvable_eo.in
@@ -0,0 +1 @@
ABCDEFGH=QBCDEFGHIJKL=A
diff --git a/test/020_io_H48_read_write/05_unsolvable_eo.out b/test/020_io_cube_read_write/05_unsolvable_eo.out
index e35c6e4..e35c6e4 100644
--- a/test/020_io_H48_read_write/05_unsolvable_eo.out
+++ b/test/020_io_cube_read_write/05_unsolvable_eo.out
diff --git a/test/020_io_cube_read_write/06_unsolvable_cp.in b/test/020_io_cube_read_write/06_unsolvable_cp.in
new file mode 100644
index 0000000..b0b0956
--- /dev/null
+++ b/test/020_io_cube_read_write/06_unsolvable_cp.in
@@ -0,0 +1 @@
BACDEFGH=ABCDEFGHIJKL=A
diff --git a/test/020_io_H48_read_write/06_unsolvable_cp.out b/test/020_io_cube_read_write/06_unsolvable_cp.out
index e35c6e4..e35c6e4 100644
--- a/test/020_io_H48_read_write/06_unsolvable_cp.out
+++ b/test/020_io_cube_read_write/06_unsolvable_cp.out
diff --git a/test/020_io_cube_read_write/07_unsolvable_co.in b/test/020_io_cube_read_write/07_unsolvable_co.in
new file mode 100644
index 0000000..5aa1ce2
--- /dev/null
+++ b/test/020_io_cube_read_write/07_unsolvable_co.in
@@ -0,0 +1 @@
IBCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/020_io_H48_read_write/07_unsolvable_co.out b/test/020_io_cube_read_write/07_unsolvable_co.out
index e35c6e4..e35c6e4 100644
--- a/test/020_io_H48_read_write/07_unsolvable_co.out
+++ b/test/020_io_cube_read_write/07_unsolvable_co.out
diff --git a/test/020_io_cube_read_write/08_unsolved.in b/test/020_io_cube_read_write/08_unsolved.in
new file mode 100644
index 0000000..18261b9
--- /dev/null
+++ b/test/020_io_cube_read_write/08_unsolved.in
@@ -0,0 +1 @@
BKTIONEH=VHBWEYCLQDKJ=A
diff --git a/test/020_io_cube_read_write/08_unsolved.out b/test/020_io_cube_read_write/08_unsolved.out
new file mode 100644
index 0000000..18261b9
--- /dev/null
+++ b/test/020_io_cube_read_write/08_unsolved.out
@@ -0,0 +1 @@
BKTIONEH=VHBWEYCLQDKJ=A
diff --git a/test/020_io_H48_read_write/io_H48_tests.c b/test/020_io_cube_read_write/io_cube_tests.c
index 7809c87..c9df1a9 100644
--- a/test/020_io_H48_read_write/io_H48_tests.c
+++ b/test/020_io_cube_read_write/io_cube_tests.c
@@ -9,14 +9,14 @@ void run(void) {
9 while (*aux != '\n') 9 while (*aux != '\n')
10 aux++; 10 aux++;
11 11
12 cube = readcube("H48", str); 12 cube = readcube(str);
13 13
14 if (iserror(cube)) { 14 if (iserror(cube)) {
15 printf("Error reading cube\n"); 15 printf("Error reading cube\n");
16 } else if (!issolvable(cube)) { 16 } else if (!issolvable(cube)) {
17 printf("Cube is not solvable\n"); 17 printf("Cube is not solvable\n");
18 } else { 18 } else {
19 writecube("H48", cube, NISSY_SIZE_H48, str); 19 writecube(cube, NISSY_SIZE_CUBE, str);
20 printf("%s\n", str); 20 printf("%s\n", str);
21 } 21 }
22} 22}
diff --git a/test/021_io_B32_write/00_solved.in b/test/021_io_B32_write/00_solved.in
deleted file mode 100644
index dff224d..0000000
--- a/test/021_io_B32_write/00_solved.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/021_io_B32_write/00_solved.out b/test/021_io_B32_write/00_solved.out
deleted file mode 100644
index e1df94b..0000000
--- a/test/021_io_B32_write/00_solved.out
+++ /dev/null
@@ -1 +0,0 @@
1ABCDEFGH=ABCDEFGHIJKL
diff --git a/test/021_io_B32_write/01_F.in b/test/021_io_B32_write/01_F.in
deleted file mode 100644
index e805af8..0000000
--- a/test/021_io_B32_write/01_F.in
+++ /dev/null
@@ -1 +0,0 @@
1FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0
diff --git a/test/021_io_B32_write/01_F.out b/test/021_io_B32_write/01_F.out
deleted file mode 100644
index 1677251..0000000
--- a/test/021_io_B32_write/01_F.out
+++ /dev/null
@@ -1 +0,0 @@
1MBODSFQH=ZBCYEFGHQTKL
diff --git a/test/021_io_B32_write/02_scrambled.in b/test/021_io_B32_write/02_scrambled.in
deleted file mode 100644
index 6a05bbc..0000000
--- a/test/021_io_B32_write/02_scrambled.in
+++ /dev/null
@@ -1 +0,0 @@
1FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0
diff --git a/test/021_io_B32_write/02_scrambled.out b/test/021_io_B32_write/02_scrambled.out
deleted file mode 100644
index ed442fe..0000000
--- a/test/021_io_B32_write/02_scrambled.out
+++ /dev/null
@@ -1 +0,0 @@
1OINUTCXB=JCRIEDAbVaGH
diff --git a/test/021_io_B32_write/io_B32_read_tests.c b/test/021_io_B32_write/io_B32_read_tests.c
deleted file mode 100644
index 50e07d4..0000000
--- a/test/021_io_B32_write/io_B32_read_tests.c
+++ /dev/null
@@ -1,22 +0,0 @@
1#include "../test.h"
2
3void run(void) {
4 char str[STRLENMAX], *aux;
5 cube_t cube;
6
7 aux = str;
8 while (fgets(aux, STRLENMAX, stdin) != NULL)
9 while (*aux != '\n')
10 aux++;
11
12 cube = readcube("H48", str);
13
14 if (iserror(cube)) {
15 printf("Error reading cube\n");
16 } else if (!issolvable(cube)) {
17 printf("Cube is not solvable\n");
18 } else {
19 writecube("B32", cube, NISSY_SIZE_B32, str);
20 printf("%s\n", str);
21 }
22}
diff --git a/test/022_io_B32_read/00_solved.in b/test/022_io_B32_read/00_solved.in
deleted file mode 100644
index e1df94b..0000000
--- a/test/022_io_B32_read/00_solved.in
+++ /dev/null
@@ -1 +0,0 @@
1ABCDEFGH=ABCDEFGHIJKL
diff --git a/test/022_io_B32_read/00_solved.out b/test/022_io_B32_read/00_solved.out
deleted file mode 100644
index dff224d..0000000
--- a/test/022_io_B32_read/00_solved.out
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/022_io_B32_read/01_F.in b/test/022_io_B32_read/01_F.in
deleted file mode 100644
index 1677251..0000000
--- a/test/022_io_B32_read/01_F.in
+++ /dev/null
@@ -1 +0,0 @@
1MBODSFQH=ZBCYEFGHQTKL
diff --git a/test/022_io_B32_read/01_F.out b/test/022_io_B32_read/01_F.out
deleted file mode 100644
index e805af8..0000000
--- a/test/022_io_B32_read/01_F.out
+++ /dev/null
@@ -1 +0,0 @@
1FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0
diff --git a/test/022_io_B32_read/02_scrambled.in b/test/022_io_B32_read/02_scrambled.in
deleted file mode 100644
index ed442fe..0000000
--- a/test/022_io_B32_read/02_scrambled.in
+++ /dev/null
@@ -1 +0,0 @@
1OINUTCXB=JCRIEDAbVaGH
diff --git a/test/022_io_B32_read/02_scrambled.out b/test/022_io_B32_read/02_scrambled.out
deleted file mode 100644
index 6a05bbc..0000000
--- a/test/022_io_B32_read/02_scrambled.out
+++ /dev/null
@@ -1 +0,0 @@
1FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0
diff --git a/test/022_io_B32_read/io_B32_read_tests.c b/test/022_io_B32_read/io_B32_read_tests.c
deleted file mode 100644
index e11b017..0000000
--- a/test/022_io_B32_read/io_B32_read_tests.c
+++ /dev/null
@@ -1,22 +0,0 @@
1#include "../test.h"
2
3void run(void) {
4 char str[STRLENMAX], *aux;
5 cube_t cube;
6
7 aux = str;
8 while (fgets(aux, STRLENMAX, stdin) != NULL)
9 while (*aux != '\n')
10 aux++;
11
12 cube = readcube("B32", str);
13
14 if (iserror(cube)) {
15 printf("Error reading cube\n");
16 } else if (!issolvable(cube)) {
17 printf("Cube is not solvable\n");
18 } else {
19 writecube("H48", cube, NISSY_SIZE_H48, str);
20 printf("%s\n", str);
21 }
22}
diff --git a/test/023_io_LST_write/01_solved.in b/test/023_io_LST_write/01_solved.in
deleted file mode 100644
index dff224d..0000000
--- a/test/023_io_LST_write/01_solved.in
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/023_io_LST_write/01_solved.out b/test/023_io_LST_write/01_solved.out
deleted file mode 100644
index c5b394b..0000000
--- a/test/023_io_LST_write/01_solved.out
+++ /dev/null
@@ -1 +0,0 @@
10, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
diff --git a/test/023_io_LST_write/02_scrambled.in b/test/023_io_LST_write/02_scrambled.in
deleted file mode 100644
index 6a05bbc..0000000
--- a/test/023_io_LST_write/02_scrambled.in
+++ /dev/null
@@ -1 +0,0 @@
1FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0
diff --git a/test/023_io_LST_write/02_scrambled.out b/test/023_io_LST_write/02_scrambled.out
deleted file mode 100644
index 9fcb603..0000000
--- a/test/023_io_LST_write/02_scrambled.out
+++ /dev/null
@@ -1 +0,0 @@
138, 32, 37, 68, 67, 2, 71, 1, 9, 2, 17, 8, 4, 3, 0, 27, 21, 26, 6, 7
diff --git a/test/023_io_LST_write/io_LST_write_tests.c b/test/023_io_LST_write/io_LST_write_tests.c
deleted file mode 100644
index 363bc6d..0000000
--- a/test/023_io_LST_write/io_LST_write_tests.c
+++ /dev/null
@@ -1,22 +0,0 @@
1#include "../test.h"
2
3void run(void) {
4 char str[STRLENMAX], *aux;
5 cube_t cube;
6
7 aux = str;
8 while (fgets(aux, STRLENMAX, stdin) != NULL)
9 while (*aux != '\n')
10 aux++;
11
12 cube = readcube("H48", str);
13
14 if (iserror(cube)) {
15 printf("Error reading cube\n");
16 } else if (!issolvable(cube)) {
17 printf("Cube is not solvable\n");
18 } else {
19 writecube("LST", cube, STRLENMAX, str);
20 printf("%s\n", str);
21 }
22}
diff --git a/test/024_io_LST_read/01_solved.in b/test/024_io_LST_read/01_solved.in
deleted file mode 100644
index c5b394b..0000000
--- a/test/024_io_LST_read/01_solved.in
+++ /dev/null
@@ -1 +0,0 @@
10, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
diff --git a/test/024_io_LST_read/01_solved.out b/test/024_io_LST_read/01_solved.out
deleted file mode 100644
index dff224d..0000000
--- a/test/024_io_LST_read/01_solved.out
+++ /dev/null
@@ -1 +0,0 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0
diff --git a/test/024_io_LST_read/02_scrambled.in b/test/024_io_LST_read/02_scrambled.in
deleted file mode 100644
index 9fcb603..0000000
--- a/test/024_io_LST_read/02_scrambled.in
+++ /dev/null
@@ -1 +0,0 @@
138, 32, 37, 68, 67, 2, 71, 1, 9, 2, 17, 8, 4, 3, 0, 27, 21, 26, 6, 7
diff --git a/test/024_io_LST_read/02_scrambled.out b/test/024_io_LST_read/02_scrambled.out
deleted file mode 100644
index 6a05bbc..0000000
--- a/test/024_io_LST_read/02_scrambled.out
+++ /dev/null
@@ -1 +0,0 @@
1FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0
diff --git a/test/024_io_LST_read/io_LST_read_tests.c b/test/024_io_LST_read/io_LST_read_tests.c
deleted file mode 100644
index 1a0f087..0000000
--- a/test/024_io_LST_read/io_LST_read_tests.c
+++ /dev/null
@@ -1,22 +0,0 @@
1#include "../test.h"
2
3void run(void) {
4 char str[STRLENMAX], *aux;
5 cube_t cube;
6
7 aux = str;
8 while (fgets(aux, STRLENMAX, stdin) != NULL)
9 while (*aux != '\n')
10 aux++;
11
12 cube = readcube("LST", str);
13
14 if (iserror(cube)) {
15 printf("Error reading cube\n");
16 } else if (!issolvable(cube)) {
17 printf("Cube is not solvable\n");
18 } else {
19 writecube("H48", cube, NISSY_SIZE_H48, str);
20 printf("%s\n", str);
21 }
22}
diff --git a/test/030_move/000_nomove_solved.in b/test/030_move/000_nomove_solved.in
index 07cf178..149c123 100644
--- a/test/030_move/000_nomove_solved.in
+++ b/test/030_move/000_nomove_solved.in
@@ -1,2 +1,2 @@
1 1
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/000_nomove_solved.out b/test/030_move/000_nomove_solved.out
index dff224d..5aa6ba7 100644
--- a/test/030_move/000_nomove_solved.out
+++ b/test/030_move/000_nomove_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/001_nomove_scrambled.in b/test/030_move/001_nomove_scrambled.in
index fd1d23c..700d45f 100644
--- a/test/030_move/001_nomove_scrambled.in
+++ b/test/030_move/001_nomove_scrambled.in
@@ -1,2 +1,2 @@
1 1
2BR0 DF1 DL1 FR0 UB1 DR1 UF0 UR0 UL0 FL1 BL0 DB1 UBL0 DBR1 UFL1 DFR2 UFR0 UBR1 DBL1 DFL0 2BLMWANPC=LTWIRXAEFZKS=A
diff --git a/test/030_move/001_nomove_scrambled.out b/test/030_move/001_nomove_scrambled.out
index bd2cca0..d1fc648 100644
--- a/test/030_move/001_nomove_scrambled.out
+++ b/test/030_move/001_nomove_scrambled.out
@@ -1 +1 @@
BR0 DF1 DL1 FR0 UB1 DR1 UF0 UR0 UL0 FL1 BL0 DB1 UBL0 DBR1 UFL1 DFR2 UFR0 UBR1 DBL1 DFL0 BLMWANPC=LTWIRXAEFZKS=A
diff --git a/test/030_move/010_U_solved.in b/test/030_move/010_U_solved.in
index 62495cb..3c87da7 100644
--- a/test/030_move/010_U_solved.in
+++ b/test/030_move/010_U_solved.in
@@ -1,2 +1,2 @@
1U 1U
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/010_U_solved.out b/test/030_move/010_U_solved.out
index b5b36ad..250d3a1 100644
--- a/test/030_move/010_U_solved.out
+++ b/test/030_move/010_U_solved.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/030_move/011_U_scrambled.in b/test/030_move/011_U_scrambled.in
index 012faaf..7245f4e 100644
--- a/test/030_move/011_U_scrambled.in
+++ b/test/030_move/011_U_scrambled.in
@@ -1,2 +1,2 @@
1U 1U
2BR0 DF1 DL1 FR0 UB1 DR1 UF0 UR0 UL0 FL1 BL0 DB1 UBL0 DBR1 UFL1 DFR2 UFR0 UBR1 DBL1 DFL0 2BLMWANPC=LTWIRXAEFZKS=A
diff --git a/test/030_move/011_U_scrambled.out b/test/030_move/011_U_scrambled.out
index 46d2ef7..fb9b6c9 100644
--- a/test/030_move/011_U_scrambled.out
+++ b/test/030_move/011_U_scrambled.out
@@ -1 +1 @@
UB1 DR1 DL1 FR0 DF1 BR0 UF0 UR0 UL0 FL1 BL0 DB1 UBR1 UFR0 UFL1 DFR2 UBL0 DBR1 DBL1 DFL0 NAMWBLPC=RXWITLAEFZKS=A
diff --git a/test/030_move/012_U_inverse.in b/test/030_move/012_U_inverse.in
index 2aa7ffa..4a41554 100644
--- a/test/030_move/012_U_inverse.in
+++ b/test/030_move/012_U_inverse.in
@@ -1,2 +1,2 @@
1U 1U
2UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 2EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/030_move/012_U_inverse.out b/test/030_move/012_U_inverse.out
index dff224d..5aa6ba7 100644
--- a/test/030_move/012_U_inverse.out
+++ b/test/030_move/012_U_inverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/020_U2_solved.in b/test/030_move/020_U2_solved.in
index ccc84ef..a261a22 100644
--- a/test/030_move/020_U2_solved.in
+++ b/test/030_move/020_U2_solved.in
@@ -1,2 +1,2 @@
1U2 1U2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/020_U2_solved.out b/test/030_move/020_U2_solved.out
index 316ad57..b14792e 100644
--- a/test/030_move/020_U2_solved.out
+++ b/test/030_move/020_U2_solved.out
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/030_move/021_U2_scrambled.in b/test/030_move/021_U2_scrambled.in
index bdc034e..5e7fab6 100644
--- a/test/030_move/021_U2_scrambled.in
+++ b/test/030_move/021_U2_scrambled.in
@@ -1,2 +1,2 @@
1U2 1U2
2BR0 DF1 DL1 FR0 UB1 DR1 UF0 UR0 UL0 FL1 BL0 DB1 UBL0 DBR1 UFL1 DFR2 UFR0 UBR1 DBL1 DFL0 2BLMWANPC=LTWIRXAEFZKS=A
diff --git a/test/030_move/021_U2_scrambled.out b/test/030_move/021_U2_scrambled.out
index c89ca1f..c95806f 100644
--- a/test/030_move/021_U2_scrambled.out
+++ b/test/030_move/021_U2_scrambled.out
@@ -1 +1 @@
DF1 BR0 DL1 FR0 DR1 UB1 UF0 UR0 UL0 FL1 BL0 DB1 DBR1 UBL0 UFL1 DFR2 UBR1 UFR0 DBL1 DFL0 LBMWNAPC=TLWIXRAEFZKS=A
diff --git a/test/030_move/022_U2_inverse.in b/test/030_move/022_U2_inverse.in
index 8ace160..071ab85 100644
--- a/test/030_move/022_U2_inverse.in
+++ b/test/030_move/022_U2_inverse.in
@@ -1,2 +1,2 @@
1U2 1U2
2UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 2BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/030_move/022_U2_inverse.out b/test/030_move/022_U2_inverse.out
index dff224d..5aa6ba7 100644
--- a/test/030_move/022_U2_inverse.out
+++ b/test/030_move/022_U2_inverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/030_U3_solved.in b/test/030_move/030_U3_solved.in
index 49a8847..42bfad7 100644
--- a/test/030_move/030_U3_solved.in
+++ b/test/030_move/030_U3_solved.in
@@ -1,2 +1,2 @@
1U3 1U3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/030_U3_solved.out b/test/030_move/030_U3_solved.out
index 7721ab5..111ba2b 100644
--- a/test/030_move/030_U3_solved.out
+++ b/test/030_move/030_U3_solved.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/030_move/031_U3_inverse.in b/test/030_move/031_U3_inverse.in
index 44b6ce3..50788bd 100644
--- a/test/030_move/031_U3_inverse.in
+++ b/test/030_move/031_U3_inverse.in
@@ -1,2 +1,2 @@
1U3 1U3
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/030_move/031_U3_inverse.out b/test/030_move/031_U3_inverse.out
index dff224d..5aa6ba7 100644
--- a/test/030_move/031_U3_inverse.out
+++ b/test/030_move/031_U3_inverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/032_U3_scrambled.in b/test/030_move/032_U3_scrambled.in
index a00608c..49293ff 100644
--- a/test/030_move/032_U3_scrambled.in
+++ b/test/030_move/032_U3_scrambled.in
@@ -1,2 +1,2 @@
1U3 1U3
2UF1 BR0 DL1 UR1 FR1 FL0 UL0 BL1 DR0 DF1 DB0 UB0 UBR2 DFL1 UFL0 DBR1 UBL2 DFR0 DBL2 UFR1 2VKELRGXI=QLWUYJFaHTCB=A
diff --git a/test/030_move/032_U3_scrambled.out b/test/030_move/032_U3_scrambled.out
index 7d1e8cd..80862a2 100644
--- a/test/030_move/032_U3_scrambled.out
+++ b/test/030_move/032_U3_scrambled.out
@@ -1 +1 @@
FL0 FR1 DL1 UR1 UF1 BR0 UL0 BL1 DR0 DF1 DB0 UB0 UBL2 DFR0 UFL0 DBR1 DFL1 UBR2 DBL2 UFR1 RGELKVXI=JYWUQLFaHTCB=A
diff --git a/test/030_move/033_U3_with_prime.in b/test/030_move/033_U3_with_prime.in
index 95e5405..7c16119 100644
--- a/test/030_move/033_U3_with_prime.in
+++ b/test/030_move/033_U3_with_prime.in
@@ -1,2 +1,2 @@
1U' 1U'
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/033_U3_with_prime.out b/test/030_move/033_U3_with_prime.out
index 7721ab5..111ba2b 100644
--- a/test/030_move/033_U3_with_prime.out
+++ b/test/030_move/033_U3_with_prime.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/030_move/040_D_solved.in b/test/030_move/040_D_solved.in
index cb5edb7..adc471e 100644
--- a/test/030_move/040_D_solved.in
+++ b/test/030_move/040_D_solved.in
@@ -1,2 +1,2 @@
1D 1D
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/040_D_solved.out b/test/030_move/040_D_solved.out
index cf4f816..ffcea5d 100644
--- a/test/030_move/040_D_solved.out
+++ b/test/030_move/040_D_solved.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/030_move/050_D2_solved.in b/test/030_move/050_D2_solved.in
index 56f47cd..0696727 100644
--- a/test/030_move/050_D2_solved.in
+++ b/test/030_move/050_D2_solved.in
@@ -1,2 +1,2 @@
1D2 1D2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/050_D2_solved.out b/test/030_move/050_D2_solved.out
index 13b229e..f872210 100644
--- a/test/030_move/050_D2_solved.out
+++ b/test/030_move/050_D2_solved.out
@@ -1 +1 @@
UF0 UB0 DF0 DB0 UR0 UL0 DR0 DL0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBR0 DFL0 UFL0 UBR0 DBL0 DFR0 ABDCEFHG=ABDCEFHGIJKL=A
diff --git a/test/030_move/060_D3_solved.in b/test/030_move/060_D3_solved.in
index 64d1dd8..867183d 100644
--- a/test/030_move/060_D3_solved.in
+++ b/test/030_move/060_D3_solved.in
@@ -1,2 +1,2 @@
1D3 1D3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/060_D3_solved.out b/test/030_move/060_D3_solved.out
index 2864f5b..acd829c 100644
--- a/test/030_move/060_D3_solved.out
+++ b/test/030_move/060_D3_solved.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/030_move/070_R_solved.in b/test/030_move/070_R_solved.in
index 108538a..e164209 100644
--- a/test/030_move/070_R_solved.in
+++ b/test/030_move/070_R_solved.in
@@ -1,2 +1,2 @@
1R 1R
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/070_R_solved.out b/test/030_move/070_R_solved.out
index 8c8fcb3..1be2e89 100644
--- a/test/030_move/070_R_solved.out
+++ b/test/030_move/070_R_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/030_move/071_R_scrambled.in b/test/030_move/071_R_scrambled.in
index 0c9dcaf..4134942 100644
--- a/test/030_move/071_R_scrambled.in
+++ b/test/030_move/071_R_scrambled.in
@@ -1,2 +1,2 @@
1R 1R
2UF1 BR0 DL1 UR1 FR1 FL0 UL0 BL1 DR0 DF1 DB0 UB0 UBR2 DFL1 UFL0 DBR1 UBL2 DFR0 DBL2 UFR1 2VKELRGXI=QLWUYJFaHTCB=A
diff --git a/test/030_move/071_R_scrambled.out b/test/030_move/071_R_scrambled.out
index 650bcc8..1711b22 100644
--- a/test/030_move/071_R_scrambled.out
+++ b/test/030_move/071_R_scrambled.out
@@ -1 +1 @@
UF1 BR0 DL1 UR1 DR0 FL0 UL0 UB0 BL1 DF1 DB0 FR1 DBL1 DFL1 UFL0 DFR2 UBL2 UBR0 DBR2 UFR1 PKEWRFTI=QLWUHJFBaTCY=A
diff --git a/test/030_move/080_R2_solved.in b/test/030_move/080_R2_solved.in
index 554a084..25b0b10 100644
--- a/test/030_move/080_R2_solved.in
+++ b/test/030_move/080_R2_solved.in
@@ -1,2 +1,2 @@
1R2 1R2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/080_R2_solved.out b/test/030_move/080_R2_solved.out
index 90765e2..6611740 100644
--- a/test/030_move/080_R2_solved.out
+++ b/test/030_move/080_R2_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/test/030_move/090_R3_solved.in b/test/030_move/090_R3_solved.in
index ca6cfd8..ffab472 100644
--- a/test/030_move/090_R3_solved.in
+++ b/test/030_move/090_R3_solved.in
@@ -1,2 +1,2 @@
1R3 1R3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/090_R3_solved.out b/test/030_move/090_R3_solved.out
index d4abffc..a14e69b 100644
--- a/test/030_move/090_R3_solved.out
+++ b/test/030_move/090_R3_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/030_move/100_L_solved.in b/test/030_move/100_L_solved.in
index 14ebb5f..e47b8ff 100644
--- a/test/030_move/100_L_solved.in
+++ b/test/030_move/100_L_solved.in
@@ -1,2 +1,2 @@
1L 1L
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/100_L_solved.out b/test/030_move/100_L_solved.out
index 0b0565c..5aa4131 100644
--- a/test/030_move/100_L_solved.out
+++ b/test/030_move/100_L_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/030_move/110_L2_solved.in b/test/030_move/110_L2_solved.in
index 8224bcd..c71e7ff 100644
--- a/test/030_move/110_L2_solved.in
+++ b/test/030_move/110_L2_solved.in
@@ -1,2 +1,2 @@
1L2 1L2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/110_L2_solved.out b/test/030_move/110_L2_solved.out
index 2498c87..4fe322f 100644
--- a/test/030_move/110_L2_solved.out
+++ b/test/030_move/110_L2_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 DL0 UL0 DR0 FR0 BL0 FL0 BR0 UFR0 DFL0 UBL0 DBR0 DBL0 UBR0 DFR0 UFL0 ACBDHFGE=ABCDEGFHIKJL=A
diff --git a/test/030_move/120_L3_solved.in b/test/030_move/120_L3_solved.in
index 552d319..7f82d91 100644
--- a/test/030_move/120_L3_solved.in
+++ b/test/030_move/120_L3_solved.in
@@ -1,2 +1,2 @@
1L3 1L3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/120_L3_solved.out b/test/030_move/120_L3_solved.out
index 2ac2912..fbe35f3 100644
--- a/test/030_move/120_L3_solved.out
+++ b/test/030_move/120_L3_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/030_move/130_F_solved.in b/test/030_move/130_F_solved.in
index abdbd35..dcb65dc 100644
--- a/test/030_move/130_F_solved.in
+++ b/test/030_move/130_F_solved.in
@@ -1,2 +1,2 @@
1F 1F
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/130_F_solved.out b/test/030_move/130_F_solved.out
index e805af8..a75744c 100644
--- a/test/030_move/130_F_solved.out
+++ b/test/030_move/130_F_solved.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/030_move/132_F_scrambled.in b/test/030_move/132_F_scrambled.in
index 8b15575..e793507 100644
--- a/test/030_move/132_F_scrambled.in
+++ b/test/030_move/132_F_scrambled.in
@@ -1,2 +1,2 @@
1F 1F
2DL1 BR0 DR0 UR1 DF0 FL1 BL0 UL0 FR0 UF0 DB1 UB0 UFR0 DBL1 DBR0 UFL1 DFR1 DFL1 UBL2 UBR0 2APDMOKRF=WLHUDZKFIASB=A
diff --git a/test/030_move/132_F_scrambled.out b/test/030_move/132_F_scrambled.out
index 3aea663..2992f71 100644
--- a/test/030_move/132_F_scrambled.out
+++ b/test/030_move/132_F_scrambled.out
@@ -1 +1 @@
UF1 BR0 DR0 FR1 DF0 FL1 BL0 UL0 DL0 UR0 DB1 UB0 DFR2 DBL1 UBL0 UFL1 DBR2 DFL1 UFR2 UBR0 WPBMTKQF=QLHYDZKFGESB=A
diff --git a/test/030_move/133_F_scrambled_2.in b/test/030_move/133_F_scrambled_2.in
index fdd5139..35af326 100644
--- a/test/030_move/133_F_scrambled_2.in
+++ b/test/030_move/133_F_scrambled_2.in
@@ -1,2 +1,2 @@
1F 1F
2BL1 DB0 UL1 DF0 BR1 UF1 DL0 FL1 UB0 DR1 FR1 UR1 UBR2 UBL1 DFR2 DBL2 DBR0 DFL0 UFR0 UFL2 2VJWXDCAU=aCVDbQGZBXYU=A
diff --git a/test/030_move/133_F_scrambled_2.out b/test/030_move/133_F_scrambled_2.out
index 3546894..7fd0f96 100644
--- a/test/030_move/133_F_scrambled_2.out
+++ b/test/030_move/133_F_scrambled_2.out
@@ -1 +1 @@
DR0 DB0 UL1 UB1 BR1 UF1 DL0 FL1 BL0 DF1 FR1 UR1 DBR1 UBL1 UFR1 DBL2 DFR1 DFL0 UBR1 UFL2 LJIXOCNU=HCVRbQGZKTYU=A
diff --git a/test/030_move/140_F2_solved.in b/test/030_move/140_F2_solved.in
index 83aab30..9ac2bbf 100644
--- a/test/030_move/140_F2_solved.in
+++ b/test/030_move/140_F2_solved.in
@@ -1,2 +1,2 @@
1F2 1F2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/140_F2_solved.out b/test/030_move/140_F2_solved.out
index 8aa701f..69720be 100644
--- a/test/030_move/140_F2_solved.out
+++ b/test/030_move/140_F2_solved.out
@@ -1 +1 @@
DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 CBADGFEH=DBCAEFGHJIKL=A
diff --git a/test/030_move/150_F3_solved.in b/test/030_move/150_F3_solved.in
index 2c766c1..dbfb928 100644
--- a/test/030_move/150_F3_solved.in
+++ b/test/030_move/150_F3_solved.in
@@ -1,2 +1,2 @@
1F3 1F3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/150_F3_solved.out b/test/030_move/150_F3_solved.out
index 40f1260..500d969 100644
--- a/test/030_move/150_F3_solved.out
+++ b/test/030_move/150_F3_solved.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/030_move/160_B_solved.in b/test/030_move/160_B_solved.in
index 6062e45..25b045d 100644
--- a/test/030_move/160_B_solved.in
+++ b/test/030_move/160_B_solved.in
@@ -1,2 +1,2 @@
1B 1B
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/160_B_solved.out b/test/030_move/160_B_solved.out
index f7fb13c..73e099a 100644
--- a/test/030_move/160_B_solved.out
+++ b/test/030_move/160_B_solved.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/030_move/170_B2_solved.in b/test/030_move/170_B2_solved.in
index 0ff1190..bd25f3a 100644
--- a/test/030_move/170_B2_solved.in
+++ b/test/030_move/170_B2_solved.in
@@ -1,2 +1,2 @@
1B2 1B2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/170_B2_solved.out b/test/030_move/170_B2_solved.out
index 9b33e35..1021aeb 100644
--- a/test/030_move/170_B2_solved.out
+++ b/test/030_move/170_B2_solved.out
@@ -1 +1 @@
UF0 DB0 UB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BR0 BL0 UFR0 DBR0 DFL0 UBL0 UFL0 DBL0 DFR0 UBR0 ADCBEHGF=ACBDEFGHIJLK=A
diff --git a/test/030_move/180_B3_solved.in b/test/030_move/180_B3_solved.in
index c59636f..a38d932 100644
--- a/test/030_move/180_B3_solved.in
+++ b/test/030_move/180_B3_solved.in
@@ -1,2 +1,2 @@
1B3 1B3
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/180_B3_solved.out b/test/030_move/180_B3_solved.out
index 1367517..78bd94a 100644
--- a/test/030_move/180_B3_solved.out
+++ b/test/030_move/180_B3_solved.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/030_move/200_scramble_solved.in b/test/030_move/200_scramble_solved.in
index 939d876..65127d4 100644
--- a/test/030_move/200_scramble_solved.in
+++ b/test/030_move/200_scramble_solved.in
@@ -1,2 +1,2 @@
1B' D' B' R2 B' R F D F2 U2 B D2 F R2 F2 L2 F L2 U2 1B' D' B' R2 B' R F D F2 U2 B D2 F R2 F2 L2 F L2 U2
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/200_scramble_solved.out b/test/030_move/200_scramble_solved.out
index 690ff6b..6d77f16 100644
--- a/test/030_move/200_scramble_solved.out
+++ b/test/030_move/200_scramble_solved.out
@@ -1 +1 @@
BR0 DF0 FL1 UB0 BL0 FR1 UR1 UL0 DR1 DB0 UF1 DL1 DFL0 DFR0 UFL1 UBL2 DBR1 DBL0 UFR1 UBR1 CGMRLHIN=LDZBKYUFXCQW=A
diff --git a/test/030_move/201_solution_scrambled.in b/test/030_move/201_solution_scrambled.in
index a838b4c..e4d20b5 100644
--- a/test/030_move/201_solution_scrambled.in
+++ b/test/030_move/201_solution_scrambled.in
@@ -1,2 +1,2 @@
1F' B' D2 U2 F2 U' L' U D B D' R2 B' L' R' D' R D L2 U' L' B L L U F U' F' U F U' F2 L' F U F U' F' U2 F2 R2 L2 B2 1F' B' D2 U2 F2 U' L' U D B D' R2 B' L' R' D' R D L2 U' L' B L L U F U' F' U F U' F2 L' F U F U' F' U2 F2 R2 L2 B2
2BR0 DF0 FL1 UB0 BL0 FR1 UR1 UL0 DR1 DB0 UF1 DL1 DFL0 DFR0 UFL1 UBL2 DBR1 DBL0 UFR1 UBR1 2CGMRLHIN=LDZBKYUFXCQW=A
diff --git a/test/030_move/201_solution_scrambled.out b/test/030_move/201_solution_scrambled.out
index dff224d..5aa6ba7 100644
--- a/test/030_move/201_solution_scrambled.out
+++ b/test/030_move/201_solution_scrambled.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/300_multimove_solved.in b/test/030_move/300_multimove_solved.in
index e084353..751602a 100644
--- a/test/030_move/300_multimove_solved.in
+++ b/test/030_move/300_multimove_solved.in
@@ -1,2 +1,2 @@
1B2 D' L2 D' B2 D B2 R2 B2 D U2 R D R2 B L' B' L2 U B2 U 1B2 D' L2 D' B2 D B2 R2 B2 D U2 R D R2 B L' B' L2 U B2 U
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/030_move/300_multimove_solved.out b/test/030_move/300_multimove_solved.out
index 6c52430..d069105 100644
--- a/test/030_move/300_multimove_solved.out
+++ b/test/030_move/300_multimove_solved.out
@@ -1 +1 @@
UB1 UL0 UF1 DL0 FL0 DB0 BR0 BL0 DF0 FR0 DR0 UR0 UBR1 DFR1 UBL0 DFL2 DBR1 DBL2 UFR1 UFL1 NOBSLXIM=RFQGJCLKDIHE=A
diff --git a/test/030_move/301_multimove_scrambled.in b/test/030_move/301_multimove_scrambled.in
index cc649c0..dbe14c6 100644
--- a/test/030_move/301_multimove_scrambled.in
+++ b/test/030_move/301_multimove_scrambled.in
@@ -1,2 +1,2 @@
1D2 B2 L U2 B2 L' B2 R' D2 R D2 B F L U F2 L' R' B2 U B2 1D2 B2 L U2 B2 L' B2 R' D2 R D2 B F L U F2 L' R' B2 U B2
2UB1 UL0 UF1 DL0 FL0 DB0 BR0 BL0 DF0 FR0 DR0 UR0 UBR1 DFR1 UBL0 DFL2 DBR1 DBL2 UFR1 UFL1 2NOBSLXIM=RFQGJCLKDIHE=A
diff --git a/test/030_move/301_multimove_scrambled.out b/test/030_move/301_multimove_scrambled.out
index 102ac1b..9c668da 100644
--- a/test/030_move/301_multimove_scrambled.out
+++ b/test/030_move/301_multimove_scrambled.out
@@ -1 +1 @@
UL1 UB0 DL1 UR0 BL1 DR1 BR0 DB0 FL1 UF0 FR1 DF0 DFR2 DFL0 DBL0 UFL0 UBR1 UBL0 UFR2 DBR1 WCHENBQL=VBWEaXLCZAYD=A
diff --git a/test/030_move/move_tests.c b/test/030_move/move_tests.c
index 2f0ecfb..e5aed44 100644
--- a/test/030_move/move_tests.c
+++ b/test/030_move/move_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 8
9 fgets(movestr, STRLENMAX, stdin); 9 fgets(movestr, STRLENMAX, stdin);
10 fgets(cubestr, STRLENMAX, stdin); 10 fgets(cubestr, STRLENMAX, stdin);
11 cube = readcube("H48", cubestr); 11 cube = readcube(cubestr);
12 12
13 cube = applymoves(cube, movestr); 13 cube = applymoves(cube, movestr);
14 14
@@ -17,7 +17,7 @@ void run(void) {
17 } else if (!issolvable(cube)) { 17 } else if (!issolvable(cube)) {
18 printf("Moved cube is not solvable\n"); 18 printf("Moved cube is not solvable\n");
19 } else { 19 } else {
20 writecube("H48", cube, NISSY_SIZE_H48, cubestr); 20 writecube(cube, NISSY_SIZE_CUBE, cubestr);
21 printf("%s\n", cubestr); 21 printf("%s\n", cubestr);
22 } 22 }
23} 23}
diff --git a/test/031_premove/001_U_solved.in b/test/031_premove/001_U_solved.in
index 62495cb..3c87da7 100644
--- a/test/031_premove/001_U_solved.in
+++ b/test/031_premove/001_U_solved.in
@@ -1,2 +1,2 @@
1U 1U
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/031_premove/001_U_solved.out b/test/031_premove/001_U_solved.out
index 7721ab5..111ba2b 100644
--- a/test/031_premove/001_U_solved.out
+++ b/test/031_premove/001_U_solved.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/031_premove/002_U_scrambled.in b/test/031_premove/002_U_scrambled.in
index 423c408..252b09f 100644
--- a/test/031_premove/002_U_scrambled.in
+++ b/test/031_premove/002_U_scrambled.in
@@ -1,4 +1,4 @@
1U 1U
2UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 2CILVXGMR=FKbGIDSXBJAU=A
3 3
4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/031_premove/002_U_scrambled.out b/test/031_premove/002_U_scrambled.out
index b25b400..5d7e0eb 100644
--- a/test/031_premove/002_U_scrambled.out
+++ b/test/031_premove/002_U_scrambled.out
@@ -1 +1 @@
UB0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UR0 FL0 UL0 UF1 DFL0 UFL1 DBR1 UFR2 DBL2 DFR0 UBL1 UBR2 CMLQXGJV=BKbGIDSXEJFQ=A
diff --git a/test/031_premove/003_F3_scrambled.in b/test/031_premove/003_F3_scrambled.in
index d222a18..4d0547a 100644
--- a/test/031_premove/003_F3_scrambled.in
+++ b/test/031_premove/003_F3_scrambled.in
@@ -1,4 +1,4 @@
1F' 1F'
2UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 2CILVXGMR=FKbGIDSXBJAU=A
3 3
4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/031_premove/003_F3_scrambled.out b/test/031_premove/003_F3_scrambled.out
index 9d8d663..96e6485 100644
--- a/test/031_premove/003_F3_scrambled.out
+++ b/test/031_premove/003_F3_scrambled.out
@@ -1 +1 @@
UL0 BL0 BR1 DL0 UF1 FR1 DB1 DR1 UB0 DF1 FL1 UR1 DFR1 UFL2 DBR1 UBR2 DBL2 UFR2 DFL0 UBL2 OULVXQCR=FKbGQYSXBTZU=A
diff --git a/test/031_premove/premove_tests.c b/test/031_premove/premove_tests.c
index 07631c1..24773cd 100644
--- a/test/031_premove/premove_tests.c
+++ b/test/031_premove/premove_tests.c
@@ -12,7 +12,7 @@ void run(void) {
12 fgets(movestr, STRLENMAX, stdin); 12 fgets(movestr, STRLENMAX, stdin);
13 move = readmove(movestr[0]) + readmodifier(movestr[1]); 13 move = readmove(movestr[0]) + readmodifier(movestr[1]);
14 fgets(cubestr, STRLENMAX, stdin); 14 fgets(cubestr, STRLENMAX, stdin);
15 cube = readcube("H48", cubestr); 15 cube = readcube(cubestr);
16 16
17 cube = premove(cube, move); 17 cube = premove(cube, move);
18 18
@@ -21,7 +21,7 @@ void run(void) {
21 } else if (!issolvable(cube)) { 21 } else if (!issolvable(cube)) {
22 printf("Moved cube is not solvable\n"); 22 printf("Moved cube is not solvable\n");
23 } else { 23 } else {
24 writecube("H48", cube, NISSY_SIZE_H48, cubestr); 24 writecube(cube, NISSY_SIZE_CUBE, cubestr);
25 printf("%s\n", cubestr); 25 printf("%s\n", cubestr);
26 } 26 }
27} 27}
diff --git a/test/040_inverse_cube/00_solved.in b/test/040_inverse_cube/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/040_inverse_cube/00_solved.in
+++ b/test/040_inverse_cube/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/040_inverse_cube/00_solved.out b/test/040_inverse_cube/00_solved.out
index dff224d..5aa6ba7 100644
--- a/test/040_inverse_cube/00_solved.out
+++ b/test/040_inverse_cube/00_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/040_inverse_cube/01_scrambled.in b/test/040_inverse_cube/01_scrambled.in
index 263213b..37bad2b 100644
--- a/test/040_inverse_cube/01_scrambled.in
+++ b/test/040_inverse_cube/01_scrambled.in
@@ -1 +1 @@
DR0 DB0 BL0 DF1 UB0 UR1 FR1 UF0 FL1 DL0 BR1 UL1 DBL2 DFL0 UBR1 DFR2 UFR0 DBR1 UBL0 UFL0 XCNWALBE=HCKTBUYAZGbV=A
diff --git a/test/040_inverse_cube/01_scrambled.out b/test/040_inverse_cube/01_scrambled.out
index 25089c6..b746ff5 100644
--- a/test/040_inverse_cube/01_scrambled.out
+++ b/test/040_inverse_cube/01_scrambled.out
@@ -1 +1 @@
DR0 UR0 UB0 DF1 UL1 BR1 FL0 UF0 DL1 FR1 DB0 BL1 UFL0 DFR0 UBL0 UBR2 DBL0 DFL2 DBR1 UFR1 EGBVHSLI=HEBTVbJAWYCa=A
diff --git a/test/040_inverse_cube/inverse_tests.c b/test/040_inverse_cube/inverse_tests.c
index c1045ab..9e8925a 100644
--- a/test/040_inverse_cube/inverse_tests.c
+++ b/test/040_inverse_cube/inverse_tests.c
@@ -7,7 +7,7 @@ void run(void) {
7 cube_t cube, inv; 7 cube_t cube, inv;
8 8
9 fgets(str, STRLENMAX, stdin); 9 fgets(str, STRLENMAX, stdin);
10 cube = readcube("H48", str); 10 cube = readcube(str);
11 inv = inverse(cube); 11 inv = inverse(cube);
12 12
13 if (iserror(inv)) { 13 if (iserror(inv)) {
@@ -15,7 +15,7 @@ void run(void) {
15 } else if (!issolvable(inv)) { 15 } else if (!issolvable(inv)) {
16 printf("Inverted cube is not solvable\n"); 16 printf("Inverted cube is not solvable\n");
17 } else { 17 } else {
18 writecube("H48", inv, NISSY_SIZE_H48, str); 18 writecube(inv, NISSY_SIZE_CUBE, str);
19 printf("%s\n", str); 19 printf("%s\n", str);
20 } 20 }
21} 21}
diff --git a/test/050_compose/00_solved_solved.in b/test/050_compose/00_solved_solved.in
index 4ccdb6e..14c8c39 100644
--- a/test/050_compose/00_solved_solved.in
+++ b/test/050_compose/00_solved_solved.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/00_solved_solved.out b/test/050_compose/00_solved_solved.out
index dff224d..5aa6ba7 100644
--- a/test/050_compose/00_solved_solved.out
+++ b/test/050_compose/00_solved_solved.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/01_solved_U.in b/test/050_compose/01_solved_U.in
index e0559dd..1c136e9 100644
--- a/test/050_compose/01_solved_U.in
+++ b/test/050_compose/01_solved_U.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/050_compose/01_solved_U.out b/test/050_compose/01_solved_U.out
index b5b36ad..250d3a1 100644
--- a/test/050_compose/01_solved_U.out
+++ b/test/050_compose/01_solved_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/050_compose/02_solved_scrambled.in b/test/050_compose/02_solved_scrambled.in
index ad36258..c3c5a24 100644
--- a/test/050_compose/02_solved_scrambled.in
+++ b/test/050_compose/02_solved_scrambled.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2DR0 DB0 BL0 DF1 UB0 UR1 FR1 UF0 FL1 DL0 BR1 UL1 DBL2 DFL0 UBR1 DFR2 UFR0 DBR1 UBL0 UFL0 2XCNWALBE=HCKTBUYAZGbV=A
diff --git a/test/050_compose/02_solved_scrambled.out b/test/050_compose/02_solved_scrambled.out
index 263213b..37bad2b 100644
--- a/test/050_compose/02_solved_scrambled.out
+++ b/test/050_compose/02_solved_scrambled.out
@@ -1 +1 @@
DR0 DB0 BL0 DF1 UB0 UR1 FR1 UF0 FL1 DL0 BR1 UL1 DBL2 DFL0 UBR1 DFR2 UFR0 DBR1 UBL0 UFL0 XCNWALBE=HCKTBUYAZGbV=A
diff --git a/test/050_compose/11_U_solved.in b/test/050_compose/11_U_solved.in
index 5993795..07fcf2c 100644
--- a/test/050_compose/11_U_solved.in
+++ b/test/050_compose/11_U_solved.in
@@ -1,2 +1,2 @@
1UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 1FECDABGH=EFCDBAGHIJKL=A
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/11_U_solved.out b/test/050_compose/11_U_solved.out
index b5b36ad..250d3a1 100644
--- a/test/050_compose/11_U_solved.out
+++ b/test/050_compose/11_U_solved.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/050_compose/12_scrambled_solved.in b/test/050_compose/12_scrambled_solved.in
index 3efd52c..9ae4ad3 100644
--- a/test/050_compose/12_scrambled_solved.in
+++ b/test/050_compose/12_scrambled_solved.in
@@ -1,2 +1,2 @@
1DR0 DB0 BL0 DF1 UB0 UR1 FR1 UF0 FL1 DL0 BR1 UL1 DBL2 DFL0 UBR1 DFR2 UFR0 DBR1 UBL0 UFL0 1XCNWALBE=HCKTBUYAZGbV=A
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/12_scrambled_solved.out b/test/050_compose/12_scrambled_solved.out
index 263213b..37bad2b 100644
--- a/test/050_compose/12_scrambled_solved.out
+++ b/test/050_compose/12_scrambled_solved.out
@@ -1 +1 @@
DR0 DB0 BL0 DF1 UB0 UR1 FR1 UF0 FL1 DL0 BR1 UL1 DBL2 DFL0 UBR1 DFR2 UFR0 DBR1 UBL0 UFL0 XCNWALBE=HCKTBUYAZGbV=A
diff --git a/test/050_compose/20_U_U.in b/test/050_compose/20_U_U.in
index 2778e82..b54ecde 100644
--- a/test/050_compose/20_U_U.in
+++ b/test/050_compose/20_U_U.in
@@ -1,2 +1,2 @@
1UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 1FECDABGH=EFCDBAGHIJKL=A
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/050_compose/20_U_U.out b/test/050_compose/20_U_U.out
index 316ad57..b14792e 100644
--- a/test/050_compose/20_U_U.out
+++ b/test/050_compose/20_U_U.out
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/050_compose/21_U_Uinverse.in b/test/050_compose/21_U_Uinverse.in
index 495220e..f9f3b21 100644
--- a/test/050_compose/21_U_Uinverse.in
+++ b/test/050_compose/21_U_Uinverse.in
@@ -1,2 +1,2 @@
1UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 1FECDABGH=EFCDBAGHIJKL=A
2UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 2EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/050_compose/21_U_Uinverse.out b/test/050_compose/21_U_Uinverse.out
index dff224d..5aa6ba7 100644
--- a/test/050_compose/21_U_Uinverse.out
+++ b/test/050_compose/21_U_Uinverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/22_F_Finverse.in b/test/050_compose/22_F_Finverse.in
index 4a2f1e6..86a253b 100644
--- a/test/050_compose/22_F_Finverse.in
+++ b/test/050_compose/22_F_Finverse.in
@@ -1,2 +1,2 @@
1FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 1MBODSFQH=ZBCYEFGHQTKL=A
2FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 2OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/050_compose/22_F_Finverse.out b/test/050_compose/22_F_Finverse.out
index dff224d..5aa6ba7 100644
--- a/test/050_compose/22_F_Finverse.out
+++ b/test/050_compose/22_F_Finverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/23_F2_F2.in b/test/050_compose/23_F2_F2.in
index 5fd1081..f331c99 100644
--- a/test/050_compose/23_F2_F2.in
+++ b/test/050_compose/23_F2_F2.in
@@ -1,2 +1,2 @@
1DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 1CBADGFEH=DBCAEFGHJIKL=A
2DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 2CBADGFEH=DBCAEFGHJIKL=A
diff --git a/test/050_compose/23_F2_F2.out b/test/050_compose/23_F2_F2.out
index dff224d..5aa6ba7 100644
--- a/test/050_compose/23_F2_F2.out
+++ b/test/050_compose/23_F2_F2.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/24_U_F.in b/test/050_compose/24_U_F.in
index d353f95..5bdee45 100644
--- a/test/050_compose/24_U_F.in
+++ b/test/050_compose/24_U_F.in
@@ -1,2 +1,2 @@
1UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 1FECDABGH=EFCDBAGHIJKL=A
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/050_compose/24_U_F.out b/test/050_compose/24_U_F.out
index 4fda397..facb381 100644
--- a/test/050_compose/24_U_F.out
+++ b/test/050_compose/24_U_F.out
@@ -1 +1 @@
FL1 UL0 DB0 FR1 UB0 UF0 DL0 DR0 UR1 DF1 BL0 BR0 UFR1 UFL0 DFR1 DBR0 DFL2 UBL0 UBR2 DBL0 IEODSBVH=ZFCYBAGHUTKL=A
diff --git a/test/050_compose/25_F_R.in b/test/050_compose/25_F_R.in
index 2cb5455..caecc38 100644
--- a/test/050_compose/25_F_R.in
+++ b/test/050_compose/25_F_R.in
@@ -1,2 +1,2 @@
1FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 1MBODSFQH=ZBCYEFGHQTKL=A
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/050_compose/25_F_R.out b/test/050_compose/25_F_R.out
index 2119f37..c4ddf2d 100644
--- a/test/050_compose/25_F_R.out
+++ b/test/050_compose/25_F_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UF1 UL0 DL0 BR0 DR0 DF1 BL0 UR0 UFR1 UBL0 DFR1 UBR2 DFL2 UFL2 DBR1 DBL0 IBOVSULH=ZBCYQFGLHTKE=A
diff --git a/test/050_compose/30_scrambled_inverse.in b/test/050_compose/30_scrambled_inverse.in
index abf72e2..92ebae3 100644
--- a/test/050_compose/30_scrambled_inverse.in
+++ b/test/050_compose/30_scrambled_inverse.in
@@ -1,4 +1,4 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2BL0 FR0 DL1 UL0 BR1 UF0 DF0 DR1 UR0 FL0 UB0 DB1 UBL2 DBL1 UFR0 DFL2 DFR2 DBR1 UBR0 UFL1 2RPASWLFM=KIWFbADXEJBS=A
3 3
4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/050_compose/30_scrambled_inverse.out b/test/050_compose/30_scrambled_inverse.out
index dff224d..5aa6ba7 100644
--- a/test/050_compose/30_scrambled_inverse.out
+++ b/test/050_compose/30_scrambled_inverse.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/050_compose/31_scrambled_scrambled.in b/test/050_compose/31_scrambled_scrambled.in
index 7fe874c..904292f 100644
--- a/test/050_compose/31_scrambled_scrambled.in
+++ b/test/050_compose/31_scrambled_scrambled.in
@@ -1,4 +1,4 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2FL1 BR0 DB0 UR1 UF0 UB0 DL0 FR0 UL1 DF1 BL0 DR0 UBL1 DBR1 UFR2 DFR2 DFL2 UBR2 UFL2 DBL0 2JLQWSVUH=ZLCUABGIVTKH=A
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
4// Followed by R' U' F 4// Followed by R' U' F
diff --git a/test/050_compose/31_scrambled_scrambled.out b/test/050_compose/31_scrambled_scrambled.out
index 353fb49..426e4fe 100644
--- a/test/050_compose/31_scrambled_scrambled.out
+++ b/test/050_compose/31_scrambled_scrambled.out
@@ -1 +1 @@
FL1 UR1 BR1 FR1 UL0 BL0 DB1 UB0 DF1 DL1 UF0 DR1 UFR2 UBR0 DFL2 UFL0 DBR0 DFR2 DBL1 UBL2 QFSEDWPR=ZUbYFKSBTWAX=A
diff --git a/test/050_compose/compose_tests.c b/test/050_compose/compose_tests.c
index c778838..c61775f 100644
--- a/test/050_compose/compose_tests.c
+++ b/test/050_compose/compose_tests.c
@@ -7,9 +7,9 @@ void run(void) {
7 cube_t c1, c2, c3; 7 cube_t c1, c2, c3;
8 8
9 fgets(str, STRLENMAX, stdin); 9 fgets(str, STRLENMAX, stdin);
10 c1 = readcube("H48", str); 10 c1 = readcube(str);
11 fgets(str, STRLENMAX, stdin); 11 fgets(str, STRLENMAX, stdin);
12 c2 = readcube("H48", str); 12 c2 = readcube(str);
13 13
14 c3 = compose(c1, c2); 14 c3 = compose(c1, c2);
15 15
@@ -18,7 +18,7 @@ void run(void) {
18 } else if (!issolvable(c3)) { 18 } else if (!issolvable(c3)) {
19 printf("Composed cube is not solvable\n"); 19 printf("Composed cube is not solvable\n");
20 } else { 20 } else {
21 writecube("H48", c3, NISSY_SIZE_H48, str); 21 writecube(c3, NISSY_SIZE_CUBE, str);
22 printf("%s\n", str); 22 printf("%s\n", str);
23 } 23 }
24} 24}
diff --git a/test/060_transform/000_solved_UFr.in b/test/060_transform/000_solved_UFr.in
index aa89e85..f2c7b66 100644
--- a/test/060_transform/000_solved_UFr.in
+++ b/test/060_transform/000_solved_UFr.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/060_transform/000_solved_UFr.out b/test/060_transform/000_solved_UFr.out
index dff224d..5aa6ba7 100644
--- a/test/060_transform/000_solved_UFr.out
+++ b/test/060_transform/000_solved_UFr.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/060_transform/001_solved_BLm.in b/test/060_transform/001_solved_BLm.in
index 43aadb8..4082f77 100644
--- a/test/060_transform/001_solved_BLm.in
+++ b/test/060_transform/001_solved_BLm.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/060_transform/001_solved_BLm.out b/test/060_transform/001_solved_BLm.out
index dff224d..5aa6ba7 100644
--- a/test/060_transform/001_solved_BLm.out
+++ b/test/060_transform/001_solved_BLm.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/060_transform/100_UFr_U.in b/test/060_transform/100_UFr_U.in
index 80d7af7..8aaf3c1 100644
--- a/test/060_transform/100_UFr_U.in
+++ b/test/060_transform/100_UFr_U.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/100_UFr_U.out b/test/060_transform/100_UFr_U.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/100_UFr_U.out
+++ b/test/060_transform/100_UFr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/101_UFm_U.in b/test/060_transform/101_UFm_U.in
index 17d110e..9adf305 100644
--- a/test/060_transform/101_UFm_U.in
+++ b/test/060_transform/101_UFm_U.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/101_UFm_U.out b/test/060_transform/101_UFm_U.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/101_UFm_U.out
+++ b/test/060_transform/101_UFm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/102_UFr_R.in b/test/060_transform/102_UFr_R.in
index 96099d6..b75e581 100644
--- a/test/060_transform/102_UFr_R.in
+++ b/test/060_transform/102_UFr_R.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/102_UFr_R.out b/test/060_transform/102_UFr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/102_UFr_R.out
+++ b/test/060_transform/102_UFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/103_UFm_R.in b/test/060_transform/103_UFm_R.in
index c70a8b5..61256f8 100644
--- a/test/060_transform/103_UFm_R.in
+++ b/test/060_transform/103_UFm_R.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/103_UFm_R.out b/test/060_transform/103_UFm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/103_UFm_R.out
+++ b/test/060_transform/103_UFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/104_UFr_F.in b/test/060_transform/104_UFr_F.in
index 0f3585b..4edd5f4 100644
--- a/test/060_transform/104_UFr_F.in
+++ b/test/060_transform/104_UFr_F.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/104_UFr_F.out b/test/060_transform/104_UFr_F.out
index e805af8..a75744c 100644
--- a/test/060_transform/104_UFr_F.out
+++ b/test/060_transform/104_UFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/105_UFm_F.in b/test/060_transform/105_UFm_F.in
index e7647bc..92b002e 100644
--- a/test/060_transform/105_UFm_F.in
+++ b/test/060_transform/105_UFm_F.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/105_UFm_F.out b/test/060_transform/105_UFm_F.out
index 40f1260..500d969 100644
--- a/test/060_transform/105_UFm_F.out
+++ b/test/060_transform/105_UFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/106_ULr_U.in b/test/060_transform/106_ULr_U.in
index a02f9c3..9d69fb8 100644
--- a/test/060_transform/106_ULr_U.in
+++ b/test/060_transform/106_ULr_U.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/106_ULr_U.out b/test/060_transform/106_ULr_U.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/106_ULr_U.out
+++ b/test/060_transform/106_ULr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/107_ULm_U.in b/test/060_transform/107_ULm_U.in
index 73bc6a1..dab7a1e 100644
--- a/test/060_transform/107_ULm_U.in
+++ b/test/060_transform/107_ULm_U.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/107_ULm_U.out b/test/060_transform/107_ULm_U.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/107_ULm_U.out
+++ b/test/060_transform/107_ULm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/108_ULr_R.in b/test/060_transform/108_ULr_R.in
index a7cbbb8..b673cc0 100644
--- a/test/060_transform/108_ULr_R.in
+++ b/test/060_transform/108_ULr_R.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/108_ULr_R.out b/test/060_transform/108_ULr_R.out
index e805af8..a75744c 100644
--- a/test/060_transform/108_ULr_R.out
+++ b/test/060_transform/108_ULr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/109_ULm_R.in b/test/060_transform/109_ULm_R.in
index 7ecf097..b0b643d 100644
--- a/test/060_transform/109_ULm_R.in
+++ b/test/060_transform/109_ULm_R.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/109_ULm_R.out b/test/060_transform/109_ULm_R.out
index 40f1260..500d969 100644
--- a/test/060_transform/109_ULm_R.out
+++ b/test/060_transform/109_ULm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/110_ULr_F.in b/test/060_transform/110_ULr_F.in
index 09a5a9a..a581aef 100644
--- a/test/060_transform/110_ULr_F.in
+++ b/test/060_transform/110_ULr_F.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/110_ULr_F.out b/test/060_transform/110_ULr_F.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/110_ULr_F.out
+++ b/test/060_transform/110_ULr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/111_ULm_F.in b/test/060_transform/111_ULm_F.in
index 711de44..9defd0b 100644
--- a/test/060_transform/111_ULm_F.in
+++ b/test/060_transform/111_ULm_F.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/111_ULm_F.out b/test/060_transform/111_ULm_F.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/111_ULm_F.out
+++ b/test/060_transform/111_ULm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/112_UBr_U.in b/test/060_transform/112_UBr_U.in
index ce39549..b1d6f75 100644
--- a/test/060_transform/112_UBr_U.in
+++ b/test/060_transform/112_UBr_U.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/112_UBr_U.out b/test/060_transform/112_UBr_U.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/112_UBr_U.out
+++ b/test/060_transform/112_UBr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/113_UBm_U.in b/test/060_transform/113_UBm_U.in
index 14ca42a..385405a 100644
--- a/test/060_transform/113_UBm_U.in
+++ b/test/060_transform/113_UBm_U.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/113_UBm_U.out b/test/060_transform/113_UBm_U.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/113_UBm_U.out
+++ b/test/060_transform/113_UBm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/114_UBr_R.in b/test/060_transform/114_UBr_R.in
index 5a878d8..75e403c 100644
--- a/test/060_transform/114_UBr_R.in
+++ b/test/060_transform/114_UBr_R.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/114_UBr_R.out b/test/060_transform/114_UBr_R.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/114_UBr_R.out
+++ b/test/060_transform/114_UBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/115_UBm_R.in b/test/060_transform/115_UBm_R.in
index a4e3aa8..aaea6f8 100644
--- a/test/060_transform/115_UBm_R.in
+++ b/test/060_transform/115_UBm_R.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/115_UBm_R.out b/test/060_transform/115_UBm_R.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/115_UBm_R.out
+++ b/test/060_transform/115_UBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/116_UBr_F.in b/test/060_transform/116_UBr_F.in
index fc34148..7617933 100644
--- a/test/060_transform/116_UBr_F.in
+++ b/test/060_transform/116_UBr_F.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/116_UBr_F.out b/test/060_transform/116_UBr_F.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/116_UBr_F.out
+++ b/test/060_transform/116_UBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/117_UBm_F.in b/test/060_transform/117_UBm_F.in
index 79433a7..619a9ee 100644
--- a/test/060_transform/117_UBm_F.in
+++ b/test/060_transform/117_UBm_F.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/117_UBm_F.out b/test/060_transform/117_UBm_F.out
index 1367517..78bd94a 100644
--- a/test/060_transform/117_UBm_F.out
+++ b/test/060_transform/117_UBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/118_URr_U.in b/test/060_transform/118_URr_U.in
index 79ca262..0d01d97 100644
--- a/test/060_transform/118_URr_U.in
+++ b/test/060_transform/118_URr_U.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/118_URr_U.out b/test/060_transform/118_URr_U.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/118_URr_U.out
+++ b/test/060_transform/118_URr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/119_URm_U.in b/test/060_transform/119_URm_U.in
index 4581c22..44c6414 100644
--- a/test/060_transform/119_URm_U.in
+++ b/test/060_transform/119_URm_U.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/119_URm_U.out b/test/060_transform/119_URm_U.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/119_URm_U.out
+++ b/test/060_transform/119_URm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/120_URr_R.in b/test/060_transform/120_URr_R.in
index 4803ca4..f5fc2d1 100644
--- a/test/060_transform/120_URr_R.in
+++ b/test/060_transform/120_URr_R.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/120_URr_R.out b/test/060_transform/120_URr_R.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/120_URr_R.out
+++ b/test/060_transform/120_URr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/121_URm_R.in b/test/060_transform/121_URm_R.in
index df12fd4..21900ca 100644
--- a/test/060_transform/121_URm_R.in
+++ b/test/060_transform/121_URm_R.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/121_URm_R.out b/test/060_transform/121_URm_R.out
index 1367517..78bd94a 100644
--- a/test/060_transform/121_URm_R.out
+++ b/test/060_transform/121_URm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/122_URr_F.in b/test/060_transform/122_URr_F.in
index 7d06199..8dc973e 100644
--- a/test/060_transform/122_URr_F.in
+++ b/test/060_transform/122_URr_F.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/122_URr_F.out b/test/060_transform/122_URr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/122_URr_F.out
+++ b/test/060_transform/122_URr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/123_URm_F.in b/test/060_transform/123_URm_F.in
index 8bc2c20..c1485c5 100644
--- a/test/060_transform/123_URm_F.in
+++ b/test/060_transform/123_URm_F.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/123_URm_F.out b/test/060_transform/123_URm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/123_URm_F.out
+++ b/test/060_transform/123_URm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/124_DFr_U.in b/test/060_transform/124_DFr_U.in
index 67200ec..09d1e98 100644
--- a/test/060_transform/124_DFr_U.in
+++ b/test/060_transform/124_DFr_U.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/124_DFr_U.out b/test/060_transform/124_DFr_U.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/124_DFr_U.out
+++ b/test/060_transform/124_DFr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/125_DFm_U.in b/test/060_transform/125_DFm_U.in
index 33ae235..7de9da8 100644
--- a/test/060_transform/125_DFm_U.in
+++ b/test/060_transform/125_DFm_U.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/125_DFm_U.out b/test/060_transform/125_DFm_U.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/125_DFm_U.out
+++ b/test/060_transform/125_DFm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/126_DFr_R.in b/test/060_transform/126_DFr_R.in
index f74ba46..f8501fa 100644
--- a/test/060_transform/126_DFr_R.in
+++ b/test/060_transform/126_DFr_R.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/126_DFr_R.out b/test/060_transform/126_DFr_R.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/126_DFr_R.out
+++ b/test/060_transform/126_DFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/127_DFm_R.in b/test/060_transform/127_DFm_R.in
index 5d930d2..1b9bcaa 100644
--- a/test/060_transform/127_DFm_R.in
+++ b/test/060_transform/127_DFm_R.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/127_DFm_R.out b/test/060_transform/127_DFm_R.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/127_DFm_R.out
+++ b/test/060_transform/127_DFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/128_DFr_F.in b/test/060_transform/128_DFr_F.in
index eb04f3b..d790330 100644
--- a/test/060_transform/128_DFr_F.in
+++ b/test/060_transform/128_DFr_F.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/128_DFr_F.out b/test/060_transform/128_DFr_F.out
index e805af8..a75744c 100644
--- a/test/060_transform/128_DFr_F.out
+++ b/test/060_transform/128_DFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/129_DFm_F.in b/test/060_transform/129_DFm_F.in
index ccd60a7..cce8151 100644
--- a/test/060_transform/129_DFm_F.in
+++ b/test/060_transform/129_DFm_F.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/129_DFm_F.out b/test/060_transform/129_DFm_F.out
index 40f1260..500d969 100644
--- a/test/060_transform/129_DFm_F.out
+++ b/test/060_transform/129_DFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/130_DLr_U.in b/test/060_transform/130_DLr_U.in
index 4aa7b90..5ef9a35 100644
--- a/test/060_transform/130_DLr_U.in
+++ b/test/060_transform/130_DLr_U.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/130_DLr_U.out b/test/060_transform/130_DLr_U.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/130_DLr_U.out
+++ b/test/060_transform/130_DLr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/131_DLm_U.in b/test/060_transform/131_DLm_U.in
index 6097c66..f8047ff 100644
--- a/test/060_transform/131_DLm_U.in
+++ b/test/060_transform/131_DLm_U.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/131_DLm_U.out b/test/060_transform/131_DLm_U.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/131_DLm_U.out
+++ b/test/060_transform/131_DLm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/132_DLr_R.in b/test/060_transform/132_DLr_R.in
index 60f1ede..52350f4 100644
--- a/test/060_transform/132_DLr_R.in
+++ b/test/060_transform/132_DLr_R.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/132_DLr_R.out b/test/060_transform/132_DLr_R.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/132_DLr_R.out
+++ b/test/060_transform/132_DLr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/133_DLm_R.in b/test/060_transform/133_DLm_R.in
index 018921c..9261e71 100644
--- a/test/060_transform/133_DLm_R.in
+++ b/test/060_transform/133_DLm_R.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/133_DLm_R.out b/test/060_transform/133_DLm_R.out
index 1367517..78bd94a 100644
--- a/test/060_transform/133_DLm_R.out
+++ b/test/060_transform/133_DLm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/134_DLr_F.in b/test/060_transform/134_DLr_F.in
index 5254f1f..38532f9 100644
--- a/test/060_transform/134_DLr_F.in
+++ b/test/060_transform/134_DLr_F.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/134_DLr_F.out b/test/060_transform/134_DLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/134_DLr_F.out
+++ b/test/060_transform/134_DLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/135_DLm_F.in b/test/060_transform/135_DLm_F.in
index 57c8406..1c7073a 100644
--- a/test/060_transform/135_DLm_F.in
+++ b/test/060_transform/135_DLm_F.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/135_DLm_F.out b/test/060_transform/135_DLm_F.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/135_DLm_F.out
+++ b/test/060_transform/135_DLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/136_DBr_U.in b/test/060_transform/136_DBr_U.in
index 34f37cb..010865a 100644
--- a/test/060_transform/136_DBr_U.in
+++ b/test/060_transform/136_DBr_U.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/136_DBr_U.out b/test/060_transform/136_DBr_U.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/136_DBr_U.out
+++ b/test/060_transform/136_DBr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/137_DBm_U.in b/test/060_transform/137_DBm_U.in
index 5425205..1fe542e 100644
--- a/test/060_transform/137_DBm_U.in
+++ b/test/060_transform/137_DBm_U.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/137_DBm_U.out b/test/060_transform/137_DBm_U.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/137_DBm_U.out
+++ b/test/060_transform/137_DBm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/138_DBr_R.in b/test/060_transform/138_DBr_R.in
index 99974cd..bb7c803 100644
--- a/test/060_transform/138_DBr_R.in
+++ b/test/060_transform/138_DBr_R.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/138_DBr_R.out b/test/060_transform/138_DBr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/138_DBr_R.out
+++ b/test/060_transform/138_DBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/139_DBm_R.in b/test/060_transform/139_DBm_R.in
index cb84382..46717e2 100644
--- a/test/060_transform/139_DBm_R.in
+++ b/test/060_transform/139_DBm_R.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/139_DBm_R.out b/test/060_transform/139_DBm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/139_DBm_R.out
+++ b/test/060_transform/139_DBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/140_DBr_F.in b/test/060_transform/140_DBr_F.in
index 1342ce5..83ddd86 100644
--- a/test/060_transform/140_DBr_F.in
+++ b/test/060_transform/140_DBr_F.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/140_DBr_F.out b/test/060_transform/140_DBr_F.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/140_DBr_F.out
+++ b/test/060_transform/140_DBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/141_DBm_F.in b/test/060_transform/141_DBm_F.in
index a7fb608..a7cf636 100644
--- a/test/060_transform/141_DBm_F.in
+++ b/test/060_transform/141_DBm_F.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/141_DBm_F.out b/test/060_transform/141_DBm_F.out
index 1367517..78bd94a 100644
--- a/test/060_transform/141_DBm_F.out
+++ b/test/060_transform/141_DBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/142_DRr_U.in b/test/060_transform/142_DRr_U.in
index c24b8a3..8982f5b 100644
--- a/test/060_transform/142_DRr_U.in
+++ b/test/060_transform/142_DRr_U.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/142_DRr_U.out b/test/060_transform/142_DRr_U.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/142_DRr_U.out
+++ b/test/060_transform/142_DRr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/143_DRm_U.in b/test/060_transform/143_DRm_U.in
index 27d922f..9bd58d1 100644
--- a/test/060_transform/143_DRm_U.in
+++ b/test/060_transform/143_DRm_U.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/143_DRm_U.out b/test/060_transform/143_DRm_U.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/143_DRm_U.out
+++ b/test/060_transform/143_DRm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/144_DRr_R.in b/test/060_transform/144_DRr_R.in
index ed38629..6c0f080 100644
--- a/test/060_transform/144_DRr_R.in
+++ b/test/060_transform/144_DRr_R.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/144_DRr_R.out b/test/060_transform/144_DRr_R.out
index e805af8..a75744c 100644
--- a/test/060_transform/144_DRr_R.out
+++ b/test/060_transform/144_DRr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/145_DRm_R.in b/test/060_transform/145_DRm_R.in
index e973e52..b68c3c4 100644
--- a/test/060_transform/145_DRm_R.in
+++ b/test/060_transform/145_DRm_R.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/145_DRm_R.out b/test/060_transform/145_DRm_R.out
index 40f1260..500d969 100644
--- a/test/060_transform/145_DRm_R.out
+++ b/test/060_transform/145_DRm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/146_DRr_F.in b/test/060_transform/146_DRr_F.in
index 03b1d5b..f8ca077 100644
--- a/test/060_transform/146_DRr_F.in
+++ b/test/060_transform/146_DRr_F.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/146_DRr_F.out b/test/060_transform/146_DRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/146_DRr_F.out
+++ b/test/060_transform/146_DRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/147_DRm_F.in b/test/060_transform/147_DRm_F.in
index 25992d6..05ba107 100644
--- a/test/060_transform/147_DRm_F.in
+++ b/test/060_transform/147_DRm_F.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/147_DRm_F.out b/test/060_transform/147_DRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/147_DRm_F.out
+++ b/test/060_transform/147_DRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/148_RUr_U.in b/test/060_transform/148_RUr_U.in
index b808fc6..f296b07 100644
--- a/test/060_transform/148_RUr_U.in
+++ b/test/060_transform/148_RUr_U.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/148_RUr_U.out b/test/060_transform/148_RUr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/148_RUr_U.out
+++ b/test/060_transform/148_RUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/149_RUm_U.in b/test/060_transform/149_RUm_U.in
index 55665cb..c412d3a 100644
--- a/test/060_transform/149_RUm_U.in
+++ b/test/060_transform/149_RUm_U.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/149_RUm_U.out b/test/060_transform/149_RUm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/149_RUm_U.out
+++ b/test/060_transform/149_RUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/150_RUr_R.in b/test/060_transform/150_RUr_R.in
index 94895e0..4c9774d 100644
--- a/test/060_transform/150_RUr_R.in
+++ b/test/060_transform/150_RUr_R.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/150_RUr_R.out b/test/060_transform/150_RUr_R.out
index e805af8..a75744c 100644
--- a/test/060_transform/150_RUr_R.out
+++ b/test/060_transform/150_RUr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/151_RUm_R.in b/test/060_transform/151_RUm_R.in
index 442548e..2810295 100644
--- a/test/060_transform/151_RUm_R.in
+++ b/test/060_transform/151_RUm_R.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/151_RUm_R.out b/test/060_transform/151_RUm_R.out
index 40f1260..500d969 100644
--- a/test/060_transform/151_RUm_R.out
+++ b/test/060_transform/151_RUm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/152_RUr_F.in b/test/060_transform/152_RUr_F.in
index 07bb28e..aa3ad2e 100644
--- a/test/060_transform/152_RUr_F.in
+++ b/test/060_transform/152_RUr_F.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/152_RUr_F.out b/test/060_transform/152_RUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/152_RUr_F.out
+++ b/test/060_transform/152_RUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/153_RUm_F.in b/test/060_transform/153_RUm_F.in
index d3364d0..2709ddd 100644
--- a/test/060_transform/153_RUm_F.in
+++ b/test/060_transform/153_RUm_F.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/153_RUm_F.out b/test/060_transform/153_RUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/153_RUm_F.out
+++ b/test/060_transform/153_RUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/154_RFr_U.in b/test/060_transform/154_RFr_U.in
index ddec358..1efd0e2 100644
--- a/test/060_transform/154_RFr_U.in
+++ b/test/060_transform/154_RFr_U.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/154_RFr_U.out b/test/060_transform/154_RFr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/154_RFr_U.out
+++ b/test/060_transform/154_RFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/155_RFm_U.in b/test/060_transform/155_RFm_U.in
index bd4b0e5..5cca830 100644
--- a/test/060_transform/155_RFm_U.in
+++ b/test/060_transform/155_RFm_U.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/155_RFm_U.out b/test/060_transform/155_RFm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/155_RFm_U.out
+++ b/test/060_transform/155_RFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/156_RFr_R.in b/test/060_transform/156_RFr_R.in
index 5263302..32d8700 100644
--- a/test/060_transform/156_RFr_R.in
+++ b/test/060_transform/156_RFr_R.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/156_RFr_R.out b/test/060_transform/156_RFr_R.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/156_RFr_R.out
+++ b/test/060_transform/156_RFr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/157_RFm_R.in b/test/060_transform/157_RFm_R.in
index 42c4e14..6a8b066 100644
--- a/test/060_transform/157_RFm_R.in
+++ b/test/060_transform/157_RFm_R.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/157_RFm_R.out b/test/060_transform/157_RFm_R.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/157_RFm_R.out
+++ b/test/060_transform/157_RFm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/158_RFr_F.in b/test/060_transform/158_RFr_F.in
index dc60055..4ee0a81 100644
--- a/test/060_transform/158_RFr_F.in
+++ b/test/060_transform/158_RFr_F.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/158_RFr_F.out b/test/060_transform/158_RFr_F.out
index e805af8..a75744c 100644
--- a/test/060_transform/158_RFr_F.out
+++ b/test/060_transform/158_RFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/159_RFm_F.in b/test/060_transform/159_RFm_F.in
index 046926a..f0b9189 100644
--- a/test/060_transform/159_RFm_F.in
+++ b/test/060_transform/159_RFm_F.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/159_RFm_F.out b/test/060_transform/159_RFm_F.out
index 40f1260..500d969 100644
--- a/test/060_transform/159_RFm_F.out
+++ b/test/060_transform/159_RFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/160_RDr_U.in b/test/060_transform/160_RDr_U.in
index 3bac222..1357732 100644
--- a/test/060_transform/160_RDr_U.in
+++ b/test/060_transform/160_RDr_U.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/160_RDr_U.out b/test/060_transform/160_RDr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/160_RDr_U.out
+++ b/test/060_transform/160_RDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/161_RDm_U.in b/test/060_transform/161_RDm_U.in
index e5e4bba..cdc8a2f 100644
--- a/test/060_transform/161_RDm_U.in
+++ b/test/060_transform/161_RDm_U.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/161_RDm_U.out b/test/060_transform/161_RDm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/161_RDm_U.out
+++ b/test/060_transform/161_RDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/162_RDr_R.in b/test/060_transform/162_RDr_R.in
index d1e5f31..06673b2 100644
--- a/test/060_transform/162_RDr_R.in
+++ b/test/060_transform/162_RDr_R.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/162_RDr_R.out b/test/060_transform/162_RDr_R.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/162_RDr_R.out
+++ b/test/060_transform/162_RDr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/163_RDm_R.in b/test/060_transform/163_RDm_R.in
index 8b1ee98..3533c6d 100644
--- a/test/060_transform/163_RDm_R.in
+++ b/test/060_transform/163_RDm_R.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/163_RDm_R.out b/test/060_transform/163_RDm_R.out
index 1367517..78bd94a 100644
--- a/test/060_transform/163_RDm_R.out
+++ b/test/060_transform/163_RDm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/164_RDr_F.in b/test/060_transform/164_RDr_F.in
index 4b49b13..e2b55f9 100644
--- a/test/060_transform/164_RDr_F.in
+++ b/test/060_transform/164_RDr_F.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/164_RDr_F.out b/test/060_transform/164_RDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/164_RDr_F.out
+++ b/test/060_transform/164_RDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/165_RDm_F.in b/test/060_transform/165_RDm_F.in
index db4f4ee..f8a8bb8 100644
--- a/test/060_transform/165_RDm_F.in
+++ b/test/060_transform/165_RDm_F.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/165_RDm_F.out b/test/060_transform/165_RDm_F.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/165_RDm_F.out
+++ b/test/060_transform/165_RDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/166_RBr_U.in b/test/060_transform/166_RBr_U.in
index 48f85f1..4cacef5 100644
--- a/test/060_transform/166_RBr_U.in
+++ b/test/060_transform/166_RBr_U.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/166_RBr_U.out b/test/060_transform/166_RBr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/166_RBr_U.out
+++ b/test/060_transform/166_RBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/167_RBm_U.in b/test/060_transform/167_RBm_U.in
index 036bb07..ffcaaf1 100644
--- a/test/060_transform/167_RBm_U.in
+++ b/test/060_transform/167_RBm_U.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/167_RBm_U.out b/test/060_transform/167_RBm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/167_RBm_U.out
+++ b/test/060_transform/167_RBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/168_RBr_R.in b/test/060_transform/168_RBr_R.in
index 94f799c..2b01ca6 100644
--- a/test/060_transform/168_RBr_R.in
+++ b/test/060_transform/168_RBr_R.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/168_RBr_R.out b/test/060_transform/168_RBr_R.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/168_RBr_R.out
+++ b/test/060_transform/168_RBr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/169_RBm_R.in b/test/060_transform/169_RBm_R.in
index 46cce80..d959d8b 100644
--- a/test/060_transform/169_RBm_R.in
+++ b/test/060_transform/169_RBm_R.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/169_RBm_R.out b/test/060_transform/169_RBm_R.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/169_RBm_R.out
+++ b/test/060_transform/169_RBm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/170_RBr_F.in b/test/060_transform/170_RBr_F.in
index 54b6b57..1486e80 100644
--- a/test/060_transform/170_RBr_F.in
+++ b/test/060_transform/170_RBr_F.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/170_RBr_F.out b/test/060_transform/170_RBr_F.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/170_RBr_F.out
+++ b/test/060_transform/170_RBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/171_RBm_F.in b/test/060_transform/171_RBm_F.in
index b0b4c04..c8550a3 100644
--- a/test/060_transform/171_RBm_F.in
+++ b/test/060_transform/171_RBm_F.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/171_RBm_F.out b/test/060_transform/171_RBm_F.out
index 1367517..78bd94a 100644
--- a/test/060_transform/171_RBm_F.out
+++ b/test/060_transform/171_RBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/172_LUr_U.in b/test/060_transform/172_LUr_U.in
index d4de425..7970de8 100644
--- a/test/060_transform/172_LUr_U.in
+++ b/test/060_transform/172_LUr_U.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/172_LUr_U.out b/test/060_transform/172_LUr_U.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/172_LUr_U.out
+++ b/test/060_transform/172_LUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/173_LUm_U.in b/test/060_transform/173_LUm_U.in
index 7530802..5dfa9fe 100644
--- a/test/060_transform/173_LUm_U.in
+++ b/test/060_transform/173_LUm_U.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/173_LUm_U.out b/test/060_transform/173_LUm_U.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/173_LUm_U.out
+++ b/test/060_transform/173_LUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/174_LUr_R.in b/test/060_transform/174_LUr_R.in
index ac3b675..f60ec7a 100644
--- a/test/060_transform/174_LUr_R.in
+++ b/test/060_transform/174_LUr_R.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/174_LUr_R.out b/test/060_transform/174_LUr_R.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/174_LUr_R.out
+++ b/test/060_transform/174_LUr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/175_LUm_R.in b/test/060_transform/175_LUm_R.in
index 42168b5..503d4ad 100644
--- a/test/060_transform/175_LUm_R.in
+++ b/test/060_transform/175_LUm_R.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/175_LUm_R.out b/test/060_transform/175_LUm_R.out
index 1367517..78bd94a 100644
--- a/test/060_transform/175_LUm_R.out
+++ b/test/060_transform/175_LUm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/176_LUr_F.in b/test/060_transform/176_LUr_F.in
index 65f37e9..41e9fa7 100644
--- a/test/060_transform/176_LUr_F.in
+++ b/test/060_transform/176_LUr_F.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/176_LUr_F.out b/test/060_transform/176_LUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/176_LUr_F.out
+++ b/test/060_transform/176_LUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/177_LUm_F.in b/test/060_transform/177_LUm_F.in
index c4428a7..a0e7c88 100644
--- a/test/060_transform/177_LUm_F.in
+++ b/test/060_transform/177_LUm_F.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/177_LUm_F.out b/test/060_transform/177_LUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/177_LUm_F.out
+++ b/test/060_transform/177_LUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/178_LFr_U.in b/test/060_transform/178_LFr_U.in
index 9d20035..df5c9d5 100644
--- a/test/060_transform/178_LFr_U.in
+++ b/test/060_transform/178_LFr_U.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/178_LFr_U.out b/test/060_transform/178_LFr_U.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/178_LFr_U.out
+++ b/test/060_transform/178_LFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/179_LFm_U.in b/test/060_transform/179_LFm_U.in
index c773f71..30776aa 100644
--- a/test/060_transform/179_LFm_U.in
+++ b/test/060_transform/179_LFm_U.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/179_LFm_U.out b/test/060_transform/179_LFm_U.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/179_LFm_U.out
+++ b/test/060_transform/179_LFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/180_LFr_R.in b/test/060_transform/180_LFr_R.in
index 059725a..0a1bcdb 100644
--- a/test/060_transform/180_LFr_R.in
+++ b/test/060_transform/180_LFr_R.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/180_LFr_R.out b/test/060_transform/180_LFr_R.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/180_LFr_R.out
+++ b/test/060_transform/180_LFr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/181_LFm_R.in b/test/060_transform/181_LFm_R.in
index 23d26dc..b632507 100644
--- a/test/060_transform/181_LFm_R.in
+++ b/test/060_transform/181_LFm_R.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/181_LFm_R.out b/test/060_transform/181_LFm_R.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/181_LFm_R.out
+++ b/test/060_transform/181_LFm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/182_LFr_F.in b/test/060_transform/182_LFr_F.in
index 94d3342..31add4f 100644
--- a/test/060_transform/182_LFr_F.in
+++ b/test/060_transform/182_LFr_F.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/182_LFr_F.out b/test/060_transform/182_LFr_F.out
index e805af8..a75744c 100644
--- a/test/060_transform/182_LFr_F.out
+++ b/test/060_transform/182_LFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/183_LFm_F.in b/test/060_transform/183_LFm_F.in
index 4170885..d80b616 100644
--- a/test/060_transform/183_LFm_F.in
+++ b/test/060_transform/183_LFm_F.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/183_LFm_F.out b/test/060_transform/183_LFm_F.out
index 40f1260..500d969 100644
--- a/test/060_transform/183_LFm_F.out
+++ b/test/060_transform/183_LFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/184_LDr_U.in b/test/060_transform/184_LDr_U.in
index d8a9460..4589b3d 100644
--- a/test/060_transform/184_LDr_U.in
+++ b/test/060_transform/184_LDr_U.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/184_LDr_U.out b/test/060_transform/184_LDr_U.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/184_LDr_U.out
+++ b/test/060_transform/184_LDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/185_LDm_U.in b/test/060_transform/185_LDm_U.in
index 692a72b..fa47271 100644
--- a/test/060_transform/185_LDm_U.in
+++ b/test/060_transform/185_LDm_U.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/185_LDm_U.out b/test/060_transform/185_LDm_U.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/185_LDm_U.out
+++ b/test/060_transform/185_LDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/186_LDr_R.in b/test/060_transform/186_LDr_R.in
index e303013..fa8c862 100644
--- a/test/060_transform/186_LDr_R.in
+++ b/test/060_transform/186_LDr_R.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/186_LDr_R.out b/test/060_transform/186_LDr_R.out
index e805af8..a75744c 100644
--- a/test/060_transform/186_LDr_R.out
+++ b/test/060_transform/186_LDr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/187_LDm_R.in b/test/060_transform/187_LDm_R.in
index b09a13c..1464f71 100644
--- a/test/060_transform/187_LDm_R.in
+++ b/test/060_transform/187_LDm_R.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/187_LDm_R.out b/test/060_transform/187_LDm_R.out
index 40f1260..500d969 100644
--- a/test/060_transform/187_LDm_R.out
+++ b/test/060_transform/187_LDm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/188_LDr_F.in b/test/060_transform/188_LDr_F.in
index 9af43b3..f0f3924 100644
--- a/test/060_transform/188_LDr_F.in
+++ b/test/060_transform/188_LDr_F.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/188_LDr_F.out b/test/060_transform/188_LDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/188_LDr_F.out
+++ b/test/060_transform/188_LDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/189_LDm_F.in b/test/060_transform/189_LDm_F.in
index 97d8e51..af5bbce 100644
--- a/test/060_transform/189_LDm_F.in
+++ b/test/060_transform/189_LDm_F.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/189_LDm_F.out b/test/060_transform/189_LDm_F.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/189_LDm_F.out
+++ b/test/060_transform/189_LDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/190_LBr_U.in b/test/060_transform/190_LBr_U.in
index 2003378..88c9a40 100644
--- a/test/060_transform/190_LBr_U.in
+++ b/test/060_transform/190_LBr_U.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/190_LBr_U.out b/test/060_transform/190_LBr_U.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/190_LBr_U.out
+++ b/test/060_transform/190_LBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/191_LBm_U.in b/test/060_transform/191_LBm_U.in
index c3e7251..716fa1b 100644
--- a/test/060_transform/191_LBm_U.in
+++ b/test/060_transform/191_LBm_U.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/191_LBm_U.out b/test/060_transform/191_LBm_U.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/191_LBm_U.out
+++ b/test/060_transform/191_LBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/192_LBr_R.in b/test/060_transform/192_LBr_R.in
index 67bdd40..22ee2b9 100644
--- a/test/060_transform/192_LBr_R.in
+++ b/test/060_transform/192_LBr_R.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/192_LBr_R.out b/test/060_transform/192_LBr_R.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/192_LBr_R.out
+++ b/test/060_transform/192_LBr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/193_LBm_R.in b/test/060_transform/193_LBm_R.in
index b8f4b6f..85cdeb1 100644
--- a/test/060_transform/193_LBm_R.in
+++ b/test/060_transform/193_LBm_R.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/193_LBm_R.out b/test/060_transform/193_LBm_R.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/193_LBm_R.out
+++ b/test/060_transform/193_LBm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/194_LBr_F.in b/test/060_transform/194_LBr_F.in
index 3ff9823..d642baa 100644
--- a/test/060_transform/194_LBr_F.in
+++ b/test/060_transform/194_LBr_F.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/194_LBr_F.out b/test/060_transform/194_LBr_F.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/194_LBr_F.out
+++ b/test/060_transform/194_LBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/195_LBm_F.in b/test/060_transform/195_LBm_F.in
index 35cb55f..a318418 100644
--- a/test/060_transform/195_LBm_F.in
+++ b/test/060_transform/195_LBm_F.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/195_LBm_F.out b/test/060_transform/195_LBm_F.out
index 1367517..78bd94a 100644
--- a/test/060_transform/195_LBm_F.out
+++ b/test/060_transform/195_LBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/196_FUr_U.in b/test/060_transform/196_FUr_U.in
index 489b248..befc225 100644
--- a/test/060_transform/196_FUr_U.in
+++ b/test/060_transform/196_FUr_U.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/196_FUr_U.out b/test/060_transform/196_FUr_U.out
index e805af8..a75744c 100644
--- a/test/060_transform/196_FUr_U.out
+++ b/test/060_transform/196_FUr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/197_FUm_U.in b/test/060_transform/197_FUm_U.in
index e11003f..58ef157 100644
--- a/test/060_transform/197_FUm_U.in
+++ b/test/060_transform/197_FUm_U.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/197_FUm_U.out b/test/060_transform/197_FUm_U.out
index 40f1260..500d969 100644
--- a/test/060_transform/197_FUm_U.out
+++ b/test/060_transform/197_FUm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/198_FUr_R.in b/test/060_transform/198_FUr_R.in
index d44ba29..40e392e 100644
--- a/test/060_transform/198_FUr_R.in
+++ b/test/060_transform/198_FUr_R.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/198_FUr_R.out b/test/060_transform/198_FUr_R.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/198_FUr_R.out
+++ b/test/060_transform/198_FUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/199_FUm_R.in b/test/060_transform/199_FUm_R.in
index a803843..e0d3628 100644
--- a/test/060_transform/199_FUm_R.in
+++ b/test/060_transform/199_FUm_R.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/199_FUm_R.out b/test/060_transform/199_FUm_R.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/199_FUm_R.out
+++ b/test/060_transform/199_FUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/200_FUr_F.in b/test/060_transform/200_FUr_F.in
index beaac09..fd61fb1 100644
--- a/test/060_transform/200_FUr_F.in
+++ b/test/060_transform/200_FUr_F.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/200_FUr_F.out b/test/060_transform/200_FUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/200_FUr_F.out
+++ b/test/060_transform/200_FUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/201_FUm_F.in b/test/060_transform/201_FUm_F.in
index 802b0b3..fa1a42c 100644
--- a/test/060_transform/201_FUm_F.in
+++ b/test/060_transform/201_FUm_F.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/201_FUm_F.out b/test/060_transform/201_FUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/201_FUm_F.out
+++ b/test/060_transform/201_FUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/202_FRr_U.in b/test/060_transform/202_FRr_U.in
index ac903a9..dd9c4f0 100644
--- a/test/060_transform/202_FRr_U.in
+++ b/test/060_transform/202_FRr_U.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/202_FRr_U.out b/test/060_transform/202_FRr_U.out
index e805af8..a75744c 100644
--- a/test/060_transform/202_FRr_U.out
+++ b/test/060_transform/202_FRr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/203_FRm_U.in b/test/060_transform/203_FRm_U.in
index e11a81e..547961e 100644
--- a/test/060_transform/203_FRm_U.in
+++ b/test/060_transform/203_FRm_U.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/203_FRm_U.out b/test/060_transform/203_FRm_U.out
index 40f1260..500d969 100644
--- a/test/060_transform/203_FRm_U.out
+++ b/test/060_transform/203_FRm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/204_FRr_R.in b/test/060_transform/204_FRr_R.in
index 1a06d75..97d3f5a 100644
--- a/test/060_transform/204_FRr_R.in
+++ b/test/060_transform/204_FRr_R.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/204_FRr_R.out b/test/060_transform/204_FRr_R.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/204_FRr_R.out
+++ b/test/060_transform/204_FRr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/205_FRm_R.in b/test/060_transform/205_FRm_R.in
index cd0caf6..b601fc7 100644
--- a/test/060_transform/205_FRm_R.in
+++ b/test/060_transform/205_FRm_R.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/205_FRm_R.out b/test/060_transform/205_FRm_R.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/205_FRm_R.out
+++ b/test/060_transform/205_FRm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/206_FRr_F.in b/test/060_transform/206_FRr_F.in
index 1afb42b..8feca39 100644
--- a/test/060_transform/206_FRr_F.in
+++ b/test/060_transform/206_FRr_F.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/206_FRr_F.out b/test/060_transform/206_FRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/206_FRr_F.out
+++ b/test/060_transform/206_FRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/207_FRm_F.in b/test/060_transform/207_FRm_F.in
index e2f75d0..acda0f7 100644
--- a/test/060_transform/207_FRm_F.in
+++ b/test/060_transform/207_FRm_F.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/207_FRm_F.out b/test/060_transform/207_FRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/207_FRm_F.out
+++ b/test/060_transform/207_FRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/208_FDr_U.in b/test/060_transform/208_FDr_U.in
index f18744e..c03148a 100644
--- a/test/060_transform/208_FDr_U.in
+++ b/test/060_transform/208_FDr_U.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/208_FDr_U.out b/test/060_transform/208_FDr_U.out
index e805af8..a75744c 100644
--- a/test/060_transform/208_FDr_U.out
+++ b/test/060_transform/208_FDr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/209_FDm_U.in b/test/060_transform/209_FDm_U.in
index 5ac46b4..fa12fbc 100644
--- a/test/060_transform/209_FDm_U.in
+++ b/test/060_transform/209_FDm_U.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/209_FDm_U.out b/test/060_transform/209_FDm_U.out
index 40f1260..500d969 100644
--- a/test/060_transform/209_FDm_U.out
+++ b/test/060_transform/209_FDm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/210_FDr_R.in b/test/060_transform/210_FDr_R.in
index 26b394c..ee66585 100644
--- a/test/060_transform/210_FDr_R.in
+++ b/test/060_transform/210_FDr_R.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/210_FDr_R.out b/test/060_transform/210_FDr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/210_FDr_R.out
+++ b/test/060_transform/210_FDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/211_FDm_R.in b/test/060_transform/211_FDm_R.in
index 5a10ec6..9cb846d 100644
--- a/test/060_transform/211_FDm_R.in
+++ b/test/060_transform/211_FDm_R.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/211_FDm_R.out b/test/060_transform/211_FDm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/211_FDm_R.out
+++ b/test/060_transform/211_FDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/212_FDr_F.in b/test/060_transform/212_FDr_F.in
index 2382615..8f49060 100644
--- a/test/060_transform/212_FDr_F.in
+++ b/test/060_transform/212_FDr_F.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/212_FDr_F.out b/test/060_transform/212_FDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/212_FDr_F.out
+++ b/test/060_transform/212_FDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/213_FDm_F.in b/test/060_transform/213_FDm_F.in
index 0515b51..276da08 100644
--- a/test/060_transform/213_FDm_F.in
+++ b/test/060_transform/213_FDm_F.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/213_FDm_F.out b/test/060_transform/213_FDm_F.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/213_FDm_F.out
+++ b/test/060_transform/213_FDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/214_FLr_U.in b/test/060_transform/214_FLr_U.in
index da3f3a4..2e32668 100644
--- a/test/060_transform/214_FLr_U.in
+++ b/test/060_transform/214_FLr_U.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/214_FLr_U.out b/test/060_transform/214_FLr_U.out
index e805af8..a75744c 100644
--- a/test/060_transform/214_FLr_U.out
+++ b/test/060_transform/214_FLr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/215_FLm_U.in b/test/060_transform/215_FLm_U.in
index 0dd99c3..bc9917c 100644
--- a/test/060_transform/215_FLm_U.in
+++ b/test/060_transform/215_FLm_U.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/215_FLm_U.out b/test/060_transform/215_FLm_U.out
index 40f1260..500d969 100644
--- a/test/060_transform/215_FLm_U.out
+++ b/test/060_transform/215_FLm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/060_transform/216_FLr_R.in b/test/060_transform/216_FLr_R.in
index b8488d1..0643c39 100644
--- a/test/060_transform/216_FLr_R.in
+++ b/test/060_transform/216_FLr_R.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/216_FLr_R.out b/test/060_transform/216_FLr_R.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/216_FLr_R.out
+++ b/test/060_transform/216_FLr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/217_FLm_R.in b/test/060_transform/217_FLm_R.in
index 624882c..b60d441 100644
--- a/test/060_transform/217_FLm_R.in
+++ b/test/060_transform/217_FLm_R.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/217_FLm_R.out b/test/060_transform/217_FLm_R.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/217_FLm_R.out
+++ b/test/060_transform/217_FLm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/218_FLr_F.in b/test/060_transform/218_FLr_F.in
index 03950c5..6e5562d 100644
--- a/test/060_transform/218_FLr_F.in
+++ b/test/060_transform/218_FLr_F.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/218_FLr_F.out b/test/060_transform/218_FLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/218_FLr_F.out
+++ b/test/060_transform/218_FLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/219_FLm_F.in b/test/060_transform/219_FLm_F.in
index ff909bf..e10f8de 100644
--- a/test/060_transform/219_FLm_F.in
+++ b/test/060_transform/219_FLm_F.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/219_FLm_F.out b/test/060_transform/219_FLm_F.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/219_FLm_F.out
+++ b/test/060_transform/219_FLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/220_BUr_U.in b/test/060_transform/220_BUr_U.in
index c923f4d..abf27a4 100644
--- a/test/060_transform/220_BUr_U.in
+++ b/test/060_transform/220_BUr_U.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/220_BUr_U.out b/test/060_transform/220_BUr_U.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/220_BUr_U.out
+++ b/test/060_transform/220_BUr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/221_BUm_U.in b/test/060_transform/221_BUm_U.in
index d939385..fab253b 100644
--- a/test/060_transform/221_BUm_U.in
+++ b/test/060_transform/221_BUm_U.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/221_BUm_U.out b/test/060_transform/221_BUm_U.out
index 1367517..78bd94a 100644
--- a/test/060_transform/221_BUm_U.out
+++ b/test/060_transform/221_BUm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/222_BUr_R.in b/test/060_transform/222_BUr_R.in
index 89a46f4..1a55568 100644
--- a/test/060_transform/222_BUr_R.in
+++ b/test/060_transform/222_BUr_R.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/222_BUr_R.out b/test/060_transform/222_BUr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/222_BUr_R.out
+++ b/test/060_transform/222_BUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/223_BUm_R.in b/test/060_transform/223_BUm_R.in
index 2f5d234..a0ea716 100644
--- a/test/060_transform/223_BUm_R.in
+++ b/test/060_transform/223_BUm_R.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/223_BUm_R.out b/test/060_transform/223_BUm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/223_BUm_R.out
+++ b/test/060_transform/223_BUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/224_BUr_F.in b/test/060_transform/224_BUr_F.in
index 0ad8995..38e9300 100644
--- a/test/060_transform/224_BUr_F.in
+++ b/test/060_transform/224_BUr_F.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/224_BUr_F.out b/test/060_transform/224_BUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/224_BUr_F.out
+++ b/test/060_transform/224_BUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/225_BUm_F.in b/test/060_transform/225_BUm_F.in
index 3ff7e4d..f7a1309 100644
--- a/test/060_transform/225_BUm_F.in
+++ b/test/060_transform/225_BUm_F.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/225_BUm_F.out b/test/060_transform/225_BUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/225_BUm_F.out
+++ b/test/060_transform/225_BUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/226_BRr_U.in b/test/060_transform/226_BRr_U.in
index 46ebe30..7cc2fbb 100644
--- a/test/060_transform/226_BRr_U.in
+++ b/test/060_transform/226_BRr_U.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/226_BRr_U.out b/test/060_transform/226_BRr_U.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/226_BRr_U.out
+++ b/test/060_transform/226_BRr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/227_BRm_U.in b/test/060_transform/227_BRm_U.in
index 63897c9..6d9e934 100644
--- a/test/060_transform/227_BRm_U.in
+++ b/test/060_transform/227_BRm_U.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/227_BRm_U.out b/test/060_transform/227_BRm_U.out
index 1367517..78bd94a 100644
--- a/test/060_transform/227_BRm_U.out
+++ b/test/060_transform/227_BRm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/228_BRr_R.in b/test/060_transform/228_BRr_R.in
index 7e2de76..9e967cb 100644
--- a/test/060_transform/228_BRr_R.in
+++ b/test/060_transform/228_BRr_R.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/228_BRr_R.out b/test/060_transform/228_BRr_R.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/228_BRr_R.out
+++ b/test/060_transform/228_BRr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/229_BRm_R.in b/test/060_transform/229_BRm_R.in
index c9e6e82..01f6b74 100644
--- a/test/060_transform/229_BRm_R.in
+++ b/test/060_transform/229_BRm_R.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/229_BRm_R.out b/test/060_transform/229_BRm_R.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/229_BRm_R.out
+++ b/test/060_transform/229_BRm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/230_BRr_F.in b/test/060_transform/230_BRr_F.in
index fe288dc..e38b356 100644
--- a/test/060_transform/230_BRr_F.in
+++ b/test/060_transform/230_BRr_F.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/230_BRr_F.out b/test/060_transform/230_BRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/060_transform/230_BRr_F.out
+++ b/test/060_transform/230_BRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/231_BRm_F.in b/test/060_transform/231_BRm_F.in
index 5411345..5bcc866 100644
--- a/test/060_transform/231_BRm_F.in
+++ b/test/060_transform/231_BRm_F.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/231_BRm_F.out b/test/060_transform/231_BRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/060_transform/231_BRm_F.out
+++ b/test/060_transform/231_BRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/060_transform/232_BDr_U.in b/test/060_transform/232_BDr_U.in
index 1a8f5d3..9a98a23 100644
--- a/test/060_transform/232_BDr_U.in
+++ b/test/060_transform/232_BDr_U.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/232_BDr_U.out b/test/060_transform/232_BDr_U.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/232_BDr_U.out
+++ b/test/060_transform/232_BDr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/233_BDm_U.in b/test/060_transform/233_BDm_U.in
index b6b1ec4..9f7e0b8 100644
--- a/test/060_transform/233_BDm_U.in
+++ b/test/060_transform/233_BDm_U.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/233_BDm_U.out b/test/060_transform/233_BDm_U.out
index 1367517..78bd94a 100644
--- a/test/060_transform/233_BDm_U.out
+++ b/test/060_transform/233_BDm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/234_BDr_R.in b/test/060_transform/234_BDr_R.in
index f12b7bb..4bb7b22 100644
--- a/test/060_transform/234_BDr_R.in
+++ b/test/060_transform/234_BDr_R.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/234_BDr_R.out b/test/060_transform/234_BDr_R.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/234_BDr_R.out
+++ b/test/060_transform/234_BDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/235_BDm_R.in b/test/060_transform/235_BDm_R.in
index a281b6c..2d94ecb 100644
--- a/test/060_transform/235_BDm_R.in
+++ b/test/060_transform/235_BDm_R.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/235_BDm_R.out b/test/060_transform/235_BDm_R.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/235_BDm_R.out
+++ b/test/060_transform/235_BDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/236_BDr_F.in b/test/060_transform/236_BDr_F.in
index 68a3262..faf5398 100644
--- a/test/060_transform/236_BDr_F.in
+++ b/test/060_transform/236_BDr_F.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/236_BDr_F.out b/test/060_transform/236_BDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/060_transform/236_BDr_F.out
+++ b/test/060_transform/236_BDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/060_transform/237_BDm_F.in b/test/060_transform/237_BDm_F.in
index 9200d9a..df192e9 100644
--- a/test/060_transform/237_BDm_F.in
+++ b/test/060_transform/237_BDm_F.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/237_BDm_F.out b/test/060_transform/237_BDm_F.out
index 2864f5b..acd829c 100644
--- a/test/060_transform/237_BDm_F.out
+++ b/test/060_transform/237_BDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/060_transform/238_BLr_U.in b/test/060_transform/238_BLr_U.in
index ae1bb2e..6e5ba1c 100644
--- a/test/060_transform/238_BLr_U.in
+++ b/test/060_transform/238_BLr_U.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/238_BLr_U.out b/test/060_transform/238_BLr_U.out
index f7fb13c..73e099a 100644
--- a/test/060_transform/238_BLr_U.out
+++ b/test/060_transform/238_BLr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/060_transform/239_BLm_U.in b/test/060_transform/239_BLm_U.in
index 82eef50..f15266c 100644
--- a/test/060_transform/239_BLm_U.in
+++ b/test/060_transform/239_BLm_U.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/239_BLm_U.out b/test/060_transform/239_BLm_U.out
index 1367517..78bd94a 100644
--- a/test/060_transform/239_BLm_U.out
+++ b/test/060_transform/239_BLm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/060_transform/240_BLr_R.in b/test/060_transform/240_BLr_R.in
index 5aeee46..f81e5c3 100644
--- a/test/060_transform/240_BLr_R.in
+++ b/test/060_transform/240_BLr_R.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/240_BLr_R.out b/test/060_transform/240_BLr_R.out
index b5b36ad..250d3a1 100644
--- a/test/060_transform/240_BLr_R.out
+++ b/test/060_transform/240_BLr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/060_transform/241_BLm_R.in b/test/060_transform/241_BLm_R.in
index 4aff162..f2b8a29 100644
--- a/test/060_transform/241_BLm_R.in
+++ b/test/060_transform/241_BLm_R.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/060_transform/241_BLm_R.out b/test/060_transform/241_BLm_R.out
index 7721ab5..111ba2b 100644
--- a/test/060_transform/241_BLm_R.out
+++ b/test/060_transform/241_BLm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/060_transform/242_BLr_F.in b/test/060_transform/242_BLr_F.in
index a621e5e..4ff7f65 100644
--- a/test/060_transform/242_BLr_F.in
+++ b/test/060_transform/242_BLr_F.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/242_BLr_F.out b/test/060_transform/242_BLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/060_transform/242_BLr_F.out
+++ b/test/060_transform/242_BLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/060_transform/243_BLm_F.in b/test/060_transform/243_BLm_F.in
index 6aa4a5a..ef6d357 100644
--- a/test/060_transform/243_BLm_F.in
+++ b/test/060_transform/243_BLm_F.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/060_transform/243_BLm_F.out b/test/060_transform/243_BLm_F.out
index d4abffc..a14e69b 100644
--- a/test/060_transform/243_BLm_F.out
+++ b/test/060_transform/243_BLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/060_transform/transform_tests.c b/test/060_transform/transform_tests.c
index 80a2031..4ae161c 100644
--- a/test/060_transform/transform_tests.c
+++ b/test/060_transform/transform_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 8
9 fgets(transtr, STRLENMAX, stdin); 9 fgets(transtr, STRLENMAX, stdin);
10 fgets(cubestr, STRLENMAX, stdin); 10 fgets(cubestr, STRLENMAX, stdin);
11 cube = readcube("H48", cubestr); 11 cube = readcube(cubestr);
12 12
13 cube = applytrans(cube, transtr); 13 cube = applytrans(cube, transtr);
14 14
@@ -17,7 +17,7 @@ void run(void) {
17 } else if (!issolvable(cube)) { 17 } else if (!issolvable(cube)) {
18 printf("Transformed cube is not solvable\n"); 18 printf("Transformed cube is not solvable\n");
19 } else { 19 } else {
20 writecube("H48", cube, NISSY_SIZE_H48, cubestr); 20 writecube(cube, NISSY_SIZE_CUBE, cubestr);
21 printf("%s\n", cubestr); 21 printf("%s\n", cubestr);
22 } 22 }
23} 23}
diff --git a/test/062_transform_move/100_UFr_U.out b/test/062_transform_move/100_UFr_U.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/100_UFr_U.out
+++ b/test/062_transform_move/100_UFr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/101_UFm_U.out b/test/062_transform_move/101_UFm_U.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/101_UFm_U.out
+++ b/test/062_transform_move/101_UFm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/102_UFr_R.out b/test/062_transform_move/102_UFr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/102_UFr_R.out
+++ b/test/062_transform_move/102_UFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/103_UFm_R.out b/test/062_transform_move/103_UFm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/103_UFm_R.out
+++ b/test/062_transform_move/103_UFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/104_UFr_F.out b/test/062_transform_move/104_UFr_F.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/104_UFr_F.out
+++ b/test/062_transform_move/104_UFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/105_UFm_F.out b/test/062_transform_move/105_UFm_F.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/105_UFm_F.out
+++ b/test/062_transform_move/105_UFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/106_ULr_U.out b/test/062_transform_move/106_ULr_U.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/106_ULr_U.out
+++ b/test/062_transform_move/106_ULr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/107_ULm_U.out b/test/062_transform_move/107_ULm_U.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/107_ULm_U.out
+++ b/test/062_transform_move/107_ULm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/108_ULr_R.out b/test/062_transform_move/108_ULr_R.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/108_ULr_R.out
+++ b/test/062_transform_move/108_ULr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/109_ULm_R.out b/test/062_transform_move/109_ULm_R.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/109_ULm_R.out
+++ b/test/062_transform_move/109_ULm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/110_ULr_F.out b/test/062_transform_move/110_ULr_F.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/110_ULr_F.out
+++ b/test/062_transform_move/110_ULr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/111_ULm_F.out b/test/062_transform_move/111_ULm_F.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/111_ULm_F.out
+++ b/test/062_transform_move/111_ULm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/112_UBr_U.out b/test/062_transform_move/112_UBr_U.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/112_UBr_U.out
+++ b/test/062_transform_move/112_UBr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/113_UBm_U.out b/test/062_transform_move/113_UBm_U.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/113_UBm_U.out
+++ b/test/062_transform_move/113_UBm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/114_UBr_R.out b/test/062_transform_move/114_UBr_R.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/114_UBr_R.out
+++ b/test/062_transform_move/114_UBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/115_UBm_R.out b/test/062_transform_move/115_UBm_R.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/115_UBm_R.out
+++ b/test/062_transform_move/115_UBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/116_UBr_F.out b/test/062_transform_move/116_UBr_F.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/116_UBr_F.out
+++ b/test/062_transform_move/116_UBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/117_UBm_F.out b/test/062_transform_move/117_UBm_F.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/117_UBm_F.out
+++ b/test/062_transform_move/117_UBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/118_URr_U.out b/test/062_transform_move/118_URr_U.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/118_URr_U.out
+++ b/test/062_transform_move/118_URr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/119_URm_U.out b/test/062_transform_move/119_URm_U.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/119_URm_U.out
+++ b/test/062_transform_move/119_URm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/120_URr_R.out b/test/062_transform_move/120_URr_R.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/120_URr_R.out
+++ b/test/062_transform_move/120_URr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/121_URm_R.out b/test/062_transform_move/121_URm_R.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/121_URm_R.out
+++ b/test/062_transform_move/121_URm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/122_URr_F.out b/test/062_transform_move/122_URr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/122_URr_F.out
+++ b/test/062_transform_move/122_URr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/123_URm_F.out b/test/062_transform_move/123_URm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/123_URm_F.out
+++ b/test/062_transform_move/123_URm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/124_DFr_U.out b/test/062_transform_move/124_DFr_U.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/124_DFr_U.out
+++ b/test/062_transform_move/124_DFr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/125_DFm_U.out b/test/062_transform_move/125_DFm_U.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/125_DFm_U.out
+++ b/test/062_transform_move/125_DFm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/126_DFr_R.out b/test/062_transform_move/126_DFr_R.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/126_DFr_R.out
+++ b/test/062_transform_move/126_DFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/127_DFm_R.out b/test/062_transform_move/127_DFm_R.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/127_DFm_R.out
+++ b/test/062_transform_move/127_DFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/128_DFr_F.out b/test/062_transform_move/128_DFr_F.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/128_DFr_F.out
+++ b/test/062_transform_move/128_DFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/129_DFm_F.out b/test/062_transform_move/129_DFm_F.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/129_DFm_F.out
+++ b/test/062_transform_move/129_DFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/130_DLr_U.out b/test/062_transform_move/130_DLr_U.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/130_DLr_U.out
+++ b/test/062_transform_move/130_DLr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/131_DLm_U.out b/test/062_transform_move/131_DLm_U.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/131_DLm_U.out
+++ b/test/062_transform_move/131_DLm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/132_DLr_R.out b/test/062_transform_move/132_DLr_R.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/132_DLr_R.out
+++ b/test/062_transform_move/132_DLr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/133_DLm_R.out b/test/062_transform_move/133_DLm_R.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/133_DLm_R.out
+++ b/test/062_transform_move/133_DLm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/134_DLr_F.out b/test/062_transform_move/134_DLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/134_DLr_F.out
+++ b/test/062_transform_move/134_DLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/135_DLm_F.out b/test/062_transform_move/135_DLm_F.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/135_DLm_F.out
+++ b/test/062_transform_move/135_DLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/136_DBr_U.out b/test/062_transform_move/136_DBr_U.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/136_DBr_U.out
+++ b/test/062_transform_move/136_DBr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/137_DBm_U.out b/test/062_transform_move/137_DBm_U.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/137_DBm_U.out
+++ b/test/062_transform_move/137_DBm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/138_DBr_R.out b/test/062_transform_move/138_DBr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/138_DBr_R.out
+++ b/test/062_transform_move/138_DBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/139_DBm_R.out b/test/062_transform_move/139_DBm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/139_DBm_R.out
+++ b/test/062_transform_move/139_DBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/140_DBr_F.out b/test/062_transform_move/140_DBr_F.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/140_DBr_F.out
+++ b/test/062_transform_move/140_DBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/141_DBm_F.out b/test/062_transform_move/141_DBm_F.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/141_DBm_F.out
+++ b/test/062_transform_move/141_DBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/142_DRr_U.out b/test/062_transform_move/142_DRr_U.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/142_DRr_U.out
+++ b/test/062_transform_move/142_DRr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/143_DRm_U.out b/test/062_transform_move/143_DRm_U.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/143_DRm_U.out
+++ b/test/062_transform_move/143_DRm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/144_DRr_R.out b/test/062_transform_move/144_DRr_R.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/144_DRr_R.out
+++ b/test/062_transform_move/144_DRr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/145_DRm_R.out b/test/062_transform_move/145_DRm_R.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/145_DRm_R.out
+++ b/test/062_transform_move/145_DRm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/146_DRr_F.out b/test/062_transform_move/146_DRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/146_DRr_F.out
+++ b/test/062_transform_move/146_DRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/147_DRm_F.out b/test/062_transform_move/147_DRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/147_DRm_F.out
+++ b/test/062_transform_move/147_DRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/148_RUr_U.out b/test/062_transform_move/148_RUr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/148_RUr_U.out
+++ b/test/062_transform_move/148_RUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/149_RUm_U.out b/test/062_transform_move/149_RUm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/149_RUm_U.out
+++ b/test/062_transform_move/149_RUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/150_RUr_R.out b/test/062_transform_move/150_RUr_R.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/150_RUr_R.out
+++ b/test/062_transform_move/150_RUr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/151_RUm_R.out b/test/062_transform_move/151_RUm_R.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/151_RUm_R.out
+++ b/test/062_transform_move/151_RUm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/152_RUr_F.out b/test/062_transform_move/152_RUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/152_RUr_F.out
+++ b/test/062_transform_move/152_RUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/153_RUm_F.out b/test/062_transform_move/153_RUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/153_RUm_F.out
+++ b/test/062_transform_move/153_RUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/154_RFr_U.out b/test/062_transform_move/154_RFr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/154_RFr_U.out
+++ b/test/062_transform_move/154_RFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/155_RFm_U.out b/test/062_transform_move/155_RFm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/155_RFm_U.out
+++ b/test/062_transform_move/155_RFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/156_RFr_R.out b/test/062_transform_move/156_RFr_R.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/156_RFr_R.out
+++ b/test/062_transform_move/156_RFr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/157_RFm_R.out b/test/062_transform_move/157_RFm_R.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/157_RFm_R.out
+++ b/test/062_transform_move/157_RFm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/158_RFr_F.out b/test/062_transform_move/158_RFr_F.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/158_RFr_F.out
+++ b/test/062_transform_move/158_RFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/159_RFm_F.out b/test/062_transform_move/159_RFm_F.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/159_RFm_F.out
+++ b/test/062_transform_move/159_RFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/160_RDr_U.out b/test/062_transform_move/160_RDr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/160_RDr_U.out
+++ b/test/062_transform_move/160_RDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/161_RDm_U.out b/test/062_transform_move/161_RDm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/161_RDm_U.out
+++ b/test/062_transform_move/161_RDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/162_RDr_R.out b/test/062_transform_move/162_RDr_R.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/162_RDr_R.out
+++ b/test/062_transform_move/162_RDr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/163_RDm_R.out b/test/062_transform_move/163_RDm_R.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/163_RDm_R.out
+++ b/test/062_transform_move/163_RDm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/164_RDr_F.out b/test/062_transform_move/164_RDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/164_RDr_F.out
+++ b/test/062_transform_move/164_RDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/165_RDm_F.out b/test/062_transform_move/165_RDm_F.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/165_RDm_F.out
+++ b/test/062_transform_move/165_RDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/166_RBr_U.out b/test/062_transform_move/166_RBr_U.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/166_RBr_U.out
+++ b/test/062_transform_move/166_RBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/167_RBm_U.out b/test/062_transform_move/167_RBm_U.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/167_RBm_U.out
+++ b/test/062_transform_move/167_RBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/168_RBr_R.out b/test/062_transform_move/168_RBr_R.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/168_RBr_R.out
+++ b/test/062_transform_move/168_RBr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/169_RBm_R.out b/test/062_transform_move/169_RBm_R.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/169_RBm_R.out
+++ b/test/062_transform_move/169_RBm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/170_RBr_F.out b/test/062_transform_move/170_RBr_F.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/170_RBr_F.out
+++ b/test/062_transform_move/170_RBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/171_RBm_F.out b/test/062_transform_move/171_RBm_F.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/171_RBm_F.out
+++ b/test/062_transform_move/171_RBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/172_LUr_U.out b/test/062_transform_move/172_LUr_U.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/172_LUr_U.out
+++ b/test/062_transform_move/172_LUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/173_LUm_U.out b/test/062_transform_move/173_LUm_U.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/173_LUm_U.out
+++ b/test/062_transform_move/173_LUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/174_LUr_R.out b/test/062_transform_move/174_LUr_R.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/174_LUr_R.out
+++ b/test/062_transform_move/174_LUr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/175_LUm_R.out b/test/062_transform_move/175_LUm_R.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/175_LUm_R.out
+++ b/test/062_transform_move/175_LUm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/176_LUr_F.out b/test/062_transform_move/176_LUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/176_LUr_F.out
+++ b/test/062_transform_move/176_LUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/177_LUm_F.out b/test/062_transform_move/177_LUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/177_LUm_F.out
+++ b/test/062_transform_move/177_LUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/178_LFr_U.out b/test/062_transform_move/178_LFr_U.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/178_LFr_U.out
+++ b/test/062_transform_move/178_LFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/179_LFm_U.out b/test/062_transform_move/179_LFm_U.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/179_LFm_U.out
+++ b/test/062_transform_move/179_LFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/180_LFr_R.out b/test/062_transform_move/180_LFr_R.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/180_LFr_R.out
+++ b/test/062_transform_move/180_LFr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/181_LFm_R.out b/test/062_transform_move/181_LFm_R.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/181_LFm_R.out
+++ b/test/062_transform_move/181_LFm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/182_LFr_F.out b/test/062_transform_move/182_LFr_F.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/182_LFr_F.out
+++ b/test/062_transform_move/182_LFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/183_LFm_F.out b/test/062_transform_move/183_LFm_F.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/183_LFm_F.out
+++ b/test/062_transform_move/183_LFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/184_LDr_U.out b/test/062_transform_move/184_LDr_U.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/184_LDr_U.out
+++ b/test/062_transform_move/184_LDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/185_LDm_U.out b/test/062_transform_move/185_LDm_U.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/185_LDm_U.out
+++ b/test/062_transform_move/185_LDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/186_LDr_R.out b/test/062_transform_move/186_LDr_R.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/186_LDr_R.out
+++ b/test/062_transform_move/186_LDr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/187_LDm_R.out b/test/062_transform_move/187_LDm_R.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/187_LDm_R.out
+++ b/test/062_transform_move/187_LDm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/188_LDr_F.out b/test/062_transform_move/188_LDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/188_LDr_F.out
+++ b/test/062_transform_move/188_LDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/189_LDm_F.out b/test/062_transform_move/189_LDm_F.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/189_LDm_F.out
+++ b/test/062_transform_move/189_LDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/190_LBr_U.out b/test/062_transform_move/190_LBr_U.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/190_LBr_U.out
+++ b/test/062_transform_move/190_LBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/191_LBm_U.out b/test/062_transform_move/191_LBm_U.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/191_LBm_U.out
+++ b/test/062_transform_move/191_LBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/192_LBr_R.out b/test/062_transform_move/192_LBr_R.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/192_LBr_R.out
+++ b/test/062_transform_move/192_LBr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/193_LBm_R.out b/test/062_transform_move/193_LBm_R.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/193_LBm_R.out
+++ b/test/062_transform_move/193_LBm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/194_LBr_F.out b/test/062_transform_move/194_LBr_F.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/194_LBr_F.out
+++ b/test/062_transform_move/194_LBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/195_LBm_F.out b/test/062_transform_move/195_LBm_F.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/195_LBm_F.out
+++ b/test/062_transform_move/195_LBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/196_FUr_U.out b/test/062_transform_move/196_FUr_U.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/196_FUr_U.out
+++ b/test/062_transform_move/196_FUr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/197_FUm_U.out b/test/062_transform_move/197_FUm_U.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/197_FUm_U.out
+++ b/test/062_transform_move/197_FUm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/198_FUr_R.out b/test/062_transform_move/198_FUr_R.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/198_FUr_R.out
+++ b/test/062_transform_move/198_FUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/199_FUm_R.out b/test/062_transform_move/199_FUm_R.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/199_FUm_R.out
+++ b/test/062_transform_move/199_FUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/200_FUr_F.out b/test/062_transform_move/200_FUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/200_FUr_F.out
+++ b/test/062_transform_move/200_FUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/201_FUm_F.out b/test/062_transform_move/201_FUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/201_FUm_F.out
+++ b/test/062_transform_move/201_FUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/202_FRr_U.out b/test/062_transform_move/202_FRr_U.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/202_FRr_U.out
+++ b/test/062_transform_move/202_FRr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/203_FRm_U.out b/test/062_transform_move/203_FRm_U.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/203_FRm_U.out
+++ b/test/062_transform_move/203_FRm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/204_FRr_R.out b/test/062_transform_move/204_FRr_R.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/204_FRr_R.out
+++ b/test/062_transform_move/204_FRr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/205_FRm_R.out b/test/062_transform_move/205_FRm_R.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/205_FRm_R.out
+++ b/test/062_transform_move/205_FRm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/206_FRr_F.out b/test/062_transform_move/206_FRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/206_FRr_F.out
+++ b/test/062_transform_move/206_FRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/207_FRm_F.out b/test/062_transform_move/207_FRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/207_FRm_F.out
+++ b/test/062_transform_move/207_FRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/208_FDr_U.out b/test/062_transform_move/208_FDr_U.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/208_FDr_U.out
+++ b/test/062_transform_move/208_FDr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/209_FDm_U.out b/test/062_transform_move/209_FDm_U.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/209_FDm_U.out
+++ b/test/062_transform_move/209_FDm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/210_FDr_R.out b/test/062_transform_move/210_FDr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/210_FDr_R.out
+++ b/test/062_transform_move/210_FDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/211_FDm_R.out b/test/062_transform_move/211_FDm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/211_FDm_R.out
+++ b/test/062_transform_move/211_FDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/212_FDr_F.out b/test/062_transform_move/212_FDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/212_FDr_F.out
+++ b/test/062_transform_move/212_FDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/213_FDm_F.out b/test/062_transform_move/213_FDm_F.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/213_FDm_F.out
+++ b/test/062_transform_move/213_FDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/214_FLr_U.out b/test/062_transform_move/214_FLr_U.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/214_FLr_U.out
+++ b/test/062_transform_move/214_FLr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/215_FLm_U.out b/test/062_transform_move/215_FLm_U.out
index 40f1260..500d969 100644
--- a/test/062_transform_move/215_FLm_U.out
+++ b/test/062_transform_move/215_FLm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/062_transform_move/216_FLr_R.out b/test/062_transform_move/216_FLr_R.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/216_FLr_R.out
+++ b/test/062_transform_move/216_FLr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/217_FLm_R.out b/test/062_transform_move/217_FLm_R.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/217_FLm_R.out
+++ b/test/062_transform_move/217_FLm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/218_FLr_F.out b/test/062_transform_move/218_FLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/218_FLr_F.out
+++ b/test/062_transform_move/218_FLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/219_FLm_F.out b/test/062_transform_move/219_FLm_F.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/219_FLm_F.out
+++ b/test/062_transform_move/219_FLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/220_BUr_U.out b/test/062_transform_move/220_BUr_U.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/220_BUr_U.out
+++ b/test/062_transform_move/220_BUr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/221_BUm_U.out b/test/062_transform_move/221_BUm_U.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/221_BUm_U.out
+++ b/test/062_transform_move/221_BUm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/222_BUr_R.out b/test/062_transform_move/222_BUr_R.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/222_BUr_R.out
+++ b/test/062_transform_move/222_BUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/223_BUm_R.out b/test/062_transform_move/223_BUm_R.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/223_BUm_R.out
+++ b/test/062_transform_move/223_BUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/224_BUr_F.out b/test/062_transform_move/224_BUr_F.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/224_BUr_F.out
+++ b/test/062_transform_move/224_BUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/225_BUm_F.out b/test/062_transform_move/225_BUm_F.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/225_BUm_F.out
+++ b/test/062_transform_move/225_BUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/226_BRr_U.out b/test/062_transform_move/226_BRr_U.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/226_BRr_U.out
+++ b/test/062_transform_move/226_BRr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/227_BRm_U.out b/test/062_transform_move/227_BRm_U.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/227_BRm_U.out
+++ b/test/062_transform_move/227_BRm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/228_BRr_R.out b/test/062_transform_move/228_BRr_R.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/228_BRr_R.out
+++ b/test/062_transform_move/228_BRr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/229_BRm_R.out b/test/062_transform_move/229_BRm_R.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/229_BRm_R.out
+++ b/test/062_transform_move/229_BRm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/230_BRr_F.out b/test/062_transform_move/230_BRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/230_BRr_F.out
+++ b/test/062_transform_move/230_BRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/231_BRm_F.out b/test/062_transform_move/231_BRm_F.out
index 2ac2912..fbe35f3 100644
--- a/test/062_transform_move/231_BRm_F.out
+++ b/test/062_transform_move/231_BRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/test/062_transform_move/232_BDr_U.out b/test/062_transform_move/232_BDr_U.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/232_BDr_U.out
+++ b/test/062_transform_move/232_BDr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/233_BDm_U.out b/test/062_transform_move/233_BDm_U.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/233_BDm_U.out
+++ b/test/062_transform_move/233_BDm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/234_BDr_R.out b/test/062_transform_move/234_BDr_R.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/234_BDr_R.out
+++ b/test/062_transform_move/234_BDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/235_BDm_R.out b/test/062_transform_move/235_BDm_R.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/235_BDm_R.out
+++ b/test/062_transform_move/235_BDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/236_BDr_F.out b/test/062_transform_move/236_BDr_F.out
index cf4f816..ffcea5d 100644
--- a/test/062_transform_move/236_BDr_F.out
+++ b/test/062_transform_move/236_BDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/062_transform_move/237_BDm_F.out b/test/062_transform_move/237_BDm_F.out
index 2864f5b..acd829c 100644
--- a/test/062_transform_move/237_BDm_F.out
+++ b/test/062_transform_move/237_BDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/test/062_transform_move/238_BLr_U.out b/test/062_transform_move/238_BLr_U.out
index f7fb13c..73e099a 100644
--- a/test/062_transform_move/238_BLr_U.out
+++ b/test/062_transform_move/238_BLr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/062_transform_move/239_BLm_U.out b/test/062_transform_move/239_BLm_U.out
index 1367517..78bd94a 100644
--- a/test/062_transform_move/239_BLm_U.out
+++ b/test/062_transform_move/239_BLm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/062_transform_move/240_BLr_R.out b/test/062_transform_move/240_BLr_R.out
index b5b36ad..250d3a1 100644
--- a/test/062_transform_move/240_BLr_R.out
+++ b/test/062_transform_move/240_BLr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/062_transform_move/241_BLm_R.out b/test/062_transform_move/241_BLm_R.out
index 7721ab5..111ba2b 100644
--- a/test/062_transform_move/241_BLm_R.out
+++ b/test/062_transform_move/241_BLm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/062_transform_move/242_BLr_F.out b/test/062_transform_move/242_BLr_F.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/242_BLr_F.out
+++ b/test/062_transform_move/242_BLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/243_BLm_F.out b/test/062_transform_move/243_BLm_F.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/243_BLm_F.out
+++ b/test/062_transform_move/243_BLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/244_modifier_LBr_R2.out b/test/062_transform_move/244_modifier_LBr_R2.out
index 13b229e..f872210 100644
--- a/test/062_transform_move/244_modifier_LBr_R2.out
+++ b/test/062_transform_move/244_modifier_LBr_R2.out
@@ -1 +1 @@
UF0 UB0 DF0 DB0 UR0 UL0 DR0 DL0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBR0 DFL0 UFL0 UBR0 DBL0 DFR0 ABDCEFHG=ABDCEFHGIJKL=A
diff --git a/test/062_transform_move/245_modifier_URr_F3.out b/test/062_transform_move/245_modifier_URr_F3.out
index d4abffc..a14e69b 100644
--- a/test/062_transform_move/245_modifier_URr_F3.out
+++ b/test/062_transform_move/245_modifier_URr_F3.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/test/062_transform_move/246_modifier_RBm_U3.out b/test/062_transform_move/246_modifier_RBm_U3.out
index 0b0565c..5aa4131 100644
--- a/test/062_transform_move/246_modifier_RBm_U3.out
+++ b/test/062_transform_move/246_modifier_RBm_U3.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/062_transform_move/247_axis_UBr_L.out b/test/062_transform_move/247_axis_UBr_L.out
index 8c8fcb3..1be2e89 100644
--- a/test/062_transform_move/247_axis_UBr_L.out
+++ b/test/062_transform_move/247_axis_UBr_L.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/062_transform_move/248_axis_BDm_D3.out b/test/062_transform_move/248_axis_BDm_D3.out
index e805af8..a75744c 100644
--- a/test/062_transform_move/248_axis_BDm_D3.out
+++ b/test/062_transform_move/248_axis_BDm_D3.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/062_transform_move/249_axis_DLr_B2.out b/test/062_transform_move/249_axis_DLr_B2.out
index 90765e2..6611740 100644
--- a/test/062_transform_move/249_axis_DLr_B2.out
+++ b/test/062_transform_move/249_axis_DLr_B2.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/test/062_transform_move/transform_move_tests.c b/test/062_transform_move/transform_move_tests.c
index 7cd555f..66889f9 100644
--- a/test/062_transform_move/transform_move_tests.c
+++ b/test/062_transform_move/transform_move_tests.c
@@ -24,6 +24,6 @@ void run(void) {
24 for (i = 0; i < n; i++) 24 for (i = 0; i < n; i++)
25 cube = move(cube, transform_move(moves[i], t)); 25 cube = move(cube, transform_move(moves[i], t));
26 26
27 writecube("H48", cube, STRLENMAX, cubestr); 27 writecube(cube, STRLENMAX, cubestr);
28 printf("%s\n", cubestr); 28 printf("%s\n", cubestr);
29} 29}
diff --git a/test/063_symmetry_mask/00_solved.in b/test/063_symmetry_mask/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/063_symmetry_mask/00_solved.in
+++ b/test/063_symmetry_mask/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/063_symmetry_mask/01_U.in b/test/063_symmetry_mask/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/063_symmetry_mask/01_U.in
+++ b/test/063_symmetry_mask/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/063_symmetry_mask/02_B2.in b/test/063_symmetry_mask/02_B2.in
index 9b33e35..1021aeb 100644
--- a/test/063_symmetry_mask/02_B2.in
+++ b/test/063_symmetry_mask/02_B2.in
@@ -1 +1 @@
UF0 DB0 UB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BR0 BL0 UFR0 DBR0 DFL0 UBL0 UFL0 DBL0 DFR0 UBR0 ADCBEHGF=ACBDEFGHIJLK=A
diff --git a/test/063_symmetry_mask/03_superflip.in b/test/063_symmetry_mask/03_superflip.in
index ec7594a..79d5114 100644
--- a/test/063_symmetry_mask/03_superflip.in
+++ b/test/063_symmetry_mask/03_superflip.in
@@ -1 +1 @@
UF1 UB1 DB1 DF1 UR1 UL1 DL1 DR1 FR1 FL1 BL1 BR1 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=QRSTUVWXYZab=A
diff --git a/test/063_symmetry_mask/04_scrambled.in b/test/063_symmetry_mask/04_scrambled.in
index 6c52430..d069105 100644
--- a/test/063_symmetry_mask/04_scrambled.in
+++ b/test/063_symmetry_mask/04_scrambled.in
@@ -1 +1 @@
UB1 UL0 UF1 DL0 FL0 DB0 BR0 BL0 DF0 FR0 DR0 UR0 UBR1 DFR1 UBL0 DFL2 DBR1 DBL2 UFR1 UFL1 NOBSLXIM=RFQGJCLKDIHE=A
diff --git a/test/063_symmetry_mask/symmetry_mask_tests.c b/test/063_symmetry_mask/symmetry_mask_tests.c
index ccc2623..c14fd14 100644
--- a/test/063_symmetry_mask/symmetry_mask_tests.c
+++ b/test/063_symmetry_mask/symmetry_mask_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 cube_t cube; 8 cube_t cube;
9 9
10 fgets(str, STRLENMAX, stdin); 10 fgets(str, STRLENMAX, stdin);
11 cube = readcube("H48", str); 11 cube = readcube(str);
12 result = symmetry_mask(cube); 12 result = symmetry_mask(cube);
13 13
14 for (i = 0; i < 48; result >>= 1, i++) 14 for (i = 0; i < 48; result >>= 1, i++)
diff --git a/test/071_coord_eo/00_solved.in b/test/071_coord_eo/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/071_coord_eo/00_solved.in
+++ b/test/071_coord_eo/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/071_coord_eo/01_U.in b/test/071_coord_eo/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/071_coord_eo/01_U.in
+++ b/test/071_coord_eo/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/071_coord_eo/02_U2.in b/test/071_coord_eo/02_U2.in
index 316ad57..b14792e 100644
--- a/test/071_coord_eo/02_U2.in
+++ b/test/071_coord_eo/02_U2.in
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/071_coord_eo/03_U3.in b/test/071_coord_eo/03_U3.in
index 7721ab5..111ba2b 100644
--- a/test/071_coord_eo/03_U3.in
+++ b/test/071_coord_eo/03_U3.in
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/071_coord_eo/04_D.in b/test/071_coord_eo/04_D.in
index cf4f816..ffcea5d 100644
--- a/test/071_coord_eo/04_D.in
+++ b/test/071_coord_eo/04_D.in
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/071_coord_eo/07_R.in b/test/071_coord_eo/07_R.in
index 8c8fcb3..1be2e89 100644
--- a/test/071_coord_eo/07_R.in
+++ b/test/071_coord_eo/07_R.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/071_coord_eo/08_R2.in b/test/071_coord_eo/08_R2.in
index 90765e2..6611740 100644
--- a/test/071_coord_eo/08_R2.in
+++ b/test/071_coord_eo/08_R2.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/test/071_coord_eo/10_L.in b/test/071_coord_eo/10_L.in
index 0b0565c..5aa4131 100644
--- a/test/071_coord_eo/10_L.in
+++ b/test/071_coord_eo/10_L.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/071_coord_eo/13_F.in b/test/071_coord_eo/13_F.in
index e805af8..a75744c 100644
--- a/test/071_coord_eo/13_F.in
+++ b/test/071_coord_eo/13_F.in
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/071_coord_eo/14_F2.in b/test/071_coord_eo/14_F2.in
index 8aa701f..69720be 100644
--- a/test/071_coord_eo/14_F2.in
+++ b/test/071_coord_eo/14_F2.in
@@ -1 +1 @@
DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 CBADGFEH=DBCAEFGHJIKL=A
diff --git a/test/071_coord_eo/15_F3.in b/test/071_coord_eo/15_F3.in
index 40f1260..500d969 100644
--- a/test/071_coord_eo/15_F3.in
+++ b/test/071_coord_eo/15_F3.in
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/test/071_coord_eo/16_B.in b/test/071_coord_eo/16_B.in
index f7fb13c..73e099a 100644
--- a/test/071_coord_eo/16_B.in
+++ b/test/071_coord_eo/16_B.in
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/071_coord_eo/17_B2.in b/test/071_coord_eo/17_B2.in
index 9b33e35..1021aeb 100644
--- a/test/071_coord_eo/17_B2.in
+++ b/test/071_coord_eo/17_B2.in
@@ -1 +1 @@
UF0 DB0 UB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BR0 BL0 UFR0 DBR0 DFL0 UBL0 UFL0 DBL0 DFR0 UBR0 ADCBEHGF=ACBDEFGHIJLK=A
diff --git a/test/071_coord_eo/18_B3.in b/test/071_coord_eo/18_B3.in
index 1367517..78bd94a 100644
--- a/test/071_coord_eo/18_B3.in
+++ b/test/071_coord_eo/18_B3.in
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/test/071_coord_eo/20_scrambled.in b/test/071_coord_eo/20_scrambled.in
index 274d30b..cfe9ee4 100644
--- a/test/071_coord_eo/20_scrambled.in
+++ b/test/071_coord_eo/20_scrambled.in
@@ -1,3 +1,3 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2 2
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/071_coord_eo/coord_eo_tests.c b/test/071_coord_eo/coord_eo_tests.c
index 78e4395..11a8ac3 100644
--- a/test/071_coord_eo/coord_eo_tests.c
+++ b/test/071_coord_eo/coord_eo_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 int64_t result; 8 int64_t result;
9 9
10 fgets(str, STRLENMAX, stdin); 10 fgets(str, STRLENMAX, stdin);
11 cube = readcube("H48", str); 11 cube = readcube(str);
12 12
13 result = coord_eo(cube); 13 result = coord_eo(cube);
14 14
diff --git a/test/072_coord_co/00_solved.in b/test/072_coord_co/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/072_coord_co/00_solved.in
+++ b/test/072_coord_co/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/072_coord_co/01_U.in b/test/072_coord_co/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/072_coord_co/01_U.in
+++ b/test/072_coord_co/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/072_coord_co/02_U2.in b/test/072_coord_co/02_U2.in
index 316ad57..b14792e 100644
--- a/test/072_coord_co/02_U2.in
+++ b/test/072_coord_co/02_U2.in
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/072_coord_co/03_U3.in b/test/072_coord_co/03_U3.in
index 7721ab5..111ba2b 100644
--- a/test/072_coord_co/03_U3.in
+++ b/test/072_coord_co/03_U3.in
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/072_coord_co/04_D.in b/test/072_coord_co/04_D.in
index cf4f816..ffcea5d 100644
--- a/test/072_coord_co/04_D.in
+++ b/test/072_coord_co/04_D.in
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/072_coord_co/07_R.in b/test/072_coord_co/07_R.in
index 8c8fcb3..1be2e89 100644
--- a/test/072_coord_co/07_R.in
+++ b/test/072_coord_co/07_R.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/072_coord_co/08_R2.in b/test/072_coord_co/08_R2.in
index 90765e2..6611740 100644
--- a/test/072_coord_co/08_R2.in
+++ b/test/072_coord_co/08_R2.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/test/072_coord_co/10_L.in b/test/072_coord_co/10_L.in
index 0b0565c..5aa4131 100644
--- a/test/072_coord_co/10_L.in
+++ b/test/072_coord_co/10_L.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/test/072_coord_co/13_F.in b/test/072_coord_co/13_F.in
index e805af8..a75744c 100644
--- a/test/072_coord_co/13_F.in
+++ b/test/072_coord_co/13_F.in
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/072_coord_co/14_F2.in b/test/072_coord_co/14_F2.in
index 8aa701f..69720be 100644
--- a/test/072_coord_co/14_F2.in
+++ b/test/072_coord_co/14_F2.in
@@ -1 +1 @@
DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 CBADGFEH=DBCAEFGHJIKL=A
diff --git a/test/072_coord_co/16_B.in b/test/072_coord_co/16_B.in
index f7fb13c..73e099a 100644
--- a/test/072_coord_co/16_B.in
+++ b/test/072_coord_co/16_B.in
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/test/072_coord_co/17_B2.in b/test/072_coord_co/17_B2.in
index 9b33e35..1021aeb 100644
--- a/test/072_coord_co/17_B2.in
+++ b/test/072_coord_co/17_B2.in
@@ -1 +1 @@
UF0 DB0 UB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BR0 BL0 UFR0 DBR0 DFL0 UBL0 UFL0 DBL0 DFR0 UBR0 ADCBEHGF=ACBDEFGHIJLK=A
diff --git a/test/072_coord_co/20_scrambled.in b/test/072_coord_co/20_scrambled.in
index 274d30b..cfe9ee4 100644
--- a/test/072_coord_co/20_scrambled.in
+++ b/test/072_coord_co/20_scrambled.in
@@ -1,3 +1,3 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2 2
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/072_coord_co/coord_co_tests.c b/test/072_coord_co/coord_co_tests.c
index 3b84d74..b1de223 100644
--- a/test/072_coord_co/coord_co_tests.c
+++ b/test/072_coord_co/coord_co_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 int64_t result; 8 int64_t result;
9 9
10 fgets(str, STRLENMAX, stdin); 10 fgets(str, STRLENMAX, stdin);
11 cube = readcube("H48", str); 11 cube = readcube(str);
12 12
13 result = coord_co(cube); 13 result = coord_co(cube);
14 14
diff --git a/test/073_coord_csep/00_solved.in b/test/073_coord_csep/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/073_coord_csep/00_solved.in
+++ b/test/073_coord_csep/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/073_coord_csep/01_U.in b/test/073_coord_csep/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/073_coord_csep/01_U.in
+++ b/test/073_coord_csep/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/073_coord_csep/02_U2.in b/test/073_coord_csep/02_U2.in
index 316ad57..b14792e 100644
--- a/test/073_coord_csep/02_U2.in
+++ b/test/073_coord_csep/02_U2.in
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/073_coord_csep/03_U3.in b/test/073_coord_csep/03_U3.in
index 7721ab5..111ba2b 100644
--- a/test/073_coord_csep/03_U3.in
+++ b/test/073_coord_csep/03_U3.in
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/test/073_coord_csep/04_D.in b/test/073_coord_csep/04_D.in
index cf4f816..ffcea5d 100644
--- a/test/073_coord_csep/04_D.in
+++ b/test/073_coord_csep/04_D.in
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/test/073_coord_csep/07_R.in b/test/073_coord_csep/07_R.in
index 8c8fcb3..1be2e89 100644
--- a/test/073_coord_csep/07_R.in
+++ b/test/073_coord_csep/07_R.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/073_coord_csep/08_R2.in b/test/073_coord_csep/08_R2.in
index 90765e2..6611740 100644
--- a/test/073_coord_csep/08_R2.in
+++ b/test/073_coord_csep/08_R2.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/test/073_coord_csep/13_F.in b/test/073_coord_csep/13_F.in
index e805af8..a75744c 100644
--- a/test/073_coord_csep/13_F.in
+++ b/test/073_coord_csep/13_F.in
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/test/073_coord_csep/20_scrambled.in b/test/073_coord_csep/20_scrambled.in
index 274d30b..cfe9ee4 100644
--- a/test/073_coord_csep/20_scrambled.in
+++ b/test/073_coord_csep/20_scrambled.in
@@ -1,3 +1,3 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2 2
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/073_coord_csep/coord_csep_tests.c b/test/073_coord_csep/coord_csep_tests.c
index 6d20079..6fe16b2 100644
--- a/test/073_coord_csep/coord_csep_tests.c
+++ b/test/073_coord_csep/coord_csep_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 int64_t result; 8 int64_t result;
9 9
10 fgets(str, STRLENMAX, stdin); 10 fgets(str, STRLENMAX, stdin);
11 cube = readcube("H48", str); 11 cube = readcube(str);
12 12
13 result = coord_csep(cube); 13 result = coord_csep(cube);
14 14
diff --git a/test/074_coord_esep/00_solved.in b/test/074_coord_esep/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/074_coord_esep/00_solved.in
+++ b/test/074_coord_esep/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/074_coord_esep/01_U.in b/test/074_coord_esep/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/074_coord_esep/01_U.in
+++ b/test/074_coord_esep/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/074_coord_esep/02_U2.in b/test/074_coord_esep/02_U2.in
index 316ad57..b14792e 100644
--- a/test/074_coord_esep/02_U2.in
+++ b/test/074_coord_esep/02_U2.in
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/074_coord_esep/20_scrambled.in b/test/074_coord_esep/20_scrambled.in
index 274d30b..cfe9ee4 100644
--- a/test/074_coord_esep/20_scrambled.in
+++ b/test/074_coord_esep/20_scrambled.in
@@ -1,3 +1,3 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2 2
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/074_coord_esep/21_swapaxis_FB.in b/test/074_coord_esep/21_swapaxis_FB.in
index d06e331..485925f 100644
--- a/test/074_coord_esep/21_swapaxis_FB.in
+++ b/test/074_coord_esep/21_swapaxis_FB.in
@@ -1 +1 @@
FR0 BR0 BL0 FL0 UR0 UL0 DL0 DR0 DF0 UF0 UB0 DB0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ILKJEFGHDABC=A
diff --git a/test/074_coord_esep/22_swapaxis_RL.in b/test/074_coord_esep/22_swapaxis_RL.in
index cb1ea4e..7fa067f 100644
--- a/test/074_coord_esep/22_swapaxis_RL.in
+++ b/test/074_coord_esep/22_swapaxis_RL.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 FL0 BL0 BR0 DR0 DL0 UL0 UR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDIJKLHGFE=A
diff --git a/test/074_coord_esep/23_swapaxis_UD.in b/test/074_coord_esep/23_swapaxis_UD.in
index 9c57408..3a1502b 100644
--- a/test/074_coord_esep/23_swapaxis_UD.in
+++ b/test/074_coord_esep/23_swapaxis_UD.in
@@ -1 +1 @@
UR0 UL0 DL0 DR0 UB0 UF0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=EFGHBADCIJKL=A
diff --git a/test/074_coord_esep/coord_esep_tests.c b/test/074_coord_esep/coord_esep_tests.c
index 134ab59..7c53c9a 100644
--- a/test/074_coord_esep/coord_esep_tests.c
+++ b/test/074_coord_esep/coord_esep_tests.c
@@ -8,7 +8,7 @@ void run(void) {
8 int64_t result; 8 int64_t result;
9 9
10 fgets(str, STRLENMAX, stdin); 10 fgets(str, STRLENMAX, stdin);
11 cube = readcube("H48", str); 11 cube = readcube(str);
12 12
13 result = coord_esep(cube); 13 result = coord_esep(cube);
14 14
diff --git a/test/075_set_eo/00_solved_0.in b/test/075_set_eo/00_solved_0.in
index 55bb6bf..49bd044 100644
--- a/test/075_set_eo/00_solved_0.in
+++ b/test/075_set_eo/00_solved_0.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
20 20
diff --git a/test/075_set_eo/00_solved_0.out b/test/075_set_eo/00_solved_0.out
index dff224d..5aa6ba7 100644
--- a/test/075_set_eo/00_solved_0.out
+++ b/test/075_set_eo/00_solved_0.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/075_set_eo/01_solved_1.in b/test/075_set_eo/01_solved_1.in
index edd864e..f545bfe 100644
--- a/test/075_set_eo/01_solved_1.in
+++ b/test/075_set_eo/01_solved_1.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
22047 22047
diff --git a/test/075_set_eo/01_solved_1.out b/test/075_set_eo/01_solved_1.out
index ec7594a..79d5114 100644
--- a/test/075_set_eo/01_solved_1.out
+++ b/test/075_set_eo/01_solved_1.out
@@ -1 +1 @@
UF1 UB1 DB1 DF1 UR1 UL1 DL1 DR1 FR1 FL1 BL1 BR1 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=QRSTUVWXYZab=A
diff --git a/test/075_set_eo/02_solved_other.in b/test/075_set_eo/02_solved_other.in
index 17e9b02..7b2e5b7 100644
--- a/test/075_set_eo/02_solved_other.in
+++ b/test/075_set_eo/02_solved_other.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
220 220
diff --git a/test/075_set_eo/02_solved_other.out b/test/075_set_eo/02_solved_other.out
index df73ef8..a193243 100644
--- a/test/075_set_eo/02_solved_other.out
+++ b/test/075_set_eo/02_solved_other.out
@@ -1 +1 @@
UF0 UB0 DB0 DF1 UR0 UL1 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCTEVGHIJKL=A
diff --git a/test/075_set_eo/03_solved_firstlast.in b/test/075_set_eo/03_solved_firstlast.in
index a16a192..70bd867 100644
--- a/test/075_set_eo/03_solved_firstlast.in
+++ b/test/075_set_eo/03_solved_firstlast.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
21024 21024
diff --git a/test/075_set_eo/03_solved_firstlast.out b/test/075_set_eo/03_solved_firstlast.out
index 8679be3..4256cff 100644
--- a/test/075_set_eo/03_solved_firstlast.out
+++ b/test/075_set_eo/03_solved_firstlast.out
@@ -1 +1 @@
UF1 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR1 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=QBCDEFGHIJKb=A
diff --git a/test/075_set_eo/10_scrambled_0.in b/test/075_set_eo/10_scrambled_0.in
index 55dccca..8f4a7d7 100644
--- a/test/075_set_eo/10_scrambled_0.in
+++ b/test/075_set_eo/10_scrambled_0.in
@@ -1,4 +1,4 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
20 20
3 3
4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/075_set_eo/10_scrambled_0.out b/test/075_set_eo/10_scrambled_0.out
index 0eabd6e..8aae87a 100644
--- a/test/075_set_eo/10_scrambled_0.out
+++ b/test/075_set_eo/10_scrambled_0.out
@@ -1 +1 @@
UL0 BL0 BR0 DL0 FR0 DF0 DB0 DR0 UB0 FL0 UF0 UR0 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 CILVXGMR=FKLGIDCHBJAE=A
diff --git a/test/075_set_eo/11_scrambled_1.in b/test/075_set_eo/11_scrambled_1.in
index 0037a04..4eac4f8 100644
--- a/test/075_set_eo/11_scrambled_1.in
+++ b/test/075_set_eo/11_scrambled_1.in
@@ -1,4 +1,4 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
22047 22047
3 3
4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 4// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/075_set_eo/11_scrambled_1.out b/test/075_set_eo/11_scrambled_1.out
index 843df0d..8786173 100644
--- a/test/075_set_eo/11_scrambled_1.out
+++ b/test/075_set_eo/11_scrambled_1.out
@@ -1 +1 @@
UL1 BL1 BR1 DL1 FR1 DF1 DB1 DR1 UB1 FL1 UF1 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 CILVXGMR=VabWYTSXRZQU=A
diff --git a/test/075_set_eo/set_eo_tests.c b/test/075_set_eo/set_eo_tests.c
index 0c67e87..2e05e9a 100644
--- a/test/075_set_eo/set_eo_tests.c
+++ b/test/075_set_eo/set_eo_tests.c
@@ -11,7 +11,7 @@ void run(void) {
11 int64_t eo; 11 int64_t eo;
12 12
13 fgets(str, STRLENMAX, stdin); 13 fgets(str, STRLENMAX, stdin);
14 cube = readcube("H48", str); 14 cube = readcube(str);
15 fgets(str, STRLENMAX, stdin); 15 fgets(str, STRLENMAX, stdin);
16 eo = atoi(str); 16 eo = atoi(str);
17 17
@@ -30,7 +30,7 @@ void run(void) {
30 fprintf(stderr, "\n"); 30 fprintf(stderr, "\n");
31 printf("Setting EO resulted in inconsistent cube\n"); 31 printf("Setting EO resulted in inconsistent cube\n");
32 } else { 32 } else {
33 writecube("H48", cube, NISSY_SIZE_H48, str); 33 writecube(cube, NISSY_SIZE_CUBE, str);
34 printf("%s\n", str); 34 printf("%s\n", str);
35 } 35 }
36} 36}
diff --git a/test/076_copy_corners/00_solved_scrambled.in b/test/076_copy_corners/00_solved_scrambled.in
index 2ff0e6a..38c1566 100644
--- a/test/076_copy_corners/00_solved_scrambled.in
+++ b/test/076_copy_corners/00_solved_scrambled.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 2CILVXGMR=FKbGIDSXBJAU=A
diff --git a/test/076_copy_corners/00_solved_scrambled.out b/test/076_copy_corners/00_solved_scrambled.out
index 9c53bcc..04ed32e 100644
--- a/test/076_copy_corners/00_solved_scrambled.out
+++ b/test/076_copy_corners/00_solved_scrambled.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 CILVXGMR=ABCDEFGHIJKL=A
diff --git a/test/076_copy_corners/copy_corners_tests.c b/test/076_copy_corners/copy_corners_tests.c
index d1674fc..94e2a2a 100644
--- a/test/076_copy_corners/copy_corners_tests.c
+++ b/test/076_copy_corners/copy_corners_tests.c
@@ -7,10 +7,10 @@ void run(void) {
7 cube_t c1, c2; 7 cube_t c1, c2;
8 8
9 fgets(str, STRLENMAX, stdin); 9 fgets(str, STRLENMAX, stdin);
10 c1 = readcube("H48", str); 10 c1 = readcube(str);
11 11
12 fgets(str, STRLENMAX, stdin); 12 fgets(str, STRLENMAX, stdin);
13 c2 = readcube("H48", str); 13 c2 = readcube(str);
14 14
15 copy_corners(&c1, c2); 15 copy_corners(&c1, c2);
16 16
@@ -19,7 +19,7 @@ void run(void) {
19 } else if (!isconsistent(c1)) { 19 } else if (!isconsistent(c1)) {
20 printf("Setting EO resulted in inconsistent cube\n"); 20 printf("Setting EO resulted in inconsistent cube\n");
21 } else { 21 } else {
22 writecube("H48", c1, NISSY_SIZE_H48, str); 22 writecube(c1, NISSY_SIZE_CUBE, str);
23 printf("%s\n", str); 23 printf("%s\n", str);
24 } 24 }
25} 25}
diff --git a/test/077_copy_edges/00_solved_scrambled.in b/test/077_copy_edges/00_solved_scrambled.in
index 2ff0e6a..38c1566 100644
--- a/test/077_copy_edges/00_solved_scrambled.in
+++ b/test/077_copy_edges/00_solved_scrambled.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 2CILVXGMR=FKbGIDSXBJAU=A
diff --git a/test/077_copy_edges/00_solved_scrambled.out b/test/077_copy_edges/00_solved_scrambled.out
index 3af84f4..0d38603 100644
--- a/test/077_copy_edges/00_solved_scrambled.out
+++ b/test/077_copy_edges/00_solved_scrambled.out
@@ -1 +1 @@
UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=FKbGIDSXBJAU=A
diff --git a/test/077_copy_edges/copy_edges_tests.c b/test/077_copy_edges/copy_edges_tests.c
index 48c5c53..36e32af 100644
--- a/test/077_copy_edges/copy_edges_tests.c
+++ b/test/077_copy_edges/copy_edges_tests.c
@@ -7,10 +7,10 @@ void run(void) {
7 cube_t c1, c2; 7 cube_t c1, c2;
8 8
9 fgets(str, STRLENMAX, stdin); 9 fgets(str, STRLENMAX, stdin);
10 c1 = readcube("H48", str); 10 c1 = readcube(str);
11 11
12 fgets(str, STRLENMAX, stdin); 12 fgets(str, STRLENMAX, stdin);
13 c2 = readcube("H48", str); 13 c2 = readcube(str);
14 14
15 copy_edges(&c1, c2); 15 copy_edges(&c1, c2);
16 16
@@ -19,7 +19,7 @@ void run(void) {
19 } else if (!isconsistent(c1)) { 19 } else if (!isconsistent(c1)) {
20 printf("Setting EO resulted in inconsistent cube\n"); 20 printf("Setting EO resulted in inconsistent cube\n");
21 } else { 21 } else {
22 writecube("H48", c1, NISSY_SIZE_H48, str); 22 writecube(c1, NISSY_SIZE_CUBE, str);
23 printf("%s\n", str); 23 printf("%s\n", str);
24 } 24 }
25} 25}
diff --git a/test/078_invcoord_esep/00_solved.in b/test/078_invcoord_esep/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/078_invcoord_esep/00_solved.in
+++ b/test/078_invcoord_esep/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/078_invcoord_esep/01_U.in b/test/078_invcoord_esep/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/078_invcoord_esep/01_U.in
+++ b/test/078_invcoord_esep/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/078_invcoord_esep/02_U2.in b/test/078_invcoord_esep/02_U2.in
index 316ad57..b14792e 100644
--- a/test/078_invcoord_esep/02_U2.in
+++ b/test/078_invcoord_esep/02_U2.in
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/test/078_invcoord_esep/20_scrambled.in b/test/078_invcoord_esep/20_scrambled.in
index 274d30b..cfe9ee4 100644
--- a/test/078_invcoord_esep/20_scrambled.in
+++ b/test/078_invcoord_esep/20_scrambled.in
@@ -1,3 +1,3 @@
1UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 1CILVXGMR=FKbGIDSXBJAU=A
2 2
3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B' 3// Scramble: U R D' L D' F L2 D L F B D2 B' L2 F U2 L2 D2 R2 L2 B'
diff --git a/test/078_invcoord_esep/21_swapaxis_FB.in b/test/078_invcoord_esep/21_swapaxis_FB.in
index d06e331..485925f 100644
--- a/test/078_invcoord_esep/21_swapaxis_FB.in
+++ b/test/078_invcoord_esep/21_swapaxis_FB.in
@@ -1 +1 @@
FR0 BR0 BL0 FL0 UR0 UL0 DL0 DR0 DF0 UF0 UB0 DB0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ILKJEFGHDABC=A
diff --git a/test/078_invcoord_esep/22_swapaxis_RL.in b/test/078_invcoord_esep/22_swapaxis_RL.in
index cb1ea4e..7fa067f 100644
--- a/test/078_invcoord_esep/22_swapaxis_RL.in
+++ b/test/078_invcoord_esep/22_swapaxis_RL.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 FL0 BL0 BR0 DR0 DL0 UL0 UR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDIJKLHGFE=A
diff --git a/test/078_invcoord_esep/23_swapaxis_UD.in b/test/078_invcoord_esep/23_swapaxis_UD.in
index 9c57408..3a1502b 100644
--- a/test/078_invcoord_esep/23_swapaxis_UD.in
+++ b/test/078_invcoord_esep/23_swapaxis_UD.in
@@ -1 +1 @@
UR0 UL0 DL0 DR0 UB0 UF0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=EFGHBADCIJKL=A
diff --git a/test/078_invcoord_esep/invcoord_esep_tests.c b/test/078_invcoord_esep/invcoord_esep_tests.c
index 45f508b..ebf35b0 100644
--- a/test/078_invcoord_esep/invcoord_esep_tests.c
+++ b/test/078_invcoord_esep/invcoord_esep_tests.c
@@ -9,7 +9,7 @@ void run(void) {
9 int64_t i; 9 int64_t i;
10 10
11 fgets(str, STRLENMAX, stdin); 11 fgets(str, STRLENMAX, stdin);
12 cube = readcube("H48", str); 12 cube = readcube(str);
13 13
14 i = coord_esep(cube); 14 i = coord_esep(cube);
15 cube = invcoord_esep(i); 15 cube = invcoord_esep(i);
diff --git a/test/081_getcube/00_solved_0.out b/test/081_getcube/00_solved_0.out
index dff224d..5aa6ba7 100644
--- a/test/081_getcube/00_solved_0.out
+++ b/test/081_getcube/00_solved_0.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/081_getcube/02_scrambled.out b/test/081_getcube/02_scrambled.out
index 6a05bbc..4dfa7b7 100644
--- a/test/081_getcube/02_scrambled.out
+++ b/test/081_getcube/02_scrambled.out
@@ -1 +1 @@
FL0 DB0 UB1 FR0 UR0 DF0 UF0 BR1 UL1 BL1 DL0 DR0 DFR1 UFR1 UBR1 UFL2 DBR2 DFL0 DBL2 UBL0 OINUTCXB=JCRIEDAbVaGH=A
diff --git a/test/081_getcube/getcube_tests.c b/test/081_getcube/getcube_tests.c
index 46c324b..916c42b 100644
--- a/test/081_getcube/getcube_tests.c
+++ b/test/081_getcube/getcube_tests.c
@@ -23,7 +23,7 @@ void run(void) {
23 } else if (!isconsistent(cube)) { 23 } else if (!isconsistent(cube)) {
24 printf("Inconsistent cube\n"); 24 printf("Inconsistent cube\n");
25 } else { 25 } else {
26 writecube("H48", cube, NISSY_SIZE_H48, str); 26 writecube(cube, NISSY_SIZE_CUBE, str);
27 printf("%s\n", str); 27 printf("%s\n", str);
28 } 28 }
29} 29}
diff --git a/test/101_cocsep_transform_invariant/00_solved.in b/test/101_cocsep_transform_invariant/00_solved.in
index dff224d..5aa6ba7 100644
--- a/test/101_cocsep_transform_invariant/00_solved.in
+++ b/test/101_cocsep_transform_invariant/00_solved.in
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/test/101_cocsep_transform_invariant/01_U.in b/test/101_cocsep_transform_invariant/01_U.in
index b5b36ad..250d3a1 100644
--- a/test/101_cocsep_transform_invariant/01_U.in
+++ b/test/101_cocsep_transform_invariant/01_U.in
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/test/101_cocsep_transform_invariant/02_scrambled.in b/test/101_cocsep_transform_invariant/02_scrambled.in
index f6e1f48..6bb8d86 100644
--- a/test/101_cocsep_transform_invariant/02_scrambled.in
+++ b/test/101_cocsep_transform_invariant/02_scrambled.in
@@ -1 +1 @@
DL1 BR0 DR0 UR1 DF0 FL1 BL0 UL0 FR0 UF0 DB1 UB0 UFR0 DBL1 DBR0 UFL1 DFR1 DFL1 UBL2 UBR0 APDMOKRF=WLHUDZKFIASB=A
diff --git a/test/101_cocsep_transform_invariant/cocsep_transform_invariant.c b/test/101_cocsep_transform_invariant/cocsep_transform_invariant.c
index b5a74b0..7ded2e9 100644
--- a/test/101_cocsep_transform_invariant/cocsep_transform_invariant.c
+++ b/test/101_cocsep_transform_invariant/cocsep_transform_invariant.c
@@ -14,7 +14,7 @@ void run(void) {
14 cube_t cube, transd, rep[COCSEP_CLASSES]; 14 cube_t cube, transd, rep[COCSEP_CLASSES];
15 15
16 fgets(str, STRLENMAX, stdin); 16 fgets(str, STRLENMAX, stdin);
17 cube = readcube("H48", str); 17 cube = readcube(str);
18 18
19 gendata_cocsep(buf, selfsim, rep); 19 gendata_cocsep(buf, selfsim, rep);
20 cocsepdata = (uint32_t *)((char *)buf + INFOSIZE); 20 cocsepdata = (uint32_t *)((char *)buf + INFOSIZE);
diff --git a/test/102_cocsep_selfsim/00_all.in b/test/102_cocsep_selfsim/00_all.in
index 07bda04..5d0021c 100644
--- a/test/102_cocsep_selfsim/00_all.in
+++ b/test/102_cocsep_selfsim/00_all.in
@@ -1,2 +1,2 @@
1UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=ABCDEFGHIJKL=A
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/test/102_cocsep_selfsim/cocsep_selfsim_tests.c b/test/102_cocsep_selfsim/cocsep_selfsim_tests.c
index 0ead3b4..9966321 100644
--- a/test/102_cocsep_selfsim/cocsep_selfsim_tests.c
+++ b/test/102_cocsep_selfsim/cocsep_selfsim_tests.c
@@ -24,7 +24,7 @@ void run(void) {
24 /* All cases in the same test so we do not generate data many times */ 24 /* All cases in the same test so we do not generate data many times */
25 25
26 while (fgets(str, STRLENMAX, stdin) != NULL) { 26 while (fgets(str, STRLENMAX, stdin) != NULL) {
27 cube = readcube("H48", str); 27 cube = readcube(str);
28 coord = coord_cocsep(cube); 28 coord = coord_cocsep(cube);
29 data = cocsepdata[coord]; 29 data = cocsepdata[coord];
30 coclass = (data & (0xFFFU << 16)) >> 16; 30 coclass = (data & (0xFFFU << 16)) >> 16;
diff --git a/test/110_coord_invcoord_h48/00_all.in b/test/110_coord_invcoord_h48/00_all.in
index a2f9540..0480485 100644
--- a/test/110_coord_invcoord_h48/00_all.in
+++ b/test/110_coord_invcoord_h48/00_all.in
@@ -1,8 +1,8 @@
1UB0 DF0 DB0 UF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 1ABCDEFGH=BDCAEFGHIJKL=A
2UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 2ABCDEFGH=ABCDEFGHIJKL=A
3UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 3BACDFEGH=BACDFEGHIJKL=A
4UL0 BL0 BR1 DL0 FR0 DF0 DB1 DR1 UB0 FL0 UF0 UR1 DFL0 UFR1 DBR1 UBR2 DBL2 DFR0 UFL1 UBL2 4CILVXGMR=FKbGIDSXBJAU=A
5UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 5WBCVEILH=ABCDIFGLHJKE=A
6FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 6MBODSFQH=ZBCYEFGHQTKL=A
7FR0 BR0 BL0 FL0 UR0 UL0 DL0 DR0 DF0 UF0 UB0 DB0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 7ABCDEFGH=ILKJEFGHDABC=A
8UR0 UL0 DL0 DR0 UB0 UF0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 8ABCDEFGH=EFGHBADCIJKL=A
diff --git a/test/110_coord_invcoord_h48/coord_invcoord_h48_tests.c b/test/110_coord_invcoord_h48/coord_invcoord_h48_tests.c
index fdc4619..458ad31 100644
--- a/test/110_coord_invcoord_h48/coord_invcoord_h48_tests.c
+++ b/test/110_coord_invcoord_h48/coord_invcoord_h48_tests.c
@@ -22,7 +22,7 @@ void run(void) {
22 i = 1; 22 i = 1;
23 h = 11; 23 h = 11;
24 while (fgets(str, STRLENMAX, stdin) != NULL) { 24 while (fgets(str, STRLENMAX, stdin) != NULL) {
25 cube = readcube("H48", str); 25 cube = readcube(str);
26 c = coord_h48(cube, cocsepdata, h); 26 c = coord_h48(cube, cocsepdata, h);
27 invc = invcoord_h48(c, rep, h); 27 invc = invcoord_h48(c, rep, h);
28 for (t = 0, found = false; t < 48; t++) { 28 for (t = 0, found = false; t < 48; t++) {
diff --git a/test/121_coorddata_dr/coorddata_dr.c b/test/121_coorddata_dr/coorddata_dr.c
index 9432b4c..d7efcfb 100644
--- a/test/121_coorddata_dr/coorddata_dr.c
+++ b/test/121_coorddata_dr/coorddata_dr.c
@@ -45,7 +45,7 @@ void run(void) {
45 if (!found) { 45 if (!found) {
46 printf("Error: invcoord of %" PRId64 " returns %" 46 printf("Error: invcoord of %" PRId64 " returns %"
47 PRId64 " with cube:\n", coord, coord2); 47 PRId64 " with cube:\n", coord, coord2);
48 writecube("H48", cube, STRLENMAX, str); 48 writecube(cube, STRLENMAX, str);
49 printf("%s\n", str); 49 printf("%s\n", str);
50 goto cleanup; 50 goto cleanup;
51 } 51 }
diff --git a/test/122_coorddata_dreo/coorddata_dreo.c b/test/122_coorddata_dreo/coorddata_dreo.c
index 5c1e796..98c954d 100644
--- a/test/122_coorddata_dreo/coorddata_dreo.c
+++ b/test/122_coorddata_dreo/coorddata_dreo.c
@@ -45,7 +45,7 @@ void run(void) {
45 if (!found) { 45 if (!found) {
46 printf("Error: invcoord of %" PRId64 " returns %" 46 printf("Error: invcoord of %" PRId64 " returns %"
47 PRId64 " with cube:\n", coord, coord2); 47 PRId64 " with cube:\n", coord, coord2);
48 writecube("H48", cube, STRLENMAX, str); 48 writecube(cube, STRLENMAX, str);
49 printf("%s\n", str); 49 printf("%s\n", str);
50 goto cleanup; 50 goto cleanup;
51 } 51 }
diff --git a/test/test.h b/test/test.h
index 97f229b..78a3fd9 100644
--- a/test/test.h
+++ b/test/test.h
@@ -25,8 +25,8 @@ bool iserror(cube_t);
25bool isconsistent(cube_t); 25bool isconsistent(cube_t);
26bool issolvable(cube_t); 26bool issolvable(cube_t);
27bool issolved(cube_t); 27bool issolved(cube_t);
28cube_t readcube(char *, char *); 28cube_t readcube(char *);
29int64_t writecube(const char *, cube_t, size_t n, char [n]); 29int64_t writecube(cube_t, size_t n, char [n]);
30 30
31/* Test function to be implemented by all tests */ 31/* Test function to be implemented by all tests */
32void run(void); 32void run(void);
diff --git a/tools/300_solve_small/solve_small.c b/tools/300_solve_small/solve_small.c
index 2efbcb5..dcd47c1 100644
--- a/tools/300_solve_small/solve_small.c
+++ b/tools/300_solve_small/solve_small.c
@@ -25,7 +25,7 @@ void run(void) {
25 int i; 25 int i;
26 int64_t n; 26 int64_t n;
27 long long stats[NISSY_SIZE_SOLVE_STATS]; 27 long long stats[NISSY_SIZE_SOLVE_STATS];
28 char sol[SOL_BUFFER_LEN], cube[22]; 28 char sol[SOL_BUFFER_LEN], cube[NISSY_SIZE_CUBE];
29 29
30 printf("Solved the following scrambles:\n\n"); 30 printf("Solved the following scrambles:\n\n");
31 for (i = 0; scrambles[i] != NULL; i++) { 31 for (i = 0; scrambles[i] != NULL; i++) {
diff --git a/tools/301_solve_file/solve_file.c b/tools/301_solve_file/solve_file.c
index fcc018d..d9084fd 100644
--- a/tools/301_solve_file/solve_file.c
+++ b/tools/301_solve_file/solve_file.c
@@ -12,7 +12,7 @@ char scrambles[MAX_SCR][MAX_SCR_LEN];
12void run(void) { 12void run(void) {
13 int64_t i, nsols; 13 int64_t i, nsols;
14 long long stats[NISSY_SIZE_SOLVE_STATS]; 14 long long stats[NISSY_SIZE_SOLVE_STATS];
15 char sol[SOL_BUFFER_LEN], cube[22]; 15 char sol[SOL_BUFFER_LEN], cube[NISSY_SIZE_CUBE];
16 16
17 printf("Solved the following scrambles:\n\n"); 17 printf("Solved the following scrambles:\n\n");
18 for (i = 0; i < N; i++) { 18 for (i = 0; i < N; i++) {
diff --git a/tools/302_solve_multisol/solve_multisol.c b/tools/302_solve_multisol/solve_multisol.c
index f6057d7..a2896a9 100644
--- a/tools/302_solve_multisol/solve_multisol.c
+++ b/tools/302_solve_multisol/solve_multisol.c
@@ -18,7 +18,7 @@ void run(void) {
18 int i; 18 int i;
19 int64_t n; 19 int64_t n;
20 long long stats[NISSY_SIZE_SOLVE_STATS]; 20 long long stats[NISSY_SIZE_SOLVE_STATS];
21 char sol[SOL_BUFFER_LEN], cube[22]; 21 char sol[SOL_BUFFER_LEN], cube[NISSY_SIZE_CUBE];
22 22
23 printf("Solved the following scrambles:\n\n"); 23 printf("Solved the following scrambles:\n\n");
24 for (i = 0; scrambles[i] != NULL; i++) { 24 for (i = 0; scrambles[i] != NULL; i++) {
diff --git a/tools/400_solvetest/solve_test.c b/tools/400_solvetest/solve_test.c
index a724320..1bfe851 100644
--- a/tools/400_solvetest/solve_test.c
+++ b/tools/400_solvetest/solve_test.c
@@ -45,7 +45,7 @@ void run(void) {
45 int i; 45 int i;
46 int64_t n; 46 int64_t n;
47 long long stats[NISSY_SIZE_SOLVE_STATS]; 47 long long stats[NISSY_SIZE_SOLVE_STATS];
48 char sol[SOL_BUFFER_LEN], cube[22]; 48 char sol[SOL_BUFFER_LEN], cube[NISSY_SIZE_CUBE];
49 49
50 for (i = 0; s[i].scramble[0]; i++) { 50 for (i = 0; s[i].scramble[0]; i++) {
51 printf("\n%d. %s\n", i, s[i].scramble); 51 printf("\n%d. %s\n", i, s[i].scramble);
diff --git a/src/core/io_formats.h b/utils/convert.c
index f5668d4..4f4bb8c 100644
--- a/src/core/io_formats.h
+++ b/utils/convert.c
@@ -1,3 +1,9 @@
1/*
2This file contains code related to cube format conversion that used to
3be in src/core. It is to be adapted into a standalone tool for cube
4format conversion.
5*/
6
1STATIC cube_t readcube(const char *, const char *); 7STATIC cube_t readcube(const char *, const char *);
2STATIC int64_t writecube(const char *, cube_t, size_t n, char [n]); 8STATIC int64_t writecube(const char *, cube_t, size_t n, char [n]);
3STATIC void log_available_formats(void); 9STATIC void log_available_formats(void);
diff --git a/utils/cubes/TRANSFORMATIONS.txt b/utils/cubes/TRANSFORMATIONS.txt
index 58446e8..e69104d 100644
--- a/utils/cubes/TRANSFORMATIONS.txt
+++ b/utils/cubes/TRANSFORMATIONS.txt
@@ -9,10 +9,10 @@ A composed rotation + mirror is obtained by applying the corresponding
9rotation to the solved cube mirrored along the M plane. 9rotation to the solved cube mirrored along the M plane.
10 10
11For example, to apply the transformation RBm (mirrored RB) to a cube C: 11For example, to apply the transformation RBm (mirrored RB) to a cube C:
12 1a. Apply a mirror along the M plane to the solved cube 121a. Apply a mirror along the M plane to the solved cube
13 1b. Rotate the mirrored cube with z' y2 131b. Rotate the mirrored cube with z' y2
14 3. Apply the cube C to the transformed solved cube 143. Apply the cube C to the transformed solved cube
15 4. Apply the transformations of step 1a and 1b in reverse 154. Apply the transformations of step 1a and 1b in reverse
16 16
17The orientation of pieces after a rotation ignores the new position 17The orientation of pieces after a rotation ignores the new position
18of centers. A rotated cube can technically be inconsistent, because 18of centers. A rotated cube can technically be inconsistent, because
diff --git a/utils/cubes/move_00_U.txt b/utils/cubes/move_00_U.txt
index b5b36ad..250d3a1 100644
--- a/utils/cubes/move_00_U.txt
+++ b/utils/cubes/move_00_U.txt
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/cubes/move_01_U2.txt b/utils/cubes/move_01_U2.txt
index 316ad57..b14792e 100644
--- a/utils/cubes/move_01_U2.txt
+++ b/utils/cubes/move_01_U2.txt
@@ -1 +1 @@
UB0 UF0 DB0 DF0 UL0 UR0 DL0 DR0 FR0 FL0 BL0 BR0 UBL0 UFR0 DFL0 DBR0 UBR0 UFL0 DFR0 DBL0 BACDFEGH=BACDFEGHIJKL=A
diff --git a/utils/cubes/move_02_U3.txt b/utils/cubes/move_02_U3.txt
index 7721ab5..111ba2b 100644
--- a/utils/cubes/move_02_U3.txt
+++ b/utils/cubes/move_02_U3.txt
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/cubes/move_03_D.txt b/utils/cubes/move_03_D.txt
index cf4f816..ffcea5d 100644
--- a/utils/cubes/move_03_D.txt
+++ b/utils/cubes/move_03_D.txt
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/cubes/move_04_D2.txt b/utils/cubes/move_04_D2.txt
index 13b229e..f872210 100644
--- a/utils/cubes/move_04_D2.txt
+++ b/utils/cubes/move_04_D2.txt
@@ -1 +1 @@
UF0 UB0 DF0 DB0 UR0 UL0 DR0 DL0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBR0 DFL0 UFL0 UBR0 DBL0 DFR0 ABDCEFHG=ABDCEFHGIJKL=A
diff --git a/utils/cubes/move_05_D3.txt b/utils/cubes/move_05_D3.txt
index 2864f5b..acd829c 100644
--- a/utils/cubes/move_05_D3.txt
+++ b/utils/cubes/move_05_D3.txt
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/cubes/move_06_R.txt b/utils/cubes/move_06_R.txt
index 8c8fcb3..1be2e89 100644
--- a/utils/cubes/move_06_R.txt
+++ b/utils/cubes/move_06_R.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/cubes/move_07_R2.txt b/utils/cubes/move_07_R2.txt
index 90765e2..6611740 100644
--- a/utils/cubes/move_07_R2.txt
+++ b/utils/cubes/move_07_R2.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 DR0 UL0 DL0 UR0 BR0 FL0 BL0 FR0 DBR0 UBL0 DFL0 UFR0 UFL0 DFR0 UBR0 DBL0 DBCAEGFH=ABCDHFGELJKI=A
diff --git a/utils/cubes/move_08_R3.txt b/utils/cubes/move_08_R3.txt
index d4abffc..a14e69b 100644
--- a/utils/cubes/move_08_R3.txt
+++ b/utils/cubes/move_08_R3.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/cubes/move_09_L.txt b/utils/cubes/move_09_L.txt
index 0b0565c..5aa4131 100644
--- a/utils/cubes/move_09_L.txt
+++ b/utils/cubes/move_09_L.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/cubes/move_10_L2.txt b/utils/cubes/move_10_L2.txt
index 2498c87..4fe322f 100644
--- a/utils/cubes/move_10_L2.txt
+++ b/utils/cubes/move_10_L2.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 DL0 UL0 DR0 FR0 BL0 FL0 BR0 UFR0 DFL0 UBL0 DBR0 DBL0 UBR0 DFR0 UFL0 ACBDHFGE=ABCDEGFHIKJL=A
diff --git a/utils/cubes/move_11_L3.txt b/utils/cubes/move_11_L3.txt
index 2ac2912..fbe35f3 100644
--- a/utils/cubes/move_11_L3.txt
+++ b/utils/cubes/move_11_L3.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/cubes/move_12_F.txt b/utils/cubes/move_12_F.txt
index e805af8..a75744c 100644
--- a/utils/cubes/move_12_F.txt
+++ b/utils/cubes/move_12_F.txt
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/cubes/move_13_F2.txt b/utils/cubes/move_13_F2.txt
index 8aa701f..69720be 100644
--- a/utils/cubes/move_13_F2.txt
+++ b/utils/cubes/move_13_F2.txt
@@ -1 +1 @@
DF0 UB0 DB0 UF0 UR0 UL0 DL0 DR0 FL0 FR0 BL0 BR0 DFL0 UBL0 UFR0 DBR0 DFR0 UBR0 UFL0 DBL0 CBADGFEH=DBCAEFGHJIKL=A
diff --git a/utils/cubes/move_14_F3.txt b/utils/cubes/move_14_F3.txt
index 40f1260..500d969 100644
--- a/utils/cubes/move_14_F3.txt
+++ b/utils/cubes/move_14_F3.txt
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/cubes/move_15_B.txt b/utils/cubes/move_15_B.txt
index f7fb13c..73e099a 100644
--- a/utils/cubes/move_15_B.txt
+++ b/utils/cubes/move_15_B.txt
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/cubes/move_16_B2.txt b/utils/cubes/move_16_B2.txt
index 9b33e35..1021aeb 100644
--- a/utils/cubes/move_16_B2.txt
+++ b/utils/cubes/move_16_B2.txt
@@ -1 +1 @@
UF0 DB0 UB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BR0 BL0 UFR0 DBR0 DFL0 UBL0 UFL0 DBL0 DFR0 UBR0 ADCBEHGF=ACBDEFGHIJLK=A
diff --git a/utils/cubes/move_17_B3.txt b/utils/cubes/move_17_B3.txt
index 1367517..78bd94a 100644
--- a/utils/cubes/move_17_B3.txt
+++ b/utils/cubes/move_17_B3.txt
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/cubes/solved.txt b/utils/cubes/solved.txt
index dff224d..5aa6ba7 100644
--- a/utils/cubes/solved.txt
+++ b/utils/cubes/solved.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/utils/cubes/transform_00_UFr.txt b/utils/cubes/transform_00_UFr.txt
index dff224d..5aa6ba7 100644
--- a/utils/cubes/transform_00_UFr.txt
+++ b/utils/cubes/transform_00_UFr.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 UL0 DL0 DR0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFL0 DBR0 UFL0 UBR0 DFR0 DBL0 ABCDEFGH=ABCDEFGHIJKL=A
diff --git a/utils/cubes/transform_01_ULr.txt b/utils/cubes/transform_01_ULr.txt
index 4cfb17e..4c721b6 100644
--- a/utils/cubes/transform_01_ULr.txt
+++ b/utils/cubes/transform_01_ULr.txt
@@ -1 +1 @@
UL0 UR0 DR0 DL0 UF0 UB0 DB0 DF0 FL1 BL1 BR1 FR1 UFL0 UBR0 DBL0 DFR0 UBL0 UFR0 DFL0 DBR0 EFHGBACD=FEHGABCDZabY=A
diff --git a/utils/cubes/transform_02_UBr.txt b/utils/cubes/transform_02_UBr.txt
index 8c7eeb7..96fff3d 100644
--- a/utils/cubes/transform_02_UBr.txt
+++ b/utils/cubes/transform_02_UBr.txt
@@ -1 +1 @@
UB0 UF0 DF0 DB0 UL0 UR0 DR0 DL0 BL0 BR0 FR0 FL0 UBL0 UFR0 DBR0 DFL0 UBR0 UFL0 DBL0 DFR0 BADCFEHG=BADCFEHGKLIJ=A
diff --git a/utils/cubes/transform_03_URr.txt b/utils/cubes/transform_03_URr.txt
index ac0e932..154d7a5 100644
--- a/utils/cubes/transform_03_URr.txt
+++ b/utils/cubes/transform_03_URr.txt
@@ -1 +1 @@
UR0 UL0 DL0 DR0 UB0 UF0 DF0 DB0 BR1 FR1 FL1 BL1 UBR0 UFL0 DFR0 DBL0 UFR0 UBL0 DBR0 DFL0 FEGHABDC=EFGHBADCbYZa=A
diff --git a/utils/cubes/transform_04_DFr.txt b/utils/cubes/transform_04_DFr.txt
index cdecc18..8da6004 100644
--- a/utils/cubes/transform_04_DFr.txt
+++ b/utils/cubes/transform_04_DFr.txt
@@ -1 +1 @@
DF0 DB0 UB0 UF0 DL0 DR0 UR0 UL0 FL0 FR0 BR0 BL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 CDABGHEF=DCBAGHEFJILK=A
diff --git a/utils/cubes/transform_05_DLr.txt b/utils/cubes/transform_05_DLr.txt
index fffaa54..0d85f8d 100644
--- a/utils/cubes/transform_05_DLr.txt
+++ b/utils/cubes/transform_05_DLr.txt
@@ -1 +1 @@
DL0 DR0 UR0 UL0 DB0 DF0 UF0 UB0 BL1 FL1 FR1 BR1 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 HGEFCDBA=GHEFCDABaZYb=A
diff --git a/utils/cubes/transform_06_DBr.txt b/utils/cubes/transform_06_DBr.txt
index d2434fa..5277071 100644
--- a/utils/cubes/transform_06_DBr.txt
+++ b/utils/cubes/transform_06_DBr.txt
@@ -1 +1 @@
DB0 DF0 UF0 UB0 DR0 DL0 UL0 UR0 BR0 BL0 FL0 FR0 DBR0 DFL0 UBL0 UFR0 DBL0 DFR0 UBR0 UFL0 DCBAHGFE=CDABHGFELKJI=A
diff --git a/utils/cubes/transform_07_DRr.txt b/utils/cubes/transform_07_DRr.txt
index c03ba90..726cb29 100644
--- a/utils/cubes/transform_07_DRr.txt
+++ b/utils/cubes/transform_07_DRr.txt
@@ -1 +1 @@
DR0 DL0 UL0 UR0 DF0 DB0 UB0 UF0 FR1 BR1 BL1 FL1 DFR0 DBL0 UBR0 UFL0 DBR0 DFL0 UFR0 UBL0 GHFEDCAB=HGFEDCBAYbaZ=A
diff --git a/utils/cubes/transform_08_RUr.txt b/utils/cubes/transform_08_RUr.txt
index bcf6f8f..da752bc 100644
--- a/utils/cubes/transform_08_RUr.txt
+++ b/utils/cubes/transform_08_RUr.txt
@@ -1 +1 @@
UR1 DR1 DL1 UL1 FR1 BR1 BL1 FL1 UF0 UB0 DB0 DF0 UFR2 DBR2 UBL2 DFL2 UBR1 DFR1 UFL1 DBL1 QTRSNOMP=UXWVYbaZABCD=A
diff --git a/utils/cubes/transform_09_RFr.txt b/utils/cubes/transform_09_RFr.txt
index 5c9b9b2..fcfb023 100644
--- a/utils/cubes/transform_09_RFr.txt
+++ b/utils/cubes/transform_09_RFr.txt
@@ -1 +1 @@
FR1 BR1 BL1 FL1 DR1 UR1 UL1 DL1 DF1 UF1 UB1 DB1 DFR1 UBR1 UFL1 DBL1 UFR2 DBR2 DFL2 UBL2 ONMPQTSR=YbaZXUVWTQRS=A
diff --git a/utils/cubes/transform_10_RDr.txt b/utils/cubes/transform_10_RDr.txt
index 3cca372..f3c9527 100644
--- a/utils/cubes/transform_10_RDr.txt
+++ b/utils/cubes/transform_10_RDr.txt
@@ -1 +1 @@
DR1 UR1 UL1 DL1 BR1 FR1 FL1 BL1 DB0 DF0 UF0 UB0 DBR2 UFR2 DFL2 UBL2 DFR1 UBR1 DBL1 UFL1 TQSRONPM=XUVWbYZaCDAB=A
diff --git a/utils/cubes/transform_11_RBr.txt b/utils/cubes/transform_11_RBr.txt
index 9a43c45..bafb7a0 100644
--- a/utils/cubes/transform_11_RBr.txt
+++ b/utils/cubes/transform_11_RBr.txt
@@ -1 +1 @@
BR1 FR1 FL1 BL1 UR1 DR1 DL1 UL1 UB1 DB1 DF1 UF1 UBR1 DFR1 DBL1 UFL1 DBR2 UFR2 UBL2 DFL2 NOPMTQRS=bYZaUXWVRSTQ=A
diff --git a/utils/cubes/transform_12_LUr.txt b/utils/cubes/transform_12_LUr.txt
index 90c964c..2a9f1f7 100644
--- a/utils/cubes/transform_12_LUr.txt
+++ b/utils/cubes/transform_12_LUr.txt
@@ -1 +1 @@
UL1 DL1 DR1 UR1 BL1 FL1 FR1 BR1 UB0 UF0 DF0 DB0 UBL2 DFL2 UFR2 DBR2 UFL1 DBL1 UBR1 DFR1 RSQTMPNO=VWXUaZYbBADC=A
diff --git a/utils/cubes/transform_13_LFr.txt b/utils/cubes/transform_13_LFr.txt
index 7c234e6..9f5d582 100644
--- a/utils/cubes/transform_13_LFr.txt
+++ b/utils/cubes/transform_13_LFr.txt
@@ -1 +1 @@
FL1 BL1 BR1 FR1 UL1 DL1 DR1 UR1 UF1 DF1 DB1 UB1 UFL1 DBL1 DFR1 UBR1 DFL2 UBL2 UFR2 DBR2 MPONSRQT=ZabYVWXUQTSR=A
diff --git a/utils/cubes/transform_14_LDr.txt b/utils/cubes/transform_14_LDr.txt
index bd5f6f2..ee6998e 100644
--- a/utils/cubes/transform_14_LDr.txt
+++ b/utils/cubes/transform_14_LDr.txt
@@ -1 +1 @@
DL1 UL1 UR1 DR1 FL1 BL1 BR1 FR1 DF0 DB0 UB0 UF0 DFL2 UBL2 DBR2 UFR2 DBL1 UFL1 DFR1 UBR1 SRTQPMON=WVUXZabYDCBA=A
diff --git a/utils/cubes/transform_15_LBr.txt b/utils/cubes/transform_15_LBr.txt
index 91755e0..40c522f 100644
--- a/utils/cubes/transform_15_LBr.txt
+++ b/utils/cubes/transform_15_LBr.txt
@@ -1 +1 @@
BL1 FL1 FR1 BR1 DL1 UL1 UR1 DR1 DB1 UB1 UF1 DF1 DBL1 UFL1 UBR1 DFR1 UBL2 DFL2 DBR2 UFR2 PMNORSTQ=aZYbWVUXSRQT=A
diff --git a/utils/cubes/transform_16_FUr.txt b/utils/cubes/transform_16_FUr.txt
index 25cc125..da257aa 100644
--- a/utils/cubes/transform_16_FUr.txt
+++ b/utils/cubes/transform_16_FUr.txt
@@ -1 +1 @@
UF1 DF1 DB1 UB1 FL0 FR0 BR0 BL0 UL0 UR0 DR0 DL0 UFL2 DFR2 UBR2 DBL2 UFR1 DFL1 UBL1 DBR1 UWVXIKJL=QTSRJILKFEHG=A
diff --git a/utils/cubes/transform_17_FRr.txt b/utils/cubes/transform_17_FRr.txt
index 0c01df1..3f9de15 100644
--- a/utils/cubes/transform_17_FRr.txt
+++ b/utils/cubes/transform_17_FRr.txt
@@ -1 +1 @@
FR0 FL0 BL0 BR0 UF1 DF1 DB1 UB1 UR1 DR1 DL1 UL1 UFR1 DFL1 DBR1 UBL1 DFR2 UFL2 UBR2 DBL2 IKLJWUVX=IJKLQTSRUXWV=A
diff --git a/utils/cubes/transform_18_FDr.txt b/utils/cubes/transform_18_FDr.txt
index 05f367f..405e3b0 100644
--- a/utils/cubes/transform_18_FDr.txt
+++ b/utils/cubes/transform_18_FDr.txt
@@ -1 +1 @@
DF1 UF1 UB1 DB1 FR0 FL0 BL0 BR0 DR0 DL0 UL0 UR0 DFR2 UFL2 DBL2 UBR2 DFL1 UFR1 DBR1 UBL1 WUXVKILJ=TQRSIJKLHGFE=A
diff --git a/utils/cubes/transform_19_FLr.txt b/utils/cubes/transform_19_FLr.txt
index 20bf2b1..c6e46b1 100644
--- a/utils/cubes/transform_19_FLr.txt
+++ b/utils/cubes/transform_19_FLr.txt
@@ -1 +1 @@
FL0 FR0 BR0 BL0 DF1 UF1 UB1 DB1 DL1 UL1 UR1 DR1 DFL1 UFR1 UBL1 DBR1 UFL2 DFR2 DBL2 UBR2 KIJLUWXV=JILKTQRSWVUX=A
diff --git a/utils/cubes/transform_20_BUr.txt b/utils/cubes/transform_20_BUr.txt
index 0d8200e..5657b35 100644
--- a/utils/cubes/transform_20_BUr.txt
+++ b/utils/cubes/transform_20_BUr.txt
@@ -1 +1 @@
UB1 DB1 DF1 UF1 BR0 BL0 FL0 FR0 UR0 UL0 DL0 DR0 UBR2 DBL2 UFL2 DFR2 UBL1 DBR1 UFR1 DFL1 VXUWJLIK=RSTQLKJIEFGH=A
diff --git a/utils/cubes/transform_21_BRr.txt b/utils/cubes/transform_21_BRr.txt
index f4b3bb6..d2d46b3 100644
--- a/utils/cubes/transform_21_BRr.txt
+++ b/utils/cubes/transform_21_BRr.txt
@@ -1 +1 @@
BR0 BL0 FL0 FR0 DB1 UB1 UF1 DF1 DR1 UR1 UL1 DL1 DBR1 UBL1 UFR1 DFL1 UBR2 DBL2 DFR2 UFL2 LJIKVXWU=LKJISRQTXUVW=A
diff --git a/utils/cubes/transform_22_BDr.txt b/utils/cubes/transform_22_BDr.txt
index c1642e0..a06f994 100644
--- a/utils/cubes/transform_22_BDr.txt
+++ b/utils/cubes/transform_22_BDr.txt
@@ -1 +1 @@
DB1 UB1 UF1 DF1 BL0 BR0 FR0 FL0 DL0 DR0 UR0 UL0 DBL2 UBR2 DFR2 UFL2 DBR1 UBL1 DFL1 UFR1 XVWULJKI=SRQTKLIJGHEF=A
diff --git a/utils/cubes/transform_23_BLr.txt b/utils/cubes/transform_23_BLr.txt
index 4394be6..40c6156 100644
--- a/utils/cubes/transform_23_BLr.txt
+++ b/utils/cubes/transform_23_BLr.txt
@@ -1 +1 @@
BL0 BR0 FR0 FL0 UB1 DB1 DF1 UF1 UL1 DL1 DR1 UR1 UBL1 DBR1 DFL1 UFR1 DBL2 UBR2 UFL2 DFR2 JLKIXVUW=KLIJRSTQVWXU=A
diff --git a/utils/cubes/transform_24_UFm.txt b/utils/cubes/transform_24_UFm.txt
index 7888e4b..4c65b63 100644
--- a/utils/cubes/transform_24_UFm.txt
+++ b/utils/cubes/transform_24_UFm.txt
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UL0 UR0 DR0 DL0 FL0 FR0 BR0 BL0 UFL0 UBR0 DFR0 DBL0 UFR0 UBL0 DFL0 DBR0 EFGHABCD=ABCDFEHGJILK=A
diff --git a/utils/cubes/transform_25_ULm.txt b/utils/cubes/transform_25_ULm.txt
index 0abeb75..1b2f722 100644
--- a/utils/cubes/transform_25_ULm.txt
+++ b/utils/cubes/transform_25_ULm.txt
@@ -1 +1 @@
UR0 UL0 DL0 DR0 UF0 UB0 DB0 DF0 FR1 BR1 BL1 FL1 UFR0 UBL0 DBR0 DFL0 UBR0 UFL0 DFR0 DBL0 ABDCFEGH=EFGHABCDYbaZ=A
diff --git a/utils/cubes/transform_26_UBm.txt b/utils/cubes/transform_26_UBm.txt
index 0fba52a..93fdd69 100644
--- a/utils/cubes/transform_26_UBm.txt
+++ b/utils/cubes/transform_26_UBm.txt
@@ -1 +1 @@
UB0 UF0 DF0 DB0 UR0 UL0 DL0 DR0 BR0 BL0 FL0 FR0 UBR0 UFL0 DBL0 DFR0 UBL0 UFR0 DBR0 DFL0 FEHGBADC=BADCEFGHLKJI=A
diff --git a/utils/cubes/transform_27_URm.txt b/utils/cubes/transform_27_URm.txt
index 49bce19..0fc6b15 100644
--- a/utils/cubes/transform_27_URm.txt
+++ b/utils/cubes/transform_27_URm.txt
@@ -1 +1 @@
UL0 UR0 DR0 DL0 UB0 UF0 DF0 DB0 BL1 FL1 FR1 BR1 UBL0 UFR0 DFL0 DBR0 UFL0 UBR0 DBL0 DFR0 BACDEFHG=FEHGBADCaZYb=A
diff --git a/utils/cubes/transform_28_DFm.txt b/utils/cubes/transform_28_DFm.txt
index 442aacd..a0c1e42 100644
--- a/utils/cubes/transform_28_DFm.txt
+++ b/utils/cubes/transform_28_DFm.txt
@@ -1 +1 @@
DF0 DB0 UB0 UF0 DR0 DL0 UL0 UR0 FR0 FL0 BL0 BR0 DFR0 DBL0 UFL0 UBR0 DFL0 DBR0 UFR0 UBL0 GHEFCDAB=DCBAHGFEIJKL=A
diff --git a/utils/cubes/transform_29_DLm.txt b/utils/cubes/transform_29_DLm.txt
index d2cfc53..4b81eef 100644
--- a/utils/cubes/transform_29_DLm.txt
+++ b/utils/cubes/transform_29_DLm.txt
@@ -1 +1 @@
DR0 DL0 UL0 UR0 DB0 DF0 UF0 UB0 BR1 FR1 FL1 BL1 DBR0 DFL0 UFR0 UBL0 DFR0 DBL0 UBR0 UFL0 DCABGHFE=HGFECDABbYZa=A
diff --git a/utils/cubes/transform_30_DBm.txt b/utils/cubes/transform_30_DBm.txt
index 4d92a58..ae910b9 100644
--- a/utils/cubes/transform_30_DBm.txt
+++ b/utils/cubes/transform_30_DBm.txt
@@ -1 +1 @@
DB0 DF0 UF0 UB0 DL0 DR0 UR0 UL0 BL0 BR0 FR0 FL0 DBL0 DFR0 UBR0 UFL0 DBR0 DFL0 UBL0 UFR0 HGFEDCBA=CDABGHEFKLIJ=A
diff --git a/utils/cubes/transform_31_DRm.txt b/utils/cubes/transform_31_DRm.txt
index 6774947..7350355 100644
--- a/utils/cubes/transform_31_DRm.txt
+++ b/utils/cubes/transform_31_DRm.txt
@@ -1 +1 @@
DL0 DR0 UR0 UL0 DF0 DB0 UB0 UF0 FL1 BL1 BR1 FR1 DFL0 DBR0 UBL0 UFR0 DBL0 DFR0 UFL0 UBR0 CDBAHGEF=GHEFDCBAZabY=A
diff --git a/utils/cubes/transform_32_RUm.txt b/utils/cubes/transform_32_RUm.txt
index 8ba9819..f30f89f 100644
--- a/utils/cubes/transform_32_RUm.txt
+++ b/utils/cubes/transform_32_RUm.txt
@@ -1 +1 @@
UL1 DL1 DR1 UR1 FL1 BL1 BR1 FR1 UF0 UB0 DB0 DF0 UFL2 DBL2 UBR2 DFR2 UBL1 DFL1 UFR1 DBR1 UXVWJKIL=VWXUZabYABCD=A
diff --git a/utils/cubes/transform_33_RFm.txt b/utils/cubes/transform_33_RFm.txt
index fb9434d..f7fc844 100644
--- a/utils/cubes/transform_33_RFm.txt
+++ b/utils/cubes/transform_33_RFm.txt
@@ -1 +1 @@
FL1 BL1 BR1 FR1 DL1 UL1 UR1 DR1 DF1 UF1 UB1 DB1 DFL1 UBL1 UFR1 DBR1 UFL2 DBL2 DFR2 UBR2 KJILUXWV=ZabYWVUXTQRS=A
diff --git a/utils/cubes/transform_34_RDm.txt b/utils/cubes/transform_34_RDm.txt
index 96cbee8..2d9d0ec 100644
--- a/utils/cubes/transform_34_RDm.txt
+++ b/utils/cubes/transform_34_RDm.txt
@@ -1 +1 @@
DL1 UL1 UR1 DR1 BL1 FL1 FR1 BR1 DB0 DF0 UF0 UB0 DBL2 UFL2 DFR2 UBR2 DFL1 UBL1 DBR1 UFR1 XUWVKJLI=WVUXaZYbCDAB=A
diff --git a/utils/cubes/transform_35_RBm.txt b/utils/cubes/transform_35_RBm.txt
index e57c13c..a57e17a 100644
--- a/utils/cubes/transform_35_RBm.txt
+++ b/utils/cubes/transform_35_RBm.txt
@@ -1 +1 @@
BL1 FL1 FR1 BR1 UL1 DL1 DR1 UR1 UB1 DB1 DF1 UF1 UBL1 DFL1 DBR1 UFR1 DBL2 UFL2 UBR2 DFR2 JKLIXUVW=aZYbVWXURSTQ=A
diff --git a/utils/cubes/transform_36_LUm.txt b/utils/cubes/transform_36_LUm.txt
index 735768b..c1d86c1 100644
--- a/utils/cubes/transform_36_LUm.txt
+++ b/utils/cubes/transform_36_LUm.txt
@@ -1 +1 @@
UR1 DR1 DL1 UL1 BR1 FR1 FL1 BL1 UB0 UF0 DF0 DB0 UBR2 DFR2 UFL2 DBL2 UFR1 DBR1 UBL1 DFL1 VWUXILJK=UXWVbYZaBADC=A
diff --git a/utils/cubes/transform_37_LFm.txt b/utils/cubes/transform_37_LFm.txt
index 8ee4766..dc11ed8 100644
--- a/utils/cubes/transform_37_LFm.txt
+++ b/utils/cubes/transform_37_LFm.txt
@@ -1 +1 @@
FR1 BR1 BL1 FL1 UR1 DR1 DL1 UL1 UF1 DF1 DB1 UB1 UFR1 DBR1 DFL1 UBL1 DFR2 UBR2 UFL2 DBL2 ILKJWVUX=YbaZUXWVQTSR=A
diff --git a/utils/cubes/transform_38_LDm.txt b/utils/cubes/transform_38_LDm.txt
index 4b3f54b..20f4661 100644
--- a/utils/cubes/transform_38_LDm.txt
+++ b/utils/cubes/transform_38_LDm.txt
@@ -1 +1 @@
DR1 UR1 UL1 DL1 FR1 BR1 BL1 FL1 DF0 DB0 UB0 UF0 DFR2 UBR2 DBL2 UFL2 DBR1 UFR1 DFL1 UBL1 WVXULIKJ=XUVWYbaZDCBA=A
diff --git a/utils/cubes/transform_39_LBm.txt b/utils/cubes/transform_39_LBm.txt
index 3b98506..5ab88ee 100644
--- a/utils/cubes/transform_39_LBm.txt
+++ b/utils/cubes/transform_39_LBm.txt
@@ -1 +1 @@
BR1 FR1 FL1 BL1 DR1 UR1 UL1 DL1 DB1 UB1 UF1 DF1 DBR1 UFR1 UBL1 DFL1 UBR2 DFR2 DBL2 UFL2 LIJKVWXU=bYZaXUVWSRQT=A
diff --git a/utils/cubes/transform_40_FUm.txt b/utils/cubes/transform_40_FUm.txt
index 0c6484d..858b550 100644
--- a/utils/cubes/transform_40_FUm.txt
+++ b/utils/cubes/transform_40_FUm.txt
@@ -1 +1 @@
UF1 DF1 DB1 UB1 FR0 FL0 BL0 BR0 UR0 UL0 DL0 DR0 UFR2 DFL2 UBL2 DBR2 UFL1 DFR1 UBR1 DBL1 QSRTMONP=QTSRIJKLEFGH=A
diff --git a/utils/cubes/transform_41_FRm.txt b/utils/cubes/transform_41_FRm.txt
index cc67b5b..42aeaa0 100644
--- a/utils/cubes/transform_41_FRm.txt
+++ b/utils/cubes/transform_41_FRm.txt
@@ -1 +1 @@
FL0 FR0 BR0 BL0 UF1 DF1 DB1 UB1 UL1 DL1 DR1 UR1 UFL1 DFR1 DBL1 UBR1 DFL2 UFR2 UBL2 DBR2 MOPNSQRT=JILKQTSRVWXU=A
diff --git a/utils/cubes/transform_42_FDm.txt b/utils/cubes/transform_42_FDm.txt
index c3d8b39..c78c928 100644
--- a/utils/cubes/transform_42_FDm.txt
+++ b/utils/cubes/transform_42_FDm.txt
@@ -1 +1 @@
DF1 UF1 UB1 DB1 FL0 FR0 BR0 BL0 DL0 DR0 UR0 UL0 DFL2 UFR2 DBR2 UBL2 DFR1 UFL1 DBL1 UBR1 SQTROMPN=TQRSJILKGHEF=A
diff --git a/utils/cubes/transform_43_FLm.txt b/utils/cubes/transform_43_FLm.txt
index ae096e0..99cb6e0 100644
--- a/utils/cubes/transform_43_FLm.txt
+++ b/utils/cubes/transform_43_FLm.txt
@@ -1 +1 @@
FR0 FL0 BL0 BR0 DF1 UF1 UB1 DB1 DR1 UR1 UL1 DL1 DFR1 UFL1 UBR1 DBL1 UFR2 DFL2 DBR2 UBL2 OMNPQSTR=IJKLTQRSXUVW=A
diff --git a/utils/cubes/transform_44_BUm.txt b/utils/cubes/transform_44_BUm.txt
index 08d5683..0e93ff7 100644
--- a/utils/cubes/transform_44_BUm.txt
+++ b/utils/cubes/transform_44_BUm.txt
@@ -1 +1 @@
UB1 DB1 DF1 UF1 BL0 BR0 FR0 FL0 UL0 UR0 DR0 DL0 UBL2 DBR2 UFR2 DFL2 UBR1 DBL1 UFL1 DFR1 RTQSNPMO=RSTQKLIJFEHG=A
diff --git a/utils/cubes/transform_45_BRm.txt b/utils/cubes/transform_45_BRm.txt
index 167c62e..8bf0453 100644
--- a/utils/cubes/transform_45_BRm.txt
+++ b/utils/cubes/transform_45_BRm.txt
@@ -1 +1 @@
BL0 BR0 FR0 FL0 DB1 UB1 UF1 DF1 DL1 UL1 UR1 DR1 DBL1 UBR1 UFL1 DFR1 UBL2 DBR2 DFL2 UFR2 PNMORTSQ=KLIJSRQTWVUX=A
diff --git a/utils/cubes/transform_46_BDm.txt b/utils/cubes/transform_46_BDm.txt
index f5e56f2..7538916 100644
--- a/utils/cubes/transform_46_BDm.txt
+++ b/utils/cubes/transform_46_BDm.txt
@@ -1 +1 @@
DB1 UB1 UF1 DF1 BR0 BL0 FL0 FR0 DR0 DL0 UL0 UR0 DBR2 UBL2 DFL2 UFR2 DBL1 UBR1 DFR1 UFL1 TRSQPNOM=SRQTLKJIHGFE=A
diff --git a/utils/cubes/transform_47_BLm.txt b/utils/cubes/transform_47_BLm.txt
index 02b2828..c0a83f1 100644
--- a/utils/cubes/transform_47_BLm.txt
+++ b/utils/cubes/transform_47_BLm.txt
@@ -1 +1 @@
BR0 BL0 FL0 FR0 UB1 DB1 DF1 UF1 UR1 DR1 DL1 UL1 UBR1 DBL1 DFR1 UFL1 DBR2 UBL2 UFR2 DFL2 NPOMTRQS=LKJIRSTQUXWV=A
diff --git a/utils/generated_trans_tests/100_UFr_U.in b/utils/generated_trans_tests/100_UFr_U.in
index 80d7af7..8aaf3c1 100644
--- a/utils/generated_trans_tests/100_UFr_U.in
+++ b/utils/generated_trans_tests/100_UFr_U.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/100_UFr_U.out b/utils/generated_trans_tests/100_UFr_U.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/100_UFr_U.out
+++ b/utils/generated_trans_tests/100_UFr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/101_UFm_U.in b/utils/generated_trans_tests/101_UFm_U.in
index 17d110e..9adf305 100644
--- a/utils/generated_trans_tests/101_UFm_U.in
+++ b/utils/generated_trans_tests/101_UFm_U.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/101_UFm_U.out b/utils/generated_trans_tests/101_UFm_U.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/101_UFm_U.out
+++ b/utils/generated_trans_tests/101_UFm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/102_UFr_R.in b/utils/generated_trans_tests/102_UFr_R.in
index 96099d6..b75e581 100644
--- a/utils/generated_trans_tests/102_UFr_R.in
+++ b/utils/generated_trans_tests/102_UFr_R.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/102_UFr_R.out b/utils/generated_trans_tests/102_UFr_R.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/102_UFr_R.out
+++ b/utils/generated_trans_tests/102_UFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/103_UFm_R.in b/utils/generated_trans_tests/103_UFm_R.in
index c70a8b5..61256f8 100644
--- a/utils/generated_trans_tests/103_UFm_R.in
+++ b/utils/generated_trans_tests/103_UFm_R.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/103_UFm_R.out b/utils/generated_trans_tests/103_UFm_R.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/103_UFm_R.out
+++ b/utils/generated_trans_tests/103_UFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/104_UFr_F.in b/utils/generated_trans_tests/104_UFr_F.in
index 0f3585b..4edd5f4 100644
--- a/utils/generated_trans_tests/104_UFr_F.in
+++ b/utils/generated_trans_tests/104_UFr_F.in
@@ -1,2 +1,2 @@
1rotation UF 1rotation UF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/104_UFr_F.out b/utils/generated_trans_tests/104_UFr_F.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/104_UFr_F.out
+++ b/utils/generated_trans_tests/104_UFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/105_UFm_F.in b/utils/generated_trans_tests/105_UFm_F.in
index e7647bc..92b002e 100644
--- a/utils/generated_trans_tests/105_UFm_F.in
+++ b/utils/generated_trans_tests/105_UFm_F.in
@@ -1,2 +1,2 @@
1mirrored UF 1mirrored UF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/105_UFm_F.out b/utils/generated_trans_tests/105_UFm_F.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/105_UFm_F.out
+++ b/utils/generated_trans_tests/105_UFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/106_ULr_U.in b/utils/generated_trans_tests/106_ULr_U.in
index a02f9c3..9d69fb8 100644
--- a/utils/generated_trans_tests/106_ULr_U.in
+++ b/utils/generated_trans_tests/106_ULr_U.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/106_ULr_U.out b/utils/generated_trans_tests/106_ULr_U.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/106_ULr_U.out
+++ b/utils/generated_trans_tests/106_ULr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/107_ULm_U.in b/utils/generated_trans_tests/107_ULm_U.in
index 73bc6a1..dab7a1e 100644
--- a/utils/generated_trans_tests/107_ULm_U.in
+++ b/utils/generated_trans_tests/107_ULm_U.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/107_ULm_U.out b/utils/generated_trans_tests/107_ULm_U.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/107_ULm_U.out
+++ b/utils/generated_trans_tests/107_ULm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/108_ULr_R.in b/utils/generated_trans_tests/108_ULr_R.in
index a7cbbb8..b673cc0 100644
--- a/utils/generated_trans_tests/108_ULr_R.in
+++ b/utils/generated_trans_tests/108_ULr_R.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/108_ULr_R.out b/utils/generated_trans_tests/108_ULr_R.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/108_ULr_R.out
+++ b/utils/generated_trans_tests/108_ULr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/109_ULm_R.in b/utils/generated_trans_tests/109_ULm_R.in
index 7ecf097..b0b643d 100644
--- a/utils/generated_trans_tests/109_ULm_R.in
+++ b/utils/generated_trans_tests/109_ULm_R.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/109_ULm_R.out b/utils/generated_trans_tests/109_ULm_R.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/109_ULm_R.out
+++ b/utils/generated_trans_tests/109_ULm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/110_ULr_F.in b/utils/generated_trans_tests/110_ULr_F.in
index 09a5a9a..a581aef 100644
--- a/utils/generated_trans_tests/110_ULr_F.in
+++ b/utils/generated_trans_tests/110_ULr_F.in
@@ -1,2 +1,2 @@
1rotation UL 1rotation UL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/110_ULr_F.out b/utils/generated_trans_tests/110_ULr_F.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/110_ULr_F.out
+++ b/utils/generated_trans_tests/110_ULr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/111_ULm_F.in b/utils/generated_trans_tests/111_ULm_F.in
index 711de44..9defd0b 100644
--- a/utils/generated_trans_tests/111_ULm_F.in
+++ b/utils/generated_trans_tests/111_ULm_F.in
@@ -1,2 +1,2 @@
1mirrored UL 1mirrored UL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/111_ULm_F.out b/utils/generated_trans_tests/111_ULm_F.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/111_ULm_F.out
+++ b/utils/generated_trans_tests/111_ULm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/112_UBr_U.in b/utils/generated_trans_tests/112_UBr_U.in
index ce39549..b1d6f75 100644
--- a/utils/generated_trans_tests/112_UBr_U.in
+++ b/utils/generated_trans_tests/112_UBr_U.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/112_UBr_U.out b/utils/generated_trans_tests/112_UBr_U.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/112_UBr_U.out
+++ b/utils/generated_trans_tests/112_UBr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/113_UBm_U.in b/utils/generated_trans_tests/113_UBm_U.in
index 14ca42a..385405a 100644
--- a/utils/generated_trans_tests/113_UBm_U.in
+++ b/utils/generated_trans_tests/113_UBm_U.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/113_UBm_U.out b/utils/generated_trans_tests/113_UBm_U.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/113_UBm_U.out
+++ b/utils/generated_trans_tests/113_UBm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/114_UBr_R.in b/utils/generated_trans_tests/114_UBr_R.in
index 5a878d8..75e403c 100644
--- a/utils/generated_trans_tests/114_UBr_R.in
+++ b/utils/generated_trans_tests/114_UBr_R.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/114_UBr_R.out b/utils/generated_trans_tests/114_UBr_R.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/114_UBr_R.out
+++ b/utils/generated_trans_tests/114_UBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/115_UBm_R.in b/utils/generated_trans_tests/115_UBm_R.in
index a4e3aa8..aaea6f8 100644
--- a/utils/generated_trans_tests/115_UBm_R.in
+++ b/utils/generated_trans_tests/115_UBm_R.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/115_UBm_R.out b/utils/generated_trans_tests/115_UBm_R.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/115_UBm_R.out
+++ b/utils/generated_trans_tests/115_UBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/116_UBr_F.in b/utils/generated_trans_tests/116_UBr_F.in
index fc34148..7617933 100644
--- a/utils/generated_trans_tests/116_UBr_F.in
+++ b/utils/generated_trans_tests/116_UBr_F.in
@@ -1,2 +1,2 @@
1rotation UB 1rotation UB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/116_UBr_F.out b/utils/generated_trans_tests/116_UBr_F.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/116_UBr_F.out
+++ b/utils/generated_trans_tests/116_UBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/117_UBm_F.in b/utils/generated_trans_tests/117_UBm_F.in
index 79433a7..619a9ee 100644
--- a/utils/generated_trans_tests/117_UBm_F.in
+++ b/utils/generated_trans_tests/117_UBm_F.in
@@ -1,2 +1,2 @@
1mirrored UB 1mirrored UB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/117_UBm_F.out b/utils/generated_trans_tests/117_UBm_F.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/117_UBm_F.out
+++ b/utils/generated_trans_tests/117_UBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/118_URr_U.in b/utils/generated_trans_tests/118_URr_U.in
index 79ca262..0d01d97 100644
--- a/utils/generated_trans_tests/118_URr_U.in
+++ b/utils/generated_trans_tests/118_URr_U.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/118_URr_U.out b/utils/generated_trans_tests/118_URr_U.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/118_URr_U.out
+++ b/utils/generated_trans_tests/118_URr_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/119_URm_U.in b/utils/generated_trans_tests/119_URm_U.in
index 4581c22..44c6414 100644
--- a/utils/generated_trans_tests/119_URm_U.in
+++ b/utils/generated_trans_tests/119_URm_U.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/119_URm_U.out b/utils/generated_trans_tests/119_URm_U.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/119_URm_U.out
+++ b/utils/generated_trans_tests/119_URm_U.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/120_URr_R.in b/utils/generated_trans_tests/120_URr_R.in
index 4803ca4..f5fc2d1 100644
--- a/utils/generated_trans_tests/120_URr_R.in
+++ b/utils/generated_trans_tests/120_URr_R.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/120_URr_R.out b/utils/generated_trans_tests/120_URr_R.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/120_URr_R.out
+++ b/utils/generated_trans_tests/120_URr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/121_URm_R.in b/utils/generated_trans_tests/121_URm_R.in
index df12fd4..21900ca 100644
--- a/utils/generated_trans_tests/121_URm_R.in
+++ b/utils/generated_trans_tests/121_URm_R.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/121_URm_R.out b/utils/generated_trans_tests/121_URm_R.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/121_URm_R.out
+++ b/utils/generated_trans_tests/121_URm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/122_URr_F.in b/utils/generated_trans_tests/122_URr_F.in
index 7d06199..8dc973e 100644
--- a/utils/generated_trans_tests/122_URr_F.in
+++ b/utils/generated_trans_tests/122_URr_F.in
@@ -1,2 +1,2 @@
1rotation UR 1rotation UR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/122_URr_F.out b/utils/generated_trans_tests/122_URr_F.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/122_URr_F.out
+++ b/utils/generated_trans_tests/122_URr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/123_URm_F.in b/utils/generated_trans_tests/123_URm_F.in
index 8bc2c20..c1485c5 100644
--- a/utils/generated_trans_tests/123_URm_F.in
+++ b/utils/generated_trans_tests/123_URm_F.in
@@ -1,2 +1,2 @@
1mirrored UR 1mirrored UR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/123_URm_F.out b/utils/generated_trans_tests/123_URm_F.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/123_URm_F.out
+++ b/utils/generated_trans_tests/123_URm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/124_DFr_U.in b/utils/generated_trans_tests/124_DFr_U.in
index 67200ec..09d1e98 100644
--- a/utils/generated_trans_tests/124_DFr_U.in
+++ b/utils/generated_trans_tests/124_DFr_U.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/124_DFr_U.out b/utils/generated_trans_tests/124_DFr_U.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/124_DFr_U.out
+++ b/utils/generated_trans_tests/124_DFr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/125_DFm_U.in b/utils/generated_trans_tests/125_DFm_U.in
index 33ae235..7de9da8 100644
--- a/utils/generated_trans_tests/125_DFm_U.in
+++ b/utils/generated_trans_tests/125_DFm_U.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/125_DFm_U.out b/utils/generated_trans_tests/125_DFm_U.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/125_DFm_U.out
+++ b/utils/generated_trans_tests/125_DFm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/126_DFr_R.in b/utils/generated_trans_tests/126_DFr_R.in
index f74ba46..f8501fa 100644
--- a/utils/generated_trans_tests/126_DFr_R.in
+++ b/utils/generated_trans_tests/126_DFr_R.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/126_DFr_R.out b/utils/generated_trans_tests/126_DFr_R.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/126_DFr_R.out
+++ b/utils/generated_trans_tests/126_DFr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/127_DFm_R.in b/utils/generated_trans_tests/127_DFm_R.in
index 5d930d2..1b9bcaa 100644
--- a/utils/generated_trans_tests/127_DFm_R.in
+++ b/utils/generated_trans_tests/127_DFm_R.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/127_DFm_R.out b/utils/generated_trans_tests/127_DFm_R.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/127_DFm_R.out
+++ b/utils/generated_trans_tests/127_DFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/128_DFr_F.in b/utils/generated_trans_tests/128_DFr_F.in
index eb04f3b..d790330 100644
--- a/utils/generated_trans_tests/128_DFr_F.in
+++ b/utils/generated_trans_tests/128_DFr_F.in
@@ -1,2 +1,2 @@
1rotation DF 1rotation DF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/128_DFr_F.out b/utils/generated_trans_tests/128_DFr_F.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/128_DFr_F.out
+++ b/utils/generated_trans_tests/128_DFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/129_DFm_F.in b/utils/generated_trans_tests/129_DFm_F.in
index ccd60a7..cce8151 100644
--- a/utils/generated_trans_tests/129_DFm_F.in
+++ b/utils/generated_trans_tests/129_DFm_F.in
@@ -1,2 +1,2 @@
1mirrored DF 1mirrored DF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/129_DFm_F.out b/utils/generated_trans_tests/129_DFm_F.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/129_DFm_F.out
+++ b/utils/generated_trans_tests/129_DFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/130_DLr_U.in b/utils/generated_trans_tests/130_DLr_U.in
index 4aa7b90..5ef9a35 100644
--- a/utils/generated_trans_tests/130_DLr_U.in
+++ b/utils/generated_trans_tests/130_DLr_U.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/130_DLr_U.out b/utils/generated_trans_tests/130_DLr_U.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/130_DLr_U.out
+++ b/utils/generated_trans_tests/130_DLr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/131_DLm_U.in b/utils/generated_trans_tests/131_DLm_U.in
index 6097c66..f8047ff 100644
--- a/utils/generated_trans_tests/131_DLm_U.in
+++ b/utils/generated_trans_tests/131_DLm_U.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/131_DLm_U.out b/utils/generated_trans_tests/131_DLm_U.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/131_DLm_U.out
+++ b/utils/generated_trans_tests/131_DLm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/132_DLr_R.in b/utils/generated_trans_tests/132_DLr_R.in
index 60f1ede..52350f4 100644
--- a/utils/generated_trans_tests/132_DLr_R.in
+++ b/utils/generated_trans_tests/132_DLr_R.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/132_DLr_R.out b/utils/generated_trans_tests/132_DLr_R.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/132_DLr_R.out
+++ b/utils/generated_trans_tests/132_DLr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/133_DLm_R.in b/utils/generated_trans_tests/133_DLm_R.in
index 018921c..9261e71 100644
--- a/utils/generated_trans_tests/133_DLm_R.in
+++ b/utils/generated_trans_tests/133_DLm_R.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/133_DLm_R.out b/utils/generated_trans_tests/133_DLm_R.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/133_DLm_R.out
+++ b/utils/generated_trans_tests/133_DLm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/134_DLr_F.in b/utils/generated_trans_tests/134_DLr_F.in
index 5254f1f..38532f9 100644
--- a/utils/generated_trans_tests/134_DLr_F.in
+++ b/utils/generated_trans_tests/134_DLr_F.in
@@ -1,2 +1,2 @@
1rotation DL 1rotation DL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/134_DLr_F.out b/utils/generated_trans_tests/134_DLr_F.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/134_DLr_F.out
+++ b/utils/generated_trans_tests/134_DLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/135_DLm_F.in b/utils/generated_trans_tests/135_DLm_F.in
index 57c8406..1c7073a 100644
--- a/utils/generated_trans_tests/135_DLm_F.in
+++ b/utils/generated_trans_tests/135_DLm_F.in
@@ -1,2 +1,2 @@
1mirrored DL 1mirrored DL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/135_DLm_F.out b/utils/generated_trans_tests/135_DLm_F.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/135_DLm_F.out
+++ b/utils/generated_trans_tests/135_DLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/136_DBr_U.in b/utils/generated_trans_tests/136_DBr_U.in
index 34f37cb..010865a 100644
--- a/utils/generated_trans_tests/136_DBr_U.in
+++ b/utils/generated_trans_tests/136_DBr_U.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/136_DBr_U.out b/utils/generated_trans_tests/136_DBr_U.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/136_DBr_U.out
+++ b/utils/generated_trans_tests/136_DBr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/137_DBm_U.in b/utils/generated_trans_tests/137_DBm_U.in
index 5425205..1fe542e 100644
--- a/utils/generated_trans_tests/137_DBm_U.in
+++ b/utils/generated_trans_tests/137_DBm_U.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/137_DBm_U.out b/utils/generated_trans_tests/137_DBm_U.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/137_DBm_U.out
+++ b/utils/generated_trans_tests/137_DBm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/138_DBr_R.in b/utils/generated_trans_tests/138_DBr_R.in
index 99974cd..bb7c803 100644
--- a/utils/generated_trans_tests/138_DBr_R.in
+++ b/utils/generated_trans_tests/138_DBr_R.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/138_DBr_R.out b/utils/generated_trans_tests/138_DBr_R.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/138_DBr_R.out
+++ b/utils/generated_trans_tests/138_DBr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/139_DBm_R.in b/utils/generated_trans_tests/139_DBm_R.in
index cb84382..46717e2 100644
--- a/utils/generated_trans_tests/139_DBm_R.in
+++ b/utils/generated_trans_tests/139_DBm_R.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/139_DBm_R.out b/utils/generated_trans_tests/139_DBm_R.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/139_DBm_R.out
+++ b/utils/generated_trans_tests/139_DBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/140_DBr_F.in b/utils/generated_trans_tests/140_DBr_F.in
index 1342ce5..83ddd86 100644
--- a/utils/generated_trans_tests/140_DBr_F.in
+++ b/utils/generated_trans_tests/140_DBr_F.in
@@ -1,2 +1,2 @@
1rotation DB 1rotation DB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/140_DBr_F.out b/utils/generated_trans_tests/140_DBr_F.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/140_DBr_F.out
+++ b/utils/generated_trans_tests/140_DBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/141_DBm_F.in b/utils/generated_trans_tests/141_DBm_F.in
index a7fb608..a7cf636 100644
--- a/utils/generated_trans_tests/141_DBm_F.in
+++ b/utils/generated_trans_tests/141_DBm_F.in
@@ -1,2 +1,2 @@
1mirrored DB 1mirrored DB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/141_DBm_F.out b/utils/generated_trans_tests/141_DBm_F.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/141_DBm_F.out
+++ b/utils/generated_trans_tests/141_DBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/142_DRr_U.in b/utils/generated_trans_tests/142_DRr_U.in
index c24b8a3..8982f5b 100644
--- a/utils/generated_trans_tests/142_DRr_U.in
+++ b/utils/generated_trans_tests/142_DRr_U.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/142_DRr_U.out b/utils/generated_trans_tests/142_DRr_U.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/142_DRr_U.out
+++ b/utils/generated_trans_tests/142_DRr_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/143_DRm_U.in b/utils/generated_trans_tests/143_DRm_U.in
index 27d922f..9bd58d1 100644
--- a/utils/generated_trans_tests/143_DRm_U.in
+++ b/utils/generated_trans_tests/143_DRm_U.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/143_DRm_U.out b/utils/generated_trans_tests/143_DRm_U.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/143_DRm_U.out
+++ b/utils/generated_trans_tests/143_DRm_U.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/144_DRr_R.in b/utils/generated_trans_tests/144_DRr_R.in
index ed38629..6c0f080 100644
--- a/utils/generated_trans_tests/144_DRr_R.in
+++ b/utils/generated_trans_tests/144_DRr_R.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/144_DRr_R.out b/utils/generated_trans_tests/144_DRr_R.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/144_DRr_R.out
+++ b/utils/generated_trans_tests/144_DRr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/145_DRm_R.in b/utils/generated_trans_tests/145_DRm_R.in
index e973e52..b68c3c4 100644
--- a/utils/generated_trans_tests/145_DRm_R.in
+++ b/utils/generated_trans_tests/145_DRm_R.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/145_DRm_R.out b/utils/generated_trans_tests/145_DRm_R.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/145_DRm_R.out
+++ b/utils/generated_trans_tests/145_DRm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/146_DRr_F.in b/utils/generated_trans_tests/146_DRr_F.in
index 03b1d5b..f8ca077 100644
--- a/utils/generated_trans_tests/146_DRr_F.in
+++ b/utils/generated_trans_tests/146_DRr_F.in
@@ -1,2 +1,2 @@
1rotation DR 1rotation DR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/146_DRr_F.out b/utils/generated_trans_tests/146_DRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/146_DRr_F.out
+++ b/utils/generated_trans_tests/146_DRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/147_DRm_F.in b/utils/generated_trans_tests/147_DRm_F.in
index 25992d6..05ba107 100644
--- a/utils/generated_trans_tests/147_DRm_F.in
+++ b/utils/generated_trans_tests/147_DRm_F.in
@@ -1,2 +1,2 @@
1mirrored DR 1mirrored DR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/147_DRm_F.out b/utils/generated_trans_tests/147_DRm_F.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/147_DRm_F.out
+++ b/utils/generated_trans_tests/147_DRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/148_RUr_U.in b/utils/generated_trans_tests/148_RUr_U.in
index b808fc6..f296b07 100644
--- a/utils/generated_trans_tests/148_RUr_U.in
+++ b/utils/generated_trans_tests/148_RUr_U.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/148_RUr_U.out b/utils/generated_trans_tests/148_RUr_U.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/148_RUr_U.out
+++ b/utils/generated_trans_tests/148_RUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/149_RUm_U.in b/utils/generated_trans_tests/149_RUm_U.in
index 55665cb..c412d3a 100644
--- a/utils/generated_trans_tests/149_RUm_U.in
+++ b/utils/generated_trans_tests/149_RUm_U.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/149_RUm_U.out b/utils/generated_trans_tests/149_RUm_U.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/149_RUm_U.out
+++ b/utils/generated_trans_tests/149_RUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/150_RUr_R.in b/utils/generated_trans_tests/150_RUr_R.in
index 94895e0..4c9774d 100644
--- a/utils/generated_trans_tests/150_RUr_R.in
+++ b/utils/generated_trans_tests/150_RUr_R.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/150_RUr_R.out b/utils/generated_trans_tests/150_RUr_R.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/150_RUr_R.out
+++ b/utils/generated_trans_tests/150_RUr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/151_RUm_R.in b/utils/generated_trans_tests/151_RUm_R.in
index 442548e..2810295 100644
--- a/utils/generated_trans_tests/151_RUm_R.in
+++ b/utils/generated_trans_tests/151_RUm_R.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/151_RUm_R.out b/utils/generated_trans_tests/151_RUm_R.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/151_RUm_R.out
+++ b/utils/generated_trans_tests/151_RUm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/152_RUr_F.in b/utils/generated_trans_tests/152_RUr_F.in
index 07bb28e..aa3ad2e 100644
--- a/utils/generated_trans_tests/152_RUr_F.in
+++ b/utils/generated_trans_tests/152_RUr_F.in
@@ -1,2 +1,2 @@
1rotation RU 1rotation RU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/152_RUr_F.out b/utils/generated_trans_tests/152_RUr_F.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/152_RUr_F.out
+++ b/utils/generated_trans_tests/152_RUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/153_RUm_F.in b/utils/generated_trans_tests/153_RUm_F.in
index d3364d0..2709ddd 100644
--- a/utils/generated_trans_tests/153_RUm_F.in
+++ b/utils/generated_trans_tests/153_RUm_F.in
@@ -1,2 +1,2 @@
1mirrored RU 1mirrored RU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/153_RUm_F.out b/utils/generated_trans_tests/153_RUm_F.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/153_RUm_F.out
+++ b/utils/generated_trans_tests/153_RUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/154_RFr_U.in b/utils/generated_trans_tests/154_RFr_U.in
index ddec358..1efd0e2 100644
--- a/utils/generated_trans_tests/154_RFr_U.in
+++ b/utils/generated_trans_tests/154_RFr_U.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/154_RFr_U.out b/utils/generated_trans_tests/154_RFr_U.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/154_RFr_U.out
+++ b/utils/generated_trans_tests/154_RFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/155_RFm_U.in b/utils/generated_trans_tests/155_RFm_U.in
index bd4b0e5..5cca830 100644
--- a/utils/generated_trans_tests/155_RFm_U.in
+++ b/utils/generated_trans_tests/155_RFm_U.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/155_RFm_U.out b/utils/generated_trans_tests/155_RFm_U.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/155_RFm_U.out
+++ b/utils/generated_trans_tests/155_RFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/156_RFr_R.in b/utils/generated_trans_tests/156_RFr_R.in
index 5263302..32d8700 100644
--- a/utils/generated_trans_tests/156_RFr_R.in
+++ b/utils/generated_trans_tests/156_RFr_R.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/156_RFr_R.out b/utils/generated_trans_tests/156_RFr_R.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/156_RFr_R.out
+++ b/utils/generated_trans_tests/156_RFr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/157_RFm_R.in b/utils/generated_trans_tests/157_RFm_R.in
index 42c4e14..6a8b066 100644
--- a/utils/generated_trans_tests/157_RFm_R.in
+++ b/utils/generated_trans_tests/157_RFm_R.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/157_RFm_R.out b/utils/generated_trans_tests/157_RFm_R.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/157_RFm_R.out
+++ b/utils/generated_trans_tests/157_RFm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/158_RFr_F.in b/utils/generated_trans_tests/158_RFr_F.in
index dc60055..4ee0a81 100644
--- a/utils/generated_trans_tests/158_RFr_F.in
+++ b/utils/generated_trans_tests/158_RFr_F.in
@@ -1,2 +1,2 @@
1rotation RF 1rotation RF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/158_RFr_F.out b/utils/generated_trans_tests/158_RFr_F.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/158_RFr_F.out
+++ b/utils/generated_trans_tests/158_RFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/159_RFm_F.in b/utils/generated_trans_tests/159_RFm_F.in
index 046926a..f0b9189 100644
--- a/utils/generated_trans_tests/159_RFm_F.in
+++ b/utils/generated_trans_tests/159_RFm_F.in
@@ -1,2 +1,2 @@
1mirrored RF 1mirrored RF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/159_RFm_F.out b/utils/generated_trans_tests/159_RFm_F.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/159_RFm_F.out
+++ b/utils/generated_trans_tests/159_RFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/160_RDr_U.in b/utils/generated_trans_tests/160_RDr_U.in
index 3bac222..1357732 100644
--- a/utils/generated_trans_tests/160_RDr_U.in
+++ b/utils/generated_trans_tests/160_RDr_U.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/160_RDr_U.out b/utils/generated_trans_tests/160_RDr_U.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/160_RDr_U.out
+++ b/utils/generated_trans_tests/160_RDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/161_RDm_U.in b/utils/generated_trans_tests/161_RDm_U.in
index e5e4bba..cdc8a2f 100644
--- a/utils/generated_trans_tests/161_RDm_U.in
+++ b/utils/generated_trans_tests/161_RDm_U.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/161_RDm_U.out b/utils/generated_trans_tests/161_RDm_U.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/161_RDm_U.out
+++ b/utils/generated_trans_tests/161_RDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/162_RDr_R.in b/utils/generated_trans_tests/162_RDr_R.in
index d1e5f31..06673b2 100644
--- a/utils/generated_trans_tests/162_RDr_R.in
+++ b/utils/generated_trans_tests/162_RDr_R.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/162_RDr_R.out b/utils/generated_trans_tests/162_RDr_R.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/162_RDr_R.out
+++ b/utils/generated_trans_tests/162_RDr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/163_RDm_R.in b/utils/generated_trans_tests/163_RDm_R.in
index 8b1ee98..3533c6d 100644
--- a/utils/generated_trans_tests/163_RDm_R.in
+++ b/utils/generated_trans_tests/163_RDm_R.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/163_RDm_R.out b/utils/generated_trans_tests/163_RDm_R.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/163_RDm_R.out
+++ b/utils/generated_trans_tests/163_RDm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/164_RDr_F.in b/utils/generated_trans_tests/164_RDr_F.in
index 4b49b13..e2b55f9 100644
--- a/utils/generated_trans_tests/164_RDr_F.in
+++ b/utils/generated_trans_tests/164_RDr_F.in
@@ -1,2 +1,2 @@
1rotation RD 1rotation RD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/164_RDr_F.out b/utils/generated_trans_tests/164_RDr_F.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/164_RDr_F.out
+++ b/utils/generated_trans_tests/164_RDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/165_RDm_F.in b/utils/generated_trans_tests/165_RDm_F.in
index db4f4ee..f8a8bb8 100644
--- a/utils/generated_trans_tests/165_RDm_F.in
+++ b/utils/generated_trans_tests/165_RDm_F.in
@@ -1,2 +1,2 @@
1mirrored RD 1mirrored RD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/165_RDm_F.out b/utils/generated_trans_tests/165_RDm_F.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/165_RDm_F.out
+++ b/utils/generated_trans_tests/165_RDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/166_RBr_U.in b/utils/generated_trans_tests/166_RBr_U.in
index 48f85f1..4cacef5 100644
--- a/utils/generated_trans_tests/166_RBr_U.in
+++ b/utils/generated_trans_tests/166_RBr_U.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/166_RBr_U.out b/utils/generated_trans_tests/166_RBr_U.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/166_RBr_U.out
+++ b/utils/generated_trans_tests/166_RBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/167_RBm_U.in b/utils/generated_trans_tests/167_RBm_U.in
index 036bb07..ffcaaf1 100644
--- a/utils/generated_trans_tests/167_RBm_U.in
+++ b/utils/generated_trans_tests/167_RBm_U.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/167_RBm_U.out b/utils/generated_trans_tests/167_RBm_U.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/167_RBm_U.out
+++ b/utils/generated_trans_tests/167_RBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/168_RBr_R.in b/utils/generated_trans_tests/168_RBr_R.in
index 94f799c..2b01ca6 100644
--- a/utils/generated_trans_tests/168_RBr_R.in
+++ b/utils/generated_trans_tests/168_RBr_R.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/168_RBr_R.out b/utils/generated_trans_tests/168_RBr_R.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/168_RBr_R.out
+++ b/utils/generated_trans_tests/168_RBr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/169_RBm_R.in b/utils/generated_trans_tests/169_RBm_R.in
index 46cce80..d959d8b 100644
--- a/utils/generated_trans_tests/169_RBm_R.in
+++ b/utils/generated_trans_tests/169_RBm_R.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/169_RBm_R.out b/utils/generated_trans_tests/169_RBm_R.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/169_RBm_R.out
+++ b/utils/generated_trans_tests/169_RBm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/170_RBr_F.in b/utils/generated_trans_tests/170_RBr_F.in
index 54b6b57..1486e80 100644
--- a/utils/generated_trans_tests/170_RBr_F.in
+++ b/utils/generated_trans_tests/170_RBr_F.in
@@ -1,2 +1,2 @@
1rotation RB 1rotation RB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/170_RBr_F.out b/utils/generated_trans_tests/170_RBr_F.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/170_RBr_F.out
+++ b/utils/generated_trans_tests/170_RBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/171_RBm_F.in b/utils/generated_trans_tests/171_RBm_F.in
index b0b4c04..c8550a3 100644
--- a/utils/generated_trans_tests/171_RBm_F.in
+++ b/utils/generated_trans_tests/171_RBm_F.in
@@ -1,2 +1,2 @@
1mirrored RB 1mirrored RB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/171_RBm_F.out b/utils/generated_trans_tests/171_RBm_F.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/171_RBm_F.out
+++ b/utils/generated_trans_tests/171_RBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/172_LUr_U.in b/utils/generated_trans_tests/172_LUr_U.in
index d4de425..7970de8 100644
--- a/utils/generated_trans_tests/172_LUr_U.in
+++ b/utils/generated_trans_tests/172_LUr_U.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/172_LUr_U.out b/utils/generated_trans_tests/172_LUr_U.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/172_LUr_U.out
+++ b/utils/generated_trans_tests/172_LUr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/173_LUm_U.in b/utils/generated_trans_tests/173_LUm_U.in
index 7530802..5dfa9fe 100644
--- a/utils/generated_trans_tests/173_LUm_U.in
+++ b/utils/generated_trans_tests/173_LUm_U.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/173_LUm_U.out b/utils/generated_trans_tests/173_LUm_U.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/173_LUm_U.out
+++ b/utils/generated_trans_tests/173_LUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/174_LUr_R.in b/utils/generated_trans_tests/174_LUr_R.in
index ac3b675..f60ec7a 100644
--- a/utils/generated_trans_tests/174_LUr_R.in
+++ b/utils/generated_trans_tests/174_LUr_R.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/174_LUr_R.out b/utils/generated_trans_tests/174_LUr_R.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/174_LUr_R.out
+++ b/utils/generated_trans_tests/174_LUr_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/175_LUm_R.in b/utils/generated_trans_tests/175_LUm_R.in
index 42168b5..503d4ad 100644
--- a/utils/generated_trans_tests/175_LUm_R.in
+++ b/utils/generated_trans_tests/175_LUm_R.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/175_LUm_R.out b/utils/generated_trans_tests/175_LUm_R.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/175_LUm_R.out
+++ b/utils/generated_trans_tests/175_LUm_R.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/176_LUr_F.in b/utils/generated_trans_tests/176_LUr_F.in
index 65f37e9..41e9fa7 100644
--- a/utils/generated_trans_tests/176_LUr_F.in
+++ b/utils/generated_trans_tests/176_LUr_F.in
@@ -1,2 +1,2 @@
1rotation LU 1rotation LU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/176_LUr_F.out b/utils/generated_trans_tests/176_LUr_F.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/176_LUr_F.out
+++ b/utils/generated_trans_tests/176_LUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/177_LUm_F.in b/utils/generated_trans_tests/177_LUm_F.in
index c4428a7..a0e7c88 100644
--- a/utils/generated_trans_tests/177_LUm_F.in
+++ b/utils/generated_trans_tests/177_LUm_F.in
@@ -1,2 +1,2 @@
1mirrored LU 1mirrored LU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/177_LUm_F.out b/utils/generated_trans_tests/177_LUm_F.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/177_LUm_F.out
+++ b/utils/generated_trans_tests/177_LUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/178_LFr_U.in b/utils/generated_trans_tests/178_LFr_U.in
index 9d20035..df5c9d5 100644
--- a/utils/generated_trans_tests/178_LFr_U.in
+++ b/utils/generated_trans_tests/178_LFr_U.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/178_LFr_U.out b/utils/generated_trans_tests/178_LFr_U.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/178_LFr_U.out
+++ b/utils/generated_trans_tests/178_LFr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/179_LFm_U.in b/utils/generated_trans_tests/179_LFm_U.in
index c773f71..30776aa 100644
--- a/utils/generated_trans_tests/179_LFm_U.in
+++ b/utils/generated_trans_tests/179_LFm_U.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/179_LFm_U.out b/utils/generated_trans_tests/179_LFm_U.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/179_LFm_U.out
+++ b/utils/generated_trans_tests/179_LFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/180_LFr_R.in b/utils/generated_trans_tests/180_LFr_R.in
index 059725a..0a1bcdb 100644
--- a/utils/generated_trans_tests/180_LFr_R.in
+++ b/utils/generated_trans_tests/180_LFr_R.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/180_LFr_R.out b/utils/generated_trans_tests/180_LFr_R.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/180_LFr_R.out
+++ b/utils/generated_trans_tests/180_LFr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/181_LFm_R.in b/utils/generated_trans_tests/181_LFm_R.in
index 23d26dc..b632507 100644
--- a/utils/generated_trans_tests/181_LFm_R.in
+++ b/utils/generated_trans_tests/181_LFm_R.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/181_LFm_R.out b/utils/generated_trans_tests/181_LFm_R.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/181_LFm_R.out
+++ b/utils/generated_trans_tests/181_LFm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/182_LFr_F.in b/utils/generated_trans_tests/182_LFr_F.in
index 94d3342..31add4f 100644
--- a/utils/generated_trans_tests/182_LFr_F.in
+++ b/utils/generated_trans_tests/182_LFr_F.in
@@ -1,2 +1,2 @@
1rotation LF 1rotation LF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/182_LFr_F.out b/utils/generated_trans_tests/182_LFr_F.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/182_LFr_F.out
+++ b/utils/generated_trans_tests/182_LFr_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/183_LFm_F.in b/utils/generated_trans_tests/183_LFm_F.in
index 4170885..d80b616 100644
--- a/utils/generated_trans_tests/183_LFm_F.in
+++ b/utils/generated_trans_tests/183_LFm_F.in
@@ -1,2 +1,2 @@
1mirrored LF 1mirrored LF
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/183_LFm_F.out b/utils/generated_trans_tests/183_LFm_F.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/183_LFm_F.out
+++ b/utils/generated_trans_tests/183_LFm_F.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/184_LDr_U.in b/utils/generated_trans_tests/184_LDr_U.in
index d8a9460..4589b3d 100644
--- a/utils/generated_trans_tests/184_LDr_U.in
+++ b/utils/generated_trans_tests/184_LDr_U.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/184_LDr_U.out b/utils/generated_trans_tests/184_LDr_U.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/184_LDr_U.out
+++ b/utils/generated_trans_tests/184_LDr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/185_LDm_U.in b/utils/generated_trans_tests/185_LDm_U.in
index 692a72b..fa47271 100644
--- a/utils/generated_trans_tests/185_LDm_U.in
+++ b/utils/generated_trans_tests/185_LDm_U.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/185_LDm_U.out b/utils/generated_trans_tests/185_LDm_U.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/185_LDm_U.out
+++ b/utils/generated_trans_tests/185_LDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/186_LDr_R.in b/utils/generated_trans_tests/186_LDr_R.in
index e303013..fa8c862 100644
--- a/utils/generated_trans_tests/186_LDr_R.in
+++ b/utils/generated_trans_tests/186_LDr_R.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/186_LDr_R.out b/utils/generated_trans_tests/186_LDr_R.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/186_LDr_R.out
+++ b/utils/generated_trans_tests/186_LDr_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/187_LDm_R.in b/utils/generated_trans_tests/187_LDm_R.in
index b09a13c..1464f71 100644
--- a/utils/generated_trans_tests/187_LDm_R.in
+++ b/utils/generated_trans_tests/187_LDm_R.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/187_LDm_R.out b/utils/generated_trans_tests/187_LDm_R.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/187_LDm_R.out
+++ b/utils/generated_trans_tests/187_LDm_R.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/188_LDr_F.in b/utils/generated_trans_tests/188_LDr_F.in
index 9af43b3..f0f3924 100644
--- a/utils/generated_trans_tests/188_LDr_F.in
+++ b/utils/generated_trans_tests/188_LDr_F.in
@@ -1,2 +1,2 @@
1rotation LD 1rotation LD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/188_LDr_F.out b/utils/generated_trans_tests/188_LDr_F.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/188_LDr_F.out
+++ b/utils/generated_trans_tests/188_LDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/189_LDm_F.in b/utils/generated_trans_tests/189_LDm_F.in
index 97d8e51..af5bbce 100644
--- a/utils/generated_trans_tests/189_LDm_F.in
+++ b/utils/generated_trans_tests/189_LDm_F.in
@@ -1,2 +1,2 @@
1mirrored LD 1mirrored LD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/189_LDm_F.out b/utils/generated_trans_tests/189_LDm_F.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/189_LDm_F.out
+++ b/utils/generated_trans_tests/189_LDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/190_LBr_U.in b/utils/generated_trans_tests/190_LBr_U.in
index 2003378..88c9a40 100644
--- a/utils/generated_trans_tests/190_LBr_U.in
+++ b/utils/generated_trans_tests/190_LBr_U.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/190_LBr_U.out b/utils/generated_trans_tests/190_LBr_U.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/190_LBr_U.out
+++ b/utils/generated_trans_tests/190_LBr_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/191_LBm_U.in b/utils/generated_trans_tests/191_LBm_U.in
index c3e7251..716fa1b 100644
--- a/utils/generated_trans_tests/191_LBm_U.in
+++ b/utils/generated_trans_tests/191_LBm_U.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/191_LBm_U.out b/utils/generated_trans_tests/191_LBm_U.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/191_LBm_U.out
+++ b/utils/generated_trans_tests/191_LBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/192_LBr_R.in b/utils/generated_trans_tests/192_LBr_R.in
index 67bdd40..22ee2b9 100644
--- a/utils/generated_trans_tests/192_LBr_R.in
+++ b/utils/generated_trans_tests/192_LBr_R.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/192_LBr_R.out b/utils/generated_trans_tests/192_LBr_R.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/192_LBr_R.out
+++ b/utils/generated_trans_tests/192_LBr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/193_LBm_R.in b/utils/generated_trans_tests/193_LBm_R.in
index b8f4b6f..85cdeb1 100644
--- a/utils/generated_trans_tests/193_LBm_R.in
+++ b/utils/generated_trans_tests/193_LBm_R.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/193_LBm_R.out b/utils/generated_trans_tests/193_LBm_R.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/193_LBm_R.out
+++ b/utils/generated_trans_tests/193_LBm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/194_LBr_F.in b/utils/generated_trans_tests/194_LBr_F.in
index 3ff9823..d642baa 100644
--- a/utils/generated_trans_tests/194_LBr_F.in
+++ b/utils/generated_trans_tests/194_LBr_F.in
@@ -1,2 +1,2 @@
1rotation LB 1rotation LB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/194_LBr_F.out b/utils/generated_trans_tests/194_LBr_F.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/194_LBr_F.out
+++ b/utils/generated_trans_tests/194_LBr_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/195_LBm_F.in b/utils/generated_trans_tests/195_LBm_F.in
index 35cb55f..a318418 100644
--- a/utils/generated_trans_tests/195_LBm_F.in
+++ b/utils/generated_trans_tests/195_LBm_F.in
@@ -1,2 +1,2 @@
1mirrored LB 1mirrored LB
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/195_LBm_F.out b/utils/generated_trans_tests/195_LBm_F.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/195_LBm_F.out
+++ b/utils/generated_trans_tests/195_LBm_F.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/196_FUr_U.in b/utils/generated_trans_tests/196_FUr_U.in
index 489b248..befc225 100644
--- a/utils/generated_trans_tests/196_FUr_U.in
+++ b/utils/generated_trans_tests/196_FUr_U.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/196_FUr_U.out b/utils/generated_trans_tests/196_FUr_U.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/196_FUr_U.out
+++ b/utils/generated_trans_tests/196_FUr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/197_FUm_U.in b/utils/generated_trans_tests/197_FUm_U.in
index e11003f..58ef157 100644
--- a/utils/generated_trans_tests/197_FUm_U.in
+++ b/utils/generated_trans_tests/197_FUm_U.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/197_FUm_U.out b/utils/generated_trans_tests/197_FUm_U.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/197_FUm_U.out
+++ b/utils/generated_trans_tests/197_FUm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/198_FUr_R.in b/utils/generated_trans_tests/198_FUr_R.in
index d44ba29..40e392e 100644
--- a/utils/generated_trans_tests/198_FUr_R.in
+++ b/utils/generated_trans_tests/198_FUr_R.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/198_FUr_R.out b/utils/generated_trans_tests/198_FUr_R.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/198_FUr_R.out
+++ b/utils/generated_trans_tests/198_FUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/199_FUm_R.in b/utils/generated_trans_tests/199_FUm_R.in
index a803843..e0d3628 100644
--- a/utils/generated_trans_tests/199_FUm_R.in
+++ b/utils/generated_trans_tests/199_FUm_R.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/199_FUm_R.out b/utils/generated_trans_tests/199_FUm_R.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/199_FUm_R.out
+++ b/utils/generated_trans_tests/199_FUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/200_FUr_F.in b/utils/generated_trans_tests/200_FUr_F.in
index beaac09..fd61fb1 100644
--- a/utils/generated_trans_tests/200_FUr_F.in
+++ b/utils/generated_trans_tests/200_FUr_F.in
@@ -1,2 +1,2 @@
1rotation FU 1rotation FU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/200_FUr_F.out b/utils/generated_trans_tests/200_FUr_F.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/200_FUr_F.out
+++ b/utils/generated_trans_tests/200_FUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/201_FUm_F.in b/utils/generated_trans_tests/201_FUm_F.in
index 802b0b3..fa1a42c 100644
--- a/utils/generated_trans_tests/201_FUm_F.in
+++ b/utils/generated_trans_tests/201_FUm_F.in
@@ -1,2 +1,2 @@
1mirrored FU 1mirrored FU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/201_FUm_F.out b/utils/generated_trans_tests/201_FUm_F.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/201_FUm_F.out
+++ b/utils/generated_trans_tests/201_FUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/202_FRr_U.in b/utils/generated_trans_tests/202_FRr_U.in
index ac903a9..dd9c4f0 100644
--- a/utils/generated_trans_tests/202_FRr_U.in
+++ b/utils/generated_trans_tests/202_FRr_U.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/202_FRr_U.out b/utils/generated_trans_tests/202_FRr_U.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/202_FRr_U.out
+++ b/utils/generated_trans_tests/202_FRr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/203_FRm_U.in b/utils/generated_trans_tests/203_FRm_U.in
index e11a81e..547961e 100644
--- a/utils/generated_trans_tests/203_FRm_U.in
+++ b/utils/generated_trans_tests/203_FRm_U.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/203_FRm_U.out b/utils/generated_trans_tests/203_FRm_U.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/203_FRm_U.out
+++ b/utils/generated_trans_tests/203_FRm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/204_FRr_R.in b/utils/generated_trans_tests/204_FRr_R.in
index 1a06d75..97d3f5a 100644
--- a/utils/generated_trans_tests/204_FRr_R.in
+++ b/utils/generated_trans_tests/204_FRr_R.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/204_FRr_R.out b/utils/generated_trans_tests/204_FRr_R.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/204_FRr_R.out
+++ b/utils/generated_trans_tests/204_FRr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/205_FRm_R.in b/utils/generated_trans_tests/205_FRm_R.in
index cd0caf6..b601fc7 100644
--- a/utils/generated_trans_tests/205_FRm_R.in
+++ b/utils/generated_trans_tests/205_FRm_R.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/205_FRm_R.out b/utils/generated_trans_tests/205_FRm_R.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/205_FRm_R.out
+++ b/utils/generated_trans_tests/205_FRm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/206_FRr_F.in b/utils/generated_trans_tests/206_FRr_F.in
index 1afb42b..8feca39 100644
--- a/utils/generated_trans_tests/206_FRr_F.in
+++ b/utils/generated_trans_tests/206_FRr_F.in
@@ -1,2 +1,2 @@
1rotation FR 1rotation FR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/206_FRr_F.out b/utils/generated_trans_tests/206_FRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/206_FRr_F.out
+++ b/utils/generated_trans_tests/206_FRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/207_FRm_F.in b/utils/generated_trans_tests/207_FRm_F.in
index e2f75d0..acda0f7 100644
--- a/utils/generated_trans_tests/207_FRm_F.in
+++ b/utils/generated_trans_tests/207_FRm_F.in
@@ -1,2 +1,2 @@
1mirrored FR 1mirrored FR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/207_FRm_F.out b/utils/generated_trans_tests/207_FRm_F.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/207_FRm_F.out
+++ b/utils/generated_trans_tests/207_FRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/208_FDr_U.in b/utils/generated_trans_tests/208_FDr_U.in
index f18744e..c03148a 100644
--- a/utils/generated_trans_tests/208_FDr_U.in
+++ b/utils/generated_trans_tests/208_FDr_U.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/208_FDr_U.out b/utils/generated_trans_tests/208_FDr_U.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/208_FDr_U.out
+++ b/utils/generated_trans_tests/208_FDr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/209_FDm_U.in b/utils/generated_trans_tests/209_FDm_U.in
index 5ac46b4..fa12fbc 100644
--- a/utils/generated_trans_tests/209_FDm_U.in
+++ b/utils/generated_trans_tests/209_FDm_U.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/209_FDm_U.out b/utils/generated_trans_tests/209_FDm_U.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/209_FDm_U.out
+++ b/utils/generated_trans_tests/209_FDm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/210_FDr_R.in b/utils/generated_trans_tests/210_FDr_R.in
index 26b394c..ee66585 100644
--- a/utils/generated_trans_tests/210_FDr_R.in
+++ b/utils/generated_trans_tests/210_FDr_R.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/210_FDr_R.out b/utils/generated_trans_tests/210_FDr_R.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/210_FDr_R.out
+++ b/utils/generated_trans_tests/210_FDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/211_FDm_R.in b/utils/generated_trans_tests/211_FDm_R.in
index 5a10ec6..9cb846d 100644
--- a/utils/generated_trans_tests/211_FDm_R.in
+++ b/utils/generated_trans_tests/211_FDm_R.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/211_FDm_R.out b/utils/generated_trans_tests/211_FDm_R.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/211_FDm_R.out
+++ b/utils/generated_trans_tests/211_FDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/212_FDr_F.in b/utils/generated_trans_tests/212_FDr_F.in
index 2382615..8f49060 100644
--- a/utils/generated_trans_tests/212_FDr_F.in
+++ b/utils/generated_trans_tests/212_FDr_F.in
@@ -1,2 +1,2 @@
1rotation FD 1rotation FD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/212_FDr_F.out b/utils/generated_trans_tests/212_FDr_F.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/212_FDr_F.out
+++ b/utils/generated_trans_tests/212_FDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/213_FDm_F.in b/utils/generated_trans_tests/213_FDm_F.in
index 0515b51..276da08 100644
--- a/utils/generated_trans_tests/213_FDm_F.in
+++ b/utils/generated_trans_tests/213_FDm_F.in
@@ -1,2 +1,2 @@
1mirrored FD 1mirrored FD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/213_FDm_F.out b/utils/generated_trans_tests/213_FDm_F.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/213_FDm_F.out
+++ b/utils/generated_trans_tests/213_FDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/214_FLr_U.in b/utils/generated_trans_tests/214_FLr_U.in
index da3f3a4..2e32668 100644
--- a/utils/generated_trans_tests/214_FLr_U.in
+++ b/utils/generated_trans_tests/214_FLr_U.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/214_FLr_U.out b/utils/generated_trans_tests/214_FLr_U.out
index e805af8..a75744c 100644
--- a/utils/generated_trans_tests/214_FLr_U.out
+++ b/utils/generated_trans_tests/214_FLr_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/215_FLm_U.in b/utils/generated_trans_tests/215_FLm_U.in
index 0dd99c3..bc9917c 100644
--- a/utils/generated_trans_tests/215_FLm_U.in
+++ b/utils/generated_trans_tests/215_FLm_U.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/215_FLm_U.out b/utils/generated_trans_tests/215_FLm_U.out
index 40f1260..500d969 100644
--- a/utils/generated_trans_tests/215_FLm_U.out
+++ b/utils/generated_trans_tests/215_FLm_U.out
@@ -1 +1 @@
FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0 OBMDQFSH=YBCZEFGHTQKL=A
diff --git a/utils/generated_trans_tests/216_FLr_R.in b/utils/generated_trans_tests/216_FLr_R.in
index b8488d1..0643c39 100644
--- a/utils/generated_trans_tests/216_FLr_R.in
+++ b/utils/generated_trans_tests/216_FLr_R.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/216_FLr_R.out b/utils/generated_trans_tests/216_FLr_R.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/216_FLr_R.out
+++ b/utils/generated_trans_tests/216_FLr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/217_FLm_R.in b/utils/generated_trans_tests/217_FLm_R.in
index 624882c..b60d441 100644
--- a/utils/generated_trans_tests/217_FLm_R.in
+++ b/utils/generated_trans_tests/217_FLm_R.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/217_FLm_R.out b/utils/generated_trans_tests/217_FLm_R.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/217_FLm_R.out
+++ b/utils/generated_trans_tests/217_FLm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/218_FLr_F.in b/utils/generated_trans_tests/218_FLr_F.in
index 03950c5..6e5562d 100644
--- a/utils/generated_trans_tests/218_FLr_F.in
+++ b/utils/generated_trans_tests/218_FLr_F.in
@@ -1,2 +1,2 @@
1rotation FL 1rotation FL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/218_FLr_F.out b/utils/generated_trans_tests/218_FLr_F.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/218_FLr_F.out
+++ b/utils/generated_trans_tests/218_FLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/219_FLm_F.in b/utils/generated_trans_tests/219_FLm_F.in
index ff909bf..e10f8de 100644
--- a/utils/generated_trans_tests/219_FLm_F.in
+++ b/utils/generated_trans_tests/219_FLm_F.in
@@ -1,2 +1,2 @@
1mirrored FL 1mirrored FL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/219_FLm_F.out b/utils/generated_trans_tests/219_FLm_F.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/219_FLm_F.out
+++ b/utils/generated_trans_tests/219_FLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/220_BUr_U.in b/utils/generated_trans_tests/220_BUr_U.in
index c923f4d..abf27a4 100644
--- a/utils/generated_trans_tests/220_BUr_U.in
+++ b/utils/generated_trans_tests/220_BUr_U.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/220_BUr_U.out b/utils/generated_trans_tests/220_BUr_U.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/220_BUr_U.out
+++ b/utils/generated_trans_tests/220_BUr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/221_BUm_U.in b/utils/generated_trans_tests/221_BUm_U.in
index d939385..fab253b 100644
--- a/utils/generated_trans_tests/221_BUm_U.in
+++ b/utils/generated_trans_tests/221_BUm_U.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/221_BUm_U.out b/utils/generated_trans_tests/221_BUm_U.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/221_BUm_U.out
+++ b/utils/generated_trans_tests/221_BUm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/222_BUr_R.in b/utils/generated_trans_tests/222_BUr_R.in
index 89a46f4..1a55568 100644
--- a/utils/generated_trans_tests/222_BUr_R.in
+++ b/utils/generated_trans_tests/222_BUr_R.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/222_BUr_R.out b/utils/generated_trans_tests/222_BUr_R.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/222_BUr_R.out
+++ b/utils/generated_trans_tests/222_BUr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/223_BUm_R.in b/utils/generated_trans_tests/223_BUm_R.in
index 2f5d234..a0ea716 100644
--- a/utils/generated_trans_tests/223_BUm_R.in
+++ b/utils/generated_trans_tests/223_BUm_R.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/223_BUm_R.out b/utils/generated_trans_tests/223_BUm_R.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/223_BUm_R.out
+++ b/utils/generated_trans_tests/223_BUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/224_BUr_F.in b/utils/generated_trans_tests/224_BUr_F.in
index 0ad8995..38e9300 100644
--- a/utils/generated_trans_tests/224_BUr_F.in
+++ b/utils/generated_trans_tests/224_BUr_F.in
@@ -1,2 +1,2 @@
1rotation BU 1rotation BU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/224_BUr_F.out b/utils/generated_trans_tests/224_BUr_F.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/224_BUr_F.out
+++ b/utils/generated_trans_tests/224_BUr_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/225_BUm_F.in b/utils/generated_trans_tests/225_BUm_F.in
index 3ff7e4d..f7a1309 100644
--- a/utils/generated_trans_tests/225_BUm_F.in
+++ b/utils/generated_trans_tests/225_BUm_F.in
@@ -1,2 +1,2 @@
1mirrored BU 1mirrored BU
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/225_BUm_F.out b/utils/generated_trans_tests/225_BUm_F.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/225_BUm_F.out
+++ b/utils/generated_trans_tests/225_BUm_F.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/226_BRr_U.in b/utils/generated_trans_tests/226_BRr_U.in
index 46ebe30..7cc2fbb 100644
--- a/utils/generated_trans_tests/226_BRr_U.in
+++ b/utils/generated_trans_tests/226_BRr_U.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/226_BRr_U.out b/utils/generated_trans_tests/226_BRr_U.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/226_BRr_U.out
+++ b/utils/generated_trans_tests/226_BRr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/227_BRm_U.in b/utils/generated_trans_tests/227_BRm_U.in
index 63897c9..6d9e934 100644
--- a/utils/generated_trans_tests/227_BRm_U.in
+++ b/utils/generated_trans_tests/227_BRm_U.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/227_BRm_U.out b/utils/generated_trans_tests/227_BRm_U.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/227_BRm_U.out
+++ b/utils/generated_trans_tests/227_BRm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/228_BRr_R.in b/utils/generated_trans_tests/228_BRr_R.in
index 7e2de76..9e967cb 100644
--- a/utils/generated_trans_tests/228_BRr_R.in
+++ b/utils/generated_trans_tests/228_BRr_R.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/228_BRr_R.out b/utils/generated_trans_tests/228_BRr_R.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/228_BRr_R.out
+++ b/utils/generated_trans_tests/228_BRr_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/229_BRm_R.in b/utils/generated_trans_tests/229_BRm_R.in
index c9e6e82..01f6b74 100644
--- a/utils/generated_trans_tests/229_BRm_R.in
+++ b/utils/generated_trans_tests/229_BRm_R.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/229_BRm_R.out b/utils/generated_trans_tests/229_BRm_R.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/229_BRm_R.out
+++ b/utils/generated_trans_tests/229_BRm_R.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/230_BRr_F.in b/utils/generated_trans_tests/230_BRr_F.in
index fe288dc..e38b356 100644
--- a/utils/generated_trans_tests/230_BRr_F.in
+++ b/utils/generated_trans_tests/230_BRr_F.in
@@ -1,2 +1,2 @@
1rotation BR 1rotation BR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/230_BRr_F.out b/utils/generated_trans_tests/230_BRr_F.out
index 8c8fcb3..1be2e89 100644
--- a/utils/generated_trans_tests/230_BRr_F.out
+++ b/utils/generated_trans_tests/230_BRr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/231_BRm_F.in b/utils/generated_trans_tests/231_BRm_F.in
index 5411345..5bcc866 100644
--- a/utils/generated_trans_tests/231_BRm_F.in
+++ b/utils/generated_trans_tests/231_BRm_F.in
@@ -1,2 +1,2 @@
1mirrored BR 1mirrored BR
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/231_BRm_F.out b/utils/generated_trans_tests/231_BRm_F.out
index 2ac2912..fbe35f3 100644
--- a/utils/generated_trans_tests/231_BRm_F.out
+++ b/utils/generated_trans_tests/231_BRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1 AUXDKFGJ=ABCDEJKHIGFL=A
diff --git a/utils/generated_trans_tests/232_BDr_U.in b/utils/generated_trans_tests/232_BDr_U.in
index 1a8f5d3..9a98a23 100644
--- a/utils/generated_trans_tests/232_BDr_U.in
+++ b/utils/generated_trans_tests/232_BDr_U.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/232_BDr_U.out b/utils/generated_trans_tests/232_BDr_U.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/232_BDr_U.out
+++ b/utils/generated_trans_tests/232_BDr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/233_BDm_U.in b/utils/generated_trans_tests/233_BDm_U.in
index b6b1ec4..9f7e0b8 100644
--- a/utils/generated_trans_tests/233_BDm_U.in
+++ b/utils/generated_trans_tests/233_BDm_U.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/233_BDm_U.out b/utils/generated_trans_tests/233_BDm_U.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/233_BDm_U.out
+++ b/utils/generated_trans_tests/233_BDm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/234_BDr_R.in b/utils/generated_trans_tests/234_BDr_R.in
index f12b7bb..4bb7b22 100644
--- a/utils/generated_trans_tests/234_BDr_R.in
+++ b/utils/generated_trans_tests/234_BDr_R.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/234_BDr_R.out b/utils/generated_trans_tests/234_BDr_R.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/234_BDr_R.out
+++ b/utils/generated_trans_tests/234_BDr_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/235_BDm_R.in b/utils/generated_trans_tests/235_BDm_R.in
index a281b6c..2d94ecb 100644
--- a/utils/generated_trans_tests/235_BDm_R.in
+++ b/utils/generated_trans_tests/235_BDm_R.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/235_BDm_R.out b/utils/generated_trans_tests/235_BDm_R.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/235_BDm_R.out
+++ b/utils/generated_trans_tests/235_BDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/generated_trans_tests/236_BDr_F.in b/utils/generated_trans_tests/236_BDr_F.in
index 68a3262..faf5398 100644
--- a/utils/generated_trans_tests/236_BDr_F.in
+++ b/utils/generated_trans_tests/236_BDr_F.in
@@ -1,2 +1,2 @@
1rotation BD 1rotation BD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/236_BDr_F.out b/utils/generated_trans_tests/236_BDr_F.out
index cf4f816..ffcea5d 100644
--- a/utils/generated_trans_tests/236_BDr_F.out
+++ b/utils/generated_trans_tests/236_BDr_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 ABHGEFCD=ABHGEFCDIJKL=A
diff --git a/utils/generated_trans_tests/237_BDm_F.in b/utils/generated_trans_tests/237_BDm_F.in
index 9200d9a..df192e9 100644
--- a/utils/generated_trans_tests/237_BDm_F.in
+++ b/utils/generated_trans_tests/237_BDm_F.in
@@ -1,2 +1,2 @@
1mirrored BD 1mirrored BD
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/237_BDm_F.out b/utils/generated_trans_tests/237_BDm_F.out
index 2864f5b..acd829c 100644
--- a/utils/generated_trans_tests/237_BDm_F.out
+++ b/utils/generated_trans_tests/237_BDm_F.out
@@ -1 +1 @@
UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0 ABGHEFDC=ABGHEFDCIJKL=A
diff --git a/utils/generated_trans_tests/238_BLr_U.in b/utils/generated_trans_tests/238_BLr_U.in
index ae1bb2e..6e5ba1c 100644
--- a/utils/generated_trans_tests/238_BLr_U.in
+++ b/utils/generated_trans_tests/238_BLr_U.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/238_BLr_U.out b/utils/generated_trans_tests/238_BLr_U.out
index f7fb13c..73e099a 100644
--- a/utils/generated_trans_tests/238_BLr_U.out
+++ b/utils/generated_trans_tests/238_BLr_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 ANCPETGR=AbaDEFGHIJRS=A
diff --git a/utils/generated_trans_tests/239_BLm_U.in b/utils/generated_trans_tests/239_BLm_U.in
index 82eef50..f15266c 100644
--- a/utils/generated_trans_tests/239_BLm_U.in
+++ b/utils/generated_trans_tests/239_BLm_U.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 2FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/239_BLm_U.out b/utils/generated_trans_tests/239_BLm_U.out
index 1367517..78bd94a 100644
--- a/utils/generated_trans_tests/239_BLm_U.out
+++ b/utils/generated_trans_tests/239_BLm_U.out
@@ -1 +1 @@
UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2 APCNERGT=AabDEFGHIJSR=A
diff --git a/utils/generated_trans_tests/240_BLr_R.in b/utils/generated_trans_tests/240_BLr_R.in
index 5aeee46..f81e5c3 100644
--- a/utils/generated_trans_tests/240_BLr_R.in
+++ b/utils/generated_trans_tests/240_BLr_R.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/240_BLr_R.out b/utils/generated_trans_tests/240_BLr_R.out
index b5b36ad..250d3a1 100644
--- a/utils/generated_trans_tests/240_BLr_R.out
+++ b/utils/generated_trans_tests/240_BLr_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 FECDABGH=EFCDBAGHIJKL=A
diff --git a/utils/generated_trans_tests/241_BLm_R.in b/utils/generated_trans_tests/241_BLm_R.in
index 4aff162..f2b8a29 100644
--- a/utils/generated_trans_tests/241_BLm_R.in
+++ b/utils/generated_trans_tests/241_BLm_R.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 2WBCVEILH=ABCDIFGLHJKE=A
diff --git a/utils/generated_trans_tests/241_BLm_R.out b/utils/generated_trans_tests/241_BLm_R.out
index 7721ab5..111ba2b 100644
--- a/utils/generated_trans_tests/241_BLm_R.out
+++ b/utils/generated_trans_tests/241_BLm_R.out
@@ -1 +1 @@
UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0 EFCDBAGH=FECDABGHIJKL=A
diff --git a/utils/generated_trans_tests/242_BLr_F.in b/utils/generated_trans_tests/242_BLr_F.in
index a621e5e..4ff7f65 100644
--- a/utils/generated_trans_tests/242_BLr_F.in
+++ b/utils/generated_trans_tests/242_BLr_F.in
@@ -1,2 +1,2 @@
1rotation BL 1rotation BL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/242_BLr_F.out b/utils/generated_trans_tests/242_BLr_F.out
index 0b0565c..5aa4131 100644
--- a/utils/generated_trans_tests/242_BLr_F.out
+++ b/utils/generated_trans_tests/242_BLr_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 AXUDJFGK=ABCDEKJHIFGL=A
diff --git a/utils/generated_trans_tests/243_BLm_F.in b/utils/generated_trans_tests/243_BLm_F.in
index 6aa4a5a..ef6d357 100644
--- a/utils/generated_trans_tests/243_BLm_F.in
+++ b/utils/generated_trans_tests/243_BLm_F.in
@@ -1,2 +1,2 @@
1mirrored BL 1mirrored BL
2FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 2MBODSFQH=ZBCYEFGHQTKL=A
diff --git a/utils/generated_trans_tests/243_BLm_F.out b/utils/generated_trans_tests/243_BLm_F.out
index d4abffc..a14e69b 100644
--- a/utils/generated_trans_tests/243_BLm_F.out
+++ b/utils/generated_trans_tests/243_BLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0 VBCWELIH=ABCDLFGIEJKH=A
diff --git a/utils/genmovecode.sh b/utils/genmovecode.sh
deleted file mode 100755
index cf13441..0000000
--- a/utils/genmovecode.sh
+++ /dev/null
@@ -1,15 +0,0 @@
1#!/bin/sh
2
3cc -DDEBUG h48_to_lst.c ../src/nissy.c -o h48_to_lst
4
5gen() {
6 for f in cubes/move_??_*.txt; do
7 move="$(echo "$f" | sed 's/.*_// ; s/\.txt//')"
8 printf '#define _move_cube_%s fastcube( \\\n ' "$move"
9 ./h48_to_lst <"$f"
10 printf ')\n'
11 done
12}
13
14gen
15rm -f h48_to_lst invert
diff --git a/utils/genmoveswitch.sh b/utils/genmoveswitch.sh
deleted file mode 100755
index 3b2a74b..0000000
--- a/utils/genmoveswitch.sh
+++ /dev/null
@@ -1,8 +0,0 @@
1#!/bin/sh
2
3printf '\tswitch (m) {\n'
4for f in cubes/move_??_*.txt; do
5 t="$(echo "$f" | sed 's/.*_// ; s/\.txt//')"
6 printf '\tcase %s:\n\t\treturn _move(%s, c);\n' "$t" "$t"
7done
8printf '\t}\n'
diff --git a/utils/gentranscode.sh b/utils/gentranscode.sh
deleted file mode 100755
index 9a1de2c..0000000
--- a/utils/gentranscode.sh
+++ /dev/null
@@ -1,25 +0,0 @@
1#!/bin/sh
2
3cc -DDEBUG h48_to_lst.c ../src/nissy.c -o h48_to_lst
4cc -DDEBUG invert.c ../src/nissy.c -o invert
5
6lineavx() { printf '#define _trans_cube_%s ' "$1"; }
7linesrc() { printf '_static cube_fast_t _trans_cube_%s = ' "$1"; }
8sedavx() { sed '1,2s/$/ \\/ ; 3s/$/)/ ; 3q'; }
9sedsrc() { sed '3s/$/ };/ ; 3q'; }
10
11gen() {
12 for f in cubes/transform_??_???.txt; do
13 trans="$(echo "$f" | sed 's/.*_// ; s/\.txt//')"
14 printf '#define _trans_cube_%s fastcube( \\\n ' "$trans"
15 ./h48_to_lst <"$f"
16 printf ')\n'
17 printf '#define _trans_cube_%s_inverse fastcube( \\\n ' \
18 "$trans"
19 ./invert <"$f" | ./h48_to_lst
20 printf ')\n'
21 done
22}
23
24gen
25rm -f h48_to_lst invert
diff --git a/utils/gentransswitch.sh b/utils/gentransswitch.sh
deleted file mode 100755
index 20e2bfb..0000000
--- a/utils/gentransswitch.sh
+++ /dev/null
@@ -1,14 +0,0 @@
1#!/bin/sh
2
3printf '\tswitch (t) {\n'
4for f in cubes/transform_??_???.txt; do
5 t="$(echo "$f" | sed 's/.*_// ; s/\.txt//')"
6 mirror_or_rotation="$(echo "$t" | grep m)"
7 if [ -z "$mirror_or_rotation" ]; then
8 m="rotation"
9 else
10 m="mirrored"
11 fi
12 printf '\tcase %s:\n\t\treturn _trans_%s(%s, c);\n' "$t" "$m" "$t"
13done
14printf '\t}\n'
diff --git a/utils/gentranstests.sh b/utils/gentranstests.sh
deleted file mode 100755
index a257a0a..0000000
--- a/utils/gentranstests.sh
+++ /dev/null
@@ -1,35 +0,0 @@
1#!/bin/sh
2
3outdir="./generated_trans_tests"
4
5mkdir -p "$outdir"
6i=100
7
8while read -r line; do
9 [ -z "$line" ] && continue
10
11 trans_piece="$(echo "$line" | awk '{print $1}' | tr -d 'rm')"
12 move1="$(echo "$line" | awk '{print $2}')"
13 move2="$(echo "$line" | awk '{print $3}')"
14
15 rotation="rotation $trans_piece"
16
17 file1="$(ls cubes | grep "move_.*_${move1}.txt")"
18 file2="$(ls cubes | grep "move_.*_${move2}.txt")"
19 echo "$rotation" >"$outdir/${i}_${trans_piece}r_${move1}.in"
20 cat "cubes/$file1" >>"$outdir/${i}_${trans_piece}r_${move1}.in"
21 cp "cubes/$file2" "$outdir/${i}_${trans_piece}r_${move1}.out"
22
23 i=$((i+1))
24
25 mirrored="mirrored $trans_piece"
26 move2m="$(echo "${move2}" | tr 'LR' 'RL')3"
27
28 file1="$(ls cubes | grep "move_.*_${move1}.txt")"
29 file2="$(ls cubes | grep "move_.*_${move2m}.txt")"
30 echo "$mirrored" >"$outdir/${i}_${trans_piece}m_${move1}.in"
31 cat "cubes/$file1" >>"$outdir/${i}_${trans_piece}m_${move1}.in"
32 cp "cubes/$file2" "$outdir/${i}_${trans_piece}m_${move1}.out"
33
34 i=$((i+1))
35done <transform_moves.txt
diff --git a/utils/h48_to_lst.c b/utils/h48_to_lst.c
deleted file mode 100644
index 03265b7..0000000
--- a/utils/h48_to_lst.c
+++ /dev/null
@@ -1,22 +0,0 @@
1#include <stdio.h>
2#include <inttypes.h>
3#include <stdbool.h>
4
5#include "../src/nissy.h"
6
7#define STRLENMAX 1000
8
9int main(void) {
10 char strin[STRLENMAX], strout[STRLENMAX];
11 int result;
12
13 fgets(strin, STRLENMAX, stdin);
14
15 result = nissy_convertcube("H48", "LST", strin, strout);
16 if (result)
17 fprintf(stderr, "Error converting cube: code %d\n", result);
18
19 fputs(strout, stdout);
20
21 return 0;
22}
diff --git a/utils/invert.c b/utils/invert.c
deleted file mode 100644
index 41580c0..0000000
--- a/utils/invert.c
+++ /dev/null
@@ -1,19 +0,0 @@
1#include <stdio.h>
2#include <inttypes.h>
3#include <stdbool.h>
4
5#include "../src/nissy.h"
6
7#define STRLENMAX 1000
8
9int main(void) {
10 char str[STRLENMAX], cube[22], inv[22];
11
12 fgets(str, STRLENMAX, stdin);
13 nissy_readcube("H48", str, cube);
14 nissy_inverse(cube, inv);
15 nissy_writecube("H48", inv, str);
16 fputs(str, stdout);
17
18 return 0;
19}
diff --git a/utils/mirror.sh b/utils/mirror.sh
deleted file mode 100755
index 41a434f..0000000
--- a/utils/mirror.sh
+++ /dev/null
@@ -1,3 +0,0 @@
1#!/bin/sh
2
3tr 'LR' 'RL'

Generated with cgit - Back to sebastiano.tronto.net