Spaces:
Runtime error
Runtime error
Greg Thompson
commited on
Commit
•
d53af6d
1
Parent(s):
e5d94ad
Update global state manager with curriculum ingestion functions
Browse files
mathtext_fastapi/curriculum_mapper.py
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import numpy as np
|
2 |
+
import pandas as pd
|
3 |
+
import re
|
4 |
+
|
5 |
+
from pathlib import Path
|
6 |
+
|
7 |
+
|
8 |
+
def read_and_preprocess_spreadsheet():
|
9 |
+
# path = list(Path.cwd().glob('Rori_Framework_v1.xlsx'))
|
10 |
+
DATA_DIR = Path(__file__).parent.parent / "mathtext_fastapi" / "data" / "Rori_Framework_v1.xlsx"
|
11 |
+
script_df = pd.read_excel(DATA_DIR, engine='openpyxl')
|
12 |
+
script_df.columns = script_df.columns[:2].tolist() + script_df.columns[2:11].astype(int).astype(str).tolist() + script_df.columns[11:].tolist()
|
13 |
+
script_df.fillna('', inplace=True)
|
14 |
+
return script_df
|
15 |
+
|
16 |
+
|
17 |
+
def build_horizontal_transitions_by_row(direction, skill_code, row):
|
18 |
+
match_arr = []
|
19 |
+
sideways_transitions = []
|
20 |
+
|
21 |
+
second_match = match+1
|
22 |
+
if direction == 'left':
|
23 |
+
second_match = match-1
|
24 |
+
|
25 |
+
for i in range(9):
|
26 |
+
# Grade column
|
27 |
+
current_grade = i+1
|
28 |
+
if row[current_grade].lower().strip() == 'x':
|
29 |
+
match_arr.append(i)
|
30 |
+
|
31 |
+
for match in match_arr:
|
32 |
+
if match_arr[-1] != match:
|
33 |
+
sideways_transitions.append([
|
34 |
+
direction,
|
35 |
+
f"{skill_code}_G{match}",
|
36 |
+
f"{skill_code}_G{second_match}"
|
37 |
+
])
|
38 |
+
return sideways_transitions
|
39 |
+
|
40 |
+
|
41 |
+
def extract_skill_code(skill):
|
42 |
+
pattern = r'[A-Z][0-9]\.\d+\.\d+'
|
43 |
+
result = re.search(pattern, skill)
|
44 |
+
return result.group()
|
45 |
+
|
46 |
+
|
47 |
+
def build_horizontal_transitions(script_df):
|
48 |
+
horizontal_transitions = []
|
49 |
+
for index, row in script_df.iterrows():
|
50 |
+
skill_code = extract_skill_code(row['Knowledge or Skill'])
|
51 |
+
|
52 |
+
rightward_matches = []
|
53 |
+
for i in range(9):
|
54 |
+
# Grade column
|
55 |
+
current_grade = i+1
|
56 |
+
if row[current_grade].lower().strip() == 'x':
|
57 |
+
rightward_matches.append(i)
|
58 |
+
|
59 |
+
for match in rightward_matches:
|
60 |
+
if rightward_matches[-1] != match:
|
61 |
+
horizontal_transitions.append([
|
62 |
+
"right",
|
63 |
+
f"{skill_code}_G{match}",
|
64 |
+
f"{skill_code}_G{match+1}"
|
65 |
+
])
|
66 |
+
|
67 |
+
leftward_matches = []
|
68 |
+
for i in reversed(range(9)):
|
69 |
+
current_grade = i
|
70 |
+
if row[current_grade].lower().strip() == 'x':
|
71 |
+
leftward_matches.append(i)
|
72 |
+
|
73 |
+
for match in leftward_matches:
|
74 |
+
if leftward_matches[0] != match:
|
75 |
+
horizontal_transitions.append([
|
76 |
+
"left",
|
77 |
+
f"{skill_code}_G{match}",
|
78 |
+
f"{skill_code}_G{match-1}"
|
79 |
+
])
|
80 |
+
|
81 |
+
return horizontal_transitions
|
82 |
+
|
83 |
+
|
84 |
+
def gather_all_vertical_matches(script_df):
|
85 |
+
all_matches = []
|
86 |
+
columns = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
|
87 |
+
|
88 |
+
for column in columns:
|
89 |
+
for index, value in script_df[column].iteritems():
|
90 |
+
row_num = index + 1
|
91 |
+
if value == 'x':
|
92 |
+
# Extract skill code
|
93 |
+
skill_code = extract_skill_code(
|
94 |
+
script_df['Knowledge or Skill'][row_num-1]
|
95 |
+
)
|
96 |
+
|
97 |
+
all_matches.append([skill_code, column])
|
98 |
+
return all_matches
|
99 |
+
|
100 |
+
|
101 |
+
def build_vertical_transitions(script_df):
|
102 |
+
vertical_transitions = []
|
103 |
+
|
104 |
+
all_matches = gather_all_vertical_matches(script_df)
|
105 |
+
|
106 |
+
# Downward
|
107 |
+
for index, match in enumerate(all_matches):
|
108 |
+
skill = match[0]
|
109 |
+
row_num = match[1]
|
110 |
+
if all_matches[-1] != match:
|
111 |
+
vertical_transitions.append([
|
112 |
+
"down",
|
113 |
+
f"{skill}_G{row_num}",
|
114 |
+
f"{all_matches[index+1][0]}_G{row_num}"
|
115 |
+
])
|
116 |
+
|
117 |
+
# Upward
|
118 |
+
for index, match in reversed(list(enumerate(all_matches))):
|
119 |
+
skill = match[0]
|
120 |
+
row_num = match[1]
|
121 |
+
if all_matches[0] != match:
|
122 |
+
vertical_transitions.append([
|
123 |
+
"up",
|
124 |
+
f"{skill}_G{row_num}",
|
125 |
+
f"{all_matches[index-1][0]}_G{row_num}"
|
126 |
+
])
|
127 |
+
|
128 |
+
return vertical_transitions
|
129 |
+
|
130 |
+
|
131 |
+
def build_all_states(all_transitions):
|
132 |
+
all_states = []
|
133 |
+
for transition in all_transitions:
|
134 |
+
for index, state in enumerate(transition):
|
135 |
+
if index == 0:
|
136 |
+
continue
|
137 |
+
if state not in all_states:
|
138 |
+
all_states.append(state)
|
139 |
+
return all_states
|
140 |
+
|
141 |
+
|
142 |
+
def build_curriculum_logic():
|
143 |
+
script_df = read_and_preprocess_spreadsheet()
|
144 |
+
horizontal_transitions = build_horizontal_transitions(script_df)
|
145 |
+
vertical_transitions = build_vertical_transitions(script_df)
|
146 |
+
all_transitions = horizontal_transitions + vertical_transitions
|
147 |
+
all_states = build_all_states(all_transitions)
|
148 |
+
return all_states, all_transitions
|
mathtext_fastapi/data/Rori_Framework_v1.xlsx
ADDED
Binary file (420 kB). View file
|
|
mathtext_fastapi/global_state_manager.py
CHANGED
@@ -1,14 +1,12 @@
|
|
1 |
from transitions import Machine
|
|
|
2 |
|
|
|
3 |
|
4 |
class GlobalStateManager(object):
|
5 |
-
states =
|
6 |
-
'N1.1.1_G1', 'N1.1.1_G2', 'N1.1.1_G3', 'N1.1.1_G4', 'N1.1.1_G5', 'N1.1.1_G6', 'N1.1.2_G1', 'N1.1.2_G2', 'N1.1.2_G3', 'N1.1.2_G4', 'N1.1.2_G5', 'N1.1.2_G6', 'N1.1.3_G2', 'N1.1.3_G3', 'N1.1.3_G4', 'N1.1.3_G5', 'N1.1.3_G6', 'N1.2.1_G1', 'N1.2.1_G2', 'N1.2.1_G3', 'N1.2.2_G2', 'N1.2.2_G3', 'N1.2.2_G4', 'N1.2.2_G5', 'N1.2.2_G6', 'N1.2.3_G5', 'N1.2.3_G6', 'N1.3.1_G1', 'N1.3.1_G2', 'N1.3.1_G3', 'N1.3.1_G4', 'N1.3.1_G5', 'N1.3.1_G6', 'N1.3.2_G1', 'N1.3.2_G2', 'N1.3.3_G3', 'N1.3.3_G4', 'N1.3.3_G5', 'N1.3.3_G6', 'N1.3.6_G5', 'N1.3.6_G6', 'N1.3.7_G2', 'N1.3.7_G3', 'N1.3.7_G4', 'N1.3.7_G5', 'N1.3.7_G6', 'N1.4.1_G1', 'N1.4.1_G2', 'N1.4.1_G3', 'N1.4.1_G4', 'N1.4.1_G5', 'N1.4.2_G4', 'N1.4.2_G5', 'N1.4.2_G6', 'N2.1.1_G3', 'N2.1.1_G4', 'N2.1.2_G4', 'N2.1.2_G5', 'N2.1.2_G6', 'N2.1.2_G7', 'N2.1.3_G5', 'N2.1.3_G6', 'N2.1.3_G7', 'N2.1.4_G4', 'N2.1.4_G5', 'N2.1.4_G6', 'N2.1.4_G7', 'N2.2.1_G4', 'N2.2.1_G5', 'N2.2.1_G6', 'N2.2.2_G5', 'N2.2.2_G6', 'N2.2.2_G7', 'N2.2.3_G5', 'N2.2.3_G6', 'N2.2.3_G7', 'N2.3.1_G4', 'N2.3.1_G5', 'N2.3.1_G6', 'N2.3.1_G7', 'N2.3.2_G5', 'N2.3.2_G6', 'N2.3.2_G7', 'N3.1.1_G5', 'N3.1.1_G6', 'N3.1.1_G7', 'N3.1.2_G5', 'N3.1.2_G6', 'N3.1.2_G7', 'N3.2.1_G5', 'N3.2.1_G6', 'N3.2.1_G7', 'N3.2.1_G8', 'N3.2.2_G5', 'N3.2.2_G6', 'N3.2.2_G7', 'N3.2.2_G8', 'N3.2.3_G6', 'N3.2.3_G7', 'N3.2.3_G8', 'N3.2.4_G7', 'N3.2.4_G8', 'N3.3.1_G5', 'N3.3.1_G6', 'N3.3.1_G7', 'N3.3.1_G8', 'N3.3.2_G7', 'N3.3.2_G8', 'N3.4.1_G6', 'N3.4.1_G7', 'N3.4.1_G8', 'N4.2.1_G7', 'N4.2.1_G8', 'N4.2.3_G7', 'N4.2.3_G8', 'N4.3.1_G7', 'N4.3.1_G8', 'N5.1.1_G7', 'N5.1.1_G8', 'N5.1.2_G7', 'N5.1.2_G8', 'N5.1.3_G7', 'N5.1.3_G8', 'M1.1.1_G1', 'M1.1.1_G2', 'M1.1.1_G3', 'M1.1.1_G4', 'M1.1.2_G2', 'M1.1.2_G3', 'M1.1.2_G4', 'M1.1.2_G5', 'M1.1.3_G4', 'M1.1.3_G5', 'M1.1.3_G6', 'M1.1.3_G7', 'M1.1.3_G8', 'M1.1.4_G5', 'M1.1.4_G6', 'M1.1.4_G7', 'M1.2.1_G4', 'M1.2.1_G5', 'M1.2.1_G6', 'M1.2.1_G7', 'M1.2.1_G8', 'M1.2.3_G4', 'M1.2.3_G5', 'M1.2.3_G6', 'M1.2.3_G7', 'M1.2.4_G7', 'M1.2.4_G8', 'M1.2.7_G7', 'M1.2.7_G8', 'M2.1.1_G1', 'M2.1.1_G2', 'M2.1.2_G1', 'M2.1.2_G2', 'M2.1.2_G3', 'M2.1.2_G4', 'M2.1.2_G5', 'M2.1.3_G4', 'M2.1.3_G5', 'M2.1.4_G1', 'M2.1.4_G2', 'M2.1.4_G3', 'M2.1.4_G4', 'M2.2.1_G2', 'M2.2.1_G3', 'M2.2.1_G4', 'M2.2.2_G3', 'M2.2.2_G4', 'M2.2.2_G5', 'M2.2.2_G6', 'M2.2.3_G5', 'M2.2.3_G6', 'M2.2.3_G7', 'M2.2.3_G8', 'M3.1.1_G1', 'M3.1.1_G2', 'M3.1.1_G3', 'G1.1.1_G1', 'G1.1.1_G2', 'G1.1.1_G3', 'G1.1.1_G4', 'G1.1.2_G3', 'G1.1.2_G4', 'G1.1.2_G5', 'G1.1.2_G6', 'G1.1.2_G7', 'G1.1.3_G6', 'G1.1.3_G7', 'G1.1.3_G8', 'G1.1.4_G1', 'G1.1.4_G2', 'G1.1.4_G3', 'G1.1.5_G4', 'G1.1.5_G5', 'G1.1.5_G6', 'G1.1.5_G7', 'G1.1.6_G7', 'G1.1.6_G8', 'G1.1.7_G4', 'G1.1.7_G5', 'G1.1.7_G6', 'G1.1.7_G7', 'G1.1.7_G8', 'G1.1.8_G7', 'G1.1.8_G8', 'G1.1.9_G1', 'G1.1.9_G2', 'G1.1.9_G3', 'G1.1.10_G2', 'G1.1.10_G3', 'G1.1.10_G4', 'G1.1.11_G3', 'G1.1.11_G4', 'G1.1.11_G5', 'G1.1.13_G7', 'G1.1.13_G8', 'G2.1.1_G1', 'G2.1.1_G2', 'G2.1.1_G3', 'G2.1.1_G4', 'G2.1.2_G4', 'G2.1.2_G5', 'G2.1.2_G6', 'G2.1.2_G7', 'G2.1.2_G8', 'G2.1.3_G5', 'G2.1.3_G6', 'G2.1.3_G7', 'G2.1.3_G8', 'G3.1.1_G1', 'G3.1.1_G2', 'G3.1.1_G3', 'G3.1.1_G4', 'G3.1.2_G3', 'G3.1.2_G4', 'G3.1.2_G5', 'G3.1.2_G6', 'G3.1.3_G6', 'G3.1.3_G7', 'G3.1.3_G8', 'S1.1.1_G1', 'S1.1.1_G2', 'S1.1.2_G2', 'S1.1.2_G3', 'S1.1.2_G4', 'S1.1.2_G5', 'S1.1.3_G4', 'S1.1.3_G5', 'S1.1.4_G4', 'S1.1.4_G5', 'S1.1.4_G6', 'S1.1.5_G4', 'S1.1.5_G5', 'S1.1.5_G6', 'S1.1.5_G7', 'S1.1.6_G6', 'S1.1.6_G7', 'S1.1.6_G8', 'S1.2.1_G7', 'S1.2.1_G8', 'S1.2.2_G7', 'S1.2.2_G8', 'S2.1.1_G5', 'S2.1.1_G6', 'S2.1.1_G7', 'S2.1.2_G6', 'S2.1.2_G7', 'S2.1.2_G8', 'S2.1.3_G7', 'S2.1.3_G8', 'A1.1.1_G1', 'A1.1.1_G2', 'A1.1.1_G3', 'A1.1.1_G4', 'A1.1.2_G3', 'A1.1.2_G4', 'A1.1.2_G5', 'A1.1.2_G6', 'A1.1.3_G5', 'A1.1.3_G6', 'A1.1.3_G7', 'A1.1.4_G6', 'A1.1.4_G7', 'A2.1.1_G7', 'A2.1.1_G8', 'A2.1.2_G7', 'A2.1.2_G8', 'A2.1.3_G7', 'A2.1.3_G8', 'A3.1.1_G6', 'A3.1.1_G7', 'A3.1.1_G8', 'A3.1.2_G7', 'A3.1.2_G8', 'A3.1.3_G7', 'A3.1.3_G8', 'A3.2.1_G2', 'A3.2.1_G3', 'A3.2.1_G4', 'A3.2.1_G5', 'A3.2.2_G3', 'A3.2.2_G4', 'A3.2.2_G5', 'A3.2.2_G6', 'A3.2.3_G2', 'A3.2.3_G3', 'A3.2.3_G4', 'A3.2.3_G5', 'A3.2.3_G6', 'A3.3.1_G7', 'A3.3.1_G8', 'A3.4.2_G124', 'A3.4.1_G123', 'A3.3.5_G122', 'A3.3.4_G121', 'A3.3.3_G120', 'A3.3.2_G119', 'A3.3.1_G118', 'A3.1.3_G114', 'A3.1.2_G113', 'A2.1.4_G111', 'A2.1.3_G110', 'A2.1.1_G108', 'S2.2.2_G103', 'S2.2.1_G102', 'S2.1.4_G101', 'S2.1.3_G100', 'S1.2.4_G97', 'S1.2.3_G96', 'S1.2.2_G95', 'S1.2.1_G94', 'S1.1.8_G93', 'S1.1.6_G91', 'G3.1.4_G85', 'G3.1.3_G84', 'G2.1.3_G81', 'G2.1.2_G80', 'G1.1.13_G78', 'G1.1.12_G77', 'G1.1.8_G73', 'G1.1.6_G71', 'M2.2.3_G64', 'M1.2.9_G57', 'M1.2.7_G55', 'M1.2.6_G54', 'M1.2.5_G53', 'M1.2.4_G52', 'M1.2.2_G50', 'N6.1.1_G44', 'N5.2.1_G43', 'N5.1.3_G42', 'N5.1.2_G41', 'A3.1.1_G112', 'A2.1.2_G109', 'S2.1.2_G99', 'G1.1.7_G72', 'G1.1.3_G68', 'M1.2.1_G49', 'M1.1.3_G47', 'N5.1.1_G40', 'N4.3.1_G39', 'N4.2.3_G38', 'N4.2.2_G37', 'N4.2.1_G36', 'N3.4.1_G34', 'N3.3.2_G33', 'N3.3.1_G32', 'N3.2.4_G31', 'N3.2.3_G30', 'N3.2.2_G29', 'N3.2.1_G28', 'A1.1.4_G107', 'A1.1.3_G106', 'S2.1.1_G98', 'S1.1.5_G90', 'G1.1.5_G70', 'G1.1.2_G67', 'M1.2.3_G51', 'M1.1.4_G48', 'N4.1.1_G35', 'N3.1.2_G27', 'N3.1.1_G26', 'N2.3.2_G25', 'N2.3.1_G24', 'N2.2.3_G23', 'N2.2.2_G22', 'N2.1.4_G20', 'N2.1.3_G19', 'N2.1.2_G18', 'A3.2.3_G117', 'A3.2.2_G116', 'A1.1.2_G105', 'S1.1.4_G89', 'G3.1.2_G83', 'M2.2.2_G63', 'N2.2.1_G21', 'N1.4.2_G16', 'N1.3.7_G14', 'N1.3.6_G13', 'N1.3.3_G10', 'N1.3.1_G8', 'N1.2.3_G7', 'A3.2.1_G115', 'S1.1.3_G88', 'S1.1.2_G87', 'G1.1.11_G76', 'M2.1.3_G60', 'M2.1.2_G59', 'M1.1.2_G46', 'N1.4.1_G15', 'A1.1.1_G104', 'G3.1.1_G82', 'G2.1.1_G79', 'G1.1.10_G75', 'G1.1.1_G66', 'M2.2.1_G62', 'M2.1.4_G61', 'M1.1.1_G45', 'N2.1.1_G17', 'N1.3.5_G12', 'G1.1.9_G74', 'G1.1.4_G69', 'M3.1.1_G65', 'N1.3.4_G11', 'N1.2.1_G5', 'S1.1.1_G86', 'M2.1.1_G58', 'N1.3.2_G9'
|
7 |
-
]
|
8 |
|
9 |
-
transitions =
|
10 |
-
['right', 'N1.1.1_G1', 'N1.1.1_G2'], ['right', 'N1.1.1_G2', 'N1.1.1_G3'], ['right', 'N1.1.1_G3', 'N1.1.1_G4'], ['right', 'N1.1.1_G4', 'N1.1.1_G5'], ['right', 'N1.1.1_G5', 'N1.1.1_G6'], ['left', 'N1.1.1_G6', 'N1.1.1_G5'], ['left', 'N1.1.1_G5', 'N1.1.1_G4'], ['left', 'N1.1.1_G4', 'N1.1.1_G3'], ['left', 'N1.1.1_G3', 'N1.1.1_G2'], ['left', 'N1.1.1_G2', 'N1.1.1_G1'], ['right', 'N1.1.2_G1', 'N1.1.2_G2'], ['right', 'N1.1.2_G2', 'N1.1.2_G3'], ['right', 'N1.1.2_G3', 'N1.1.2_G4'], ['right', 'N1.1.2_G4', 'N1.1.2_G5'], ['right', 'N1.1.2_G5', 'N1.1.2_G6'], ['left', 'N1.1.2_G6', 'N1.1.2_G5'], ['left', 'N1.1.2_G5', 'N1.1.2_G4'], ['left', 'N1.1.2_G4', 'N1.1.2_G3'], ['left', 'N1.1.2_G3', 'N1.1.2_G2'], ['left', 'N1.1.2_G2', 'N1.1.2_G1'], ['right', 'N1.1.3_G2', 'N1.1.3_G3'], ['right', 'N1.1.3_G3', 'N1.1.3_G4'], ['right', 'N1.1.3_G4', 'N1.1.3_G5'], ['right', 'N1.1.3_G5', 'N1.1.3_G6'], ['left', 'N1.1.3_G6', 'N1.1.3_G5'], ['left', 'N1.1.3_G5', 'N1.1.3_G4'], ['left', 'N1.1.3_G4', 'N1.1.3_G3'], ['left', 'N1.1.3_G3', 'N1.1.3_G2'], ['right', 'N1.2.1_G1', 'N1.2.1_G2'], ['right', 'N1.2.1_G2', 'N1.2.1_G3'], ['left', 'N1.2.1_G3', 'N1.2.1_G2'], ['left', 'N1.2.1_G2', 'N1.2.1_G1'], ['right', 'N1.2.2_G2', 'N1.2.2_G3'], ['right', 'N1.2.2_G3', 'N1.2.2_G4'], ['right', 'N1.2.2_G4', 'N1.2.2_G5'], ['right', 'N1.2.2_G5', 'N1.2.2_G6'], ['left', 'N1.2.2_G6', 'N1.2.2_G5'], ['left', 'N1.2.2_G5', 'N1.2.2_G4'], ['left', 'N1.2.2_G4', 'N1.2.2_G3'], ['left', 'N1.2.2_G3', 'N1.2.2_G2'], ['right', 'N1.2.3_G5', 'N1.2.3_G6'], ['left', 'N1.2.3_G6', 'N1.2.3_G5'], ['right', 'N1.3.1_G1', 'N1.3.1_G2'], ['right', 'N1.3.1_G2', 'N1.3.1_G3'], ['right', 'N1.3.1_G3', 'N1.3.1_G4'], ['right', 'N1.3.1_G4', 'N1.3.1_G5'], ['right', 'N1.3.1_G5', 'N1.3.1_G6'], ['left', 'N1.3.1_G6', 'N1.3.1_G5'], ['left', 'N1.3.1_G5', 'N1.3.1_G4'], ['left', 'N1.3.1_G4', 'N1.3.1_G3'], ['left', 'N1.3.1_G3', 'N1.3.1_G2'], ['left', 'N1.3.1_G2', 'N1.3.1_G1'], ['right', 'N1.3.2_G1', 'N1.3.2_G2'], ['left', 'N1.3.2_G2', 'N1.3.2_G1'], ['right', 'N1.3.3_G3', 'N1.3.3_G4'], ['right', 'N1.3.3_G4', 'N1.3.3_G5'], ['right', 'N1.3.3_G5', 'N1.3.3_G6'], ['left', 'N1.3.3_G6', 'N1.3.3_G5'], ['left', 'N1.3.3_G5', 'N1.3.3_G4'], ['left', 'N1.3.3_G4', 'N1.3.3_G3'], ['right', 'N1.3.6_G5', 'N1.3.6_G6'], ['left', 'N1.3.6_G6', 'N1.3.6_G5'], ['right', 'N1.3.7_G2', 'N1.3.7_G3'], ['right', 'N1.3.7_G3', 'N1.3.7_G4'], ['right', 'N1.3.7_G4', 'N1.3.7_G5'], ['right', 'N1.3.7_G5', 'N1.3.7_G6'], ['left', 'N1.3.7_G6', 'N1.3.7_G5'], ['left', 'N1.3.7_G5', 'N1.3.7_G4'], ['left', 'N1.3.7_G4', 'N1.3.7_G3'], ['left', 'N1.3.7_G3', 'N1.3.7_G2'], ['right', 'N1.4.1_G1', 'N1.4.1_G2'], ['right', 'N1.4.1_G2', 'N1.4.1_G3'], ['right', 'N1.4.1_G3', 'N1.4.1_G4'], ['right', 'N1.4.1_G4', 'N1.4.1_G5'], ['left', 'N1.4.1_G5', 'N1.4.1_G4'], ['left', 'N1.4.1_G4', 'N1.4.1_G3'], ['left', 'N1.4.1_G3', 'N1.4.1_G2'], ['left', 'N1.4.1_G2', 'N1.4.1_G1'], ['right', 'N1.4.2_G4', 'N1.4.2_G5'], ['right', 'N1.4.2_G5', 'N1.4.2_G6'], ['left', 'N1.4.2_G6', 'N1.4.2_G5'], ['left', 'N1.4.2_G5', 'N1.4.2_G4'], ['right', 'N2.1.1_G3', 'N2.1.1_G4'], ['left', 'N2.1.1_G4', 'N2.1.1_G3'], ['right', 'N2.1.2_G4', 'N2.1.2_G5'], ['right', 'N2.1.2_G5', 'N2.1.2_G6'], ['right', 'N2.1.2_G6', 'N2.1.2_G7'], ['left', 'N2.1.2_G7', 'N2.1.2_G6'], ['left', 'N2.1.2_G6', 'N2.1.2_G5'], ['left', 'N2.1.2_G5', 'N2.1.2_G4'], ['right', 'N2.1.3_G5', 'N2.1.3_G6'], ['right', 'N2.1.3_G6', 'N2.1.3_G7'], ['left', 'N2.1.3_G7', 'N2.1.3_G6'], ['left', 'N2.1.3_G6', 'N2.1.3_G5'], ['right', 'N2.1.4_G4', 'N2.1.4_G5'], ['right', 'N2.1.4_G5', 'N2.1.4_G6'], ['right', 'N2.1.4_G6', 'N2.1.4_G7'], ['left', 'N2.1.4_G7', 'N2.1.4_G6'], ['left', 'N2.1.4_G6', 'N2.1.4_G5'], ['left', 'N2.1.4_G5', 'N2.1.4_G4'], ['right', 'N2.2.1_G4', 'N2.2.1_G5'], ['right', 'N2.2.1_G5', 'N2.2.1_G6'], ['left', 'N2.2.1_G6', 'N2.2.1_G5'], ['left', 'N2.2.1_G5', 'N2.2.1_G4'], ['right', 'N2.2.2_G5', 'N2.2.2_G6'], ['right', 'N2.2.2_G6', 'N2.2.2_G7'], ['left', 'N2.2.2_G7', 'N2.2.2_G6'], ['left', 'N2.2.2_G6', 'N2.2.2_G5'], ['right', 'N2.2.3_G5', 'N2.2.3_G6'], ['right', 'N2.2.3_G6', 'N2.2.3_G7'], ['left', 'N2.2.3_G7', 'N2.2.3_G6'], ['left', 'N2.2.3_G6', 'N2.2.3_G5'], ['right', 'N2.3.1_G4', 'N2.3.1_G5'], ['right', 'N2.3.1_G5', 'N2.3.1_G6'], ['right', 'N2.3.1_G6', 'N2.3.1_G7'], ['left', 'N2.3.1_G7', 'N2.3.1_G6'], ['left', 'N2.3.1_G6', 'N2.3.1_G5'], ['left', 'N2.3.1_G5', 'N2.3.1_G4'], ['right', 'N2.3.2_G5', 'N2.3.2_G6'], ['right', 'N2.3.2_G6', 'N2.3.2_G7'], ['left', 'N2.3.2_G7', 'N2.3.2_G6'], ['left', 'N2.3.2_G6', 'N2.3.2_G5'], ['right', 'N3.1.1_G5', 'N3.1.1_G6'], ['right', 'N3.1.1_G6', 'N3.1.1_G7'], ['left', 'N3.1.1_G7', 'N3.1.1_G6'], ['left', 'N3.1.1_G6', 'N3.1.1_G5'], ['right', 'N3.1.2_G5', 'N3.1.2_G6'], ['right', 'N3.1.2_G6', 'N3.1.2_G7'], ['left', 'N3.1.2_G7', 'N3.1.2_G6'], ['left', 'N3.1.2_G6', 'N3.1.2_G5'], ['right', 'N3.2.1_G5', 'N3.2.1_G6'], ['right', 'N3.2.1_G6', 'N3.2.1_G7'], ['right', 'N3.2.1_G7', 'N3.2.1_G8'], ['left', 'N3.2.1_G7', 'N3.2.1_G6'], ['left', 'N3.2.1_G6', 'N3.2.1_G5'], ['right', 'N3.2.2_G5', 'N3.2.2_G6'], ['right', 'N3.2.2_G6', 'N3.2.2_G7'], ['right', 'N3.2.2_G7', 'N3.2.2_G8'], ['left', 'N3.2.2_G7', 'N3.2.2_G6'], ['left', 'N3.2.2_G6', 'N3.2.2_G5'], ['right', 'N3.2.3_G6', 'N3.2.3_G7'], ['right', 'N3.2.3_G7', 'N3.2.3_G8'], ['left', 'N3.2.3_G7', 'N3.2.3_G6'], ['right', 'N3.2.4_G7', 'N3.2.4_G8'], ['right', 'N3.3.1_G5', 'N3.3.1_G6'], ['right', 'N3.3.1_G6', 'N3.3.1_G7'], ['right', 'N3.3.1_G7', 'N3.3.1_G8'], ['left', 'N3.3.1_G7', 'N3.3.1_G6'], ['left', 'N3.3.1_G6', 'N3.3.1_G5'], ['right', 'N3.3.2_G7', 'N3.3.2_G8'], ['right', 'N3.4.1_G6', 'N3.4.1_G7'], ['right', 'N3.4.1_G7', 'N3.4.1_G8'], ['left', 'N3.4.1_G7', 'N3.4.1_G6'], ['right', 'N4.2.1_G7', 'N4.2.1_G8'], ['right', 'N4.2.3_G7', 'N4.2.3_G8'], ['right', 'N4.3.1_G7', 'N4.3.1_G8'], ['right', 'N5.1.1_G7', 'N5.1.1_G8'], ['right', 'N5.1.2_G7', 'N5.1.2_G8'], ['right', 'N5.1.3_G7', 'N5.1.3_G8'], ['right', 'M1.1.1_G1', 'M1.1.1_G2'], ['right', 'M1.1.1_G2', 'M1.1.1_G3'], ['right', 'M1.1.1_G3', 'M1.1.1_G4'], ['left', 'M1.1.1_G4', 'M1.1.1_G3'], ['left', 'M1.1.1_G3', 'M1.1.1_G2'], ['left', 'M1.1.1_G2', 'M1.1.1_G1'], ['right', 'M1.1.2_G2', 'M1.1.2_G3'], ['right', 'M1.1.2_G3', 'M1.1.2_G4'], ['right', 'M1.1.2_G4', 'M1.1.2_G5'], ['left', 'M1.1.2_G5', 'M1.1.2_G4'], ['left', 'M1.1.2_G4', 'M1.1.2_G3'], ['left', 'M1.1.2_G3', 'M1.1.2_G2'], ['right', 'M1.1.3_G4', 'M1.1.3_G5'], ['right', 'M1.1.3_G5', 'M1.1.3_G6'], ['right', 'M1.1.3_G6', 'M1.1.3_G7'], ['right', 'M1.1.3_G7', 'M1.1.3_G8'], ['left', 'M1.1.3_G7', 'M1.1.3_G6'], ['left', 'M1.1.3_G6', 'M1.1.3_G5'], ['left', 'M1.1.3_G5', 'M1.1.3_G4'], ['right', 'M1.1.4_G5', 'M1.1.4_G6'], ['right', 'M1.1.4_G6', 'M1.1.4_G7'], ['left', 'M1.1.4_G7', 'M1.1.4_G6'], ['left', 'M1.1.4_G6', 'M1.1.4_G5'], ['right', 'M1.2.1_G4', 'M1.2.1_G5'], ['right', 'M1.2.1_G5', 'M1.2.1_G6'], ['right', 'M1.2.1_G6', 'M1.2.1_G7'], ['right', 'M1.2.1_G7', 'M1.2.1_G8'], ['left', 'M1.2.1_G7', 'M1.2.1_G6'], ['left', 'M1.2.1_G6', 'M1.2.1_G5'], ['left', 'M1.2.1_G5', 'M1.2.1_G4'], ['right', 'M1.2.3_G4', 'M1.2.3_G5'], ['right', 'M1.2.3_G5', 'M1.2.3_G6'], ['right', 'M1.2.3_G6', 'M1.2.3_G7'], ['left', 'M1.2.3_G7', 'M1.2.3_G6'], ['left', 'M1.2.3_G6', 'M1.2.3_G5'], ['left', 'M1.2.3_G5', 'M1.2.3_G4'], ['right', 'M1.2.4_G7', 'M1.2.4_G8'], ['right', 'M1.2.7_G7', 'M1.2.7_G8'], ['right', 'M2.1.1_G1', 'M2.1.1_G2'], ['left', 'M2.1.1_G2', 'M2.1.1_G1'], ['right', 'M2.1.2_G1', 'M2.1.2_G2'], ['right', 'M2.1.2_G2', 'M2.1.2_G3'], ['right', 'M2.1.2_G3', 'M2.1.2_G4'], ['right', 'M2.1.2_G4', 'M2.1.2_G5'], ['left', 'M2.1.2_G5', 'M2.1.2_G4'], ['left', 'M2.1.2_G4', 'M2.1.2_G3'], ['left', 'M2.1.2_G3', 'M2.1.2_G2'], ['left', 'M2.1.2_G2', 'M2.1.2_G1'], ['right', 'M2.1.3_G4', 'M2.1.3_G5'], ['left', 'M2.1.3_G5', 'M2.1.3_G4'], ['right', 'M2.1.4_G1', 'M2.1.4_G2'], ['right', 'M2.1.4_G2', 'M2.1.4_G3'], ['right', 'M2.1.4_G3', 'M2.1.4_G4'], ['left', 'M2.1.4_G4', 'M2.1.4_G3'], ['left', 'M2.1.4_G3', 'M2.1.4_G2'], ['left', 'M2.1.4_G2', 'M2.1.4_G1'], ['right', 'M2.2.1_G2', 'M2.2.1_G3'], ['right', 'M2.2.1_G3', 'M2.2.1_G4'], ['left', 'M2.2.1_G4', 'M2.2.1_G3'], ['left', 'M2.2.1_G3', 'M2.2.1_G2'], ['right', 'M2.2.2_G3', 'M2.2.2_G4'], ['right', 'M2.2.2_G4', 'M2.2.2_G5'], ['right', 'M2.2.2_G5', 'M2.2.2_G6'], ['left', 'M2.2.2_G6', 'M2.2.2_G5'], ['left', 'M2.2.2_G5', 'M2.2.2_G4'], ['left', 'M2.2.2_G4', 'M2.2.2_G3'], ['right', 'M2.2.3_G5', 'M2.2.3_G6'], ['right', 'M2.2.3_G6', 'M2.2.3_G7'], ['right', 'M2.2.3_G7', 'M2.2.3_G8'], ['left', 'M2.2.3_G7', 'M2.2.3_G6'], ['left', 'M2.2.3_G6', 'M2.2.3_G5'], ['right', 'M3.1.1_G1', 'M3.1.1_G2'], ['right', 'M3.1.1_G2', 'M3.1.1_G3'], ['left', 'M3.1.1_G3', 'M3.1.1_G2'], ['left', 'M3.1.1_G2', 'M3.1.1_G1'], ['right', 'G1.1.1_G1', 'G1.1.1_G2'], ['right', 'G1.1.1_G2', 'G1.1.1_G3'], ['right', 'G1.1.1_G3', 'G1.1.1_G4'], ['left', 'G1.1.1_G4', 'G1.1.1_G3'], ['left', 'G1.1.1_G3', 'G1.1.1_G2'], ['left', 'G1.1.1_G2', 'G1.1.1_G1'], ['right', 'G1.1.2_G3', 'G1.1.2_G4'], ['right', 'G1.1.2_G4', 'G1.1.2_G5'], ['right', 'G1.1.2_G5', 'G1.1.2_G6'], ['right', 'G1.1.2_G6', 'G1.1.2_G7'], ['left', 'G1.1.2_G7', 'G1.1.2_G6'], ['left', 'G1.1.2_G6', 'G1.1.2_G5'], ['left', 'G1.1.2_G5', 'G1.1.2_G4'], ['left', 'G1.1.2_G4', 'G1.1.2_G3'], ['right', 'G1.1.3_G6', 'G1.1.3_G7'], ['right', 'G1.1.3_G7', 'G1.1.3_G8'], ['left', 'G1.1.3_G7', 'G1.1.3_G6'], ['right', 'G1.1.4_G1', 'G1.1.4_G2'], ['right', 'G1.1.4_G2', 'G1.1.4_G3'], ['left', 'G1.1.4_G3', 'G1.1.4_G2'], ['left', 'G1.1.4_G2', 'G1.1.4_G1'], ['right', 'G1.1.5_G4', 'G1.1.5_G5'], ['right', 'G1.1.5_G5', 'G1.1.5_G6'], ['right', 'G1.1.5_G6', 'G1.1.5_G7'], ['left', 'G1.1.5_G7', 'G1.1.5_G6'], ['left', 'G1.1.5_G6', 'G1.1.5_G5'], ['left', 'G1.1.5_G5', 'G1.1.5_G4'], ['right', 'G1.1.6_G7', 'G1.1.6_G8'], ['right', 'G1.1.7_G4', 'G1.1.7_G5'], ['right', 'G1.1.7_G5', 'G1.1.7_G6'], ['right', 'G1.1.7_G6', 'G1.1.7_G7'], ['right', 'G1.1.7_G7', 'G1.1.7_G8'], ['left', 'G1.1.7_G7', 'G1.1.7_G6'], ['left', 'G1.1.7_G6', 'G1.1.7_G5'], ['left', 'G1.1.7_G5', 'G1.1.7_G4'], ['right', 'G1.1.8_G7', 'G1.1.8_G8'], ['right', 'G1.1.9_G1', 'G1.1.9_G2'], ['right', 'G1.1.9_G2', 'G1.1.9_G3'], ['left', 'G1.1.9_G3', 'G1.1.9_G2'], ['left', 'G1.1.9_G2', 'G1.1.9_G1'], ['right', 'G1.1.10_G2', 'G1.1.10_G3'], ['right', 'G1.1.10_G3', 'G1.1.10_G4'], ['left', 'G1.1.10_G4', 'G1.1.10_G3'], ['left', 'G1.1.10_G3', 'G1.1.10_G2'], ['right', 'G1.1.11_G3', 'G1.1.11_G4'], ['right', 'G1.1.11_G4', 'G1.1.11_G5'], ['left', 'G1.1.11_G5', 'G1.1.11_G4'], ['left', 'G1.1.11_G4', 'G1.1.11_G3'], ['right', 'G1.1.13_G7', 'G1.1.13_G8'], ['right', 'G2.1.1_G1', 'G2.1.1_G2'], ['right', 'G2.1.1_G2', 'G2.1.1_G3'], ['right', 'G2.1.1_G3', 'G2.1.1_G4'], ['left', 'G2.1.1_G4', 'G2.1.1_G3'], ['left', 'G2.1.1_G3', 'G2.1.1_G2'], ['left', 'G2.1.1_G2', 'G2.1.1_G1'], ['right', 'G2.1.2_G4', 'G2.1.2_G5'], ['right', 'G2.1.2_G5', 'G2.1.2_G6'], ['right', 'G2.1.2_G6', 'G2.1.2_G7'], ['right', 'G2.1.2_G7', 'G2.1.2_G8'], ['left', 'G2.1.2_G7', 'G2.1.2_G6'], ['left', 'G2.1.2_G6', 'G2.1.2_G5'], ['left', 'G2.1.2_G5', 'G2.1.2_G4'], ['right', 'G2.1.3_G5', 'G2.1.3_G6'], ['right', 'G2.1.3_G6', 'G2.1.3_G7'], ['right', 'G2.1.3_G7', 'G2.1.3_G8'], ['left', 'G2.1.3_G7', 'G2.1.3_G6'], ['left', 'G2.1.3_G6', 'G2.1.3_G5'], ['right', 'G3.1.1_G1', 'G3.1.1_G2'], ['right', 'G3.1.1_G2', 'G3.1.1_G3'], ['right', 'G3.1.1_G3', 'G3.1.1_G4'], ['left', 'G3.1.1_G4', 'G3.1.1_G3'], ['left', 'G3.1.1_G3', 'G3.1.1_G2'], ['left', 'G3.1.1_G2', 'G3.1.1_G1'], ['right', 'G3.1.2_G3', 'G3.1.2_G4'], ['right', 'G3.1.2_G4', 'G3.1.2_G5'], ['right', 'G3.1.2_G5', 'G3.1.2_G6'], ['left', 'G3.1.2_G6', 'G3.1.2_G5'], ['left', 'G3.1.2_G5', 'G3.1.2_G4'], ['left', 'G3.1.2_G4', 'G3.1.2_G3'], ['right', 'G3.1.3_G6', 'G3.1.3_G7'], ['right', 'G3.1.3_G7', 'G3.1.3_G8'], ['left', 'G3.1.3_G7', 'G3.1.3_G6'], ['right', 'S1.1.1_G1', 'S1.1.1_G2'], ['left', 'S1.1.1_G2', 'S1.1.1_G1'], ['right', 'S1.1.2_G2', 'S1.1.2_G3'], ['right', 'S1.1.2_G3', 'S1.1.2_G4'], ['right', 'S1.1.2_G4', 'S1.1.2_G5'], ['left', 'S1.1.2_G5', 'S1.1.2_G4'], ['left', 'S1.1.2_G4', 'S1.1.2_G3'], ['left', 'S1.1.2_G3', 'S1.1.2_G2'], ['right', 'S1.1.3_G4', 'S1.1.3_G5'], ['left', 'S1.1.3_G5', 'S1.1.3_G4'], ['right', 'S1.1.4_G4', 'S1.1.4_G5'], ['right', 'S1.1.4_G5', 'S1.1.4_G6'], ['left', 'S1.1.4_G6', 'S1.1.4_G5'], ['left', 'S1.1.4_G5', 'S1.1.4_G4'], ['right', 'S1.1.5_G4', 'S1.1.5_G5'], ['right', 'S1.1.5_G5', 'S1.1.5_G6'], ['right', 'S1.1.5_G6', 'S1.1.5_G7'], ['left', 'S1.1.5_G7', 'S1.1.5_G6'], ['left', 'S1.1.5_G6', 'S1.1.5_G5'], ['left', 'S1.1.5_G5', 'S1.1.5_G4'], ['right', 'S1.1.6_G6', 'S1.1.6_G7'], ['right', 'S1.1.6_G7', 'S1.1.6_G8'], ['left', 'S1.1.6_G7', 'S1.1.6_G6'], ['right', 'S1.2.1_G7', 'S1.2.1_G8'], ['right', 'S1.2.2_G7', 'S1.2.2_G8'], ['right', 'S2.1.1_G5', 'S2.1.1_G6'], ['right', 'S2.1.1_G6', 'S2.1.1_G7'], ['left', 'S2.1.1_G7', 'S2.1.1_G6'], ['left', 'S2.1.1_G6', 'S2.1.1_G5'], ['right', 'S2.1.2_G6', 'S2.1.2_G7'], ['right', 'S2.1.2_G7', 'S2.1.2_G8'], ['left', 'S2.1.2_G7', 'S2.1.2_G6'], ['right', 'S2.1.3_G7', 'S2.1.3_G8'], ['right', 'A1.1.1_G1', 'A1.1.1_G2'], ['right', 'A1.1.1_G2', 'A1.1.1_G3'], ['right', 'A1.1.1_G3', 'A1.1.1_G4'], ['left', 'A1.1.1_G4', 'A1.1.1_G3'], ['left', 'A1.1.1_G3', 'A1.1.1_G2'], ['left', 'A1.1.1_G2', 'A1.1.1_G1'], ['right', 'A1.1.2_G3', 'A1.1.2_G4'], ['right', 'A1.1.2_G4', 'A1.1.2_G5'], ['right', 'A1.1.2_G5', 'A1.1.2_G6'], ['left', 'A1.1.2_G6', 'A1.1.2_G5'], ['left', 'A1.1.2_G5', 'A1.1.2_G4'], ['left', 'A1.1.2_G4', 'A1.1.2_G3'], ['right', 'A1.1.3_G5', 'A1.1.3_G6'], ['right', 'A1.1.3_G6', 'A1.1.3_G7'], ['left', 'A1.1.3_G7', 'A1.1.3_G6'], ['left', 'A1.1.3_G6', 'A1.1.3_G5'], ['right', 'A1.1.4_G6', 'A1.1.4_G7'], ['left', 'A1.1.4_G7', 'A1.1.4_G6'], ['right', 'A2.1.1_G7', 'A2.1.1_G8'], ['right', 'A2.1.2_G7', 'A2.1.2_G8'], ['right', 'A2.1.3_G7', 'A2.1.3_G8'], ['right', 'A3.1.1_G6', 'A3.1.1_G7'], ['right', 'A3.1.1_G7', 'A3.1.1_G8'], ['left', 'A3.1.1_G7', 'A3.1.1_G6'], ['right', 'A3.1.2_G7', 'A3.1.2_G8'], ['right', 'A3.1.3_G7', 'A3.1.3_G8'], ['right', 'A3.2.1_G2', 'A3.2.1_G3'], ['right', 'A3.2.1_G3', 'A3.2.1_G4'], ['right', 'A3.2.1_G4', 'A3.2.1_G5'], ['left', 'A3.2.1_G5', 'A3.2.1_G4'], ['left', 'A3.2.1_G4', 'A3.2.1_G3'], ['left', 'A3.2.1_G3', 'A3.2.1_G2'], ['right', 'A3.2.2_G3', 'A3.2.2_G4'], ['right', 'A3.2.2_G4', 'A3.2.2_G5'], ['right', 'A3.2.2_G5', 'A3.2.2_G6'], ['left', 'A3.2.2_G6', 'A3.2.2_G5'], ['left', 'A3.2.2_G5', 'A3.2.2_G4'], ['left', 'A3.2.2_G4', 'A3.2.2_G3'], ['right', 'A3.2.3_G2', 'A3.2.3_G3'], ['right', 'A3.2.3_G3', 'A3.2.3_G4'], ['right', 'A3.2.3_G4', 'A3.2.3_G5'], ['right', 'A3.2.3_G5', 'A3.2.3_G6'], ['left', 'A3.2.3_G6', 'A3.2.3_G5'], ['left', 'A3.2.3_G5', 'A3.2.3_G4'], ['left', 'A3.2.3_G4', 'A3.2.3_G3'], ['left', 'A3.2.3_G3', 'A3.2.3_G2'], ['right', 'A3.3.1_G7', 'A3.3.1_G8'], ['down', 'N1.1.1_G1', 'N1.1.2_G1'], ['down', 'N1.1.2_G1', 'N1.2.1_G1'], ['down', 'N1.2.1_G1', 'N1.3.1_G1'], ['down', 'N1.3.1_G1', 'N1.3.2_G1'], ['down', 'N1.3.2_G1', 'N1.4.1_G1'], ['down', 'N1.4.1_G1', 'M1.1.1_G1'], ['down', 'M1.1.1_G1', 'M2.1.1_G1'], ['down', 'M2.1.1_G1', 'M2.1.2_G1'], ['down', 'M2.1.2_G1', 'M2.1.4_G1'], ['down', 'M2.1.4_G1', 'M3.1.1_G1'], ['down', 'M3.1.1_G1', 'G1.1.1_G1'], ['down', 'G1.1.1_G1', 'G1.1.4_G1'], ['down', 'G1.1.4_G1', 'G1.1.9_G1'], ['down', 'G1.1.9_G1', 'G2.1.1_G1'], ['down', 'G2.1.1_G1', 'G3.1.1_G1'], ['down', 'G3.1.1_G1', 'S1.1.1_G1'], ['down', 'S1.1.1_G1', 'A1.1.1_G1'], ['down', 'A1.1.1_G1', 'N1.1.1_G1'], ['down', 'N1.1.1_G2', 'N1.1.2_G2'], ['down', 'N1.1.2_G2', 'N1.1.3_G2'], ['down', 'N1.1.3_G2', 'N1.2.1_G2'], ['down', 'N1.2.1_G2', 'N1.2.2_G2'], ['down', 'N1.2.2_G2', 'N1.3.1_G2'], ['down', 'N1.3.1_G2', 'N1.3.2_G2'], ['down', 'N1.3.2_G2', 'N1.3.7_G2'], ['down', 'N1.3.7_G2', 'N1.4.1_G2'], ['down', 'N1.4.1_G2', 'M1.1.1_G2'], ['down', 'M1.1.1_G2', 'M1.1.2_G2'], ['down', 'M1.1.2_G2', 'M2.1.1_G2'], ['down', 'M2.1.1_G2', 'M2.1.2_G2'], ['down', 'M2.1.2_G2', 'M2.1.4_G2'], ['down', 'M2.1.4_G2', 'M2.2.1_G2'], ['down', 'M2.2.1_G2', 'M3.1.1_G2'], ['down', 'M3.1.1_G2', 'G1.1.1_G2'], ['down', 'G1.1.1_G2', 'G1.1.4_G2'], ['down', 'G1.1.4_G2', 'G1.1.9_G2'], ['down', 'G1.1.9_G2', 'G1.1.10_G2'], ['down', 'G1.1.10_G2', 'G2.1.1_G2'], ['down', 'G2.1.1_G2', 'G3.1.1_G2'], ['down', 'G3.1.1_G2', 'S1.1.1_G2'], ['down', 'S1.1.1_G2', 'S1.1.2_G2'], ['down', 'S1.1.2_G2', 'A1.1.1_G2'], ['down', 'A1.1.1_G2', 'A3.2.1_G2'], ['down', 'A3.2.1_G2', 'A3.2.3_G2'], ['down', 'A3.2.3_G2', 'N1.1.1_G2'], ['down', 'N1.1.1_G3', 'N1.1.2_G3'], ['down', 'N1.1.2_G3', 'N1.1.3_G3'], ['down', 'N1.1.3_G3', 'N1.2.1_G3'], ['down', 'N1.2.1_G3', 'N1.2.2_G3'], ['down', 'N1.2.2_G3', 'N1.3.1_G3'], ['down', 'N1.3.1_G3', 'N1.3.3_G3'], ['down', 'N1.3.3_G3', 'N1.3.4_G3'], ['down', 'N1.3.4_G3', 'N1.3.7_G3'], ['down', 'N1.3.7_G3', 'N1.4.1_G3'], ['down', 'N1.4.1_G3', 'N2.1.1_G3'], ['down', 'N2.1.1_G3', 'M1.1.1_G3'], ['down', 'M1.1.1_G3', 'M1.1.2_G3'], ['down', 'M1.1.2_G3', 'M2.1.2_G3'], ['down', 'M2.1.2_G3', 'M2.1.4_G3'], ['down', 'M2.1.4_G3', 'M2.2.1_G3'], ['down', 'M2.2.1_G3', 'M2.2.2_G3'], ['down', 'M2.2.2_G3', 'M3.1.1_G3'], ['down', 'M3.1.1_G3', 'G1.1.1_G3'], ['down', 'G1.1.1_G3', 'G1.1.2_G3'], ['down', 'G1.1.2_G3', 'G1.1.4_G3'], ['down', 'G1.1.4_G3', 'G1.1.9_G3'], ['down', 'G1.1.9_G3', 'G1.1.10_G3'], ['down', 'G1.1.10_G3', 'G1.1.11_G3'], ['down', 'G1.1.11_G3', 'G2.1.1_G3'], ['down', 'G2.1.1_G3', 'G3.1.1_G3'], ['down', 'G3.1.1_G3', 'G3.1.2_G3'], ['down', 'G3.1.2_G3', 'S1.1.2_G3'], ['down', 'S1.1.2_G3', 'A1.1.1_G3'], ['down', 'A1.1.1_G3', 'A1.1.2_G3'], ['down', 'A1.1.2_G3', 'A3.2.1_G3'], ['down', 'A3.2.1_G3', 'A3.2.2_G3'], ['down', 'A3.2.2_G3', 'A3.2.3_G3'], ['down', 'A3.2.3_G3', 'N1.1.1_G3'], ['down', 'N1.1.1_G4', 'N1.1.2_G4'], ['down', 'N1.1.2_G4', 'N1.1.3_G4'], ['down', 'N1.1.3_G4', 'N1.2.2_G4'], ['down', 'N1.2.2_G4', 'N1.3.1_G4'], ['down', 'N1.3.1_G4', 'N1.3.3_G4'], ['down', 'N1.3.3_G4', 'N1.3.5_G4'], ['down', 'N1.3.5_G4', 'N1.3.7_G4'], ['down', 'N1.3.7_G4', 'N1.4.1_G4'], ['down', 'N1.4.1_G4', 'N1.4.2_G4'], ['down', 'N1.4.2_G4', 'N2.1.1_G4'], ['down', 'N2.1.1_G4', 'N2.1.2_G4'], ['down', 'N2.1.2_G4', 'N2.1.4_G4'], ['down', 'N2.1.4_G4', 'N2.2.1_G4'], ['down', 'N2.2.1_G4', 'N2.3.1_G4'], ['down', 'N2.3.1_G4', 'M1.1.1_G4'], ['down', 'M1.1.1_G4', 'M1.1.2_G4'], ['down', 'M1.1.2_G4', 'M1.1.3_G4'], ['down', 'M1.1.3_G4', 'M1.2.1_G4'], ['down', 'M1.2.1_G4', 'M1.2.3_G4'], ['down', 'M1.2.3_G4', 'M2.1.2_G4'], ['down', 'M2.1.2_G4', 'M2.1.3_G4'], ['down', 'M2.1.3_G4', 'M2.1.4_G4'], ['down', 'M2.1.4_G4', 'M2.2.1_G4'], ['down', 'M2.2.1_G4', 'M2.2.2_G4'], ['down', 'M2.2.2_G4', 'G1.1.1_G4'], ['down', 'G1.1.1_G4', 'G1.1.2_G4'], ['down', 'G1.1.2_G4', 'G1.1.5_G4'], ['down', 'G1.1.5_G4', 'G1.1.7_G4'], ['down', 'G1.1.7_G4', 'G1.1.10_G4'], ['down', 'G1.1.10_G4', 'G1.1.11_G4'], ['down', 'G1.1.11_G4', 'G2.1.1_G4'], ['down', 'G2.1.1_G4', 'G2.1.2_G4'], ['down', 'G2.1.2_G4', 'G3.1.1_G4'], ['down', 'G3.1.1_G4', 'G3.1.2_G4'], ['down', 'G3.1.2_G4', 'S1.1.2_G4'], ['down', 'S1.1.2_G4', 'S1.1.3_G4'], ['down', 'S1.1.3_G4', 'S1.1.4_G4'], ['down', 'S1.1.4_G4', 'S1.1.5_G4'], ['down', 'S1.1.5_G4', 'A1.1.1_G4'], ['down', 'A1.1.1_G4', 'A1.1.2_G4'], ['down', 'A1.1.2_G4', 'A3.2.1_G4'], ['down', 'A3.2.1_G4', 'A3.2.2_G4'], ['down', 'A3.2.2_G4', 'A3.2.3_G4'], ['down', 'A3.2.3_G4', 'N1.1.1_G4'], ['down', 'N1.1.1_G5', 'N1.1.2_G5'], ['down', 'N1.1.2_G5', 'N1.1.3_G5'], ['down', 'N1.1.3_G5', 'N1.2.2_G5'], ['down', 'N1.2.2_G5', 'N1.2.3_G5'], ['down', 'N1.2.3_G5', 'N1.3.1_G5'], ['down', 'N1.3.1_G5', 'N1.3.3_G5'], ['down', 'N1.3.3_G5', 'N1.3.6_G5'], ['down', 'N1.3.6_G5', 'N1.3.7_G5'], ['down', 'N1.3.7_G5', 'N1.4.1_G5'], ['down', 'N1.4.1_G5', 'N1.4.2_G5'], ['down', 'N1.4.2_G5', 'N2.1.2_G5'], ['down', 'N2.1.2_G5', 'N2.1.3_G5'], ['down', 'N2.1.3_G5', 'N2.1.4_G5'], ['down', 'N2.1.4_G5', 'N2.2.1_G5'], ['down', 'N2.2.1_G5', 'N2.2.2_G5'], ['down', 'N2.2.2_G5', 'N2.2.3_G5'], ['down', 'N2.2.3_G5', 'N2.3.1_G5'], ['down', 'N2.3.1_G5', 'N2.3.2_G5'], ['down', 'N2.3.2_G5', 'N3.1.1_G5'], ['down', 'N3.1.1_G5', 'N3.1.2_G5'], ['down', 'N3.1.2_G5', 'N3.2.1_G5'], ['down', 'N3.2.1_G5', 'N3.2.2_G5'], ['down', 'N3.2.2_G5', 'N3.3.1_G5'], ['down', 'N3.3.1_G5', 'M1.1.2_G5'], ['down', 'M1.1.2_G5', 'M1.1.3_G5'], ['down', 'M1.1.3_G5', 'M1.1.4_G5'], ['down', 'M1.1.4_G5', 'M1.2.1_G5'], ['down', 'M1.2.1_G5', 'M1.2.3_G5'], ['down', 'M1.2.3_G5', 'M2.1.2_G5'], ['down', 'M2.1.2_G5', 'M2.1.3_G5'], ['down', 'M2.1.3_G5', 'M2.2.2_G5'], ['down', 'M2.2.2_G5', 'M2.2.3_G5'], ['down', 'M2.2.3_G5', 'G1.1.2_G5'], ['down', 'G1.1.2_G5', 'G1.1.5_G5'], ['down', 'G1.1.5_G5', 'G1.1.7_G5'], ['down', 'G1.1.7_G5', 'G1.1.11_G5'], ['down', 'G1.1.11_G5', 'G2.1.2_G5'], ['down', 'G2.1.2_G5', 'G2.1.3_G5'], ['down', 'G2.1.3_G5', 'G3.1.2_G5'], ['down', 'G3.1.2_G5', 'S1.1.2_G5'], ['down', 'S1.1.2_G5', 'S1.1.3_G5'], ['down', 'S1.1.3_G5', 'S1.1.4_G5'], ['down', 'S1.1.4_G5', 'S1.1.5_G5'], ['down', 'S1.1.5_G5', 'S2.1.1_G5'], ['down', 'S2.1.1_G5', 'A1.1.2_G5'], ['down', 'A1.1.2_G5', 'A1.1.3_G5'], ['down', 'A1.1.3_G5', 'A3.2.1_G5'], ['down', 'A3.2.1_G5', 'A3.2.2_G5'], ['down', 'A3.2.2_G5', 'A3.2.3_G5'], ['down', 'A3.2.3_G5', 'N1.1.1_G5'], ['down', 'N1.1.1_G6', 'N1.1.2_G6'], ['down', 'N1.1.2_G6', 'N1.1.3_G6'], ['down', 'N1.1.3_G6', 'N1.2.2_G6'], ['down', 'N1.2.2_G6', 'N1.2.3_G6'], ['down', 'N1.2.3_G6', 'N1.3.1_G6'], ['down', 'N1.3.1_G6', 'N1.3.3_G6'], ['down', 'N1.3.3_G6', 'N1.3.6_G6'], ['down', 'N1.3.6_G6', 'N1.3.7_G6'], ['down', 'N1.3.7_G6', 'N1.4.2_G6'], ['down', 'N1.4.2_G6', 'N2.1.2_G6'], ['down', 'N2.1.2_G6', 'N2.1.3_G6'], ['down', 'N2.1.3_G6', 'N2.1.4_G6'], ['down', 'N2.1.4_G6', 'N2.2.1_G6'], ['down', 'N2.2.1_G6', 'N2.2.2_G6'], ['down', 'N2.2.2_G6', 'N2.2.3_G6'], ['down', 'N2.2.3_G6', 'N2.3.1_G6'], ['down', 'N2.3.1_G6', 'N2.3.2_G6'], ['down', 'N2.3.2_G6', 'N3.1.1_G6'], ['down', 'N3.1.1_G6', 'N3.1.2_G6'], ['down', 'N3.1.2_G6', 'N3.2.1_G6'], ['down', 'N3.2.1_G6', 'N3.2.2_G6'], ['down', 'N3.2.2_G6', 'N3.2.3_G6'], ['down', 'N3.2.3_G6', 'N3.3.1_G6'], ['down', 'N3.3.1_G6', 'N3.4.1_G6'], ['down', 'N3.4.1_G6', 'M1.1.3_G6'], ['down', 'M1.1.3_G6', 'M1.1.4_G6'], ['down', 'M1.1.4_G6', 'M1.2.1_G6'], ['down', 'M1.2.1_G6', 'M1.2.3_G6'], ['down', 'M1.2.3_G6', 'M2.2.2_G6'], ['down', 'M2.2.2_G6', 'M2.2.3_G6'], ['down', 'M2.2.3_G6', 'G1.1.2_G6'], ['down', 'G1.1.2_G6', 'G1.1.3_G6'], ['down', 'G1.1.3_G6', 'G1.1.5_G6'], ['down', 'G1.1.5_G6', 'G1.1.7_G6'], ['down', 'G1.1.7_G6', 'G2.1.2_G6'], ['down', 'G2.1.2_G6', 'G2.1.3_G6'], ['down', 'G2.1.3_G6', 'G3.1.2_G6'], ['down', 'G3.1.2_G6', 'G3.1.3_G6'], ['down', 'G3.1.3_G6', 'S1.1.4_G6'], ['down', 'S1.1.4_G6', 'S1.1.5_G6'], ['down', 'S1.1.5_G6', 'S1.1.6_G6'], ['down', 'S1.1.6_G6', 'S2.1.1_G6'], ['down', 'S2.1.1_G6', 'S2.1.2_G6'], ['down', 'S2.1.2_G6', 'A1.1.2_G6'], ['down', 'A1.1.2_G6', 'A1.1.3_G6'], ['down', 'A1.1.3_G6', 'A1.1.4_G6'], ['down', 'A1.1.4_G6', 'A3.1.1_G6'], ['down', 'A3.1.1_G6', 'A3.2.2_G6'], ['down', 'A3.2.2_G6', 'A3.2.3_G6'], ['down', 'A3.2.3_G6', 'N2.1.2_G6'], ['down', 'N2.1.2_G7', 'N2.1.3_G7'], ['down', 'N2.1.3_G7', 'N2.1.4_G7'], ['down', 'N2.1.4_G7', 'N2.2.2_G7'], ['down', 'N2.2.2_G7', 'N2.2.3_G7'], ['down', 'N2.2.3_G7', 'N2.3.1_G7'], ['down', 'N2.3.1_G7', 'N2.3.2_G7'], ['down', 'N2.3.2_G7', 'N3.1.1_G7'], ['down', 'N3.1.1_G7', 'N3.1.2_G7'], ['down', 'N3.1.2_G7', 'N3.2.1_G7'], ['down', 'N3.2.1_G7', 'N3.2.2_G7'], ['down', 'N3.2.2_G7', 'N3.2.3_G7'], ['down', 'N3.2.3_G7', 'N3.2.4_G7'], ['down', 'N3.2.4_G7', 'N3.3.1_G7'], ['down', 'N3.3.1_G7', 'N3.3.2_G7'], ['down', 'N3.3.2_G7', 'N3.4.1_G7'], ['down', 'N3.4.1_G7', 'N4.1.1_G7'], ['down', 'N4.1.1_G7', 'N4.2.1_G7'], ['down', 'N4.2.1_G7', 'N4.2.3_G7'], ['down', 'N4.2.3_G7', 'N4.3.1_G7'], ['down', 'N4.3.1_G7', 'N5.1.1_G7'], ['down', 'N5.1.1_G7', 'N5.1.2_G7'], ['down', 'N5.1.2_G7', 'N5.1.3_G7'], ['down', 'N5.1.3_G7', 'M1.1.3_G7'], ['down', 'M1.1.3_G7', 'M1.1.4_G7'], ['down', 'M1.1.4_G7', 'M1.2.1_G7'], ['down', 'M1.2.1_G7', 'M1.2.3_G7'], ['down', 'M1.2.3_G7', 'M1.2.4_G7'], ['down', 'M1.2.4_G7', 'M1.2.7_G7'], ['down', 'M1.2.7_G7', 'M2.2.3_G7'], ['down', 'M2.2.3_G7', 'G1.1.2_G7'], ['down', 'G1.1.2_G7', 'G1.1.3_G7'], ['down', 'G1.1.3_G7', 'G1.1.5_G7'], ['down', 'G1.1.5_G7', 'G1.1.6_G7'], ['down', 'G1.1.6_G7', 'G1.1.7_G7'], ['down', 'G1.1.7_G7', 'G1.1.8_G7'], ['down', 'G1.1.8_G7', 'G1.1.13_G7'], ['down', 'G1.1.13_G7', 'G2.1.2_G7'], ['down', 'G2.1.2_G7', 'G2.1.3_G7'], ['down', 'G2.1.3_G7', 'G3.1.3_G7'], ['down', 'G3.1.3_G7', 'S1.1.5_G7'], ['down', 'S1.1.5_G7', 'S1.1.6_G7'], ['down', 'S1.1.6_G7', 'S1.2.1_G7'], ['down', 'S1.2.1_G7', 'S1.2.2_G7'], ['down', 'S1.2.2_G7', 'S2.1.1_G7'], ['down', 'S2.1.1_G7', 'S2.1.2_G7'], ['down', 'S2.1.2_G7', 'S2.1.3_G7'], ['down', 'S2.1.3_G7', 'A1.1.3_G7'], ['down', 'A1.1.3_G7', 'A1.1.4_G7'], ['down', 'A1.1.4_G7', 'A2.1.1_G7'], ['down', 'A2.1.1_G7', 'A2.1.2_G7'], ['down', 'A2.1.2_G7', 'A2.1.3_G7'], ['down', 'A2.1.3_G7', 'A3.1.1_G7'], ['down', 'A3.1.1_G7', 'A3.1.2_G7'], ['down', 'A3.1.2_G7', 'A3.1.3_G7'], ['down', 'A3.1.3_G7', 'A3.3.1_G7'], ['down', 'A3.3.1_G7', 'N3.2.1_G7'], ['down', 'N3.2.1_G8', 'N3.2.2_G8'], ['down', 'N3.2.2_G8', 'N3.2.3_G8'], ['down', 'N3.2.3_G8', 'N3.2.4_G8'], ['down', 'N3.2.4_G8', 'N3.3.1_G8'], ['down', 'N3.3.1_G8', 'N3.3.2_G8'], ['down', 'N3.3.2_G8', 'N3.4.1_G8'], ['down', 'N3.4.1_G8', 'N4.2.1_G8'], ['down', 'N4.2.1_G8', 'N4.2.2_G8'], ['down', 'N4.2.2_G8', 'N4.2.3_G8'], ['down', 'N4.2.3_G8', 'N4.3.1_G8'], ['down', 'N4.3.1_G8', 'N5.1.1_G8'], ['down', 'N5.1.1_G8', 'N5.1.2_G8'], ['down', 'N5.1.2_G8', 'N5.1.3_G8'], ['down', 'N5.1.3_G8', 'N5.2.1_G8'], ['down', 'N5.2.1_G8', 'N6.1.1_G8'], ['down', 'N6.1.1_G8', 'M1.1.3_G8'], ['down', 'M1.1.3_G8', 'M1.2.1_G8'], ['down', 'M1.2.1_G8', 'M1.2.2_G8'], ['down', 'M1.2.2_G8', 'M1.2.4_G8'], ['down', 'M1.2.4_G8', 'M1.2.5_G8'], ['down', 'M1.2.5_G8', 'M1.2.6_G8'], ['down', 'M1.2.6_G8', 'M1.2.7_G8'], ['down', 'M1.2.7_G8', 'M2.2.3_G8'], ['down', 'M2.2.3_G8', 'G1.1.3_G8'], ['down', 'G1.1.3_G8', 'G1.1.6_G8'], ['down', 'G1.1.6_G8', 'G1.1.7_G8'], ['down', 'G1.1.7_G8', 'G1.1.8_G8'], ['down', 'G1.1.8_G8', 'G1.1.13_G8'], ['down', 'G1.1.13_G8', 'G2.1.2_G8'], ['down', 'G2.1.2_G8', 'G2.1.3_G8'], ['down', 'G2.1.3_G8', 'G3.1.3_G8'], ['down', 'G3.1.3_G8', 'G3.1.4_G8'], ['down', 'G3.1.4_G8', 'S1.1.6_G8'], ['down', 'S1.1.6_G8', 'S1.2.1_G8'], ['down', 'S1.2.1_G8', 'S1.2.2_G8'], ['down', 'S1.2.2_G8', 'S1.2.3_G8'], ['down', 'S1.2.3_G8', 'S2.1.2_G8'], ['down', 'S2.1.2_G8', 'S2.1.3_G8'], ['down', 'S2.1.3_G8', 'S2.2.1_G8'], ['down', 'S2.2.1_G8', 'A2.1.1_G8'], ['down', 'A2.1.1_G8', 'A2.1.2_G8'], ['down', 'A2.1.2_G8', 'A2.1.3_G8'], ['down', 'A2.1.3_G8', 'A2.1.4_G8'], ['down', 'A2.1.4_G8', 'A3.1.1_G8'], ['down', 'A3.1.1_G8', 'A3.1.2_G8'], ['down', 'A3.1.2_G8', 'A3.1.3_G8'], ['down', 'A3.1.3_G8', 'A3.3.1_G8'], ['down', 'A3.3.1_G8', 'A3.3.2_G8'], ['down', 'A3.3.2_G8', 'A3.3.3_G8'], ['down', 'A3.3.3_G8', 'N5.1.2_G8'], ['down', 'N5.1.2_G9', 'N5.1.3_G9'], ['down', 'N5.1.3_G9', 'N5.2.1_G9'], ['down', 'N5.2.1_G9', 'N6.1.1_G9'], ['down', 'N6.1.1_G9', 'M1.2.2_G9'], ['down', 'M1.2.2_G9', 'M1.2.4_G9'], ['down', 'M1.2.4_G9', 'M1.2.5_G9'], ['down', 'M1.2.5_G9', 'M1.2.6_G9'], ['down', 'M1.2.6_G9', 'M1.2.7_G9'], ['down', 'M1.2.7_G9', 'M1.2.9_G9'], ['down', 'M1.2.9_G9', 'M2.2.3_G9'], ['down', 'M2.2.3_G9', 'G1.1.6_G9'], ['down', 'G1.1.6_G9', 'G1.1.8_G9'], ['down', 'G1.1.8_G9', 'G1.1.12_G9'], ['down', 'G1.1.12_G9', 'G1.1.13_G9'], ['down', 'G1.1.13_G9', 'G2.1.2_G9'], ['down', 'G2.1.2_G9', 'G2.1.3_G9'], ['down', 'G2.1.3_G9', 'G3.1.3_G9'], ['down', 'G3.1.3_G9', 'G3.1.4_G9'], ['down', 'G3.1.4_G9', 'S1.1.6_G9'], ['down', 'S1.1.6_G9', 'S1.1.8_G9'], ['down', 'S1.1.8_G9', 'S1.2.1_G9'], ['down', 'S1.2.1_G9', 'S1.2.2_G9'], ['down', 'S1.2.2_G9', 'S1.2.3_G9'], ['down', 'S1.2.3_G9', 'S1.2.4_G9'], ['down', 'S1.2.4_G9', 'S2.1.3_G9'], ['down', 'S2.1.3_G9', 'S2.1.4_G9'], ['down', 'S2.1.4_G9', 'S2.2.1_G9'], ['down', 'S2.2.1_G9', 'S2.2.2_G9'], ['down', 'S2.2.2_G9', 'A2.1.1_G9'], ['down', 'A2.1.1_G9', 'A2.1.3_G9'], ['down', 'A2.1.3_G9', 'A2.1.4_G9'], ['down', 'A2.1.4_G9', 'A3.1.2_G9'], ['down', 'A3.1.2_G9', 'A3.1.3_G9'], ['down', 'A3.1.3_G9', 'A3.3.1_G9'], ['down', 'A3.3.1_G9', 'A3.3.2_G9'], ['down', 'A3.3.2_G9', 'A3.3.3_G9'], ['down', 'A3.3.3_G9', 'A3.3.4_G9'], ['down', 'A3.3.4_G9', 'A3.3.5_G9'], ['down', 'A3.3.5_G9', 'A3.4.1_G9'], ['down', 'A3.4.1_G9', 'A3.4.2_G9'], ['up', 'A3.4.2_G9', 'A3.4.1_G9'], ['up', 'A3.4.1_G9', 'A3.3.5_G9'], ['up', 'A3.3.5_G9', 'A3.3.4_G9'], ['up', 'A3.3.4_G9', 'A3.3.3_G9'], ['up', 'A3.3.3_G9', 'A3.3.2_G9'], ['up', 'A3.3.2_G9', 'A3.3.1_G9'], ['up', 'A3.3.1_G9', 'A3.1.3_G9'], ['up', 'A3.1.3_G9', 'A3.1.2_G9'], ['up', 'A3.1.2_G9', 'A2.1.4_G9'], ['up', 'A2.1.4_G9', 'A2.1.3_G9'], ['up', 'A2.1.3_G9', 'A2.1.1_G9'], ['up', 'A2.1.1_G9', 'S2.2.2_G9'], ['up', 'S2.2.2_G9', 'S2.2.1_G9'], ['up', 'S2.2.1_G9', 'S2.1.4_G9'], ['up', 'S2.1.4_G9', 'S2.1.3_G9'], ['up', 'S2.1.3_G9', 'S1.2.4_G9'], ['up', 'S1.2.4_G9', 'S1.2.3_G9'], ['up', 'S1.2.3_G9', 'S1.2.2_G9'], ['up', 'S1.2.2_G9', 'S1.2.1_G9'], ['up', 'S1.2.1_G9', 'S1.1.8_G9'], ['up', 'S1.1.8_G9', 'S1.1.6_G9'], ['up', 'S1.1.6_G9', 'G3.1.4_G9'], ['up', 'G3.1.4_G9', 'G3.1.3_G9'], ['up', 'G3.1.3_G9', 'G2.1.3_G9'], ['up', 'G2.1.3_G9', 'G2.1.2_G9'], ['up', 'G2.1.2_G9', 'G1.1.13_G9'], ['up', 'G1.1.13_G9', 'G1.1.12_G9'], ['up', 'G1.1.12_G9', 'G1.1.8_G9'], ['up', 'G1.1.8_G9', 'G1.1.6_G9'], ['up', 'G1.1.6_G9', 'M2.2.3_G9'], ['up', 'M2.2.3_G9', 'M1.2.9_G9'], ['up', 'M1.2.9_G9', 'M1.2.7_G9'], ['up', 'M1.2.7_G9', 'M1.2.6_G9'], ['up', 'M1.2.6_G9', 'M1.2.5_G9'], ['up', 'M1.2.5_G9', 'M1.2.4_G9'], ['up', 'M1.2.4_G9', 'M1.2.2_G9'], ['up', 'M1.2.2_G9', 'N6.1.1_G9'], ['up', 'N6.1.1_G9', 'N5.2.1_G9'], ['up', 'N5.2.1_G9', 'N5.1.3_G9'], ['up', 'N5.1.3_G9', 'N5.1.2_G9'], ['up', 'N5.1.2_G9', 'A3.3.3_G9'], ['up', 'A3.3.3_G8', 'A3.3.2_G8'], ['up', 'A3.3.2_G8', 'A3.3.1_G8'], ['up', 'A3.3.1_G8', 'A3.1.3_G8'], ['up', 'A3.1.3_G8', 'A3.1.2_G8'], ['up', 'A3.1.2_G8', 'A3.1.1_G8'], ['up', 'A3.1.1_G8', 'A2.1.4_G8'], ['up', 'A2.1.4_G8', 'A2.1.3_G8'], ['up', 'A2.1.3_G8', 'A2.1.2_G8'], ['up', 'A2.1.2_G8', 'A2.1.1_G8'], ['up', 'A2.1.1_G8', 'S2.2.1_G8'], ['up', 'S2.2.1_G8', 'S2.1.3_G8'], ['up', 'S2.1.3_G8', 'S2.1.2_G8'], ['up', 'S2.1.2_G8', 'S1.2.3_G8'], ['up', 'S1.2.3_G8', 'S1.2.2_G8'], ['up', 'S1.2.2_G8', 'S1.2.1_G8'], ['up', 'S1.2.1_G8', 'S1.1.6_G8'], ['up', 'S1.1.6_G8', 'G3.1.4_G8'], ['up', 'G3.1.4_G8', 'G3.1.3_G8'], ['up', 'G3.1.3_G8', 'G2.1.3_G8'], ['up', 'G2.1.3_G8', 'G2.1.2_G8'], ['up', 'G2.1.2_G8', 'G1.1.13_G8'], ['up', 'G1.1.13_G8', 'G1.1.8_G8'], ['up', 'G1.1.8_G8', 'G1.1.7_G8'], ['up', 'G1.1.7_G8', 'G1.1.6_G8'], ['up', 'G1.1.6_G8', 'G1.1.3_G8'], ['up', 'G1.1.3_G8', 'M2.2.3_G8'], ['up', 'M2.2.3_G8', 'M1.2.7_G8'], ['up', 'M1.2.7_G8', 'M1.2.6_G8'], ['up', 'M1.2.6_G8', 'M1.2.5_G8'], ['up', 'M1.2.5_G8', 'M1.2.4_G8'], ['up', 'M1.2.4_G8', 'M1.2.2_G8'], ['up', 'M1.2.2_G8', 'M1.2.1_G8'], ['up', 'M1.2.1_G8', 'M1.1.3_G8'], ['up', 'M1.1.3_G8', 'N6.1.1_G8'], ['up', 'N6.1.1_G8', 'N5.2.1_G8'], ['up', 'N5.2.1_G8', 'N5.1.3_G8'], ['up', 'N5.1.3_G8', 'N5.1.2_G8'], ['up', 'N5.1.2_G8', 'N5.1.1_G8'], ['up', 'N5.1.1_G8', 'N4.3.1_G8'], ['up', 'N4.3.1_G8', 'N4.2.3_G8'], ['up', 'N4.2.3_G8', 'N4.2.2_G8'], ['up', 'N4.2.2_G8', 'N4.2.1_G8'], ['up', 'N4.2.1_G8', 'N3.4.1_G8'], ['up', 'N3.4.1_G8', 'N3.3.2_G8'], ['up', 'N3.3.2_G8', 'N3.3.1_G8'], ['up', 'N3.3.1_G8', 'N3.2.4_G8'], ['up', 'N3.2.4_G8', 'N3.2.3_G8'], ['up', 'N3.2.3_G8', 'N3.2.2_G8'], ['up', 'N3.2.2_G8', 'N3.2.1_G8'], ['up', 'N3.2.1_G8', 'A3.3.1_G8'], ['up', 'A3.3.1_G7', 'A3.1.3_G7'], ['up', 'A3.1.3_G7', 'A3.1.2_G7'], ['up', 'A3.1.2_G7', 'A3.1.1_G7'], ['up', 'A3.1.1_G7', 'A2.1.3_G7'], ['up', 'A2.1.3_G7', 'A2.1.2_G7'], ['up', 'A2.1.2_G7', 'A2.1.1_G7'], ['up', 'A2.1.1_G7', 'A1.1.4_G7'], ['up', 'A1.1.4_G7', 'A1.1.3_G7'], ['up', 'A1.1.3_G7', 'S2.1.3_G7'], ['up', 'S2.1.3_G7', 'S2.1.2_G7'], ['up', 'S2.1.2_G7', 'S2.1.1_G7'], ['up', 'S2.1.1_G7', 'S1.2.2_G7'], ['up', 'S1.2.2_G7', 'S1.2.1_G7'], ['up', 'S1.2.1_G7', 'S1.1.6_G7'], ['up', 'S1.1.6_G7', 'S1.1.5_G7'], ['up', 'S1.1.5_G7', 'G3.1.3_G7'], ['up', 'G3.1.3_G7', 'G2.1.3_G7'], ['up', 'G2.1.3_G7', 'G2.1.2_G7'], ['up', 'G2.1.2_G7', 'G1.1.13_G7'], ['up', 'G1.1.13_G7', 'G1.1.8_G7'], ['up', 'G1.1.8_G7', 'G1.1.7_G7'], ['up', 'G1.1.7_G7', 'G1.1.6_G7'], ['up', 'G1.1.6_G7', 'G1.1.5_G7'], ['up', 'G1.1.5_G7', 'G1.1.3_G7'], ['up', 'G1.1.3_G7', 'G1.1.2_G7'], ['up', 'G1.1.2_G7', 'M2.2.3_G7'], ['up', 'M2.2.3_G7', 'M1.2.7_G7'], ['up', 'M1.2.7_G7', 'M1.2.4_G7'], ['up', 'M1.2.4_G7', 'M1.2.3_G7'], ['up', 'M1.2.3_G7', 'M1.2.1_G7'], ['up', 'M1.2.1_G7', 'M1.1.4_G7'], ['up', 'M1.1.4_G7', 'M1.1.3_G7'], ['up', 'M1.1.3_G7', 'N5.1.3_G7'], ['up', 'N5.1.3_G7', 'N5.1.2_G7'], ['up', 'N5.1.2_G7', 'N5.1.1_G7'], ['up', 'N5.1.1_G7', 'N4.3.1_G7'], ['up', 'N4.3.1_G7', 'N4.2.3_G7'], ['up', 'N4.2.3_G7', 'N4.2.1_G7'], ['up', 'N4.2.1_G7', 'N4.1.1_G7'], ['up', 'N4.1.1_G7', 'N3.4.1_G7'], ['up', 'N3.4.1_G7', 'N3.3.2_G7'], ['up', 'N3.3.2_G7', 'N3.3.1_G7'], ['up', 'N3.3.1_G7', 'N3.2.4_G7'], ['up', 'N3.2.4_G7', 'N3.2.3_G7'], ['up', 'N3.2.3_G7', 'N3.2.2_G7'], ['up', 'N3.2.2_G7', 'N3.2.1_G7'], ['up', 'N3.2.1_G7', 'N3.1.2_G7'], ['up', 'N3.1.2_G7', 'N3.1.1_G7'], ['up', 'N3.1.1_G7', 'N2.3.2_G7'], ['up', 'N2.3.2_G7', 'N2.3.1_G7'], ['up', 'N2.3.1_G7', 'N2.2.3_G7'], ['up', 'N2.2.3_G7', 'N2.2.2_G7'], ['up', 'N2.2.2_G7', 'N2.1.4_G7'], ['up', 'N2.1.4_G7', 'N2.1.3_G7'], ['up', 'N2.1.3_G7', 'N2.1.2_G7'], ['up', 'N2.1.2_G7', 'A3.2.3_G7'], ['up', 'A3.2.3_G6', 'A3.2.2_G6'], ['up', 'A3.2.2_G6', 'A3.1.1_G6'], ['up', 'A3.1.1_G6', 'A1.1.4_G6'], ['up', 'A1.1.4_G6', 'A1.1.3_G6'], ['up', 'A1.1.3_G6', 'A1.1.2_G6'], ['up', 'A1.1.2_G6', 'S2.1.2_G6'], ['up', 'S2.1.2_G6', 'S2.1.1_G6'], ['up', 'S2.1.1_G6', 'S1.1.6_G6'], ['up', 'S1.1.6_G6', 'S1.1.5_G6'], ['up', 'S1.1.5_G6', 'S1.1.4_G6'], ['up', 'S1.1.4_G6', 'G3.1.3_G6'], ['up', 'G3.1.3_G6', 'G3.1.2_G6'], ['up', 'G3.1.2_G6', 'G2.1.3_G6'], ['up', 'G2.1.3_G6', 'G2.1.2_G6'], ['up', 'G2.1.2_G6', 'G1.1.7_G6'], ['up', 'G1.1.7_G6', 'G1.1.5_G6'], ['up', 'G1.1.5_G6', 'G1.1.3_G6'], ['up', 'G1.1.3_G6', 'G1.1.2_G6'], ['up', 'G1.1.2_G6', 'M2.2.3_G6'], ['up', 'M2.2.3_G6', 'M2.2.2_G6'], ['up', 'M2.2.2_G6', 'M1.2.3_G6'], ['up', 'M1.2.3_G6', 'M1.2.1_G6'], ['up', 'M1.2.1_G6', 'M1.1.4_G6'], ['up', 'M1.1.4_G6', 'M1.1.3_G6'], ['up', 'M1.1.3_G6', 'N3.4.1_G6'], ['up', 'N3.4.1_G6', 'N3.3.1_G6'], ['up', 'N3.3.1_G6', 'N3.2.3_G6'], ['up', 'N3.2.3_G6', 'N3.2.2_G6'], ['up', 'N3.2.2_G6', 'N3.2.1_G6'], ['up', 'N3.2.1_G6', 'N3.1.2_G6'], ['up', 'N3.1.2_G6', 'N3.1.1_G6'], ['up', 'N3.1.1_G6', 'N2.3.2_G6'], ['up', 'N2.3.2_G6', 'N2.3.1_G6'], ['up', 'N2.3.1_G6', 'N2.2.3_G6'], ['up', 'N2.2.3_G6', 'N2.2.2_G6'], ['up', 'N2.2.2_G6', 'N2.2.1_G6'], ['up', 'N2.2.1_G6', 'N2.1.4_G6'], ['up', 'N2.1.4_G6', 'N2.1.3_G6'], ['up', 'N2.1.3_G6', 'N2.1.2_G6'], ['up', 'N2.1.2_G6', 'N1.4.2_G6'], ['up', 'N1.4.2_G6', 'N1.3.7_G6'], ['up', 'N1.3.7_G6', 'N1.3.6_G6'], ['up', 'N1.3.6_G6', 'N1.3.3_G6'], ['up', 'N1.3.3_G6', 'N1.3.1_G6'], ['up', 'N1.3.1_G6', 'N1.2.3_G6'], ['up', 'N1.2.3_G6', 'N1.2.2_G6'], ['up', 'N1.2.2_G6', 'N1.1.3_G6'], ['up', 'N1.1.3_G6', 'N1.1.2_G6'], ['up', 'N1.1.2_G6', 'N1.1.1_G6'], ['up', 'N1.1.1_G6', 'A3.2.3_G6'], ['up', 'A3.2.3_G5', 'A3.2.2_G5'], ['up', 'A3.2.2_G5', 'A3.2.1_G5'], ['up', 'A3.2.1_G5', 'A1.1.3_G5'], ['up', 'A1.1.3_G5', 'A1.1.2_G5'], ['up', 'A1.1.2_G5', 'S2.1.1_G5'], ['up', 'S2.1.1_G5', 'S1.1.5_G5'], ['up', 'S1.1.5_G5', 'S1.1.4_G5'], ['up', 'S1.1.4_G5', 'S1.1.3_G5'], ['up', 'S1.1.3_G5', 'S1.1.2_G5'], ['up', 'S1.1.2_G5', 'G3.1.2_G5'], ['up', 'G3.1.2_G5', 'G2.1.3_G5'], ['up', 'G2.1.3_G5', 'G2.1.2_G5'], ['up', 'G2.1.2_G5', 'G1.1.11_G5'], ['up', 'G1.1.11_G5', 'G1.1.7_G5'], ['up', 'G1.1.7_G5', 'G1.1.5_G5'], ['up', 'G1.1.5_G5', 'G1.1.2_G5'], ['up', 'G1.1.2_G5', 'M2.2.3_G5'], ['up', 'M2.2.3_G5', 'M2.2.2_G5'], ['up', 'M2.2.2_G5', 'M2.1.3_G5'], ['up', 'M2.1.3_G5', 'M2.1.2_G5'], ['up', 'M2.1.2_G5', 'M1.2.3_G5'], ['up', 'M1.2.3_G5', 'M1.2.1_G5'], ['up', 'M1.2.1_G5', 'M1.1.4_G5'], ['up', 'M1.1.4_G5', 'M1.1.3_G5'], ['up', 'M1.1.3_G5', 'M1.1.2_G5'], ['up', 'M1.1.2_G5', 'N3.3.1_G5'], ['up', 'N3.3.1_G5', 'N3.2.2_G5'], ['up', 'N3.2.2_G5', 'N3.2.1_G5'], ['up', 'N3.2.1_G5', 'N3.1.2_G5'], ['up', 'N3.1.2_G5', 'N3.1.1_G5'], ['up', 'N3.1.1_G5', 'N2.3.2_G5'], ['up', 'N2.3.2_G5', 'N2.3.1_G5'], ['up', 'N2.3.1_G5', 'N2.2.3_G5'], ['up', 'N2.2.3_G5', 'N2.2.2_G5'], ['up', 'N2.2.2_G5', 'N2.2.1_G5'], ['up', 'N2.2.1_G5', 'N2.1.4_G5'], ['up', 'N2.1.4_G5', 'N2.1.3_G5'], ['up', 'N2.1.3_G5', 'N2.1.2_G5'], ['up', 'N2.1.2_G5', 'N1.4.2_G5'], ['up', 'N1.4.2_G5', 'N1.4.1_G5'], ['up', 'N1.4.1_G5', 'N1.3.7_G5'], ['up', 'N1.3.7_G5', 'N1.3.6_G5'], ['up', 'N1.3.6_G5', 'N1.3.3_G5'], ['up', 'N1.3.3_G5', 'N1.3.1_G5'], ['up', 'N1.3.1_G5', 'N1.2.3_G5'], ['up', 'N1.2.3_G5', 'N1.2.2_G5'], ['up', 'N1.2.2_G5', 'N1.1.3_G5'], ['up', 'N1.1.3_G5', 'N1.1.2_G5'], ['up', 'N1.1.2_G5', 'N1.1.1_G5'], ['up', 'N1.1.1_G5', 'A3.2.3_G5'], ['up', 'A3.2.3_G4', 'A3.2.2_G4'], ['up', 'A3.2.2_G4', 'A3.2.1_G4'], ['up', 'A3.2.1_G4', 'A1.1.2_G4'], ['up', 'A1.1.2_G4', 'A1.1.1_G4'], ['up', 'A1.1.1_G4', 'S1.1.5_G4'], ['up', 'S1.1.5_G4', 'S1.1.4_G4'], ['up', 'S1.1.4_G4', 'S1.1.3_G4'], ['up', 'S1.1.3_G4', 'S1.1.2_G4'], ['up', 'S1.1.2_G4', 'G3.1.2_G4'], ['up', 'G3.1.2_G4', 'G3.1.1_G4'], ['up', 'G3.1.1_G4', 'G2.1.2_G4'], ['up', 'G2.1.2_G4', 'G2.1.1_G4'], ['up', 'G2.1.1_G4', 'G1.1.11_G4'], ['up', 'G1.1.11_G4', 'G1.1.10_G4'], ['up', 'G1.1.10_G4', 'G1.1.7_G4'], ['up', 'G1.1.7_G4', 'G1.1.5_G4'], ['up', 'G1.1.5_G4', 'G1.1.2_G4'], ['up', 'G1.1.2_G4', 'G1.1.1_G4'], ['up', 'G1.1.1_G4', 'M2.2.2_G4'], ['up', 'M2.2.2_G4', 'M2.2.1_G4'], ['up', 'M2.2.1_G4', 'M2.1.4_G4'], ['up', 'M2.1.4_G4', 'M2.1.3_G4'], ['up', 'M2.1.3_G4', 'M2.1.2_G4'], ['up', 'M2.1.2_G4', 'M1.2.3_G4'], ['up', 'M1.2.3_G4', 'M1.2.1_G4'], ['up', 'M1.2.1_G4', 'M1.1.3_G4'], ['up', 'M1.1.3_G4', 'M1.1.2_G4'], ['up', 'M1.1.2_G4', 'M1.1.1_G4'], ['up', 'M1.1.1_G4', 'N2.3.1_G4'], ['up', 'N2.3.1_G4', 'N2.2.1_G4'], ['up', 'N2.2.1_G4', 'N2.1.4_G4'], ['up', 'N2.1.4_G4', 'N2.1.2_G4'], ['up', 'N2.1.2_G4', 'N2.1.1_G4'], ['up', 'N2.1.1_G4', 'N1.4.2_G4'], ['up', 'N1.4.2_G4', 'N1.4.1_G4'], ['up', 'N1.4.1_G4', 'N1.3.7_G4'], ['up', 'N1.3.7_G4', 'N1.3.5_G4'], ['up', 'N1.3.5_G4', 'N1.3.3_G4'], ['up', 'N1.3.3_G4', 'N1.3.1_G4'], ['up', 'N1.3.1_G4', 'N1.2.2_G4'], ['up', 'N1.2.2_G4', 'N1.1.3_G4'], ['up', 'N1.1.3_G4', 'N1.1.2_G4'], ['up', 'N1.1.2_G4', 'N1.1.1_G4'], ['up', 'N1.1.1_G4', 'A3.2.3_G4'], ['up', 'A3.2.3_G3', 'A3.2.2_G3'], ['up', 'A3.2.2_G3', 'A3.2.1_G3'], ['up', 'A3.2.1_G3', 'A1.1.2_G3'], ['up', 'A1.1.2_G3', 'A1.1.1_G3'], ['up', 'A1.1.1_G3', 'S1.1.2_G3'], ['up', 'S1.1.2_G3', 'G3.1.2_G3'], ['up', 'G3.1.2_G3', 'G3.1.1_G3'], ['up', 'G3.1.1_G3', 'G2.1.1_G3'], ['up', 'G2.1.1_G3', 'G1.1.11_G3'], ['up', 'G1.1.11_G3', 'G1.1.10_G3'], ['up', 'G1.1.10_G3', 'G1.1.9_G3'], ['up', 'G1.1.9_G3', 'G1.1.4_G3'], ['up', 'G1.1.4_G3', 'G1.1.2_G3'], ['up', 'G1.1.2_G3', 'G1.1.1_G3'], ['up', 'G1.1.1_G3', 'M3.1.1_G3'], ['up', 'M3.1.1_G3', 'M2.2.2_G3'], ['up', 'M2.2.2_G3', 'M2.2.1_G3'], ['up', 'M2.2.1_G3', 'M2.1.4_G3'], ['up', 'M2.1.4_G3', 'M2.1.2_G3'], ['up', 'M2.1.2_G3', 'M1.1.2_G3'], ['up', 'M1.1.2_G3', 'M1.1.1_G3'], ['up', 'M1.1.1_G3', 'N2.1.1_G3'], ['up', 'N2.1.1_G3', 'N1.4.1_G3'], ['up', 'N1.4.1_G3', 'N1.3.7_G3'], ['up', 'N1.3.7_G3', 'N1.3.4_G3'], ['up', 'N1.3.4_G3', 'N1.3.3_G3'], ['up', 'N1.3.3_G3', 'N1.3.1_G3'], ['up', 'N1.3.1_G3', 'N1.2.2_G3'], ['up', 'N1.2.2_G3', 'N1.2.1_G3'], ['up', 'N1.2.1_G3', 'N1.1.3_G3'], ['up', 'N1.1.3_G3', 'N1.1.2_G3'], ['up', 'N1.1.2_G3', 'N1.1.1_G3'], ['up', 'N1.1.1_G3', 'A3.2.3_G3'], ['up', 'A3.2.3_G2', 'A3.2.1_G2'], ['up', 'A3.2.1_G2', 'A1.1.1_G2'], ['up', 'A1.1.1_G2', 'S1.1.2_G2'], ['up', 'S1.1.2_G2', 'S1.1.1_G2'], ['up', 'S1.1.1_G2', 'G3.1.1_G2'], ['up', 'G3.1.1_G2', 'G2.1.1_G2'], ['up', 'G2.1.1_G2', 'G1.1.10_G2'], ['up', 'G1.1.10_G2', 'G1.1.9_G2'], ['up', 'G1.1.9_G2', 'G1.1.4_G2'], ['up', 'G1.1.4_G2', 'G1.1.1_G2'], ['up', 'G1.1.1_G2', 'M3.1.1_G2'], ['up', 'M3.1.1_G2', 'M2.2.1_G2'], ['up', 'M2.2.1_G2', 'M2.1.4_G2'], ['up', 'M2.1.4_G2', 'M2.1.2_G2'], ['up', 'M2.1.2_G2', 'M2.1.1_G2'], ['up', 'M2.1.1_G2', 'M1.1.2_G2'], ['up', 'M1.1.2_G2', 'M1.1.1_G2'], ['up', 'M1.1.1_G2', 'N1.4.1_G2'], ['up', 'N1.4.1_G2', 'N1.3.7_G2'], ['up', 'N1.3.7_G2', 'N1.3.2_G2'], ['up', 'N1.3.2_G2', 'N1.3.1_G2'], ['up', 'N1.3.1_G2', 'N1.2.2_G2'], ['up', 'N1.2.2_G2', 'N1.2.1_G2'], ['up', 'N1.2.1_G2', 'N1.1.3_G2'], ['up', 'N1.1.3_G2', 'N1.1.2_G2'], ['up', 'N1.1.2_G2', 'N1.1.1_G2'], ['up', 'N1.1.1_G2', 'A1.1.1_G2'], ['up', 'A1.1.1_G1', 'S1.1.1_G1'], ['up', 'S1.1.1_G1', 'G3.1.1_G1'], ['up', 'G3.1.1_G1', 'G2.1.1_G1'], ['up', 'G2.1.1_G1', 'G1.1.9_G1'], ['up', 'G1.1.9_G1', 'G1.1.4_G1'], ['up', 'G1.1.4_G1', 'G1.1.1_G1'], ['up', 'G1.1.1_G1', 'M3.1.1_G1'], ['up', 'M3.1.1_G1', 'M2.1.4_G1'], ['up', 'M2.1.4_G1', 'M2.1.2_G1'], ['up', 'M2.1.2_G1', 'M2.1.1_G1'], ['up', 'M2.1.1_G1', 'M1.1.1_G1'], ['up', 'M1.1.1_G1', 'N1.4.1_G1'], ['up', 'N1.4.1_G1', 'N1.3.2_G1'], ['up', 'N1.3.2_G1', 'N1.3.1_G1'], ['up', 'N1.3.1_G1', 'N1.2.1_G1'], ['up', 'N1.2.1_G1', 'N1.1.2_G1'], ['up', 'N1.1.2_G1', 'N1.1.1_G1']
|
11 |
-
]
|
12 |
|
13 |
def __init__(
|
14 |
self,
|
|
|
1 |
from transitions import Machine
|
2 |
+
from mathtext_fastapi.curriculum_mapper import build_curriculum_logic
|
3 |
|
4 |
+
all_states, all_transitions = build_curriculum_logic()
|
5 |
|
6 |
class GlobalStateManager(object):
|
7 |
+
states = all_states
|
|
|
|
|
8 |
|
9 |
+
transitions = all_transitions
|
|
|
|
|
10 |
|
11 |
def __init__(
|
12 |
self,
|