#!/usr/bin/env python3 import re,urllib.request s=urllib.request.urlopen("https://raw.githubusercontent.com/or18/Rubiks-cube-xcross-solver/main/cli_lite_without_thread.cpp").read().decode() m={line.split('"')[1]:[list(map(int,re.findall(r"\d+",a))) for a in re.findall(r"\{([0-9, ]+)\}",line)] for line in s.splitlines() if line.strip().startswith('{"') and 'State({' in line} a="R2 U F2 U2 B2 U2 R' U2 F2 R' B2 D2 R U2 D L' R2 D2 F L B'F' U' R L' D R' B R F2 L' F2 L D".replace("B'F'","B' F'").split() f="UDLRFB" a=["UDFBRL"[f.index("DULRBF"[f.index(x[0])])]+x[1:] for x in a] res="D' R' U R F' U' F D".split() cp=list(range(8));co=[0]*8;ep=list(range(12));eo=[0]*12 for x in a+res: p,q,r,t=m[x] cp,co,ep,eo=([cp[i] for i in p],[(co[i]+z)%3 for i,z in zip(p,q)],[ep[i] for i in r],[(eo[i]+z)%2 for i,z in zip(r,t)]) print("sol"," ".join(res)) print("cp",cp,"co",co,"ep",ep,"eo",eo) print("cross",[(ep[i],eo[i]) for i in range(8,12)]) print("slots",[["BL","BR","FR","FL"][i] for i in range(4) if cp[4+i]==4+i and co[4+i]==0 and ep[i]==i and eo[i]==0])