From b0681e2d45917fb4b0afd99d299ccc63ab0ace91 Mon Sep 17 00:00:00 2001 From: Ricardo Fabbri Date: Wed, 1 Nov 2023 17:00:45 -0300 Subject: [PATCH] [Trifocal+P2Pt] evaluator: partial explicit expression generation --- scripts/dag/chicago_Hxt.sce | 1 + scripts/dag/dag.sce | 2 +- scripts/dag/dag_incl.sce | 246 ++ scripts/dag/dag_input.sce | 3480 ----------------- scripts/dag/direct_expression.sce | 77 +- scripts/dag/extract_tree.sce | 33 + scripts/dag/t_dep | 23 + scripts/lu.sci | 8 + .../synthdata/100-configurations-synthdata | 100 + .../synthdata/100-configurations-synthdata.sh | 11 + scripts/synthdata/getlines | 41 + scripts/synthdata/synthdata | 137 + scripts/synthdata/synthdata-batch | 69 + scripts/synthdata/synthdata-batch-old | 68 + scripts/synthdata/synthdata-scan | 6 + scripts/synthdata/synthdata-scan-postprocess | 27 + 16 files changed, 846 insertions(+), 3483 deletions(-) create mode 120000 scripts/dag/chicago_Hxt.sce create mode 100644 scripts/dag/dag_incl.sce delete mode 100644 scripts/dag/dag_input.sce create mode 100644 scripts/dag/extract_tree.sce create mode 100755 scripts/dag/t_dep create mode 100644 scripts/lu.sci create mode 100644 scripts/synthdata/100-configurations-synthdata create mode 100644 scripts/synthdata/100-configurations-synthdata.sh create mode 100755 scripts/synthdata/getlines create mode 100755 scripts/synthdata/synthdata create mode 100755 scripts/synthdata/synthdata-batch create mode 100755 scripts/synthdata/synthdata-batch-old create mode 100755 scripts/synthdata/synthdata-scan create mode 100644 scripts/synthdata/synthdata-scan-postprocess diff --git a/scripts/dag/chicago_Hxt.sce b/scripts/dag/chicago_Hxt.sce new file mode 120000 index 0000000..1f2b01a --- /dev/null +++ b/scripts/dag/chicago_Hxt.sce @@ -0,0 +1 @@ +in/Hxt/chicago_Hxt.sce \ No newline at end of file diff --git a/scripts/dag/dag.sce b/scripts/dag/dag.sce index f3d9412..a0c8f49 100644 --- a/scripts/dag/dag.sce +++ b/scripts/dag/dag.sce @@ -9,7 +9,7 @@ global nodes_in_graph; global node_type; global node_expr; -exec chicago_bare_new.sce; +exec in/Hxt/chicago_Hxt.sce; //exec dag_input.sce; //txt=mgetl('chicago.bare'); txtc = strcat(txt,"",'r'); diff --git a/scripts/dag/dag_incl.sce b/scripts/dag/dag_incl.sce new file mode 100644 index 0000000..ef0cbbc --- /dev/null +++ b/scripts/dag/dag_incl.sce @@ -0,0 +1,246 @@ +// called from dag.sce +function i = get_id(variablestr) + global n_Cs; + global n_Xs; + letternum = evstr(part(variablestr,2:$)); + select part(variablestr,1), + case 'C' then + i = letternum + 1; + case 'X' then + i = n_Cs + letternum + 1; + case 'G' then + i = n_Cs + n_Xs + letternum + 1; + end +endfunction + +function ids = get_ids(vstr) + n = size(vstr,'*'); + ids = zeros(n,1); + for j=1:n + ids(j) = get_id(vstr(j)) + end +endfunction + +function [lhsvar, rhsvars, type] = get_vars(strexpr) + // regexp(str, '/G[0-9][0-9]/') + ts = tokens(strexpr); + nt = size(ts,'*'); + if nt == 0 + lhsvar = [] + return + end + lhsvar = ts(1); + if ts(2) ~= '=' + error('second token must be equal sign') + end + type = ts(4); + if type ~= '+' & type ~= '*' + error('fourth token must be an operand') + end + rhsvars = []; + for i=3:2:size(ts,'*') + rhsvars($+1) = ts(i); + end + // More operands + if nt > 6 + type2 = ts(6); + if type ~= '+' | type2 ~= '+' + error('only + is supported as a second operand') + end + end +endfunction + +// Add a new Gate +// spdag_add("G50 = G39 + G40) +// Supports at most 3 ops +// spdag_add("G50 = G39 + G20 + G40) +function slpdag_add(strexpr) + global dag_from; + global dag_to; + global nodes_in_graph; + global node_type; + global node_expr; + + [lhs, rhs, op] = get_vars(strexpr); + node_left = get_id(lhs); + node_type(node_left) = op; + node_expr(node_left) = strexpr; + nodes_in_graph(node_left) = 1; + + for i=1:size(rhs,'*') + node_i = get_id(rhs(i)); + dag_to(node_i)($+1) = node_left; + dag_from(node_left)($+1) = node_i; + nodes_in_graph(node_i) = 1; + end +endfunction + +function vn = nodename(id) + global n_Cs; + global n_Xs; + if id <= n_Cs + vn = 'C' + string(id-1); + elseif id <= n_Xs+n_Cs + vn = 'X' + string(id-1-n_Cs); + else + vn = 'G' + string(id-1-n_Xs-n_Cs); + end +endfunction + +function vn = nodenames(ids) + vn = [] + for i=1:max(size(ids)) + if nodes_in_graph(ids(i)) + vn = [vn; nodename(ids(i))]; + else + vn = [vn; string(ids(i))+ ' not in graph'] + end + end +endfunction + +function gviz = export_graphviz() + + // go through each in dag_to + if sum(nodes_in_graph) < 40 + gviz = ['digraph {' + 'splines=""line""' + 'ranksep=""1""' + 'node [shape=circle,color=dimgray,height=""0.3""]']; + nt_times = '{ node [shape=diamond, height=""0.3"", width=""0.3"", color=orangered, fontcolor=orangered] '; + else + gviz = ['digraph {' + 'splines=""line""' + 'ranksep=""1""' + 'node [shape=circle,fontcolor=white,color=dimgray,label="""",height=""0.3""]']; + nt_times = '{ node [shape=diamond, height=""0.3"", width=""0.3"", style=filled, color=orangered, fontcolor=orangered, fillcolor=orangered,label=""""] '; + end + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if node_type(i) == '*' + nt_times = nt_times + ' ' + nodename(i); + end + end + end + nt_times = [nt_times; '}']; + + if sum(nodes_in_graph) < 40 + nt_plus = '{ node [shape=square, height=""0.3"", width=""0.3"", color=steelblue4, fontcolor=steelblue4] '; + else + nt_plus = '{ node [shape=square, height=""0.3"", width=""0.3"", style=filled, color=steelblue4, fontcolor=steelblue4, fillcolor=steelblue4,label=""""] '; + end + + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if node_type(i) == '+' + nt_plus = nt_plus + ' ' + nodename(i); + end + end + end + nt_plus= [nt_plus; '}']; + gviz = [gviz; nt_times]; + gviz = [gviz; nt_plus]; + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + gviz = [gviz; nodename(i)+'[label = ""' + string(i) + nodename(i) + '""];']; + end + end + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if ~isempty(dag_to(i)); + vn = nodename(i); + for k=1:size(dag_to(i)) + nt = node_type(dag_to(i)(k)); + if nt == '*' + colorstr = 'color=orangered, fontcolor=orangered' + else + colorstr = 'color=steelblue4, fontcolor=steelblue4' + end +// gviz = [gviz; vn + ' -> ' + nodename(dag_to(i)(k)) + '[label=""' + nt + '"", fontsize=""24.0""' + colorstr + '];']; + gviz = [gviz; vn + ' -> ' + nodename(dag_to(i)(k)) + '[' + colorstr + '];']; + end + end + end + end + gviz = [gviz; '}']; + unix('rm -f chicago-tmp.dot'); + write('chicago-tmp.dot',gviz); +endfunction + +function gviz = export_graphviz_with_ranks() + + // go through each in dag_to + if sum(nodes_in_graph) < 40 + gviz = ['digraph {' + 'splines=""line""' + 'ranksep=""1""' + 'node [shape=circle,color=dimgray,height=""0.3""]']; + nt_times = '{ node [shape=diamond, height=""0.3"", width=""0.3"", color=orangered, fontcolor=orangered] '; + else + gviz = ['digraph {' + 'splines=""line""' + 'ranksep=""1""' + 'node [shape=circle,fontcolor=white,color=dimgray,label="""",height=""0.3""]']; + nt_times = '{ node [shape=diamond, height=""0.3"", width=""0.3"", style=filled, color=orangered, fontcolor=orangered, fillcolor=orangered,label=""""] '; + end + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if node_type(i) == '*' + nt_times = nt_times + ' ' + nodename(i); + end + end + end + nt_times = [nt_times; '}']; + + if sum(nodes_in_graph) < 40 + nt_plus = '{ node [shape=square, height=""0.3"", width=""0.3"", style=filled, color=steelblue4, fontcolor=steelblue4] '; + else + nt_plus = '{ node [shape=square, height=""0.3"", width=""0.3"", style=filled, color=steelblue4, fontcolor=steelblue4, fillcolor=steelblue4,label=""""] '; + end + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if node_type(i) == '+' + nt_plus = nt_plus + ' ' + nodename(i); + end + end + end + nt_plus= [nt_plus; '}']; + gviz = [gviz; nt_times]; + gviz = [gviz; nt_plus]; + + for r=1:size(rank_by_name) + ranks = '{ rank = same; ' + for i=1:size(rank_by_name(r)) + ranks = ranks + rank_by_name(r)(i) + ';'; + end + ranks = ranks + ' }' + gviz = [gviz; ranks]; + end + + for i=1:max_n_nodes + if nodes_in_graph(i) == 1 + if ~isempty(dag_to(i)); + vn = nodename(i); + for k=1:size(dag_to(i)) + nt = node_type(dag_to(i)(k)); + if nt == '*' + colorstr = 'color=orangered, fontcolor=orangered' + else + colorstr = 'color=steelblue4, fontcolor=steelblue4' + end +// gviz = [gviz; vn + ' -> ' + nodename(dag_to(i)(k)) + '[label=""' + nt + '"", fontsize=""24.0""' + colorstr + '];']; + gviz = [gviz; vn + ' -> ' + nodename(dag_to(i)(k)) + '[' + colorstr + '];']; + end + end + end + end + gviz = [gviz; '}']; + unix('rm -f chicago-tmp-rank.dot'); + write('chicago-tmp-rank.dot',gviz); +endfunction + +function determine_size() +endfunction + +//function print_vectorized_topo_order() +//endfunction + diff --git a/scripts/dag/dag_input.sce b/scripts/dag/dag_input.sce deleted file mode 100644 index 24883c7..0000000 --- a/scripts/dag/dag_input.sce +++ /dev/null @@ -1,3480 +0,0 @@ -txt = [ -// 'G2 = G1 * X0;' -// 'G3 = X2 * X1;' -// G2 = G1 * X15; -// G3 = X14 * X71; -// G5 = G1 * X21; -// G6 = X14 * X77; -// G8 = X4 * X4; -// G9 = X5 * X5; -// G11 = X6 * X6; -// G12 = G11 + X6; -// 'G2 = G1 * X15;' -// 'G3 = X14 * X71;' -// 'G5 = G1 * X21;' -// 'G6 = X14 * X77;' -// 'G8 = X4 * X4;' -// 'G9 = X5 * X5;' -// 'G11 = X6 * X6;' -// 'G13 = X7 * X7;' -// 'G17 = G1 * X22;' -// 'G18 = X14 * X78;' -// 'G22 = G1 * X23;' -// 'G23 = X14 * X79;' -// 'G28 = G1 * X18;' -// 'G29 = X14 * X74;' -// 'G31 = C2 * X2;' -// 'G33 = G1 * X19;' -// 'G4 = G2 + G3;' -// 'G7 = G5 + G6;' -// 'G10 = G8 + G9;' -// 'G12 = G10 + G11;' -// 'G14 = G12 + G13;' -// 'G15 = G14 * X11;' -// 'G16 = G7 * G15;' -// 'G19 = G17 + G18;' -// 'G20 = G14 * X12;' -// 'G21 = G19 * G20;' -// 'G24 = G22 + G23;' -// 'G25 = G14 * X13;' -// 'G26 = G24 + G25 + G16;' -// -// 'G2 = G1 * X15;' -// 'G3 = X14 * X71;' -// 'G5 = G1 * X21;' -// 'G6 = X14 * X77;' -// 'G8 = X4 * X4;' -// 'G9 = X5 * X5;' -// 'G11 = X6 * X6;' -// 'G13 = X7 * X7;' -// 'G17 = G1 * X22;' -// 'G18 = X14 * X78;' -// 'G22 = G1 * X23;' -// 'G23 = X14 * X79;' -// 'G28 = G1 * X18;' -// 'G29 = X14 * X74;' -// 'G31 = C2 * X2;' -// 'G33 = G1 * X19;' -// 'G4 = G2 + G3;' -// 'G7 = G5 + G6;' -// 'G10 = G8 + G9;' -// 'G12 = G10 + G11;' -// 'G14 = G12 + G13;' -// 'G15 = G14 * X11;' -// 'G16 = G7 * G15;' -// 'G19 = G17 + G18;' -// 'G20 = G14 * X12;' -// 'G21 = G19 * G20;' -// 'G24 = G22 + G23;' -// 'G25 = G14 * X13;' - 'G26 = G24 * G25;' - 'G27 = G16 + G21 + G26;' - 'G30 = G28 + G29;' - 'G32 = G30 * G31;' - 'G34 = X14 * X75;' - 'G35 = G33 + G34;' -// 'G36 = C1 * X1;' -// 'G37 = C2 * G36;' -// 'G38 = G35 * G37;' -// 'G39 = G1 * X20;' -// 'G40 = X14 * X76;' -// 'G41 = G39 + G40;' -// 'G42 = X0 + X0;' -// 'G43 = G41 * G42;' -// 'G44 = G32 + G38 + G43;' -// 'G45 = G27 * G44;' -// 'G46 = X5 * X7;' -// 'G47 = X4 * X6;' -// 'G48 = G46 + G47;' -// 'G49 = C2 * G48;' -// 'G50 = G7 * G49;' -// 'G51 = X6 * X7;' -// 'G52 = X4 * X5;' -// 'G53 = C1 * G52;' -// 'G54 = G51 + G53;' -// 'G55 = C2 * G54;' -// 'G56 = G19 * G55;' -// 'G57 = G8 + G13;' -// 'G58 = G9 + G11;' -// 'G59 = C1 * G58;' -// 'G60 = G57 + G59;' -// 'G61 = G24 * G60;' -// 'G62 = G50 + G56 + G61;' -// 'G63 = X8 * G42;' -// 'G64 = G30 * G63;' -// 'G65 = X9 * G42;' -// 'G66 = G35 * G65;' -// 'G67 = X10 * G42;' -// 'G68 = G41 * G67;' -// 'G69 = G64 + G66 + G68;' -// 'G70 = G62 * G69;' -// 'G71 = C1 * G70;' -// 'G72 = G45 + G71;' -// 'G73 = G4 * G72;' -// 'G74 = G1 * X17;' -// 'G75 = X14 * X73;' -// 'G76 = G74 + G75;' -// 'G77 = G30 * G42;' -// 'G78 = C2 * X3;' -// 'G79 = G35 * G78;' -// 'G80 = C1 * X2;' -// 'G81 = C2 * G80;' -// 'G82 = G41 * G81;' -// 'G83 = G77 + G79 + G82;' -// 'G84 = G27 * G83;' -// 'G85 = G11 + G13;' -// 'G86 = C1 * G85;' -// 'G87 = G10 + G86;' -// 'G88 = G7 * G87;' -// 'G89 = X5 * X6;' -// 'G90 = X4 * X7;' -// 'G91 = G89 + G90;' -// 'G92 = C2 * G91;' -// 'G93 = G19 * G92;' -// 'G94 = C1 * G47;' -// 'G95 = G46 + G94;' -// 'G96 = C2 * G95;' -// 'G97 = G24 * G96;' -// 'G98 = G88 + G93 + G97;' -// 'G99 = G98 * G69;' -// 'G100 = C1 * G99;' -// 'G101 = G84 + G100;' -// 'G102 = G76 * G101;' -// 'G103 = C1 * G102;' -// 'G104 = G73 + G103;' -// 'G105 = G1 * X16;' -// 'G106 = X14 * X72;' -// 'G107 = G105 + G106;' -// 'G108 = G107 * G72;' -// 'G109 = C1 * X3;' -// 'G110 = C2 * G109;' -// 'G111 = G30 * G110;' -// 'G112 = G35 * G42;' -// 'G113 = C2 * X1;' -// 'G114 = G41 * G113;' -// 'G115 = G111 + G112 + G114;' -// 'G116 = G27 * G115;' -// 'G117 = C1 * G90;' -// 'G118 = G89 + G117;' -// 'G119 = C2 * G118;' -// 'G120 = G7 * G119;' -// 'G121 = G8 + G11;' -// 'G122 = G9 + G13;' -// 'G123 = C1 * G122;' -// 'G124 = G121 + G123;' -// 'G125 = G19 * G124;' -// 'G126 = G51 + G52;' -// 'G127 = C2 * G126;' -// 'G128 = G24 * G127;' -// 'G129 = G120 + G125 + G128;' -// 'G130 = G129 * G69;' -// 'G131 = C1 * G130;' -// 'G132 = G116 + G131;' -// 'G133 = G76 * G132;' -// 'G134 = C1 * G133;' -// 'G135 = G108 + G134;' -// 'G136 = G1 * X24;' -// 'G137 = X14 * X80;' -// 'G138 = G136 + G137;' -// 'G139 = G1 * X30;' -// 'G140 = X14 * X86;' -// 'G141 = G139 + G140;' -// 'G142 = G141 * G15;' -// 'G143 = G1 * X31;' -// 'G144 = X14 * X87;' -// 'G145 = G143 + G144;' -// 'G146 = G145 * G20;' -// 'G147 = G1 * X32;' -// 'G148 = X14 * X88;' -// 'G149 = G147 + G148;' -// 'G150 = G149 * G25;' -// 'G151 = G142 + G146 + G150;' -// 'G152 = G1 * X27;' -// 'G153 = X14 * X83;' -// 'G154 = G152 + G153;' -// 'G155 = G154 * G31;' -// 'G156 = G1 * X28;' -// 'G157 = X14 * X84;' -// 'G158 = G156 + G157;' -// 'G159 = G158 * G37;' -// 'G160 = G1 * X29;' -// 'G161 = X14 * X85;' -// 'G162 = G160 + G161;' -// 'G163 = G162 * G42;' -// 'G164 = G155 + G159 + G163;' -// 'G165 = G151 * G164;' -// 'G166 = G141 * G49;' -// 'G167 = G145 * G55;' -// 'G168 = G149 * G60;' -// 'G169 = G166 + G167 + G168;' -// 'G170 = G154 * G63;' -// 'G171 = G158 * G65;' -// 'G172 = G162 * G67;' -// 'G173 = G170 + G171 + G172;' -// 'G174 = G169 * G173;' -// 'G175 = C1 * G174;' -// 'G176 = G165 + G175;' -// 'G177 = G138 * G176;' -// 'G178 = G1 * X26;' -// 'G179 = X14 * X82;' -// 'G180 = G178 + G179;' -// 'G181 = G154 * G42;' -// 'G182 = G158 * G78;' -// 'G183 = G162 * G81;' -// 'G184 = G181 + G182 + G183;' -// 'G185 = G151 * G184;' -// 'G186 = G141 * G87;' -// 'G187 = G145 * G92;' -// 'G188 = G149 * G96;' -// 'G189 = G186 + G187 + G188;' -// 'G190 = G189 * G173;' -// 'G191 = C1 * G190;' -// 'G192 = G185 + G191;' -// 'G193 = G180 * G192;' -// 'G194 = C1 * G193;' -// 'G195 = G177 + G194;' -// 'G196 = G1 * X25;' -// 'G197 = X14 * X81;' -// 'G198 = G196 + G197;' -// 'G199 = G198 * G176;' -// 'G200 = G154 * G110;' -// 'G201 = G158 * G42;' -// 'G202 = G162 * G113;' -// 'G203 = G200 + G201 + G202;' -// 'G204 = G151 * G203;' -// 'G205 = G141 * G119;' -// 'G206 = G145 * G124;' -// 'G207 = G149 * G127;' -// 'G208 = G205 + G206 + G207;' -// 'G209 = G208 * G173;' -// 'G210 = C1 * G209;' -// 'G211 = G204 + G210;' -// 'G212 = G180 * G211;' -// 'G213 = C1 * G212;' -// 'G214 = G199 + G213;' -// 'G215 = G1 * X33;' -// 'G216 = X14 * X89;' -// 'G217 = G215 + G216;' -// 'G218 = G1 * X39;' -// 'G219 = X14 * X95;' -// 'G220 = G218 + G219;' -// 'G221 = G220 * G15;' -// 'G222 = G1 * X40;' -// 'G223 = X14 * X96;' -// 'G224 = G222 + G223;' -// 'G225 = G224 * G20;' -// 'G226 = G1 * X41;' -// 'G227 = X14 * X97;' -// 'G228 = G226 + G227;' -// 'G229 = G228 * G25;' -// 'G230 = G221 + G225 + G229;' -// 'G231 = G1 * X36;' -// 'G232 = X14 * X92;' -// 'G233 = G231 + G232;' -// 'G234 = G233 * G31;' -// 'G235 = G1 * X37;' -// 'G236 = X14 * X93;' -// 'G237 = G235 + G236;' -// 'G238 = G237 * G37;' -// 'G239 = G1 * X38;' -// 'G240 = X14 * X94;' -// 'G241 = G239 + G240;' -// 'G242 = G241 * G42;' -// 'G243 = G234 + G238 + G242;' -// 'G244 = G230 * G243;' -// 'G245 = G220 * G49;' -// 'G246 = G224 * G55;' -// 'G247 = G228 * G60;' -// 'G248 = G245 + G246 + G247;' -// 'G249 = G233 * G63;' -// 'G250 = G237 * G65;' -// 'G251 = G241 * G67;' -// 'G252 = G249 + G250 + G251;' -// 'G253 = G248 * G252;' -// 'G254 = C1 * G253;' -// 'G255 = G244 + G254;' -// 'G256 = G217 * G255;' -// 'G257 = G1 * X35;' -// 'G258 = X14 * X91;' -// 'G259 = G257 + G258;' -// 'G260 = G233 * G42;' -// 'G261 = G237 * G78;' -// 'G262 = G241 * G81;' -// 'G263 = G260 + G261 + G262;' -// 'G264 = G230 * G263;' -// 'G265 = G220 * G87;' -// 'G266 = G224 * G92;' -// 'G267 = G228 * G96;' -// 'G268 = G265 + G266 + G267;' -// 'G269 = G268 * G252;' -// 'G270 = C1 * G269;' -// 'G271 = G264 + G270;' -// 'G272 = G259 * G271;' -// 'G273 = C1 * G272;' -// 'G274 = G256 + G273;' -// 'G275 = G1 * X34;' -// 'G276 = X14 * X90;' -// 'G277 = G275 + G276;' -// 'G278 = G277 * G255;' -// 'G279 = G233 * G110;' -// 'G280 = G237 * G42;' -// 'G281 = G241 * G113;' -// 'G282 = G279 + G280 + G281;' -// 'G283 = G230 * G282;' -// 'G284 = G220 * G119;' -// 'G285 = G224 * G124;' -// 'G286 = G228 * G127;' -// 'G287 = G284 + G285 + G286;' -// 'G288 = G287 * G252;' -// 'G289 = C1 * G288;' -// 'G290 = G283 + G289;' -// 'G291 = G259 * G290;' -// 'G292 = C1 * G291;' -// 'G293 = G278 + G292;' -// 'G294 = G1 * X42;' -// 'G295 = X14 * X98;' -// 'G296 = G294 + G295;' -// 'G297 = G296 * G4;' -// 'G298 = G1 * X43;' -// 'G299 = X14 * X99;' -// 'G300 = G298 + G299;' -// 'G301 = G300 * G138;' -// 'G302 = G297 + G301;' -// 'G303 = G1 * X46;' -// 'G304 = X14 * X102;' -// 'G305 = G303 + G304;' -// 'G306 = G305 * G7;' -// 'G307 = G1 * X47;' -// 'G308 = X14 * X103;' -// 'G309 = G307 + G308;' -// 'G310 = G309 * G141;' -// 'G311 = G306 + G310;' -// 'G312 = G311 * G15;' -// 'G313 = G305 * G19;' -// 'G314 = G309 * G145;' -// 'G315 = G313 + G314;' -// 'G316 = G315 * G20;' -// 'G317 = G305 * G24;' -// 'G318 = G309 * G149;' -// 'G319 = G317 + G318;' -// 'G320 = G319 * G25;' -// 'G321 = G312 + G316 + G320;' -// 'G322 = G1 * X44;' -// 'G323 = X14 * X100;' -// 'G324 = G322 + G323;' -// 'G325 = G324 * G30;' -// 'G326 = G1 * X45;' -// 'G327 = X14 * X101;' -// 'G328 = G326 + G327;' -// 'G329 = G328 * G154;' -// 'G330 = G325 + G329;' -// 'G331 = G330 * G31;' -// 'G332 = G324 * G35;' -// 'G333 = G328 * G158;' -// 'G334 = G332 + G333;' -// 'G335 = G334 * G37;' -// 'G336 = G324 * G41;' -// 'G337 = G328 * G162;' -// 'G338 = G336 + G337;' -// 'G339 = G338 * G42;' -// 'G340 = G331 + G335 + G339;' -// 'G341 = G321 * G340;' -// 'G342 = G311 * G49;' -// 'G343 = G315 * G55;' -// 'G344 = G319 * G60;' -// 'G345 = G342 + G343 + G344;' -// 'G346 = G330 * G63;' -// 'G347 = G334 * G65;' -// 'G348 = G338 * G67;' -// 'G349 = G346 + G347 + G348;' -// 'G350 = G345 * G349;' -// 'G351 = C1 * G350;' -// 'G352 = G341 + G351;' -// 'G353 = G302 * G352;' -// 'G354 = G296 * G76;' -// 'G355 = G300 * G180;' -// 'G356 = G354 + G355;' -// 'G357 = G330 * G42;' -// 'G358 = G334 * G78;' -// 'G359 = G338 * G81;' -// 'G360 = G357 + G358 + G359;' -// 'G361 = G321 * G360;' -// 'G362 = G311 * G87;' -// 'G363 = G315 * G92;' -// 'G364 = G319 * G96;' -// 'G365 = G362 + G363 + G364;' -// 'G366 = G365 * G349;' -// 'G367 = C1 * G366;' -// 'G368 = G361 + G367;' -// 'G369 = G356 * G368;' -// 'G370 = C1 * G369;' -// 'G371 = G353 + G370;' -// 'G372 = G296 * G107;' -// 'G373 = G300 * G198;' -// 'G374 = G372 + G373;' -// 'G375 = G374 * G352;' -// 'G376 = G330 * G110;' -// 'G377 = G334 * G42;' -// 'G378 = G338 * G113;' -// 'G379 = G376 + G377 + G378;' -// 'G380 = G321 * G379;' -// 'G381 = G311 * G119;' -// 'G382 = G315 * G124;' -// 'G383 = G319 * G127;' -// 'G384 = G381 + G382 + G383;' -// 'G385 = G384 * G349;' -// 'G386 = C1 * G385;' -// 'G387 = G380 + G386;' -// 'G388 = G356 * G387;' -// 'G389 = C1 * G388;' -// 'G390 = G375 + G389;' -// 'G391 = G1 * X48;' -// 'G392 = X14 * X104;' -// 'G393 = G391 + G392;' -// 'G394 = G393 * G4;' -// 'G395 = G1 * X49;' -// 'G396 = X14 * X105;' -// 'G397 = G395 + G396;' -// 'G398 = G397 * G217;' -// 'G399 = G394 + G398;' -// 'G400 = G1 * X52;' -// 'G401 = X14 * X108;' -// 'G402 = G400 + G401;' -// 'G403 = G402 * G7;' -// 'G404 = G1 * X53;' -// 'G405 = X14 * X109;' -// 'G406 = G404 + G405;' -// 'G407 = G406 * G220;' -// 'G408 = G403 + G407;' -// 'G409 = G408 * G15;' -// 'G410 = G402 * G19;' -// 'G411 = G406 * G224;' -// 'G412 = G410 + G411;' -// 'G413 = G412 * G20;' -// 'G414 = G402 * G24;' -// 'G415 = G406 * G228;' -// 'G416 = G414 + G415;' -// 'G417 = G416 * G25;' -// 'G418 = G409 + G413 + G417;' -// 'G419 = G1 * X50;' -// 'G420 = X14 * X106;' -// 'G421 = G419 + G420;' -// 'G422 = G421 * G30;' -// 'G423 = G1 * X51;' -// 'G424 = X14 * X107;' -// 'G425 = G423 + G424;' -// 'G426 = G425 * G233;' -// 'G427 = G422 + G426;' -// 'G428 = G427 * G31;' -// 'G429 = G421 * G35;' -// 'G430 = G425 * G237;' -// 'G431 = G429 + G430;' -// 'G432 = G431 * G37;' -// 'G433 = G421 * G41;' -// 'G434 = G425 * G241;' -// 'G435 = G433 + G434;' -// 'G436 = G435 * G42;' -// 'G437 = G428 + G432 + G436;' -// 'G438 = G418 * G437;' -// 'G439 = G408 * G49;' -// 'G440 = G412 * G55;' -// 'G441 = G416 * G60;' -// 'G442 = G439 + G440 + G441;' -// 'G443 = G427 * G63;' -// 'G444 = G431 * G65;' -// 'G445 = G435 * G67;' -// 'G446 = G443 + G444 + G445;' -// 'G447 = G442 * G446;' -// 'G448 = C1 * G447;' -// 'G449 = G438 + G448;' -// 'G450 = G399 * G449;' -// 'G451 = G393 * G76;' -// 'G452 = G397 * G259;' -// 'G453 = G451 + G452;' -// 'G454 = G427 * G42;' -// 'G455 = G431 * G78;' -// 'G456 = G435 * G81;' -// 'G457 = G454 + G455 + G456;' -// 'G458 = G418 * G457;' -// 'G459 = G408 * G87;' -// 'G460 = G412 * G92;' -// 'G461 = G416 * G96;' -// 'G462 = G459 + G460 + G461;' -// 'G463 = G462 * G446;' -// 'G464 = C1 * G463;' -// 'G465 = G458 + G464;' -// 'G466 = G453 * G465;' -// 'G467 = C1 * G466;' -// 'G468 = G450 + G467;' -// 'G469 = G393 * G107;' -// 'G470 = G397 * G277;' -// 'G471 = G469 + G470;' -// 'G472 = G471 * G449;' -// 'G473 = G427 * G110;' -// 'G474 = G431 * G42;' -// 'G475 = G435 * G113;' -// 'G476 = G473 + G474 + G475;' -// 'G477 = G418 * G476;' -// 'G478 = G408 * G119;' -// 'G479 = G412 * G124;' -// 'G480 = G416 * G127;' -// 'G481 = G478 + G479 + G480;' -// 'G482 = G481 * G446;' -// 'G483 = C1 * G482;' -// 'G484 = G477 + G483;' -// 'G485 = G453 * G484;' -// 'G486 = C1 * G485;' -// 'G487 = G472 + G486;' -// 'G488 = G151 * G243;' -// 'G489 = G169 * G252;' -// 'G490 = C1 * G489;' -// 'G491 = G488 + G490;' -// 'G492 = G277 * G491;' -// 'G493 = G151 * G282;' -// 'G494 = G208 * G252;' -// 'G495 = C1 * G494;' -// 'G496 = G493 + G495;' -// 'G497 = G259 * G496;' -// 'G498 = C1 * G497;' -// 'G499 = G492 + G498;' -// 'G500 = G138 * G499;' -// 'G501 = G217 * G491;' -// 'G502 = G151 * G263;' -// 'G503 = G189 * G252;' -// 'G504 = C1 * G503;' -// 'G505 = G502 + G504;' -// 'G506 = G259 * G505;' -// 'G507 = C1 * G506;' -// 'G508 = G501 + G507;' -// 'G509 = G198 * G508;' -// 'G510 = C1 * G509;' -// 'G511 = G500 + G510;' -// 'G512 = G217 * G496;' -// 'G513 = G277 * G505;' -// 'G514 = C1 * G513;' -// 'G515 = G512 + G514;' -// 'G516 = G180 * G515;' -// 'G517 = G511 + G516;' -// 'G518 = G1 * X61;' -// 'G519 = X14 * X117;' -// 'G520 = G518 + G519;' -// 'G521 = G30 * G78;' -// 'G522 = C1 * X0;' -// 'G523 = C2 * G522;' -// 'G524 = G35 * G523;' -// 'G525 = X1 + X1;' -// 'G526 = C1 * G525;' -// 'G527 = G41 * G526;' -// 'G528 = G521 + G524 + G527;' -// 'G529 = G27 * G528;' -// 'G530 = X8 * G525;' -// 'G531 = G30 * G530;' -// 'G532 = X9 * G525;' -// 'G533 = G35 * G532;' -// 'G534 = X10 * G525;' -// 'G535 = G41 * G534;' -// 'G536 = G531 + G533 + G535;' -// 'G537 = G62 * G536;' -// 'G538 = C1 * G537;' -// 'G539 = G529 + G538;' -// 'G540 = G4 * G539;' -// 'G541 = G30 * G525;' -// 'G542 = G35 * G31;' -// 'G543 = G41 * G78;' -// 'G544 = G541 + G542 + G543;' -// 'G545 = G27 * G544;' -// 'G546 = G98 * G536;' -// 'G547 = C1 * G546;' -// 'G548 = G545 + G547;' -// 'G549 = G76 * G548;' -// 'G550 = C1 * G549;' -// 'G551 = G540 + G550;' -// 'G552 = G107 * G539;' -// 'G553 = G35 * G526;' -// 'G554 = C2 * X0;' -// 'G555 = G41 * G554;' -// 'G556 = G32 + G553 + G555;' -// 'G557 = G27 * G556;' -// 'G558 = G129 * G536;' -// 'G559 = C1 * G558;' -// 'G560 = G557 + G559;' -// 'G561 = G76 * G560;' -// 'G562 = C1 * G561;' -// 'G563 = G552 + G562;' -// 'G564 = G154 * G78;' -// 'G565 = G158 * G523;' -// 'G566 = G162 * G526;' -// 'G567 = G564 + G565 + G566;' -// 'G568 = G151 * G567;' -// 'G569 = G154 * G530;' -// 'G570 = G158 * G532;' -// 'G571 = G162 * G534;' -// 'G572 = G569 + G570 + G571;' -// 'G573 = G169 * G572;' -// 'G574 = C1 * G573;' -// 'G575 = G568 + G574;' -// 'G576 = G138 * G575;' -// 'G577 = G154 * G525;' -// 'G578 = G158 * G31;' -// 'G579 = G162 * G78;' -// 'G580 = G577 + G578 + G579;' -// 'G581 = G151 * G580;' -// 'G582 = G189 * G572;' -// 'G583 = C1 * G582;' -// 'G584 = G581 + G583;' -// 'G585 = G180 * G584;' -// 'G586 = C1 * G585;' -// 'G587 = G576 + G586;' -// 'G588 = G198 * G575;' -// 'G589 = G158 * G526;' -// 'G590 = G162 * G554;' -// 'G591 = G155 + G589 + G590;' -// 'G592 = G151 * G591;' -// 'G593 = G208 * G572;' -// 'G594 = C1 * G593;' -// 'G595 = G592 + G594;' -// 'G596 = G180 * G595;' -// 'G597 = C1 * G596;' -// 'G598 = G588 + G597;' -// 'G599 = G233 * G78;' -// 'G600 = G237 * G523;' -// 'G601 = G241 * G526;' -// 'G602 = G599 + G600 + G601;' -// 'G603 = G230 * G602;' -// 'G604 = G233 * G530;' -// 'G605 = G237 * G532;' -// 'G606 = G241 * G534;' -// 'G607 = G604 + G605 + G606;' -// 'G608 = G248 * G607;' -// 'G609 = C1 * G608;' -// 'G610 = G603 + G609;' -// 'G611 = G217 * G610;' -// 'G612 = G233 * G525;' -// 'G613 = G237 * G31;' -// 'G614 = G241 * G78;' -// 'G615 = G612 + G613 + G614;' -// 'G616 = G230 * G615;' -// 'G617 = G268 * G607;' -// 'G618 = C1 * G617;' -// 'G619 = G616 + G618;' -// 'G620 = G259 * G619;' -// 'G621 = C1 * G620;' -// 'G622 = G611 + G621;' -// 'G623 = G277 * G610;' -// 'G624 = G237 * G526;' -// 'G625 = G241 * G554;' -// 'G626 = G234 + G624 + G625;' -// 'G627 = G230 * G626;' -// 'G628 = G287 * G607;' -// 'G629 = C1 * G628;' -// 'G630 = G627 + G629;' -// 'G631 = G259 * G630;' -// 'G632 = C1 * G631;' -// 'G633 = G623 + G632;' -// 'G634 = G330 * G78;' -// 'G635 = G334 * G523;' -// 'G636 = G338 * G526;' -// 'G637 = G634 + G635 + G636;' -// 'G638 = G321 * G637;' -// 'G639 = G330 * G530;' -// 'G640 = G334 * G532;' -// 'G641 = G338 * G534;' -// 'G642 = G639 + G640 + G641;' -// 'G643 = G345 * G642;' -// 'G644 = C1 * G643;' -// 'G645 = G638 + G644;' -// 'G646 = G302 * G645;' -// 'G647 = G330 * G525;' -// 'G648 = G334 * G31;' -// 'G649 = G338 * G78;' -// 'G650 = G647 + G648 + G649;' -// 'G651 = G321 * G650;' -// 'G652 = G365 * G642;' -// 'G653 = C1 * G652;' -// 'G654 = G651 + G653;' -// 'G655 = G356 * G654;' -// 'G656 = C1 * G655;' -// 'G657 = G646 + G656;' -// 'G658 = G374 * G645;' -// 'G659 = G334 * G526;' -// 'G660 = G338 * G554;' -// 'G661 = G331 + G659 + G660;' -// 'G662 = G321 * G661;' -// 'G663 = G384 * G642;' -// 'G664 = C1 * G663;' -// 'G665 = G662 + G664;' -// 'G666 = G356 * G665;' -// 'G667 = C1 * G666;' -// 'G668 = G658 + G667;' -// 'G669 = G427 * G78;' -// 'G670 = G431 * G523;' -// 'G671 = G435 * G526;' -// 'G672 = G669 + G670 + G671;' -// 'G673 = G418 * G672;' -// 'G674 = G427 * G530;' -// 'G675 = G431 * G532;' -// 'G676 = G435 * G534;' -// 'G677 = G674 + G675 + G676;' -// 'G678 = G442 * G677;' -// 'G679 = C1 * G678;' -// 'G680 = G673 + G679;' -// 'G681 = G399 * G680;' -// 'G682 = G427 * G525;' -// 'G683 = G431 * G31;' -// 'G684 = G435 * G78;' -// 'G685 = G682 + G683 + G684;' -// 'G686 = G418 * G685;' -// 'G687 = G462 * G677;' -// 'G688 = C1 * G687;' -// 'G689 = G686 + G688;' -// 'G690 = G453 * G689;' -// 'G691 = C1 * G690;' -// 'G692 = G681 + G691;' -// 'G693 = G471 * G680;' -// 'G694 = G431 * G526;' -// 'G695 = G435 * G554;' -// 'G696 = G428 + G694 + G695;' -// 'G697 = G418 * G696;' -// 'G698 = G481 * G677;' -// 'G699 = C1 * G698;' -// 'G700 = G697 + G699;' -// 'G701 = G453 * G700;' -// 'G702 = C1 * G701;' -// 'G703 = G693 + G702;' -// 'G704 = G151 * G602;' -// 'G705 = G169 * G607;' -// 'G706 = C1 * G705;' -// 'G707 = G704 + G706;' -// 'G708 = G277 * G707;' -// 'G709 = G151 * G626;' -// 'G710 = G208 * G607;' -// 'G711 = C1 * G710;' -// 'G712 = G709 + G711;' -// 'G713 = G259 * G712;' -// 'G714 = C1 * G713;' -// 'G715 = G708 + G714;' -// 'G716 = G138 * G715;' -// 'G717 = G217 * G707;' -// 'G718 = G151 * G615;' -// 'G719 = G189 * G607;' -// 'G720 = C1 * G719;' -// 'G721 = G718 + G720;' -// 'G722 = G259 * G721;' -// 'G723 = C1 * G722;' -// 'G724 = G717 + G723;' -// 'G725 = G198 * G724;' -// 'G726 = C1 * G725;' -// 'G727 = G716 + G726;' -// 'G728 = G217 * G712;' -// 'G729 = G277 * G721;' -// 'G730 = C1 * G729;' -// 'G731 = G728 + G730;' -// 'G732 = G180 * G731;' -// 'G733 = G727 + G732;' -// 'G734 = G1 * X62;' -// 'G735 = X14 * X118;' -// 'G736 = G734 + G735;' -// 'G737 = G30 * G554;' -// 'G738 = X2 + X2;' -// 'G739 = C1 * G738;' -// 'G740 = G41 * G739;' -// 'G741 = G737 + G79 + G740;' -// 'G742 = G27 * G741;' -// 'G743 = X8 * G738;' -// 'G744 = G30 * G743;' -// 'G745 = X9 * G738;' -// 'G746 = G35 * G745;' -// 'G747 = X10 * G738;' -// 'G748 = G41 * G747;' -// 'G749 = G744 + G746 + G748;' -// 'G750 = G62 * G749;' -// 'G751 = C1 * G750;' -// 'G752 = G742 + G751;' -// 'G753 = G4 * G752;' -// 'G754 = G30 * G739;' -// 'G755 = G35 * G113;' -// 'G756 = G41 * G523;' -// 'G757 = G754 + G755 + G756;' -// 'G758 = G27 * G757;' -// 'G759 = G98 * G749;' -// 'G760 = C1 * G759;' -// 'G761 = G758 + G760;' -// 'G762 = G76 * G761;' -// 'G763 = C1 * G762;' -// 'G764 = G753 + G763;' -// 'G765 = G107 * G752;' -// 'G766 = G30 * G113;' -// 'G767 = G35 * G738;' -// 'G768 = G766 + G767 + G543;' -// 'G769 = G27 * G768;' -// 'G770 = G129 * G749;' -// 'G771 = C1 * G770;' -// 'G772 = G769 + G771;' -// 'G773 = G76 * G772;' -// 'G774 = C1 * G773;' -// 'G775 = G765 + G774;' -// 'G776 = G154 * G554;' -// 'G777 = G162 * G739;' -// 'G778 = G776 + G182 + G777;' -// 'G779 = G151 * G778;' -// 'G780 = G154 * G743;' -// 'G781 = G158 * G745;' -// 'G782 = G162 * G747;' -// 'G783 = G780 + G781 + G782;' -// 'G784 = G169 * G783;' -// 'G785 = C1 * G784;' -// 'G786 = G779 + G785;' -// 'G787 = G138 * G786;' -// 'G788 = G154 * G739;' -// 'G789 = G158 * G113;' -// 'G790 = G162 * G523;' -// 'G791 = G788 + G789 + G790;' -// 'G792 = G151 * G791;' -// 'G793 = G189 * G783;' -// 'G794 = C1 * G793;' -// 'G795 = G792 + G794;' -// 'G796 = G180 * G795;' -// 'G797 = C1 * G796;' -// 'G798 = G787 + G797;' -// 'G799 = G198 * G786;' -// 'G800 = G154 * G113;' -// 'G801 = G158 * G738;' -// 'G802 = G800 + G801 + G579;' -// 'G803 = G151 * G802;' -// 'G804 = G208 * G783;' -// 'G805 = C1 * G804;' -// 'G806 = G803 + G805;' -// 'G807 = G180 * G806;' -// 'G808 = C1 * G807;' -// 'G809 = G799 + G808;' -// 'G810 = G233 * G554;' -// 'G811 = G241 * G739;' -// 'G812 = G810 + G261 + G811;' -// 'G813 = G230 * G812;' -// 'G814 = G233 * G743;' -// 'G815 = G237 * G745;' -// 'G816 = G241 * G747;' -// 'G817 = G814 + G815 + G816;' -// 'G818 = G248 * G817;' -// 'G819 = C1 * G818;' -// 'G820 = G813 + G819;' -// 'G821 = G217 * G820;' -// 'G822 = G233 * G739;' -// 'G823 = G237 * G113;' -// 'G824 = G241 * G523;' -// 'G825 = G822 + G823 + G824;' -// 'G826 = G230 * G825;' -// 'G827 = G268 * G817;' -// 'G828 = C1 * G827;' -// 'G829 = G826 + G828;' -// 'G830 = G259 * G829;' -// 'G831 = C1 * G830;' -// 'G832 = G821 + G831;' -// 'G833 = G277 * G820;' -// 'G834 = G233 * G113;' -// 'G835 = G237 * G738;' -// 'G836 = G834 + G835 + G614;' -// 'G837 = G230 * G836;' -// 'G838 = G287 * G817;' -// 'G839 = C1 * G838;' -// 'G840 = G837 + G839;' -// 'G841 = G259 * G840;' -// 'G842 = C1 * G841;' -// 'G843 = G833 + G842;' -// 'G844 = G330 * G554;' -// 'G845 = G338 * G739;' -// 'G846 = G844 + G358 + G845;' -// 'G847 = G321 * G846;' -// 'G848 = G330 * G743;' -// 'G849 = G334 * G745;' -// 'G850 = G338 * G747;' -// 'G851 = G848 + G849 + G850;' -// 'G852 = G345 * G851;' -// 'G853 = C1 * G852;' -// 'G854 = G847 + G853;' -// 'G855 = G302 * G854;' -// 'G856 = G330 * G739;' -// 'G857 = G334 * G113;' -// 'G858 = G338 * G523;' -// 'G859 = G856 + G857 + G858;' -// 'G860 = G321 * G859;' -// 'G861 = G365 * G851;' -// 'G862 = C1 * G861;' -// 'G863 = G860 + G862;' -// 'G864 = G356 * G863;' -// 'G865 = C1 * G864;' -// 'G866 = G855 + G865;' -// 'G867 = G374 * G854;' -// 'G868 = G330 * G113;' -// 'G869 = G334 * G738;' -// 'G870 = G868 + G869 + G649;' -// 'G871 = G321 * G870;' -// 'G872 = G384 * G851;' -// 'G873 = C1 * G872;' -// 'G874 = G871 + G873;' -// 'G875 = G356 * G874;' -// 'G876 = C1 * G875;' -// 'G877 = G867 + G876;' -// 'G878 = G427 * G554;' -// 'G879 = G435 * G739;' -// 'G880 = G878 + G455 + G879;' -// 'G881 = G418 * G880;' -// 'G882 = G427 * G743;' -// 'G883 = G431 * G745;' -// 'G884 = G435 * G747;' -// 'G885 = G882 + G883 + G884;' -// 'G886 = G442 * G885;' -// 'G887 = C1 * G886;' -// 'G888 = G881 + G887;' -// 'G889 = G399 * G888;' -// 'G890 = G427 * G739;' -// 'G891 = G431 * G113;' -// 'G892 = G435 * G523;' -// 'G893 = G890 + G891 + G892;' -// 'G894 = G418 * G893;' -// 'G895 = G462 * G885;' -// 'G896 = C1 * G895;' -// 'G897 = G894 + G896;' -// 'G898 = G453 * G897;' -// 'G899 = C1 * G898;' -// 'G900 = G889 + G899;' -// 'G901 = G471 * G888;' -// 'G902 = G427 * G113;' -// 'G903 = G431 * G738;' -// 'G904 = G902 + G903 + G684;' -// 'G905 = G418 * G904;' -// 'G906 = G481 * G885;' -// 'G907 = C1 * G906;' -// 'G908 = G905 + G907;' -// 'G909 = G453 * G908;' -// 'G910 = C1 * G909;' -// 'G911 = G901 + G910;' -// 'G912 = G151 * G812;' -// 'G913 = G169 * G817;' -// 'G914 = C1 * G913;' -// 'G915 = G912 + G914;' -// 'G916 = G277 * G915;' -// 'G917 = G151 * G836;' -// 'G918 = G208 * G817;' -// 'G919 = C1 * G918;' -// 'G920 = G917 + G919;' -// 'G921 = G259 * G920;' -// 'G922 = C1 * G921;' -// 'G923 = G916 + G922;' -// 'G924 = G138 * G923;' -// 'G925 = G217 * G915;' -// 'G926 = G151 * G825;' -// 'G927 = G189 * G817;' -// 'G928 = C1 * G927;' -// 'G929 = G926 + G928;' -// 'G930 = G259 * G929;' -// 'G931 = C1 * G930;' -// 'G932 = G925 + G931;' -// 'G933 = G198 * G932;' -// 'G934 = C1 * G933;' -// 'G935 = G924 + G934;' -// 'G936 = G217 * G920;' -// 'G937 = G277 * G929;' -// 'G938 = C1 * G937;' -// 'G939 = G936 + G938;' -// 'G940 = G180 * G939;' -// 'G941 = G935 + G940;' -// 'G942 = G1 * X63;' -// 'G943 = X14 * X119;' -// 'G944 = G942 + G943;' -// 'G945 = X3 + X3;' -// 'G946 = G41 * G945;' -// 'G947 = G766 + G542 + G946;' -// 'G948 = G27 * G947;' -// 'G949 = X8 * G945;' -// 'G950 = G30 * G949;' -// 'G951 = X9 * G945;' -// 'G952 = G35 * G951;' -// 'G953 = X10 * G945;' -// 'G954 = G41 * G953;' -// 'G955 = G950 + G952 + G954;' -// 'G956 = G62 * G955;' -// 'G957 = C1 * G956;' -// 'G958 = G948 + G957;' -// 'G959 = G4 * G958;' -// 'G960 = C1 * G945;' -// 'G961 = G30 * G960;' -// 'G962 = G35 * G554;' -// 'G963 = G961 + G962 + G114;' -// 'G964 = G27 * G963;' -// 'G965 = G98 * G955;' -// 'G966 = C1 * G965;' -// 'G967 = G964 + G966;' -// 'G968 = G76 * G967;' -// 'G969 = C1 * G968;' -// 'G970 = G959 + G969;' -// 'G971 = G107 * G958;' -// 'G972 = G30 * G523;' -// 'G973 = G35 * G960;' -// 'G974 = G41 * G31;' -// 'G975 = G972 + G973 + G974;' -// 'G976 = G27 * G975;' -// 'G977 = G129 * G955;' -// 'G978 = C1 * G977;' -// 'G979 = G976 + G978;' -// 'G980 = G76 * G979;' -// 'G981 = C1 * G980;' -// 'G982 = G971 + G981;' -// 'G983 = G162 * G945;' -// 'G984 = G800 + G578 + G983;' -// 'G985 = G151 * G984;' -// 'G986 = G154 * G949;' -// 'G987 = G158 * G951;' -// 'G988 = G162 * G953;' -// 'G989 = G986 + G987 + G988;' -// 'G990 = G169 * G989;' -// 'G991 = C1 * G990;' -// 'G992 = G985 + G991;' -// 'G993 = G138 * G992;' -// 'G994 = G154 * G960;' -// 'G995 = G158 * G554;' -// 'G996 = G994 + G995 + G202;' -// 'G997 = G151 * G996;' -// 'G998 = G189 * G989;' -// 'G999 = C1 * G998;' -// 'G1000 = G997 + G999;' -// 'G1001 = G180 * G1000;' -// 'G1002 = C1 * G1001;' -// 'G1003 = G993 + G1002;' -// 'G1004 = G198 * G992;' -// 'G1005 = G154 * G523;' -// 'G1006 = G158 * G960;' -// 'G1007 = G162 * G31;' -// 'G1008 = G1005 + G1006 + G1007;' -// 'G1009 = G151 * G1008;' -// 'G1010 = G208 * G989;' -// 'G1011 = C1 * G1010;' -// 'G1012 = G1009 + G1011;' -// 'G1013 = G180 * G1012;' -// 'G1014 = C1 * G1013;' -// 'G1015 = G1004 + G1014;' -// 'G1016 = G241 * G945;' -// 'G1017 = G834 + G613 + G1016;' -// 'G1018 = G230 * G1017;' -// 'G1019 = G233 * G949;' -// 'G1020 = G237 * G951;' -// 'G1021 = G241 * G953;' -// 'G1022 = G1019 + G1020 + G1021;' -// 'G1023 = G248 * G1022;' -// 'G1024 = C1 * G1023;' -// 'G1025 = G1018 + G1024;' -// 'G1026 = G217 * G1025;' -// 'G1027 = G233 * G960;' -// 'G1028 = G237 * G554;' -// 'G1029 = G1027 + G1028 + G281;' -// 'G1030 = G230 * G1029;' -// 'G1031 = G268 * G1022;' -// 'G1032 = C1 * G1031;' -// 'G1033 = G1030 + G1032;' -// 'G1034 = G259 * G1033;' -// 'G1035 = C1 * G1034;' -// 'G1036 = G1026 + G1035;' -// 'G1037 = G277 * G1025;' -// 'G1038 = G233 * G523;' -// 'G1039 = G237 * G960;' -// 'G1040 = G241 * G31;' -// 'G1041 = G1038 + G1039 + G1040;' -// 'G1042 = G230 * G1041;' -// 'G1043 = G287 * G1022;' -// 'G1044 = C1 * G1043;' -// 'G1045 = G1042 + G1044;' -// 'G1046 = G259 * G1045;' -// 'G1047 = C1 * G1046;' -// 'G1048 = G1037 + G1047;' -// 'G1049 = G338 * G945;' -// 'G1050 = G868 + G648 + G1049;' -// 'G1051 = G321 * G1050;' -// 'G1052 = G330 * G949;' -// 'G1053 = G334 * G951;' -// 'G1054 = G338 * G953;' -// 'G1055 = G1052 + G1053 + G1054;' -// 'G1056 = G345 * G1055;' -// 'G1057 = C1 * G1056;' -// 'G1058 = G1051 + G1057;' -// 'G1059 = G302 * G1058;' -// 'G1060 = G330 * G960;' -// 'G1061 = G334 * G554;' -// 'G1062 = G1060 + G1061 + G378;' -// 'G1063 = G321 * G1062;' -// 'G1064 = G365 * G1055;' -// 'G1065 = C1 * G1064;' -// 'G1066 = G1063 + G1065;' -// 'G1067 = G356 * G1066;' -// 'G1068 = C1 * G1067;' -// 'G1069 = G1059 + G1068;' -// 'G1070 = G374 * G1058;' -// 'G1071 = G330 * G523;' -// 'G1072 = G334 * G960;' -// 'G1073 = G338 * G31;' -// 'G1074 = G1071 + G1072 + G1073;' -// 'G1075 = G321 * G1074;' -// 'G1076 = G384 * G1055;' -// 'G1077 = C1 * G1076;' -// 'G1078 = G1075 + G1077;' -// 'G1079 = G356 * G1078;' -// 'G1080 = C1 * G1079;' -// 'G1081 = G1070 + G1080;' -// 'G1082 = G435 * G945;' -// 'G1083 = G902 + G683 + G1082;' -// 'G1084 = G418 * G1083;' -// 'G1085 = G427 * G949;' -// 'G1086 = G431 * G951;' -// 'G1087 = G435 * G953;' -// 'G1088 = G1085 + G1086 + G1087;' -// 'G1089 = G442 * G1088;' -// 'G1090 = C1 * G1089;' -// 'G1091 = G1084 + G1090;' -// 'G1092 = G399 * G1091;' -// 'G1093 = G427 * G960;' -// 'G1094 = G431 * G554;' -// 'G1095 = G1093 + G1094 + G475;' -// 'G1096 = G418 * G1095;' -// 'G1097 = G462 * G1088;' -// 'G1098 = C1 * G1097;' -// 'G1099 = G1096 + G1098;' -// 'G1100 = G453 * G1099;' -// 'G1101 = C1 * G1100;' -// 'G1102 = G1092 + G1101;' -// 'G1103 = G471 * G1091;' -// 'G1104 = G427 * G523;' -// 'G1105 = G431 * G960;' -// 'G1106 = G435 * G31;' -// 'G1107 = G1104 + G1105 + G1106;' -// 'G1108 = G418 * G1107;' -// 'G1109 = G481 * G1088;' -// 'G1110 = C1 * G1109;' -// 'G1111 = G1108 + G1110;' -// 'G1112 = G453 * G1111;' -// 'G1113 = C1 * G1112;' -// 'G1114 = G1103 + G1113;' -// 'G1115 = G151 * G1017;' -// 'G1116 = G169 * G1022;' -// 'G1117 = C1 * G1116;' -// 'G1118 = G1115 + G1117;' -// 'G1119 = G277 * G1118;' -// 'G1120 = G151 * G1041;' -// 'G1121 = G208 * G1022;' -// 'G1122 = C1 * G1121;' -// 'G1123 = G1120 + G1122;' -// 'G1124 = G259 * G1123;' -// 'G1125 = C1 * G1124;' -// 'G1126 = G1119 + G1125;' -// 'G1127 = G138 * G1126;' -// 'G1128 = G217 * G1118;' -// 'G1129 = G151 * G1029;' -// 'G1130 = G189 * G1022;' -// 'G1131 = C1 * G1130;' -// 'G1132 = G1129 + G1131;' -// 'G1133 = G259 * G1132;' -// 'G1134 = C1 * G1133;' -// 'G1135 = G1128 + G1134;' -// 'G1136 = G198 * G1135;' -// 'G1137 = C1 * G1136;' -// 'G1138 = G1127 + G1137;' -// 'G1139 = G217 * G1123;' -// 'G1140 = G277 * G1132;' -// 'G1141 = C1 * G1140;' -// 'G1142 = G1139 + G1141;' -// 'G1143 = G180 * G1142;' -// 'G1144 = G1138 + G1143;' -// 'G1145 = G1 * X64;' -// 'G1146 = X14 * X120;' -// 'G1147 = G1145 + G1146;' -// 'G1148 = X1 * X3;' -// 'G1149 = X0 * X2;' -// 'G1150 = G1148 + G1149;' -// 'G1151 = C2 * G1150;' -// 'G1152 = G30 * G1151;' -// 'G1153 = X2 * X3;' -// 'G1154 = X0 * X1;' -// 'G1155 = C1 * G1154;' -// 'G1156 = G1153 + G1155;' -// 'G1157 = C2 * G1156;' -// 'G1158 = G35 * G1157;' -// 'G1159 = X0 * X0;' -// 'G1160 = X3 * X3;' -// 'G1161 = G1159 + G1160;' -// 'G1162 = X1 * X1;' -// 'G1163 = X2 * X2;' -// 'G1164 = G1162 + G1163;' -// 'G1165 = C1 * G1164;' -// 'G1166 = G1161 + G1165;' -// 'G1167 = G41 * G1166;' -// 'G1168 = G1152 + G1158 + G1167;' -// 'G1169 = X4 + X4;' -// 'G1170 = X11 * G1169;' -// 'G1171 = G7 * G1170;' -// 'G1172 = X12 * G1169;' -// 'G1173 = G19 * G1172;' -// 'G1174 = X13 * G1169;' -// 'G1175 = G24 * G1174;' -// 'G1176 = G1171 + G1173 + G1175;' -// 'G1177 = G1168 * G1176;' -// 'G1178 = G1159 + G1162;' -// 'G1179 = G1178 + G1163;' -// 'G1180 = G1179 + G1160;' -// 'G1181 = G1180 * X8;' -// 'G1182 = G30 * G1181;' -// 'G1183 = G1180 * X9;' -// 'G1184 = G35 * G1183;' -// 'G1185 = G1180 * X10;' -// 'G1186 = G41 * G1185;' -// 'G1187 = G1182 + G1184 + G1186;' -// 'G1188 = C2 * X6;' -// 'G1189 = G7 * G1188;' -// 'G1190 = C1 * X5;' -// 'G1191 = C2 * G1190;' -// 'G1192 = G19 * G1191;' -// 'G1193 = G24 * G1169;' -// 'G1194 = G1189 + G1192 + G1193;' -// 'G1195 = G1187 * G1194;' -// 'G1196 = C1 * G1195;' -// 'G1197 = G1177 + G1196;' -// 'G1198 = G4 * G1197;' -// 'G1199 = G1163 + G1160;' -// 'G1200 = C1 * G1199;' -// 'G1201 = G1178 + G1200;' -// 'G1202 = G30 * G1201;' -// 'G1203 = X1 * X2;' -// 'G1204 = X0 * X3;' -// 'G1205 = G1203 + G1204;' -// 'G1206 = C2 * G1205;' -// 'G1207 = G35 * G1206;' -// 'G1208 = C1 * G1149;' -// 'G1209 = G1148 + G1208;' -// 'G1210 = C2 * G1209;' -// 'G1211 = G41 * G1210;' -// 'G1212 = G1202 + G1207 + G1211;' -// 'G1213 = G1212 * G1176;' -// 'G1214 = G7 * G1169;' -// 'G1215 = C2 * X7;' -// 'G1216 = G19 * G1215;' -// 'G1217 = C1 * X6;' -// 'G1218 = C2 * G1217;' -// 'G1219 = G24 * G1218;' -// 'G1220 = G1214 + G1216 + G1219;' -// 'G1221 = G1187 * G1220;' -// 'G1222 = C1 * G1221;' -// 'G1223 = G1213 + G1222;' -// 'G1224 = G76 * G1223;' -// 'G1225 = C1 * G1224;' -// 'G1226 = G1198 + G1225;' -// 'G1227 = G107 * G1197;' -// 'G1228 = C1 * G1204;' -// 'G1229 = G1203 + G1228;' -// 'G1230 = C2 * G1229;' -// 'G1231 = G30 * G1230;' -// 'G1232 = G1159 + G1163;' -// 'G1233 = G1162 + G1160;' -// 'G1234 = C1 * G1233;' -// 'G1235 = G1232 + G1234;' -// 'G1236 = G35 * G1235;' -// 'G1237 = G1153 + G1154;' -// 'G1238 = C2 * G1237;' -// 'G1239 = G41 * G1238;' -// 'G1240 = G1231 + G1236 + G1239;' -// 'G1241 = G1240 * G1176;' -// 'G1242 = C1 * X7;' -// 'G1243 = C2 * G1242;' -// 'G1244 = G7 * G1243;' -// 'G1245 = G19 * G1169;' -// 'G1246 = C2 * X5;' -// 'G1247 = G24 * G1246;' -// 'G1248 = G1244 + G1245 + G1247;' -// 'G1249 = G1187 * G1248;' -// 'G1250 = C1 * G1249;' -// 'G1251 = G1241 + G1250;' -// 'G1252 = G76 * G1251;' -// 'G1253 = C1 * G1252;' -// 'G1254 = G1227 + G1253;' -// 'G1255 = G154 * G1151;' -// 'G1256 = G158 * G1157;' -// 'G1257 = G162 * G1166;' -// 'G1258 = G1255 + G1256 + G1257;' -// 'G1259 = G141 * G1170;' -// 'G1260 = G145 * G1172;' -// 'G1261 = G149 * G1174;' -// 'G1262 = G1259 + G1260 + G1261;' -// 'G1263 = G1258 * G1262;' -// 'G1264 = G154 * G1181;' -// 'G1265 = G158 * G1183;' -// 'G1266 = G162 * G1185;' -// 'G1267 = G1264 + G1265 + G1266;' -// 'G1268 = G141 * G1188;' -// 'G1269 = G145 * G1191;' -// 'G1270 = G149 * G1169;' -// 'G1271 = G1268 + G1269 + G1270;' -// 'G1272 = G1267 * G1271;' -// 'G1273 = C1 * G1272;' -// 'G1274 = G1263 + G1273;' -// 'G1275 = G138 * G1274;' -// 'G1276 = G154 * G1201;' -// 'G1277 = G158 * G1206;' -// 'G1278 = G162 * G1210;' -// 'G1279 = G1276 + G1277 + G1278;' -// 'G1280 = G1279 * G1262;' -// 'G1281 = G141 * G1169;' -// 'G1282 = G145 * G1215;' -// 'G1283 = G149 * G1218;' -// 'G1284 = G1281 + G1282 + G1283;' -// 'G1285 = G1267 * G1284;' -// 'G1286 = C1 * G1285;' -// 'G1287 = G1280 + G1286;' -// 'G1288 = G180 * G1287;' -// 'G1289 = C1 * G1288;' -// 'G1290 = G1275 + G1289;' -// 'G1291 = G198 * G1274;' -// 'G1292 = G154 * G1230;' -// 'G1293 = G158 * G1235;' -// 'G1294 = G162 * G1238;' -// 'G1295 = G1292 + G1293 + G1294;' -// 'G1296 = G1295 * G1262;' -// 'G1297 = G141 * G1243;' -// 'G1298 = G145 * G1169;' -// 'G1299 = G149 * G1246;' -// 'G1300 = G1297 + G1298 + G1299;' -// 'G1301 = G1267 * G1300;' -// 'G1302 = C1 * G1301;' -// 'G1303 = G1296 + G1302;' -// 'G1304 = G180 * G1303;' -// 'G1305 = C1 * G1304;' -// 'G1306 = G1291 + G1305;' -// 'G1307 = G233 * G1151;' -// 'G1308 = G237 * G1157;' -// 'G1309 = G241 * G1166;' -// 'G1310 = G1307 + G1308 + G1309;' -// 'G1311 = G220 * G1170;' -// 'G1312 = G224 * G1172;' -// 'G1313 = G228 * G1174;' -// 'G1314 = G1311 + G1312 + G1313;' -// 'G1315 = G1310 * G1314;' -// 'G1316 = G233 * G1181;' -// 'G1317 = G237 * G1183;' -// 'G1318 = G241 * G1185;' -// 'G1319 = G1316 + G1317 + G1318;' -// 'G1320 = G220 * G1188;' -// 'G1321 = G224 * G1191;' -// 'G1322 = G228 * G1169;' -// 'G1323 = G1320 + G1321 + G1322;' -// 'G1324 = G1319 * G1323;' -// 'G1325 = C1 * G1324;' -// 'G1326 = G1315 + G1325;' -// 'G1327 = G217 * G1326;' -// 'G1328 = G233 * G1201;' -// 'G1329 = G237 * G1206;' -// 'G1330 = G241 * G1210;' -// 'G1331 = G1328 + G1329 + G1330;' -// 'G1332 = G1331 * G1314;' -// 'G1333 = G220 * G1169;' -// 'G1334 = G224 * G1215;' -// 'G1335 = G228 * G1218;' -// 'G1336 = G1333 + G1334 + G1335;' -// 'G1337 = G1319 * G1336;' -// 'G1338 = C1 * G1337;' -// 'G1339 = G1332 + G1338;' -// 'G1340 = G259 * G1339;' -// 'G1341 = C1 * G1340;' -// 'G1342 = G1327 + G1341;' -// 'G1343 = G277 * G1326;' -// 'G1344 = G233 * G1230;' -// 'G1345 = G237 * G1235;' -// 'G1346 = G241 * G1238;' -// 'G1347 = G1344 + G1345 + G1346;' -// 'G1348 = G1347 * G1314;' -// 'G1349 = G220 * G1243;' -// 'G1350 = G224 * G1169;' -// 'G1351 = G228 * G1246;' -// 'G1352 = G1349 + G1350 + G1351;' -// 'G1353 = G1319 * G1352;' -// 'G1354 = C1 * G1353;' -// 'G1355 = G1348 + G1354;' -// 'G1356 = G259 * G1355;' -// 'G1357 = C1 * G1356;' -// 'G1358 = G1343 + G1357;' -// 'G1359 = G330 * G1151;' -// 'G1360 = G334 * G1157;' -// 'G1361 = G338 * G1166;' -// 'G1362 = G1359 + G1360 + G1361;' -// 'G1363 = G311 * G1170;' -// 'G1364 = G315 * G1172;' -// 'G1365 = G319 * G1174;' -// 'G1366 = G1363 + G1364 + G1365;' -// 'G1367 = G1362 * G1366;' -// 'G1368 = G330 * G1181;' -// 'G1369 = G334 * G1183;' -// 'G1370 = G338 * G1185;' -// 'G1371 = G1368 + G1369 + G1370;' -// 'G1372 = G311 * G1188;' -// 'G1373 = G315 * G1191;' -// 'G1374 = G319 * G1169;' -// 'G1375 = G1372 + G1373 + G1374;' -// 'G1376 = G1371 * G1375;' -// 'G1377 = C1 * G1376;' -// 'G1378 = G1367 + G1377;' -// 'G1379 = G302 * G1378;' -// 'G1380 = G330 * G1201;' -// 'G1381 = G334 * G1206;' -// 'G1382 = G338 * G1210;' -// 'G1383 = G1380 + G1381 + G1382;' -// 'G1384 = G1383 * G1366;' -// 'G1385 = G311 * G1169;' -// 'G1386 = G315 * G1215;' -// 'G1387 = G319 * G1218;' -// 'G1388 = G1385 + G1386 + G1387;' -// 'G1389 = G1371 * G1388;' -// 'G1390 = C1 * G1389;' -// 'G1391 = G1384 + G1390;' -// 'G1392 = G356 * G1391;' -// 'G1393 = C1 * G1392;' -// 'G1394 = G1379 + G1393;' -// 'G1395 = G374 * G1378;' -// 'G1396 = G330 * G1230;' -// 'G1397 = G334 * G1235;' -// 'G1398 = G338 * G1238;' -// 'G1399 = G1396 + G1397 + G1398;' -// 'G1400 = G1399 * G1366;' -// 'G1401 = G311 * G1243;' -// 'G1402 = G315 * G1169;' -// 'G1403 = G319 * G1246;' -// 'G1404 = G1401 + G1402 + G1403;' -// 'G1405 = G1371 * G1404;' -// 'G1406 = C1 * G1405;' -// 'G1407 = G1400 + G1406;' -// 'G1408 = G356 * G1407;' -// 'G1409 = C1 * G1408;' -// 'G1410 = G1395 + G1409;' -// 'G1411 = G427 * G1151;' -// 'G1412 = G431 * G1157;' -// 'G1413 = G435 * G1166;' -// 'G1414 = G1411 + G1412 + G1413;' -// 'G1415 = G408 * G1170;' -// 'G1416 = G412 * G1172;' -// 'G1417 = G416 * G1174;' -// 'G1418 = G1415 + G1416 + G1417;' -// 'G1419 = G1414 * G1418;' -// 'G1420 = G427 * G1181;' -// 'G1421 = G431 * G1183;' -// 'G1422 = G435 * G1185;' -// 'G1423 = G1420 + G1421 + G1422;' -// 'G1424 = G408 * G1188;' -// 'G1425 = G412 * G1191;' -// 'G1426 = G416 * G1169;' -// 'G1427 = G1424 + G1425 + G1426;' -// 'G1428 = G1423 * G1427;' -// 'G1429 = C1 * G1428;' -// 'G1430 = G1419 + G1429;' -// 'G1431 = G399 * G1430;' -// 'G1432 = G427 * G1201;' -// 'G1433 = G431 * G1206;' -// 'G1434 = G435 * G1210;' -// 'G1435 = G1432 + G1433 + G1434;' -// 'G1436 = G1435 * G1418;' -// 'G1437 = G408 * G1169;' -// 'G1438 = G412 * G1215;' -// 'G1439 = G416 * G1218;' -// 'G1440 = G1437 + G1438 + G1439;' -// 'G1441 = G1423 * G1440;' -// 'G1442 = C1 * G1441;' -// 'G1443 = G1436 + G1442;' -// 'G1444 = G453 * G1443;' -// 'G1445 = C1 * G1444;' -// 'G1446 = G1431 + G1445;' -// 'G1447 = G471 * G1430;' -// 'G1448 = G427 * G1230;' -// 'G1449 = G431 * G1235;' -// 'G1450 = G435 * G1238;' -// 'G1451 = G1448 + G1449 + G1450;' -// 'G1452 = G1451 * G1418;' -// 'G1453 = G408 * G1243;' -// 'G1454 = G412 * G1169;' -// 'G1455 = G416 * G1246;' -// 'G1456 = G1453 + G1454 + G1455;' -// 'G1457 = G1423 * G1456;' -// 'G1458 = C1 * G1457;' -// 'G1459 = G1452 + G1458;' -// 'G1460 = G453 * G1459;' -// 'G1461 = C1 * G1460;' -// 'G1462 = G1447 + G1461;' -// 'G1463 = G1310 * G1262;' -// 'G1464 = G1319 * G1271;' -// 'G1465 = C1 * G1464;' -// 'G1466 = G1463 + G1465;' -// 'G1467 = G277 * G1466;' -// 'G1468 = G1347 * G1262;' -// 'G1469 = G1319 * G1300;' -// 'G1470 = C1 * G1469;' -// 'G1471 = G1468 + G1470;' -// 'G1472 = G259 * G1471;' -// 'G1473 = C1 * G1472;' -// 'G1474 = G1467 + G1473;' -// 'G1475 = G138 * G1474;' -// 'G1476 = G217 * G1466;' -// 'G1477 = G1331 * G1262;' -// 'G1478 = G1319 * G1284;' -// 'G1479 = C1 * G1478;' -// 'G1480 = G1477 + G1479;' -// 'G1481 = G259 * G1480;' -// 'G1482 = C1 * G1481;' -// 'G1483 = G1476 + G1482;' -// 'G1484 = G198 * G1483;' -// 'G1485 = C1 * G1484;' -// 'G1486 = G1475 + G1485;' -// 'G1487 = G217 * G1471;' -// 'G1488 = G277 * G1480;' -// 'G1489 = C1 * G1488;' -// 'G1490 = G1487 + G1489;' -// 'G1491 = G180 * G1490;' -// 'G1492 = G1486 + G1491;' -// 'G1493 = G1 * X66;' -// 'G1494 = X14 * X122;' -// 'G1495 = G1493 + G1494;' -// 'G1496 = X5 + X5;' -// 'G1497 = X11 * G1496;' -// 'G1498 = G7 * G1497;' -// 'G1499 = X12 * G1496;' -// 'G1500 = G19 * G1499;' -// 'G1501 = X13 * G1496;' -// 'G1502 = G24 * G1501;' -// 'G1503 = G1498 + G1500 + G1502;' -// 'G1504 = G1168 * G1503;' -// 'G1505 = G7 * G1215;' -// 'G1506 = C1 * X4;' -// 'G1507 = C2 * G1506;' -// 'G1508 = G19 * G1507;' -// 'G1509 = C1 * G1496;' -// 'G1510 = G24 * G1509;' -// 'G1511 = G1505 + G1508 + G1510;' -// 'G1512 = G1187 * G1511;' -// 'G1513 = C1 * G1512;' -// 'G1514 = G1504 + G1513;' -// 'G1515 = G4 * G1514;' -// 'G1516 = G1212 * G1503;' -// 'G1517 = G7 * G1496;' -// 'G1518 = G19 * G1188;' -// 'G1519 = G24 * G1215;' -// 'G1520 = G1517 + G1518 + G1519;' -// 'G1521 = G1187 * G1520;' -// 'G1522 = C1 * G1521;' -// 'G1523 = G1516 + G1522;' -// 'G1524 = G76 * G1523;' -// 'G1525 = C1 * G1524;' -// 'G1526 = G1515 + G1525;' -// 'G1527 = G107 * G1514;' -// 'G1528 = G1240 * G1503;' -// 'G1529 = G19 * G1509;' -// 'G1530 = C2 * X4;' -// 'G1531 = G24 * G1530;' -// 'G1532 = G1189 + G1529 + G1531;' -// 'G1533 = G1187 * G1532;' -// 'G1534 = C1 * G1533;' -// 'G1535 = G1528 + G1534;' -// 'G1536 = G76 * G1535;' -// 'G1537 = C1 * G1536;' -// 'G1538 = G1527 + G1537;' -// 'G1539 = G141 * G1497;' -// 'G1540 = G145 * G1499;' -// 'G1541 = G149 * G1501;' -// 'G1542 = G1539 + G1540 + G1541;' -// 'G1543 = G1258 * G1542;' -// 'G1544 = G141 * G1215;' -// 'G1545 = G145 * G1507;' -// 'G1546 = G149 * G1509;' -// 'G1547 = G1544 + G1545 + G1546;' -// 'G1548 = G1267 * G1547;' -// 'G1549 = C1 * G1548;' -// 'G1550 = G1543 + G1549;' -// 'G1551 = G138 * G1550;' -// 'G1552 = G1279 * G1542;' -// 'G1553 = G141 * G1496;' -// 'G1554 = G145 * G1188;' -// 'G1555 = G149 * G1215;' -// 'G1556 = G1553 + G1554 + G1555;' -// 'G1557 = G1267 * G1556;' -// 'G1558 = C1 * G1557;' -// 'G1559 = G1552 + G1558;' -// 'G1560 = G180 * G1559;' -// 'G1561 = C1 * G1560;' -// 'G1562 = G1551 + G1561;' -// 'G1563 = G198 * G1550;' -// 'G1564 = G1295 * G1542;' -// 'G1565 = G145 * G1509;' -// 'G1566 = G149 * G1530;' -// 'G1567 = G1268 + G1565 + G1566;' -// 'G1568 = G1267 * G1567;' -// 'G1569 = C1 * G1568;' -// 'G1570 = G1564 + G1569;' -// 'G1571 = G180 * G1570;' -// 'G1572 = C1 * G1571;' -// 'G1573 = G1563 + G1572;' -// 'G1574 = G220 * G1497;' -// 'G1575 = G224 * G1499;' -// 'G1576 = G228 * G1501;' -// 'G1577 = G1574 + G1575 + G1576;' -// 'G1578 = G1310 * G1577;' -// 'G1579 = G220 * G1215;' -// 'G1580 = G224 * G1507;' -// 'G1581 = G228 * G1509;' -// 'G1582 = G1579 + G1580 + G1581;' -// 'G1583 = G1319 * G1582;' -// 'G1584 = C1 * G1583;' -// 'G1585 = G1578 + G1584;' -// 'G1586 = G217 * G1585;' -// 'G1587 = G1331 * G1577;' -// 'G1588 = G220 * G1496;' -// 'G1589 = G224 * G1188;' -// 'G1590 = G228 * G1215;' -// 'G1591 = G1588 + G1589 + G1590;' -// 'G1592 = G1319 * G1591;' -// 'G1593 = C1 * G1592;' -// 'G1594 = G1587 + G1593;' -// 'G1595 = G259 * G1594;' -// 'G1596 = C1 * G1595;' -// 'G1597 = G1586 + G1596;' -// 'G1598 = G277 * G1585;' -// 'G1599 = G1347 * G1577;' -// 'G1600 = G224 * G1509;' -// 'G1601 = G228 * G1530;' -// 'G1602 = G1320 + G1600 + G1601;' -// 'G1603 = G1319 * G1602;' -// 'G1604 = C1 * G1603;' -// 'G1605 = G1599 + G1604;' -// 'G1606 = G259 * G1605;' -// 'G1607 = C1 * G1606;' -// 'G1608 = G1598 + G1607;' -// 'G1609 = G311 * G1497;' -// 'G1610 = G315 * G1499;' -// 'G1611 = G319 * G1501;' -// 'G1612 = G1609 + G1610 + G1611;' -// 'G1613 = G1362 * G1612;' -// 'G1614 = G311 * G1215;' -// 'G1615 = G315 * G1507;' -// 'G1616 = G319 * G1509;' -// 'G1617 = G1614 + G1615 + G1616;' -// 'G1618 = G1371 * G1617;' -// 'G1619 = C1 * G1618;' -// 'G1620 = G1613 + G1619;' -// 'G1621 = G302 * G1620;' -// 'G1622 = G1383 * G1612;' -// 'G1623 = G311 * G1496;' -// 'G1624 = G315 * G1188;' -// 'G1625 = G319 * G1215;' -// 'G1626 = G1623 + G1624 + G1625;' -// 'G1627 = G1371 * G1626;' -// 'G1628 = C1 * G1627;' -// 'G1629 = G1622 + G1628;' -// 'G1630 = G356 * G1629;' -// 'G1631 = C1 * G1630;' -// 'G1632 = G1621 + G1631;' -// 'G1633 = G374 * G1620;' -// 'G1634 = G1399 * G1612;' -// 'G1635 = G315 * G1509;' -// 'G1636 = G319 * G1530;' -// 'G1637 = G1372 + G1635 + G1636;' -// 'G1638 = G1371 * G1637;' -// 'G1639 = C1 * G1638;' -// 'G1640 = G1634 + G1639;' -// 'G1641 = G356 * G1640;' -// 'G1642 = C1 * G1641;' -// 'G1643 = G1633 + G1642;' -// 'G1644 = G408 * G1497;' -// 'G1645 = G412 * G1499;' -// 'G1646 = G416 * G1501;' -// 'G1647 = G1644 + G1645 + G1646;' -// 'G1648 = G1414 * G1647;' -// 'G1649 = G408 * G1215;' -// 'G1650 = G412 * G1507;' -// 'G1651 = G416 * G1509;' -// 'G1652 = G1649 + G1650 + G1651;' -// 'G1653 = G1423 * G1652;' -// 'G1654 = C1 * G1653;' -// 'G1655 = G1648 + G1654;' -// 'G1656 = G399 * G1655;' -// 'G1657 = G1435 * G1647;' -// 'G1658 = G408 * G1496;' -// 'G1659 = G412 * G1188;' -// 'G1660 = G416 * G1215;' -// 'G1661 = G1658 + G1659 + G1660;' -// 'G1662 = G1423 * G1661;' -// 'G1663 = C1 * G1662;' -// 'G1664 = G1657 + G1663;' -// 'G1665 = G453 * G1664;' -// 'G1666 = C1 * G1665;' -// 'G1667 = G1656 + G1666;' -// 'G1668 = G471 * G1655;' -// 'G1669 = G1451 * G1647;' -// 'G1670 = G412 * G1509;' -// 'G1671 = G416 * G1530;' -// 'G1672 = G1424 + G1670 + G1671;' -// 'G1673 = G1423 * G1672;' -// 'G1674 = C1 * G1673;' -// 'G1675 = G1669 + G1674;' -// 'G1676 = G453 * G1675;' -// 'G1677 = C1 * G1676;' -// 'G1678 = G1668 + G1677;' -// 'G1679 = G1310 * G1542;' -// 'G1680 = G1319 * G1547;' -// 'G1681 = C1 * G1680;' -// 'G1682 = G1679 + G1681;' -// 'G1683 = G277 * G1682;' -// 'G1684 = G1347 * G1542;' -// 'G1685 = G1319 * G1567;' -// 'G1686 = C1 * G1685;' -// 'G1687 = G1684 + G1686;' -// 'G1688 = G259 * G1687;' -// 'G1689 = C1 * G1688;' -// 'G1690 = G1683 + G1689;' -// 'G1691 = G138 * G1690;' -// 'G1692 = G217 * G1682;' -// 'G1693 = G1331 * G1542;' -// 'G1694 = G1319 * G1556;' -// 'G1695 = C1 * G1694;' -// 'G1696 = G1693 + G1695;' -// 'G1697 = G259 * G1696;' -// 'G1698 = C1 * G1697;' -// 'G1699 = G1692 + G1698;' -// 'G1700 = G198 * G1699;' -// 'G1701 = C1 * G1700;' -// 'G1702 = G1691 + G1701;' -// 'G1703 = G217 * G1687;' -// 'G1704 = G277 * G1696;' -// 'G1705 = C1 * G1704;' -// 'G1706 = G1703 + G1705;' -// 'G1707 = G180 * G1706;' -// 'G1708 = G1702 + G1707;' -// 'G1709 = G1 * X67;' -// 'G1710 = X14 * X123;' -// 'G1711 = G1709 + G1710;' -// 'G1712 = X6 + X6;' -// 'G1713 = X11 * G1712;' -// 'G1714 = G7 * G1713;' -// 'G1715 = X12 * G1712;' -// 'G1716 = G19 * G1715;' -// 'G1717 = X13 * G1712;' -// 'G1718 = G24 * G1717;' -// 'G1719 = G1714 + G1716 + G1718;' -// 'G1720 = G1168 * G1719;' -// 'G1721 = G7 * G1530;' -// 'G1722 = C1 * G1712;' -// 'G1723 = G24 * G1722;' -// 'G1724 = G1721 + G1216 + G1723;' -// 'G1725 = G1187 * G1724;' -// 'G1726 = C1 * G1725;' -// 'G1727 = G1720 + G1726;' -// 'G1728 = G4 * G1727;' -// 'G1729 = G1212 * G1719;' -// 'G1730 = G7 * G1722;' -// 'G1731 = G19 * G1246;' -// 'G1732 = G24 * G1507;' -// 'G1733 = G1730 + G1731 + G1732;' -// 'G1734 = G1187 * G1733;' -// 'G1735 = C1 * G1734;' -// 'G1736 = G1729 + G1735;' -// 'G1737 = G76 * G1736;' -// 'G1738 = C1 * G1737;' -// 'G1739 = G1728 + G1738;' -// 'G1740 = G107 * G1727;' -// 'G1741 = G1240 * G1719;' -// 'G1742 = G7 * G1246;' -// 'G1743 = G19 * G1712;' -// 'G1744 = G1742 + G1743 + G1519;' -// 'G1745 = G1187 * G1744;' -// 'G1746 = C1 * G1745;' -// 'G1747 = G1741 + G1746;' -// 'G1748 = G76 * G1747;' -// 'G1749 = C1 * G1748;' -// 'G1750 = G1740 + G1749;' -// 'G1751 = G141 * G1713;' -// 'G1752 = G145 * G1715;' -// 'G1753 = G149 * G1717;' -// 'G1754 = G1751 + G1752 + G1753;' -// 'G1755 = G1258 * G1754;' -// 'G1756 = G141 * G1530;' -// 'G1757 = G149 * G1722;' -// 'G1758 = G1756 + G1282 + G1757;' -// 'G1759 = G1267 * G1758;' -// 'G1760 = C1 * G1759;' -// 'G1761 = G1755 + G1760;' -// 'G1762 = G138 * G1761;' -// 'G1763 = G1279 * G1754;' -// 'G1764 = G141 * G1722;' -// 'G1765 = G145 * G1246;' -// 'G1766 = G149 * G1507;' -// 'G1767 = G1764 + G1765 + G1766;' -// 'G1768 = G1267 * G1767;' -// 'G1769 = C1 * G1768;' -// 'G1770 = G1763 + G1769;' -// 'G1771 = G180 * G1770;' -// 'G1772 = C1 * G1771;' -// 'G1773 = G1762 + G1772;' -// 'G1774 = G198 * G1761;' -// 'G1775 = G1295 * G1754;' -// 'G1776 = G141 * G1246;' -// 'G1777 = G145 * G1712;' -// 'G1778 = G1776 + G1777 + G1555;' -// 'G1779 = G1267 * G1778;' -// 'G1780 = C1 * G1779;' -// 'G1781 = G1775 + G1780;' -// 'G1782 = G180 * G1781;' -// 'G1783 = C1 * G1782;' -// 'G1784 = G1774 + G1783;' -// 'G1785 = G220 * G1713;' -// 'G1786 = G224 * G1715;' -// 'G1787 = G228 * G1717;' -// 'G1788 = G1785 + G1786 + G1787;' -// 'G1789 = G1310 * G1788;' -// 'G1790 = G220 * G1530;' -// 'G1791 = G228 * G1722;' -// 'G1792 = G1790 + G1334 + G1791;' -// 'G1793 = G1319 * G1792;' -// 'G1794 = C1 * G1793;' -// 'G1795 = G1789 + G1794;' -// 'G1796 = G217 * G1795;' -// 'G1797 = G1331 * G1788;' -// 'G1798 = G220 * G1722;' -// 'G1799 = G224 * G1246;' -// 'G1800 = G228 * G1507;' -// 'G1801 = G1798 + G1799 + G1800;' -// 'G1802 = G1319 * G1801;' -// 'G1803 = C1 * G1802;' -// 'G1804 = G1797 + G1803;' -// 'G1805 = G259 * G1804;' -// 'G1806 = C1 * G1805;' -// 'G1807 = G1796 + G1806;' -// 'G1808 = G277 * G1795;' -// 'G1809 = G1347 * G1788;' -// 'G1810 = G220 * G1246;' -// 'G1811 = G224 * G1712;' -// 'G1812 = G1810 + G1811 + G1590;' -// 'G1813 = G1319 * G1812;' -// 'G1814 = C1 * G1813;' -// 'G1815 = G1809 + G1814;' -// 'G1816 = G259 * G1815;' -// 'G1817 = C1 * G1816;' -// 'G1818 = G1808 + G1817;' -// 'G1819 = G311 * G1713;' -// 'G1820 = G315 * G1715;' -// 'G1821 = G319 * G1717;' -// 'G1822 = G1819 + G1820 + G1821;' -// 'G1823 = G1362 * G1822;' -// 'G1824 = G311 * G1530;' -// 'G1825 = G319 * G1722;' -// 'G1826 = G1824 + G1386 + G1825;' -// 'G1827 = G1371 * G1826;' -// 'G1828 = C1 * G1827;' -// 'G1829 = G1823 + G1828;' -// 'G1830 = G302 * G1829;' -// 'G1831 = G1383 * G1822;' -// 'G1832 = G311 * G1722;' -// 'G1833 = G315 * G1246;' -// 'G1834 = G319 * G1507;' -// 'G1835 = G1832 + G1833 + G1834;' -// 'G1836 = G1371 * G1835;' -// 'G1837 = C1 * G1836;' -// 'G1838 = G1831 + G1837;' -// 'G1839 = G356 * G1838;' -// 'G1840 = C1 * G1839;' -// 'G1841 = G1830 + G1840;' -// 'G1842 = G374 * G1829;' -// 'G1843 = G1399 * G1822;' -// 'G1844 = G311 * G1246;' -// 'G1845 = G315 * G1712;' -// 'G1846 = G1844 + G1845 + G1625;' -// 'G1847 = G1371 * G1846;' -// 'G1848 = C1 * G1847;' -// 'G1849 = G1843 + G1848;' -// 'G1850 = G356 * G1849;' -// 'G1851 = C1 * G1850;' -// 'G1852 = G1842 + G1851;' -// 'G1853 = G408 * G1713;' -// 'G1854 = G412 * G1715;' -// 'G1855 = G416 * G1717;' -// 'G1856 = G1853 + G1854 + G1855;' -// 'G1857 = G1414 * G1856;' -// 'G1858 = G408 * G1530;' -// 'G1859 = G416 * G1722;' -// 'G1860 = G1858 + G1438 + G1859;' -// 'G1861 = G1423 * G1860;' -// 'G1862 = C1 * G1861;' -// 'G1863 = G1857 + G1862;' -// 'G1864 = G399 * G1863;' -// 'G1865 = G1435 * G1856;' -// 'G1866 = G408 * G1722;' -// 'G1867 = G412 * G1246;' -// 'G1868 = G416 * G1507;' -// 'G1869 = G1866 + G1867 + G1868;' -// 'G1870 = G1423 * G1869;' -// 'G1871 = C1 * G1870;' -// 'G1872 = G1865 + G1871;' -// 'G1873 = G453 * G1872;' -// 'G1874 = C1 * G1873;' -// 'G1875 = G1864 + G1874;' -// 'G1876 = G471 * G1863;' -// 'G1877 = G1451 * G1856;' -// 'G1878 = G408 * G1246;' -// 'G1879 = G412 * G1712;' -// 'G1880 = G1878 + G1879 + G1660;' -// 'G1881 = G1423 * G1880;' -// 'G1882 = C1 * G1881;' -// 'G1883 = G1877 + G1882;' -// 'G1884 = G453 * G1883;' -// 'G1885 = C1 * G1884;' -// 'G1886 = G1876 + G1885;' -// 'G1887 = G1310 * G1754;' -// 'G1888 = G1319 * G1758;' -// 'G1889 = C1 * G1888;' -// 'G1890 = G1887 + G1889;' -// 'G1891 = G277 * G1890;' -// 'G1892 = G1347 * G1754;' -// 'G1893 = G1319 * G1778;' -// 'G1894 = C1 * G1893;' -// 'G1895 = G1892 + G1894;' -// 'G1896 = G259 * G1895;' -// 'G1897 = C1 * G1896;' -// 'G1898 = G1891 + G1897;' -// 'G1899 = G138 * G1898;' -// 'G1900 = G217 * G1890;' -// 'G1901 = G1331 * G1754;' -// 'G1902 = G1319 * G1767;' -// 'G1903 = C1 * G1902;' -// 'G1904 = G1901 + G1903;' -// 'G1905 = G259 * G1904;' -// 'G1906 = C1 * G1905;' -// 'G1907 = G1900 + G1906;' -// 'G1908 = G198 * G1907;' -// 'G1909 = C1 * G1908;' -// 'G1910 = G1899 + G1909;' -// 'G1911 = G217 * G1895;' -// 'G1912 = G277 * G1904;' -// 'G1913 = C1 * G1912;' -// 'G1914 = G1911 + G1913;' -// 'G1915 = G180 * G1914;' -// 'G1916 = G1910 + G1915;' -// 'G1917 = G1 * X68;' -// 'G1918 = X14 * X124;' -// 'G1919 = G1917 + G1918;' -// 'G1920 = X7 + X7;' -// 'G1921 = X11 * G1920;' -// 'G1922 = G7 * G1921;' -// 'G1923 = X12 * G1920;' -// 'G1924 = G19 * G1923;' -// 'G1925 = X13 * G1920;' -// 'G1926 = G24 * G1925;' -// 'G1927 = G1922 + G1924 + G1926;' -// 'G1928 = G1168 * G1927;' -// 'G1929 = G24 * G1920;' -// 'G1930 = G1742 + G1518 + G1929;' -// 'G1931 = G1187 * G1930;' -// 'G1932 = C1 * G1931;' -// 'G1933 = G1928 + G1932;' -// 'G1934 = G4 * G1933;' -// 'G1935 = G1212 * G1927;' -// 'G1936 = C1 * G1920;' -// 'G1937 = G7 * G1936;' -// 'G1938 = G19 * G1530;' -// 'G1939 = G1937 + G1938 + G1247;' -// 'G1940 = G1187 * G1939;' -// 'G1941 = C1 * G1940;' -// 'G1942 = G1935 + G1941;' -// 'G1943 = G76 * G1942;' -// 'G1944 = C1 * G1943;' -// 'G1945 = G1934 + G1944;' -// 'G1946 = G107 * G1933;' -// 'G1947 = G1240 * G1927;' -// 'G1948 = G7 * G1507;' -// 'G1949 = G19 * G1936;' -// 'G1950 = G24 * G1188;' -// 'G1951 = G1948 + G1949 + G1950;' -// 'G1952 = G1187 * G1951;' -// 'G1953 = C1 * G1952;' -// 'G1954 = G1947 + G1953;' -// 'G1955 = G76 * G1954;' -// 'G1956 = C1 * G1955;' -// 'G1957 = G1946 + G1956;' -// 'G1958 = G141 * G1921;' -// 'G1959 = G145 * G1923;' -// 'G1960 = G149 * G1925;' -// 'G1961 = G1958 + G1959 + G1960;' -// 'G1962 = G1258 * G1961;' -// 'G1963 = G149 * G1920;' -// 'G1964 = G1776 + G1554 + G1963;' -// 'G1965 = G1267 * G1964;' -// 'G1966 = C1 * G1965;' -// 'G1967 = G1962 + G1966;' -// 'G1968 = G138 * G1967;' -// 'G1969 = G1279 * G1961;' -// 'G1970 = G141 * G1936;' -// 'G1971 = G145 * G1530;' -// 'G1972 = G1970 + G1971 + G1299;' -// 'G1973 = G1267 * G1972;' -// 'G1974 = C1 * G1973;' -// 'G1975 = G1969 + G1974;' -// 'G1976 = G180 * G1975;' -// 'G1977 = C1 * G1976;' -// 'G1978 = G1968 + G1977;' -// 'G1979 = G198 * G1967;' -// 'G1980 = G1295 * G1961;' -// 'G1981 = G141 * G1507;' -// 'G1982 = G145 * G1936;' -// 'G1983 = G149 * G1188;' -// 'G1984 = G1981 + G1982 + G1983;' -// 'G1985 = G1267 * G1984;' -// 'G1986 = C1 * G1985;' -// 'G1987 = G1980 + G1986;' -// 'G1988 = G180 * G1987;' -// 'G1989 = C1 * G1988;' -// 'G1990 = G1979 + G1989;' -// 'G1991 = G220 * G1921;' -// 'G1992 = G224 * G1923;' -// 'G1993 = G228 * G1925;' -// 'G1994 = G1991 + G1992 + G1993;' -// 'G1995 = G1310 * G1994;' -// 'G1996 = G228 * G1920;' -// 'G1997 = G1810 + G1589 + G1996;' -// 'G1998 = G1319 * G1997;' -// 'G1999 = C1 * G1998;' -// 'G2000 = G1995 + G1999;' -// 'G2001 = G217 * G2000;' -// 'G2002 = G1331 * G1994;' -// 'G2003 = G220 * G1936;' -// 'G2004 = G224 * G1530;' -// 'G2005 = G2003 + G2004 + G1351;' -// 'G2006 = G1319 * G2005;' -// 'G2007 = C1 * G2006;' -// 'G2008 = G2002 + G2007;' -// 'G2009 = G259 * G2008;' -// 'G2010 = C1 * G2009;' -// 'G2011 = G2001 + G2010;' -// 'G2012 = G277 * G2000;' -// 'G2013 = G1347 * G1994;' -// 'G2014 = G220 * G1507;' -// 'G2015 = G224 * G1936;' -// 'G2016 = G228 * G1188;' -// 'G2017 = G2014 + G2015 + G2016;' -// 'G2018 = G1319 * G2017;' -// 'G2019 = C1 * G2018;' -// 'G2020 = G2013 + G2019;' -// 'G2021 = G259 * G2020;' -// 'G2022 = C1 * G2021;' -// 'G2023 = G2012 + G2022;' -// 'G2024 = G311 * G1921;' -// 'G2025 = G315 * G1923;' -// 'G2026 = G319 * G1925;' -// 'G2027 = G2024 + G2025 + G2026;' -// 'G2028 = G1362 * G2027;' -// 'G2029 = G319 * G1920;' -// 'G2030 = G1844 + G1624 + G2029;' -// 'G2031 = G1371 * G2030;' -// 'G2032 = C1 * G2031;' -// 'G2033 = G2028 + G2032;' -// 'G2034 = G302 * G2033;' -// 'G2035 = G1383 * G2027;' -// 'G2036 = G311 * G1936;' -// 'G2037 = G315 * G1530;' -// 'G2038 = G2036 + G2037 + G1403;' -// 'G2039 = G1371 * G2038;' -// 'G2040 = C1 * G2039;' -// 'G2041 = G2035 + G2040;' -// 'G2042 = G356 * G2041;' -// 'G2043 = C1 * G2042;' -// 'G2044 = G2034 + G2043;' -// 'G2045 = G374 * G2033;' -// 'G2046 = G1399 * G2027;' -// 'G2047 = G311 * G1507;' -// 'G2048 = G315 * G1936;' -// 'G2049 = G319 * G1188;' -// 'G2050 = G2047 + G2048 + G2049;' -// 'G2051 = G1371 * G2050;' -// 'G2052 = C1 * G2051;' -// 'G2053 = G2046 + G2052;' -// 'G2054 = G356 * G2053;' -// 'G2055 = C1 * G2054;' -// 'G2056 = G2045 + G2055;' -// 'G2057 = G408 * G1921;' -// 'G2058 = G412 * G1923;' -// 'G2059 = G416 * G1925;' -// 'G2060 = G2057 + G2058 + G2059;' -// 'G2061 = G1414 * G2060;' -// 'G2062 = G416 * G1920;' -// 'G2063 = G1878 + G1659 + G2062;' -// 'G2064 = G1423 * G2063;' -// 'G2065 = C1 * G2064;' -// 'G2066 = G2061 + G2065;' -// 'G2067 = G399 * G2066;' -// 'G2068 = G1435 * G2060;' -// 'G2069 = G408 * G1936;' -// 'G2070 = G412 * G1530;' -// 'G2071 = G2069 + G2070 + G1455;' -// 'G2072 = G1423 * G2071;' -// 'G2073 = C1 * G2072;' -// 'G2074 = G2068 + G2073;' -// 'G2075 = G453 * G2074;' -// 'G2076 = C1 * G2075;' -// 'G2077 = G2067 + G2076;' -// 'G2078 = G471 * G2066;' -// 'G2079 = G1451 * G2060;' -// 'G2080 = G408 * G1507;' -// 'G2081 = G412 * G1936;' -// 'G2082 = G416 * G1188;' -// 'G2083 = G2080 + G2081 + G2082;' -// 'G2084 = G1423 * G2083;' -// 'G2085 = C1 * G2084;' -// 'G2086 = G2079 + G2085;' -// 'G2087 = G453 * G2086;' -// 'G2088 = C1 * G2087;' -// 'G2089 = G2078 + G2088;' -// 'G2090 = G1310 * G1961;' -// 'G2091 = G1319 * G1964;' -// 'G2092 = C1 * G2091;' -// 'G2093 = G2090 + G2092;' -// 'G2094 = G277 * G2093;' -// 'G2095 = G1347 * G1961;' -// 'G2096 = G1319 * G1984;' -// 'G2097 = C1 * G2096;' -// 'G2098 = G2095 + G2097;' -// 'G2099 = G259 * G2098;' -// 'G2100 = C1 * G2099;' -// 'G2101 = G2094 + G2100;' -// 'G2102 = G138 * G2101;' -// 'G2103 = G217 * G2093;' -// 'G2104 = G1331 * G1961;' -// 'G2105 = G1319 * G1972;' -// 'G2106 = C1 * G2105;' -// 'G2107 = G2104 + G2106;' -// 'G2108 = G259 * G2107;' -// 'G2109 = C1 * G2108;' -// 'G2110 = G2103 + G2109;' -// 'G2111 = G198 * G2110;' -// 'G2112 = C1 * G2111;' -// 'G2113 = G2102 + G2112;' -// 'G2114 = G217 * G2098;' -// 'G2115 = G277 * G2107;' -// 'G2116 = C1 * G2115;' -// 'G2117 = G2114 + G2116;' -// 'G2118 = G180 * G2117;' -// 'G2119 = G2113 + G2118;' -// 'G2120 = G1 * X69;' -// 'G2121 = X14 * X125;' -// 'G2122 = G2120 + G2121;' -// 'G2123 = G30 * G1180;' -// 'G2124 = G62 * G2123;' -// 'G2125 = C1 * G2124;' -// 'G2126 = G4 * G2125;' -// 'G2127 = G98 * G2123;' -// 'G2128 = C1 * G2127;' -// 'G2129 = G76 * G2128;' -// 'G2130 = C1 * G2129;' -// 'G2131 = G2126 + G2130;' -// 'G2132 = G107 * G2125;' -// 'G2133 = G129 * G2123;' -// 'G2134 = C1 * G2133;' -// 'G2135 = G76 * G2134;' -// 'G2136 = C1 * G2135;' -// 'G2137 = G2132 + G2136;' -// 'G2138 = G154 * G1180;' -// 'G2139 = G169 * G2138;' -// 'G2140 = C1 * G2139;' -// 'G2141 = G138 * G2140;' -// 'G2142 = G189 * G2138;' -// 'G2143 = C1 * G2142;' -// 'G2144 = G180 * G2143;' -// 'G2145 = C1 * G2144;' -// 'G2146 = G2141 + G2145;' -// 'G2147 = G198 * G2140;' -// 'G2148 = G208 * G2138;' -// 'G2149 = C1 * G2148;' -// 'G2150 = G180 * G2149;' -// 'G2151 = C1 * G2150;' -// 'G2152 = G2147 + G2151;' -// 'G2153 = G233 * G1180;' -// 'G2154 = G248 * G2153;' -// 'G2155 = C1 * G2154;' -// 'G2156 = G217 * G2155;' -// 'G2157 = G268 * G2153;' -// 'G2158 = C1 * G2157;' -// 'G2159 = G259 * G2158;' -// 'G2160 = C1 * G2159;' -// 'G2161 = G2156 + G2160;' -// 'G2162 = G277 * G2155;' -// 'G2163 = G287 * G2153;' -// 'G2164 = C1 * G2163;' -// 'G2165 = G259 * G2164;' -// 'G2166 = C1 * G2165;' -// 'G2167 = G2162 + G2166;' -// 'G2168 = G330 * G1180;' -// 'G2169 = G345 * G2168;' -// 'G2170 = C1 * G2169;' -// 'G2171 = G302 * G2170;' -// 'G2172 = G365 * G2168;' -// 'G2173 = C1 * G2172;' -// 'G2174 = G356 * G2173;' -// 'G2175 = C1 * G2174;' -// 'G2176 = G2171 + G2175;' -// 'G2177 = G374 * G2170;' -// 'G2178 = G384 * G2168;' -// 'G2179 = C1 * G2178;' -// 'G2180 = G356 * G2179;' -// 'G2181 = C1 * G2180;' -// 'G2182 = G2177 + G2181;' -// 'G2183 = G427 * G1180;' -// 'G2184 = G442 * G2183;' -// 'G2185 = C1 * G2184;' -// 'G2186 = G399 * G2185;' -// 'G2187 = G462 * G2183;' -// 'G2188 = C1 * G2187;' -// 'G2189 = G453 * G2188;' -// 'G2190 = C1 * G2189;' -// 'G2191 = G2186 + G2190;' -// 'G2192 = G471 * G2185;' -// 'G2193 = G481 * G2183;' -// 'G2194 = C1 * G2193;' -// 'G2195 = G453 * G2194;' -// 'G2196 = C1 * G2195;' -// 'G2197 = G2192 + G2196;' -// 'G2198 = G169 * G2153;' -// 'G2199 = C1 * G2198;' -// 'G2200 = G277 * G2199;' -// 'G2201 = G208 * G2153;' -// 'G2202 = C1 * G2201;' -// 'G2203 = G259 * G2202;' -// 'G2204 = C1 * G2203;' -// 'G2205 = G2200 + G2204;' -// 'G2206 = G138 * G2205;' -// 'G2207 = G217 * G2199;' -// 'G2208 = G189 * G2153;' -// 'G2209 = C1 * G2208;' -// 'G2210 = G259 * G2209;' -// 'G2211 = C1 * G2210;' -// 'G2212 = G2207 + G2211;' -// 'G2213 = G198 * G2212;' -// 'G2214 = C1 * G2213;' -// 'G2215 = G2206 + G2214;' -// 'G2216 = G217 * G2202;' -// 'G2217 = G277 * G2209;' -// 'G2218 = C1 * G2217;' -// 'G2219 = G2216 + G2218;' -// 'G2220 = G180 * G2219;' -// 'G2221 = G2215 + G2220;' -// 'G2222 = G1 * X54;' -// 'G2223 = X14 * X110;' -// 'G2224 = G2222 + G2223;' -// 'G2225 = G35 * G1180;' -// 'G2226 = G62 * G2225;' -// 'G2227 = C1 * G2226;' -// 'G2228 = G4 * G2227;' -// 'G2229 = G98 * G2225;' -// 'G2230 = C1 * G2229;' -// 'G2231 = G76 * G2230;' -// 'G2232 = C1 * G2231;' -// 'G2233 = G2228 + G2232;' -// 'G2234 = G107 * G2227;' -// 'G2235 = G129 * G2225;' -// 'G2236 = C1 * G2235;' -// 'G2237 = G76 * G2236;' -// 'G2238 = C1 * G2237;' -// 'G2239 = G2234 + G2238;' -// 'G2240 = G158 * G1180;' -// 'G2241 = G169 * G2240;' -// 'G2242 = C1 * G2241;' -// 'G2243 = G138 * G2242;' -// 'G2244 = G189 * G2240;' -// 'G2245 = C1 * G2244;' -// 'G2246 = G180 * G2245;' -// 'G2247 = C1 * G2246;' -// 'G2248 = G2243 + G2247;' -// 'G2249 = G198 * G2242;' -// 'G2250 = G208 * G2240;' -// 'G2251 = C1 * G2250;' -// 'G2252 = G180 * G2251;' -// 'G2253 = C1 * G2252;' -// 'G2254 = G2249 + G2253;' -// 'G2255 = G237 * G1180;' -// 'G2256 = G248 * G2255;' -// 'G2257 = C1 * G2256;' -// 'G2258 = G217 * G2257;' -// 'G2259 = G268 * G2255;' -// 'G2260 = C1 * G2259;' -// 'G2261 = G259 * G2260;' -// 'G2262 = C1 * G2261;' -// 'G2263 = G2258 + G2262;' -// 'G2264 = G277 * G2257;' -// 'G2265 = G287 * G2255;' -// 'G2266 = C1 * G2265;' -// 'G2267 = G259 * G2266;' -// 'G2268 = C1 * G2267;' -// 'G2269 = G2264 + G2268;' -// 'G2270 = G334 * G1180;' -// 'G2271 = G345 * G2270;' -// 'G2272 = C1 * G2271;' -// 'G2273 = G302 * G2272;' -// 'G2274 = G365 * G2270;' -// 'G2275 = C1 * G2274;' -// 'G2276 = G356 * G2275;' -// 'G2277 = C1 * G2276;' -// 'G2278 = G2273 + G2277;' -// 'G2279 = G374 * G2272;' -// 'G2280 = G384 * G2270;' -// 'G2281 = C1 * G2280;' -// 'G2282 = G356 * G2281;' -// 'G2283 = C1 * G2282;' -// 'G2284 = G2279 + G2283;' -// 'G2285 = G431 * G1180;' -// 'G2286 = G442 * G2285;' -// 'G2287 = C1 * G2286;' -// 'G2288 = G399 * G2287;' -// 'G2289 = G462 * G2285;' -// 'G2290 = C1 * G2289;' -// 'G2291 = G453 * G2290;' -// 'G2292 = C1 * G2291;' -// 'G2293 = G2288 + G2292;' -// 'G2294 = G471 * G2287;' -// 'G2295 = G481 * G2285;' -// 'G2296 = C1 * G2295;' -// 'G2297 = G453 * G2296;' -// 'G2298 = C1 * G2297;' -// 'G2299 = G2294 + G2298;' -// 'G2300 = G169 * G2255;' -// 'G2301 = C1 * G2300;' -// 'G2302 = G277 * G2301;' -// 'G2303 = G208 * G2255;' -// 'G2304 = C1 * G2303;' -// 'G2305 = G259 * G2304;' -// 'G2306 = C1 * G2305;' -// 'G2307 = G2302 + G2306;' -// 'G2308 = G138 * G2307;' -// 'G2309 = G217 * G2301;' -// 'G2310 = G189 * G2255;' -// 'G2311 = C1 * G2310;' -// 'G2312 = G259 * G2311;' -// 'G2313 = C1 * G2312;' -// 'G2314 = G2309 + G2313;' -// 'G2315 = G198 * G2314;' -// 'G2316 = C1 * G2315;' -// 'G2317 = G2308 + G2316;' -// 'G2318 = G217 * G2304;' -// 'G2319 = G277 * G2311;' -// 'G2320 = C1 * G2319;' -// 'G2321 = G2318 + G2320;' -// 'G2322 = G180 * G2321;' -// 'G2323 = G2317 + G2322;' -// 'G2324 = G1 * X55;' -// 'G2325 = X14 * X111;' -// 'G2326 = G2324 + G2325;' -// 'G2327 = G41 * G1180;' -// 'G2328 = G62 * G2327;' -// 'G2329 = C1 * G2328;' -// 'G2330 = G4 * G2329;' -// 'G2331 = G98 * G2327;' -// 'G2332 = C1 * G2331;' -// 'G2333 = G76 * G2332;' -// 'G2334 = C1 * G2333;' -// 'G2335 = G2330 + G2334;' -// 'G2336 = G107 * G2329;' -// 'G2337 = G129 * G2327;' -// 'G2338 = C1 * G2337;' -// 'G2339 = G76 * G2338;' -// 'G2340 = C1 * G2339;' -// 'G2341 = G2336 + G2340;' -// 'G2342 = G162 * G1180;' -// 'G2343 = G169 * G2342;' -// 'G2344 = C1 * G2343;' -// 'G2345 = G138 * G2344;' -// 'G2346 = G189 * G2342;' -// 'G2347 = C1 * G2346;' -// 'G2348 = G180 * G2347;' -// 'G2349 = C1 * G2348;' -// 'G2350 = G2345 + G2349;' -// 'G2351 = G198 * G2344;' -// 'G2352 = G208 * G2342;' -// 'G2353 = C1 * G2352;' -// 'G2354 = G180 * G2353;' -// 'G2355 = C1 * G2354;' -// 'G2356 = G2351 + G2355;' -// 'G2357 = G241 * G1180;' -// 'G2358 = G248 * G2357;' -// 'G2359 = C1 * G2358;' -// 'G2360 = G217 * G2359;' -// 'G2361 = G268 * G2357;' -// 'G2362 = C1 * G2361;' -// 'G2363 = G259 * G2362;' -// 'G2364 = C1 * G2363;' -// 'G2365 = G2360 + G2364;' -// 'G2366 = G277 * G2359;' -// 'G2367 = G287 * G2357;' -// 'G2368 = C1 * G2367;' -// 'G2369 = G259 * G2368;' -// 'G2370 = C1 * G2369;' -// 'G2371 = G2366 + G2370;' -// 'G2372 = G338 * G1180;' -// 'G2373 = G345 * G2372;' -// 'G2374 = C1 * G2373;' -// 'G2375 = G302 * G2374;' -// 'G2376 = G365 * G2372;' -// 'G2377 = C1 * G2376;' -// 'G2378 = G356 * G2377;' -// 'G2379 = C1 * G2378;' -// 'G2380 = G2375 + G2379;' -// 'G2381 = G374 * G2374;' -// 'G2382 = G384 * G2372;' -// 'G2383 = C1 * G2382;' -// 'G2384 = G356 * G2383;' -// 'G2385 = C1 * G2384;' -// 'G2386 = G2381 + G2385;' -// 'G2387 = G435 * G1180;' -// 'G2388 = G442 * G2387;' -// 'G2389 = C1 * G2388;' -// 'G2390 = G399 * G2389;' -// 'G2391 = G462 * G2387;' -// 'G2392 = C1 * G2391;' -// 'G2393 = G453 * G2392;' -// 'G2394 = C1 * G2393;' -// 'G2395 = G2390 + G2394;' -// 'G2396 = G471 * G2389;' -// 'G2397 = G481 * G2387;' -// 'G2398 = C1 * G2397;' -// 'G2399 = G453 * G2398;' -// 'G2400 = C1 * G2399;' -// 'G2401 = G2396 + G2400;' -// 'G2402 = G169 * G2357;' -// 'G2403 = C1 * G2402;' -// 'G2404 = G277 * G2403;' -// 'G2405 = G208 * G2357;' -// 'G2406 = C1 * G2405;' -// 'G2407 = G259 * G2406;' -// 'G2408 = C1 * G2407;' -// 'G2409 = G2404 + G2408;' -// 'G2410 = G138 * G2409;' -// 'G2411 = G217 * G2403;' -// 'G2412 = G189 * G2357;' -// 'G2413 = C1 * G2412;' -// 'G2414 = G259 * G2413;' -// 'G2415 = C1 * G2414;' -// 'G2416 = G2411 + G2415;' -// 'G2417 = G198 * G2416;' -// 'G2418 = C1 * G2417;' -// 'G2419 = G2410 + G2418;' -// 'G2420 = G217 * G2406;' -// 'G2421 = G277 * G2413;' -// 'G2422 = C1 * G2421;' -// 'G2423 = G2420 + G2422;' -// 'G2424 = G180 * G2423;' -// 'G2425 = G2419 + G2424;' -// 'G2426 = G1 * X56;' -// 'G2427 = X14 * X112;' -// 'G2428 = G2426 + G2427;' -// 'G2429 = G7 * G14;' -// 'G2430 = G1168 * G2429;' -// 'G2431 = G4 * G2430;' -// 'G2432 = G1212 * G2429;' -// 'G2433 = G76 * G2432;' -// 'G2434 = C1 * G2433;' -// 'G2435 = G2431 + G2434;' -// 'G2436 = G107 * G2430;' -// 'G2437 = G1240 * G2429;' -// 'G2438 = G76 * G2437;' -// 'G2439 = C1 * G2438;' -// 'G2440 = G2436 + G2439;' -// 'G2441 = G141 * G14;' -// 'G2442 = G1258 * G2441;' -// 'G2443 = G138 * G2442;' -// 'G2444 = G1279 * G2441;' -// 'G2445 = G180 * G2444;' -// 'G2446 = C1 * G2445;' -// 'G2447 = G2443 + G2446;' -// 'G2448 = G198 * G2442;' -// 'G2449 = G1295 * G2441;' -// 'G2450 = G180 * G2449;' -// 'G2451 = C1 * G2450;' -// 'G2452 = G2448 + G2451;' -// 'G2453 = G220 * G14;' -// 'G2454 = G1310 * G2453;' -// 'G2455 = G217 * G2454;' -// 'G2456 = G1331 * G2453;' -// 'G2457 = G259 * G2456;' -// 'G2458 = C1 * G2457;' -// 'G2459 = G2455 + G2458;' -// 'G2460 = G277 * G2454;' -// 'G2461 = G1347 * G2453;' -// 'G2462 = G259 * G2461;' -// 'G2463 = C1 * G2462;' -// 'G2464 = G2460 + G2463;' -// 'G2465 = G311 * G14;' -// 'G2466 = G1362 * G2465;' -// 'G2467 = G302 * G2466;' -// 'G2468 = G1383 * G2465;' -// 'G2469 = G356 * G2468;' -// 'G2470 = C1 * G2469;' -// 'G2471 = G2467 + G2470;' -// 'G2472 = G374 * G2466;' -// 'G2473 = G1399 * G2465;' -// 'G2474 = G356 * G2473;' -// 'G2475 = C1 * G2474;' -// 'G2476 = G2472 + G2475;' -// 'G2477 = G408 * G14;' -// 'G2478 = G1414 * G2477;' -// 'G2479 = G399 * G2478;' -// 'G2480 = G1435 * G2477;' -// 'G2481 = G453 * G2480;' -// 'G2482 = C1 * G2481;' -// 'G2483 = G2479 + G2482;' -// 'G2484 = G471 * G2478;' -// 'G2485 = G1451 * G2477;' -// 'G2486 = G453 * G2485;' -// 'G2487 = C1 * G2486;' -// 'G2488 = G2484 + G2487;' -// 'G2489 = G1310 * G2441;' -// 'G2490 = G277 * G2489;' -// 'G2491 = G1347 * G2441;' -// 'G2492 = G259 * G2491;' -// 'G2493 = C1 * G2492;' -// 'G2494 = G2490 + G2493;' -// 'G2495 = G138 * G2494;' -// 'G2496 = G217 * G2489;' -// 'G2497 = G1331 * G2441;' -// 'G2498 = G259 * G2497;' -// 'G2499 = C1 * G2498;' -// 'G2500 = G2496 + G2499;' -// 'G2501 = G198 * G2500;' -// 'G2502 = C1 * G2501;' -// 'G2503 = G2495 + G2502;' -// 'G2504 = G217 * G2491;' -// 'G2505 = G277 * G2497;' -// 'G2506 = C1 * G2505;' -// 'G2507 = G2504 + G2506;' -// 'G2508 = G180 * G2507;' -// 'G2509 = G2503 + G2508;' -// 'G2510 = G1 * X57;' -// 'G2511 = X14 * X113;' -// 'G2512 = G2510 + G2511;' -// 'G2513 = G19 * G14;' -// 'G2514 = G1168 * G2513;' -// 'G2515 = G4 * G2514;' -// 'G2516 = G1212 * G2513;' -// 'G2517 = G76 * G2516;' -// 'G2518 = C1 * G2517;' -// 'G2519 = G2515 + G2518;' -// 'G2520 = G107 * G2514;' -// 'G2521 = G1240 * G2513;' -// 'G2522 = G76 * G2521;' -// 'G2523 = C1 * G2522;' -// 'G2524 = G2520 + G2523;' -// 'G2525 = G145 * G14;' -// 'G2526 = G1258 * G2525;' -// 'G2527 = G138 * G2526;' -// 'G2528 = G1279 * G2525;' -// 'G2529 = G180 * G2528;' -// 'G2530 = C1 * G2529;' -// 'G2531 = G2527 + G2530;' -// 'G2532 = G198 * G2526;' -// 'G2533 = G1295 * G2525;' -// 'G2534 = G180 * G2533;' -// 'G2535 = C1 * G2534;' -// 'G2536 = G2532 + G2535;' -// 'G2537 = G224 * G14;' -// 'G2538 = G1310 * G2537;' -// 'G2539 = G217 * G2538;' -// 'G2540 = G1331 * G2537;' -// 'G2541 = G259 * G2540;' -// 'G2542 = C1 * G2541;' -// 'G2543 = G2539 + G2542;' -// 'G2544 = G277 * G2538;' -// 'G2545 = G1347 * G2537;' -// 'G2546 = G259 * G2545;' -// 'G2547 = C1 * G2546;' -// 'G2548 = G2544 + G2547;' -// 'G2549 = G315 * G14;' -// 'G2550 = G1362 * G2549;' -// 'G2551 = G302 * G2550;' -// 'G2552 = G1383 * G2549;' -// 'G2553 = G356 * G2552;' -// 'G2554 = C1 * G2553;' -// 'G2555 = G2551 + G2554;' -// 'G2556 = G374 * G2550;' -// 'G2557 = G1399 * G2549;' -// 'G2558 = G356 * G2557;' -// 'G2559 = C1 * G2558;' -// 'G2560 = G2556 + G2559;' -// 'G2561 = G412 * G14;' -// 'G2562 = G1414 * G2561;' -// 'G2563 = G399 * G2562;' -// 'G2564 = G1435 * G2561;' -// 'G2565 = G453 * G2564;' -// 'G2566 = C1 * G2565;' -// 'G2567 = G2563 + G2566;' -// 'G2568 = G471 * G2562;' -// 'G2569 = G1451 * G2561;' -// 'G2570 = G453 * G2569;' -// 'G2571 = C1 * G2570;' -// 'G2572 = G2568 + G2571;' -// 'G2573 = G1310 * G2525;' -// 'G2574 = G277 * G2573;' -// 'G2575 = G1347 * G2525;' -// 'G2576 = G259 * G2575;' -// 'G2577 = C1 * G2576;' -// 'G2578 = G2574 + G2577;' -// 'G2579 = G138 * G2578;' -// 'G2580 = G217 * G2573;' -// 'G2581 = G1331 * G2525;' -// 'G2582 = G259 * G2581;' -// 'G2583 = C1 * G2582;' -// 'G2584 = G2580 + G2583;' -// 'G2585 = G198 * G2584;' -// 'G2586 = C1 * G2585;' -// 'G2587 = G2579 + G2586;' -// 'G2588 = G217 * G2575;' -// 'G2589 = G277 * G2581;' -// 'G2590 = C1 * G2589;' -// 'G2591 = G2588 + G2590;' -// 'G2592 = G180 * G2591;' -// 'G2593 = G2587 + G2592;' -// 'G2594 = G1 * X58;' -// 'G2595 = X14 * X114;' -// 'G2596 = G2594 + G2595;' -// 'G2597 = G24 * G14;' -// 'G2598 = G1168 * G2597;' -// 'G2599 = G4 * G2598;' -// 'G2600 = G1212 * G2597;' -// 'G2601 = G76 * G2600;' -// 'G2602 = C1 * G2601;' -// 'G2603 = G2599 + G2602;' -// 'G2604 = G107 * G2598;' -// 'G2605 = G1240 * G2597;' -// 'G2606 = G76 * G2605;' -// 'G2607 = C1 * G2606;' -// 'G2608 = G2604 + G2607;' -// 'G2609 = G149 * G14;' -// 'G2610 = G1258 * G2609;' -// 'G2611 = G138 * G2610;' -// 'G2612 = G1279 * G2609;' -// 'G2613 = G180 * G2612;' -// 'G2614 = C1 * G2613;' -// 'G2615 = G2611 + G2614;' -// 'G2616 = G198 * G2610;' -// 'G2617 = G1295 * G2609;' -// 'G2618 = G180 * G2617;' -// 'G2619 = C1 * G2618;' -// 'G2620 = G2616 + G2619;' -// 'G2621 = G228 * G14;' -// 'G2622 = G1310 * G2621;' -// 'G2623 = G217 * G2622;' -// 'G2624 = G1331 * G2621;' -// 'G2625 = G259 * G2624;' -// 'G2626 = C1 * G2625;' -// 'G2627 = G2623 + G2626;' -// 'G2628 = G277 * G2622;' -// 'G2629 = G1347 * G2621;' -// 'G2630 = G259 * G2629;' -// 'G2631 = C1 * G2630;' -// 'G2632 = G2628 + G2631;' -// 'G2633 = G319 * G14;' -// 'G2634 = G1362 * G2633;' -// 'G2635 = G302 * G2634;' -// 'G2636 = G1383 * G2633;' -// 'G2637 = G356 * G2636;' -// 'G2638 = C1 * G2637;' -// 'G2639 = G2635 + G2638;' -// 'G2640 = G374 * G2634;' -// 'G2641 = G1399 * G2633;' -// 'G2642 = G356 * G2641;' -// 'G2643 = C1 * G2642;' -// 'G2644 = G2640 + G2643;' -// 'G2645 = G416 * G14;' -// 'G2646 = G1414 * G2645;' -// 'G2647 = G399 * G2646;' -// 'G2648 = G1435 * G2645;' -// 'G2649 = G453 * G2648;' -// 'G2650 = C1 * G2649;' -// 'G2651 = G2647 + G2650;' -// 'G2652 = G471 * G2646;' -// 'G2653 = G1451 * G2645;' -// 'G2654 = G453 * G2653;' -// 'G2655 = C1 * G2654;' -// 'G2656 = G2652 + G2655;' -// 'G2657 = G1310 * G2609;' -// 'G2658 = G277 * G2657;' -// 'G2659 = G1347 * G2609;' -// 'G2660 = G259 * G2659;' -// 'G2661 = C1 * G2660;' -// 'G2662 = G2658 + G2661;' -// 'G2663 = G138 * G2662;' -// 'G2664 = G217 * G2657;' -// 'G2665 = G1331 * G2609;' -// 'G2666 = G259 * G2665;' -// 'G2667 = C1 * G2666;' -// 'G2668 = G2664 + G2667;' -// 'G2669 = G198 * G2668;' -// 'G2670 = C1 * G2669;' -// 'G2671 = G2663 + G2670;' -// 'G2672 = G217 * G2659;' -// 'G2673 = G277 * G2665;' -// 'G2674 = C1 * G2673;' -// 'G2675 = G2672 + G2674;' -// 'G2676 = G180 * G2675;' -// 'G2677 = G2671 + G2676;' -// 'G2678 = G1 * X59;' -// 'G2679 = X14 * X115;' -// 'G2680 = G2678 + G2679;' -// 'G2681 = G1168 * G27;' -// 'G2682 = G62 * G1187;' -// 'G2683 = C1 * G2682;' -// 'G2684 = G2681 + G2683;' -// 'G2685 = C1 * X15;' -// 'G2686 = G2685 + X71;' -// 'G2687 = G2684 * G2686;' -// 'G2688 = C1 * X18;' -// 'G2689 = G2688 + X74;' -// 'G2690 = G1151 * G2689;' -// 'G2691 = C1 * X19;' -// 'G2692 = G2691 + X75;' -// 'G2693 = G1157 * G2692;' -// 'G2694 = C1 * X20;' -// 'G2695 = G2694 + X76;' -// 'G2696 = G1166 * G2695;' -// 'G2697 = G2690 + G2693 + G2696;' -// 'G2698 = G27 * G2697;' -// 'G2699 = C1 * X21;' -// 'G2700 = G2699 + X77;' -// 'G2701 = G15 * G2700;' -// 'G2702 = C1 * X22;' -// 'G2703 = G2702 + X78;' -// 'G2704 = G20 * G2703;' -// 'G2705 = C1 * X23;' -// 'G2706 = G2705 + X79;' -// 'G2707 = G25 * G2706;' -// 'G2708 = G2701 + G2704 + G2707;' -// 'G2709 = G1168 * G2708;' -// 'G2710 = G2698 + G2709;' -// 'G2711 = G49 * G2700;' -// 'G2712 = G55 * G2703;' -// 'G2713 = G60 * G2706;' -// 'G2714 = G2711 + G2712 + G2713;' -// 'G2715 = G1187 * G2714;' -// 'G2716 = G1181 * G2689;' -// 'G2717 = G1183 * G2692;' -// 'G2718 = G1185 * G2695;' -// 'G2719 = G2716 + G2717 + G2718;' -// 'G2720 = G62 * G2719;' -// 'G2721 = G2715 + G2720;' -// 'G2722 = C1 * G2721;' -// 'G2723 = G2710 + G2722;' -// 'G2724 = G4 * G2723;' -// 'G2725 = G2687 + G2724;' -// 'G2726 = G1212 * G27;' -// 'G2727 = G98 * G1187;' -// 'G2728 = C1 * G2727;' -// 'G2729 = G2726 + G2728;' -// 'G2730 = C1 * X17;' -// 'G2731 = G2730 + X73;' -// 'G2732 = G2729 * G2731;' -// 'G2733 = G1201 * G2689;' -// 'G2734 = G1206 * G2692;' -// 'G2735 = G1210 * G2695;' -// 'G2736 = G2733 + G2734 + G2735;' -// 'G2737 = G27 * G2736;' -// 'G2738 = G1212 * G2708;' -// 'G2739 = G2737 + G2738;' -// 'G2740 = G87 * G2700;' -// 'G2741 = G92 * G2703;' -// 'G2742 = G96 * G2706;' -// 'G2743 = G2740 + G2741 + G2742;' -// 'G2744 = G1187 * G2743;' -// 'G2745 = G98 * G2719;' -// 'G2746 = G2744 + G2745;' -// 'G2747 = C1 * G2746;' -// 'G2748 = G2739 + G2747;' -// 'G2749 = G76 * G2748;' -// 'G2750 = G2732 + G2749;' -// 'G2751 = C1 * G2750;' -// 'G2752 = G2725 + G2751;' -// 'G2753 = C1 * X16;' -// 'G2754 = G2753 + X72;' -// 'G2755 = G2684 * G2754;' -// 'G2756 = G107 * G2723;' -// 'G2757 = G2755 + G2756;' -// 'G2758 = G1240 * G27;' -// 'G2759 = G129 * G1187;' -// 'G2760 = C1 * G2759;' -// 'G2761 = G2758 + G2760;' -// 'G2762 = G2761 * G2731;' -// 'G2763 = G1230 * G2689;' -// 'G2764 = G1235 * G2692;' -// 'G2765 = G1238 * G2695;' -// 'G2766 = G2763 + G2764 + G2765;' -// 'G2767 = G27 * G2766;' -// 'G2768 = G1240 * G2708;' -// 'G2769 = G2767 + G2768;' -// 'G2770 = G119 * G2700;' -// 'G2771 = G124 * G2703;' -// 'G2772 = G127 * G2706;' -// 'G2773 = G2770 + G2771 + G2772;' -// 'G2774 = G1187 * G2773;' -// 'G2775 = G129 * G2719;' -// 'G2776 = G2774 + G2775;' -// 'G2777 = C1 * G2776;' -// 'G2778 = G2769 + G2777;' -// 'G2779 = G76 * G2778;' -// 'G2780 = G2762 + G2779;' -// 'G2781 = C1 * G2780;' -// 'G2782 = G2757 + G2781;' -// 'G2783 = G1258 * G151;' -// 'G2784 = G169 * G1267;' -// 'G2785 = C1 * G2784;' -// 'G2786 = G2783 + G2785;' -// 'G2787 = C1 * X24;' -// 'G2788 = G2787 + X80;' -// 'G2789 = G2786 * G2788;' -// 'G2790 = C1 * X27;' -// 'G2791 = G2790 + X83;' -// 'G2792 = G1151 * G2791;' -// 'G2793 = C1 * X28;' -// 'G2794 = G2793 + X84;' -// 'G2795 = G1157 * G2794;' -// 'G2796 = C1 * X29;' -// 'G2797 = G2796 + X85;' -// 'G2798 = G1166 * G2797;' -// 'G2799 = G2792 + G2795 + G2798;' -// 'G2800 = G151 * G2799;' -// 'G2801 = C1 * X30;' -// 'G2802 = G2801 + X86;' -// 'G2803 = G15 * G2802;' -// 'G2804 = C1 * X31;' -// 'G2805 = G2804 + X87;' -// 'G2806 = G20 * G2805;' -// 'G2807 = C1 * X32;' -// 'G2808 = G2807 + X88;' -// 'G2809 = G25 * G2808;' -// 'G2810 = G2803 + G2806 + G2809;' -// 'G2811 = G1258 * G2810;' -// 'G2812 = G2800 + G2811;' -// 'G2813 = G49 * G2802;' -// 'G2814 = G55 * G2805;' -// 'G2815 = G60 * G2808;' -// 'G2816 = G2813 + G2814 + G2815;' -// 'G2817 = G1267 * G2816;' -// 'G2818 = G1181 * G2791;' -// 'G2819 = G1183 * G2794;' -// 'G2820 = G1185 * G2797;' -// 'G2821 = G2818 + G2819 + G2820;' -// 'G2822 = G169 * G2821;' -// 'G2823 = G2817 + G2822;' -// 'G2824 = C1 * G2823;' -// 'G2825 = G2812 + G2824;' -// 'G2826 = G138 * G2825;' -// 'G2827 = G2789 + G2826;' -// 'G2828 = G1279 * G151;' -// 'G2829 = G189 * G1267;' -// 'G2830 = C1 * G2829;' -// 'G2831 = G2828 + G2830;' -// 'G2832 = C1 * X26;' -// 'G2833 = G2832 + X82;' -// 'G2834 = G2831 * G2833;' -// 'G2835 = G1201 * G2791;' -// 'G2836 = G1206 * G2794;' -// 'G2837 = G1210 * G2797;' -// 'G2838 = G2835 + G2836 + G2837;' -// 'G2839 = G151 * G2838;' -// 'G2840 = G1279 * G2810;' -// 'G2841 = G2839 + G2840;' -// 'G2842 = G87 * G2802;' -// 'G2843 = G92 * G2805;' -// 'G2844 = G96 * G2808;' -// 'G2845 = G2842 + G2843 + G2844;' -// 'G2846 = G1267 * G2845;' -// 'G2847 = G189 * G2821;' -// 'G2848 = G2846 + G2847;' -// 'G2849 = C1 * G2848;' -// 'G2850 = G2841 + G2849;' -// 'G2851 = G180 * G2850;' -// 'G2852 = G2834 + G2851;' -// 'G2853 = C1 * G2852;' -// 'G2854 = G2827 + G2853;' -// 'G2855 = C1 * X25;' -// 'G2856 = G2855 + X81;' -// 'G2857 = G2786 * G2856;' -// 'G2858 = G198 * G2825;' -// 'G2859 = G2857 + G2858;' -// 'G2860 = G1295 * G151;' -// 'G2861 = G208 * G1267;' -// 'G2862 = C1 * G2861;' -// 'G2863 = G2860 + G2862;' -// 'G2864 = G2863 * G2833;' -// 'G2865 = G1230 * G2791;' -// 'G2866 = G1235 * G2794;' -// 'G2867 = G1238 * G2797;' -// 'G2868 = G2865 + G2866 + G2867;' -// 'G2869 = G151 * G2868;' -// 'G2870 = G1295 * G2810;' -// 'G2871 = G2869 + G2870;' -// 'G2872 = G119 * G2802;' -// 'G2873 = G124 * G2805;' -// 'G2874 = G127 * G2808;' -// 'G2875 = G2872 + G2873 + G2874;' -// 'G2876 = G1267 * G2875;' -// 'G2877 = G208 * G2821;' -// 'G2878 = G2876 + G2877;' -// 'G2879 = C1 * G2878;' -// 'G2880 = G2871 + G2879;' -// 'G2881 = G180 * G2880;' -// 'G2882 = G2864 + G2881;' -// 'G2883 = C1 * G2882;' -// 'G2884 = G2859 + G2883;' -// 'G2885 = G1310 * G230;' -// 'G2886 = G248 * G1319;' -// 'G2887 = C1 * G2886;' -// 'G2888 = G2885 + G2887;' -// 'G2889 = C1 * X33;' -// 'G2890 = G2889 + X89;' -// 'G2891 = G2888 * G2890;' -// 'G2892 = C1 * X36;' -// 'G2893 = G2892 + X92;' -// 'G2894 = G1151 * G2893;' -// 'G2895 = C1 * X37;' -// 'G2896 = G2895 + X93;' -// 'G2897 = G1157 * G2896;' -// 'G2898 = C1 * X38;' -// 'G2899 = G2898 + X94;' -// 'G2900 = G1166 * G2899;' -// 'G2901 = G2894 + G2897 + G2900;' -// 'G2902 = G230 * G2901;' -// 'G2903 = C1 * X39;' -// 'G2904 = G2903 + X95;' -// 'G2905 = G15 * G2904;' -// 'G2906 = C1 * X40;' -// 'G2907 = G2906 + X96;' -// 'G2908 = G20 * G2907;' -// 'G2909 = C1 * X41;' -// 'G2910 = G2909 + X97;' -// 'G2911 = G25 * G2910;' -// 'G2912 = G2905 + G2908 + G2911;' -// 'G2913 = G1310 * G2912;' -// 'G2914 = G2902 + G2913;' -// 'G2915 = G49 * G2904;' -// 'G2916 = G55 * G2907;' -// 'G2917 = G60 * G2910;' -// 'G2918 = G2915 + G2916 + G2917;' -// 'G2919 = G1319 * G2918;' -// 'G2920 = G1181 * G2893;' -// 'G2921 = G1183 * G2896;' -// 'G2922 = G1185 * G2899;' -// 'G2923 = G2920 + G2921 + G2922;' -// 'G2924 = G248 * G2923;' -// 'G2925 = G2919 + G2924;' -// 'G2926 = C1 * G2925;' -// 'G2927 = G2914 + G2926;' -// 'G2928 = G217 * G2927;' -// 'G2929 = G2891 + G2928;' -// 'G2930 = G1331 * G230;' -// 'G2931 = G268 * G1319;' -// 'G2932 = C1 * G2931;' -// 'G2933 = G2930 + G2932;' -// 'G2934 = C1 * X35;' -// 'G2935 = G2934 + X91;' -// 'G2936 = G2933 * G2935;' -// 'G2937 = G1201 * G2893;' -// 'G2938 = G1206 * G2896;' -// 'G2939 = G1210 * G2899;' -// 'G2940 = G2937 + G2938 + G2939;' -// 'G2941 = G230 * G2940;' -// 'G2942 = G1331 * G2912;' -// 'G2943 = G2941 + G2942;' -// 'G2944 = G87 * G2904;' -// 'G2945 = G92 * G2907;' -// 'G2946 = G96 * G2910;' -// 'G2947 = G2944 + G2945 + G2946;' -// 'G2948 = G1319 * G2947;' -// 'G2949 = G268 * G2923;' -// 'G2950 = G2948 + G2949;' -// 'G2951 = C1 * G2950;' -// 'G2952 = G2943 + G2951;' -// 'G2953 = G259 * G2952;' -// 'G2954 = G2936 + G2953;' -// 'G2955 = C1 * G2954;' -// 'G2956 = G2929 + G2955;' -// 'G2957 = C1 * X34;' -// 'G2958 = G2957 + X90;' -// 'G2959 = G2888 * G2958;' -// 'G2960 = G277 * G2927;' -// 'G2961 = G2959 + G2960;' -// 'G2962 = G1347 * G230;' -// 'G2963 = G287 * G1319;' -// 'G2964 = C1 * G2963;' -// 'G2965 = G2962 + G2964;' -// 'G2966 = G2965 * G2935;' -// 'G2967 = G1230 * G2893;' -// 'G2968 = G1235 * G2896;' -// 'G2969 = G1238 * G2899;' -// 'G2970 = G2967 + G2968 + G2969;' -// 'G2971 = G230 * G2970;' -// 'G2972 = G1347 * G2912;' -// 'G2973 = G2971 + G2972;' -// 'G2974 = G119 * G2904;' -// 'G2975 = G124 * G2907;' -// 'G2976 = G127 * G2910;' -// 'G2977 = G2974 + G2975 + G2976;' -// 'G2978 = G1319 * G2977;' -// 'G2979 = G287 * G2923;' -// 'G2980 = G2978 + G2979;' -// 'G2981 = C1 * G2980;' -// 'G2982 = G2973 + G2981;' -// 'G2983 = G259 * G2982;' -// 'G2984 = G2966 + G2983;' -// 'G2985 = C1 * G2984;' -// 'G2986 = G2961 + G2985;' -// 'G2987 = G1362 * G321;' -// 'G2988 = G345 * G1371;' -// 'G2989 = C1 * G2988;' -// 'G2990 = G2987 + G2989;' -// 'G2991 = C1 * X42;' -// 'G2992 = G2991 + X98;' -// 'G2993 = G4 * G2992;' -// 'G2994 = G296 * G2686;' -// 'G2995 = G2993 + G2994;' -// 'G2996 = C1 * X43;' -// 'G2997 = G2996 + X99;' -// 'G2998 = G138 * G2997;' -// 'G2999 = G300 * G2788;' -// 'G3000 = G2998 + G2999;' -// 'G3001 = G2995 + G3000;' -// 'G3002 = G2990 * G3001;' -// 'G3003 = C1 * X44;' -// 'G3004 = G3003 + X100;' -// 'G3005 = G30 * G3004;' -// 'G3006 = G324 * G2689;' -// 'G3007 = G3005 + G3006;' -// 'G3008 = C1 * X45;' -// 'G3009 = G3008 + X101;' -// 'G3010 = G154 * G3009;' -// 'G3011 = G328 * G2791;' -// 'G3012 = G3010 + G3011;' -// 'G3013 = G3007 + G3012;' -// 'G3014 = G1151 * G3013;' -// 'G3015 = G35 * G3004;' -// 'G3016 = G324 * G2692;' -// 'G3017 = G3015 + G3016;' -// 'G3018 = G158 * G3009;' -// 'G3019 = G328 * G2794;' -// 'G3020 = G3018 + G3019;' -// 'G3021 = G3017 + G3020;' -// 'G3022 = G1157 * G3021;' -// 'G3023 = G41 * G3004;' -// 'G3024 = G324 * G2695;' -// 'G3025 = G3023 + G3024;' -// 'G3026 = G162 * G3009;' -// 'G3027 = G328 * G2797;' -// 'G3028 = G3026 + G3027;' -// 'G3029 = G3025 + G3028;' -// 'G3030 = G1166 * G3029;' -// 'G3031 = G3014 + G3022 + G3030;' -// 'G3032 = G321 * G3031;' -// 'G3033 = C1 * X46;' -// 'G3034 = G3033 + X102;' -// 'G3035 = G7 * G3034;' -// 'G3036 = G305 * G2700;' -// 'G3037 = G3035 + G3036;' -// 'G3038 = C1 * X47;' -// 'G3039 = G3038 + X103;' -// 'G3040 = G141 * G3039;' -// 'G3041 = G309 * G2802;' -// 'G3042 = G3040 + G3041;' -// 'G3043 = G3037 + G3042;' -// 'G3044 = G15 * G3043;' -// 'G3045 = G19 * G3034;' -// 'G3046 = G305 * G2703;' -// 'G3047 = G3045 + G3046;' -// 'G3048 = G145 * G3039;' -// 'G3049 = G309 * G2805;' -// 'G3050 = G3048 + G3049;' -// 'G3051 = G3047 + G3050;' -// 'G3052 = G20 * G3051;' -// 'G3053 = G24 * G3034;' -// 'G3054 = G305 * G2706;' -// 'G3055 = G3053 + G3054;' -// 'G3056 = G149 * G3039;' -// 'G3057 = G309 * G2808;' -// 'G3058 = G3056 + G3057;' -// 'G3059 = G3055 + G3058;' -// 'G3060 = G25 * G3059;' -// 'G3061 = G3044 + G3052 + G3060;' -// 'G3062 = G1362 * G3061;' -// 'G3063 = G3032 + G3062;' -// 'G3064 = G49 * G3043;' -// 'G3065 = G55 * G3051;' -// 'G3066 = G60 * G3059;' -// 'G3067 = G3064 + G3065 + G3066;' -// 'G3068 = G1371 * G3067;' -// 'G3069 = G1181 * G3013;' -// 'G3070 = G1183 * G3021;' -// 'G3071 = G1185 * G3029;' -// 'G3072 = G3069 + G3070 + G3071;' -// 'G3073 = G345 * G3072;' -// 'G3074 = G3068 + G3073;' -// 'G3075 = C1 * G3074;' -// 'G3076 = G3063 + G3075;' -// 'G3077 = G302 * G3076;' -// 'G3078 = G3002 + G3077;' -// 'G3079 = G1383 * G321;' -// 'G3080 = G365 * G1371;' -// 'G3081 = C1 * G3080;' -// 'G3082 = G3079 + G3081;' -// 'G3083 = G76 * G2992;' -// 'G3084 = G296 * G2731;' -// 'G3085 = G3083 + G3084;' -// 'G3086 = G180 * G2997;' -// 'G3087 = G300 * G2833;' -// 'G3088 = G3086 + G3087;' -// 'G3089 = G3085 + G3088;' -// 'G3090 = G3082 * G3089;' -// 'G3091 = G1201 * G3013;' -// 'G3092 = G1206 * G3021;' -// 'G3093 = G1210 * G3029;' -// 'G3094 = G3091 + G3092 + G3093;' -// 'G3095 = G321 * G3094;' -// 'G3096 = G1383 * G3061;' -// 'G3097 = G3095 + G3096;' -// 'G3098 = G87 * G3043;' -// 'G3099 = G92 * G3051;' -// 'G3100 = G96 * G3059;' -// 'G3101 = G3098 + G3099 + G3100;' -// 'G3102 = G1371 * G3101;' -// 'G3103 = G365 * G3072;' -// 'G3104 = G3102 + G3103;' -// 'G3105 = C1 * G3104;' -// 'G3106 = G3097 + G3105;' -// 'G3107 = G356 * G3106;' -// 'G3108 = G3090 + G3107;' -// 'G3109 = C1 * G3108;' -// 'G3110 = G3078 + G3109;' -// 'G3111 = G107 * G2992;' -// 'G3112 = G296 * G2754;' -// 'G3113 = G3111 + G3112;' -// 'G3114 = G198 * G2997;' -// 'G3115 = G300 * G2856;' -// 'G3116 = G3114 + G3115;' -// 'G3117 = G3113 + G3116;' -// 'G3118 = G2990 * G3117;' -// 'G3119 = G374 * G3076;' -// 'G3120 = G3118 + G3119;' -// 'G3121 = G1399 * G321;' -// 'G3122 = G384 * G1371;' -// 'G3123 = C1 * G3122;' -// 'G3124 = G3121 + G3123;' -// 'G3125 = G3124 * G3089;' -// 'G3126 = G1230 * G3013;' -// 'G3127 = G1235 * G3021;' -// 'G3128 = G1238 * G3029;' -// 'G3129 = G3126 + G3127 + G3128;' -// 'G3130 = G321 * G3129;' -// 'G3131 = G1399 * G3061;' -// 'G3132 = G3130 + G3131;' -// 'G3133 = G119 * G3043;' -// 'G3134 = G124 * G3051;' -// 'G3135 = G127 * G3059;' -// 'G3136 = G3133 + G3134 + G3135;' -// 'G3137 = G1371 * G3136;' -// 'G3138 = G384 * G3072;' -// 'G3139 = G3137 + G3138;' -// 'G3140 = C1 * G3139;' -// 'G3141 = G3132 + G3140;' -// 'G3142 = G356 * G3141;' -// 'G3143 = G3125 + G3142;' -// 'G3144 = C1 * G3143;' -// 'G3145 = G3120 + G3144;' -// 'G3146 = G1414 * G418;' -// 'G3147 = G442 * G1423;' -// 'G3148 = C1 * G3147;' -// 'G3149 = G3146 + G3148;' -// 'G3150 = C1 * X48;' -// 'G3151 = G3150 + X104;' -// 'G3152 = G4 * G3151;' -// 'G3153 = G393 * G2686;' -// 'G3154 = G3152 + G3153;' -// 'G3155 = C1 * X49;' -// 'G3156 = G3155 + X105;' -// 'G3157 = G217 * G3156;' -// 'G3158 = G397 * G2890;' -// 'G3159 = G3157 + G3158;' -// 'G3160 = G3154 + G3159;' -// 'G3161 = G3149 * G3160;' -// 'G3162 = C1 * X50;' -// 'G3163 = G3162 + X106;' -// 'G3164 = G30 * G3163;' -// 'G3165 = G421 * G2689;' -// 'G3166 = G3164 + G3165;' -// 'G3167 = C1 * X51;' -// 'G3168 = G3167 + X107;' -// 'G3169 = G233 * G3168;' -// 'G3170 = G425 * G2893;' -// 'G3171 = G3169 + G3170;' -// 'G3172 = G3166 + G3171;' -// 'G3173 = G1151 * G3172;' -// 'G3174 = G35 * G3163;' -// 'G3175 = G421 * G2692;' -// 'G3176 = G3174 + G3175;' -// 'G3177 = G237 * G3168;' -// 'G3178 = G425 * G2896;' -// 'G3179 = G3177 + G3178;' -// 'G3180 = G3176 + G3179;' -// 'G3181 = G1157 * G3180;' -// 'G3182 = G41 * G3163;' -// 'G3183 = G421 * G2695;' -// 'G3184 = G3182 + G3183;' -// 'G3185 = G241 * G3168;' -// 'G3186 = G425 * G2899;' -// 'G3187 = G3185 + G3186;' -// 'G3188 = G3184 + G3187;' -// 'G3189 = G1166 * G3188;' -// 'G3190 = G3173 + G3181 + G3189;' -// 'G3191 = G418 * G3190;' -// 'G3192 = C1 * X52;' -// 'G3193 = G3192 + X108;' -// 'G3194 = G7 * G3193;' -// 'G3195 = G402 * G2700;' -// 'G3196 = G3194 + G3195;' -// 'G3197 = C1 * X53;' -// 'G3198 = G3197 + X109;' -// 'G3199 = G220 * G3198;' -// 'G3200 = G406 * G2904;' -// 'G3201 = G3199 + G3200;' -// 'G3202 = G3196 + G3201;' -// 'G3203 = G15 * G3202;' -// 'G3204 = G19 * G3193;' -// 'G3205 = G402 * G2703;' -// 'G3206 = G3204 + G3205;' -// 'G3207 = G224 * G3198;' -// 'G3208 = G406 * G2907;' -// 'G3209 = G3207 + G3208;' -// 'G3210 = G3206 + G3209;' -// 'G3211 = G20 * G3210;' -// 'G3212 = G24 * G3193;' -// 'G3213 = G402 * G2706;' -// 'G3214 = G3212 + G3213;' -// 'G3215 = G228 * G3198;' -// 'G3216 = G406 * G2910;' -// 'G3217 = G3215 + G3216;' -// 'G3218 = G3214 + G3217;' -// 'G3219 = G25 * G3218;' -// 'G3220 = G3203 + G3211 + G3219;' -// 'G3221 = G1414 * G3220;' -// 'G3222 = G3191 + G3221;' -// 'G3223 = G49 * G3202;' -// 'G3224 = G55 * G3210;' -// 'G3225 = G60 * G3218;' -// 'G3226 = G3223 + G3224 + G3225;' -// 'G3227 = G1423 * G3226;' -// 'G3228 = G1181 * G3172;' -// 'G3229 = G1183 * G3180;' -// 'G3230 = G1185 * G3188;' -// 'G3231 = G3228 + G3229 + G3230;' -// 'G3232 = G442 * G3231;' -// 'G3233 = G3227 + G3232;' -// 'G3234 = C1 * G3233;' -// 'G3235 = G3222 + G3234;' -// 'G3236 = G399 * G3235;' -// 'G3237 = G3161 + G3236;' -// 'G3238 = G1435 * G418;' -// 'G3239 = G462 * G1423;' -// 'G3240 = C1 * G3239;' -// 'G3241 = G3238 + G3240;' -// 'G3242 = G76 * G3151;' -// 'G3243 = G393 * G2731;' -// 'G3244 = G3242 + G3243;' -// 'G3245 = G259 * G3156;' -// 'G3246 = G397 * G2935;' -// 'G3247 = G3245 + G3246;' -// 'G3248 = G3244 + G3247;' -// 'G3249 = G3241 * G3248;' -// 'G3250 = G1201 * G3172;' -// 'G3251 = G1206 * G3180;' -// 'G3252 = G1210 * G3188;' -// 'G3253 = G3250 + G3251 + G3252;' -// 'G3254 = G418 * G3253;' -// 'G3255 = G1435 * G3220;' -// 'G3256 = G3254 + G3255;' -// 'G3257 = G87 * G3202;' -// 'G3258 = G92 * G3210;' -// 'G3259 = G96 * G3218;' -// 'G3260 = G3257 + G3258 + G3259;' -// 'G3261 = G1423 * G3260;' -// 'G3262 = G462 * G3231;' -// 'G3263 = G3261 + G3262;' -// 'G3264 = C1 * G3263;' -// 'G3265 = G3256 + G3264;' -// 'G3266 = G453 * G3265;' -// 'G3267 = G3249 + G3266;' -// 'G3268 = C1 * G3267;' -// 'G3269 = G3237 + G3268;' -// 'G3270 = G107 * G3151;' -// 'G3271 = G393 * G2754;' -// 'G3272 = G3270 + G3271;' -// 'G3273 = G277 * G3156;' -// 'G3274 = G397 * G2958;' -// 'G3275 = G3273 + G3274;' -// 'G3276 = G3272 + G3275;' -// 'G3277 = G3149 * G3276;' -// 'G3278 = G471 * G3235;' -// 'G3279 = G3277 + G3278;' -// 'G3280 = G1451 * G418;' -// 'G3281 = G481 * G1423;' -// 'G3282 = C1 * G3281;' -// 'G3283 = G3280 + G3282;' -// 'G3284 = G3283 * G3248;' -// 'G3285 = G1230 * G3172;' -// 'G3286 = G1235 * G3180;' -// 'G3287 = G1238 * G3188;' -// 'G3288 = G3285 + G3286 + G3287;' -// 'G3289 = G418 * G3288;' -// 'G3290 = G1451 * G3220;' -// 'G3291 = G3289 + G3290;' -// 'G3292 = G119 * G3202;' -// 'G3293 = G124 * G3210;' -// 'G3294 = G127 * G3218;' -// 'G3295 = G3292 + G3293 + G3294;' -// 'G3296 = G1423 * G3295;' -// 'G3297 = G481 * G3231;' -// 'G3298 = G3296 + G3297;' -// 'G3299 = C1 * G3298;' -// 'G3300 = G3291 + G3299;' -// 'G3301 = G453 * G3300;' -// 'G3302 = G3284 + G3301;' -// 'G3303 = C1 * G3302;' -// 'G3304 = G3279 + G3303;' -// 'G3305 = G1310 * G151;' -// 'G3306 = G169 * G1319;' -// 'G3307 = C1 * G3306;' -// 'G3308 = G3305 + G3307;' -// 'G3309 = G277 * G3308;' -// 'G3310 = G1347 * G151;' -// 'G3311 = G208 * G1319;' -// 'G3312 = C1 * G3311;' -// 'G3313 = G3310 + G3312;' -// 'G3314 = G259 * G3313;' -// 'G3315 = C1 * G3314;' -// 'G3316 = G3309 + G3315;' -// 'G3317 = G3316 * G2788;' -// 'G3318 = G3308 * G2958;' -// 'G3319 = G151 * G2901;' -// 'G3320 = G1310 * G2810;' -// 'G3321 = G3319 + G3320;' -// 'G3322 = G1319 * G2816;' -// 'G3323 = G169 * G2923;' -// 'G3324 = G3322 + G3323;' -// 'G3325 = C1 * G3324;' -// 'G3326 = G3321 + G3325;' -// 'G3327 = G277 * G3326;' -// 'G3328 = G3318 + G3327;' -// 'G3329 = G3313 * G2935;' -// 'G3330 = G151 * G2970;' -// 'G3331 = G1347 * G2810;' -// 'G3332 = G3330 + G3331;' -// 'G3333 = G1319 * G2875;' -// 'G3334 = G208 * G2923;' -// 'G3335 = G3333 + G3334;' -// 'G3336 = C1 * G3335;' -// 'G3337 = G3332 + G3336;' -// 'G3338 = G259 * G3337;' -// 'G3339 = G3329 + G3338;' -// 'G3340 = C1 * G3339;' -// 'G3341 = G3328 + G3340;' -// 'G3342 = G138 * G3341;' -// 'G3343 = G3317 + G3342;' -// 'G3344 = G217 * G3308;' -// 'G3345 = G1331 * G151;' -// 'G3346 = G189 * G1319;' -// 'G3347 = C1 * G3346;' -// 'G3348 = G3345 + G3347;' -// 'G3349 = G259 * G3348;' -// 'G3350 = C1 * G3349;' -// 'G3351 = G3344 + G3350;' -// 'G3352 = G3351 * G2856;' -// 'G3353 = G3308 * G2890;' -// 'G3354 = G217 * G3326;' -// 'G3355 = G3353 + G3354;' -// 'G3356 = G3348 * G2935;' -// 'G3357 = G151 * G2940;' -// 'G3358 = G1331 * G2810;' -// 'G3359 = G3357 + G3358;' -// 'G3360 = G1319 * G2845;' -// 'G3361 = G189 * G2923;' -// 'G3362 = G3360 + G3361;' -// 'G3363 = C1 * G3362;' -// 'G3364 = G3359 + G3363;' -// 'G3365 = G259 * G3364;' -// 'G3366 = G3356 + G3365;' -// 'G3367 = C1 * G3366;' -// 'G3368 = G3355 + G3367;' -// 'G3369 = G198 * G3368;' -// 'G3370 = G3352 + G3369;' -// 'G3371 = C1 * G3370;' -// 'G3372 = G3343 + G3371;' -// 'G3373 = G217 * G3313;' -// 'G3374 = G277 * G3348;' -// 'G3375 = C1 * G3374;' -// 'G3376 = G3373 + G3375;' -// 'G3377 = G3376 * G2833;' -// 'G3378 = G3313 * G2890;' -// 'G3379 = G217 * G3337;' -// 'G3380 = G3378 + G3379;' -// 'G3381 = G3348 * G2958;' -// 'G3382 = G277 * G3364;' -// 'G3383 = G3381 + G3382;' -// 'G3384 = C1 * G3383;' -// 'G3385 = G3380 + G3384;' -// 'G3386 = G180 * G3385;' -// 'G3387 = G3377 + G3386;' -// 'G3388 = G3372 + G3387;' -// 'G3389 = C1 * X54;' -// 'G3390 = G3389 + X110;' -// 'G3391 = X8 * G3390;' -// 'G3392 = C1 * X55;' -// 'G3393 = G3392 + X111;' -// 'G3394 = X9 * G3393;' -// 'G3395 = C1 * X56;' -// 'G3396 = G3395 + X112;' -// 'G3397 = X10 * G3396;' -// 'G3398 = C1 * X57;' -// 'G3399 = G3398 + X113;' -// 'G3400 = X11 * G3399;' -// 'G3401 = C1 * X58;' -// 'G3402 = G3401 + X114;' -// 'G3403 = X12 * G3402;' -// 'G3404 = C1 * X59;' -// 'G3405 = G3404 + X115;' -// 'G3406 = X13 * G3405;' -// 'G3407 = C1 * X60;' -// 'G3408 = G3407 + X116;' -// 'G3409 = G3391 + G3394 + G3397 + G3400 + G3403 + G3406 + G3408;' -// 'G3410 = C1 * X61;' -// 'G3411 = G3410 + X117;' -// 'G3412 = X0 * G3411;' -// 'G3413 = C1 * X62;' -// 'G3414 = G3413 + X118;' -// 'G3415 = X1 * G3414;' -// 'G3416 = C1 * X63;' -// 'G3417 = G3416 + X119;' -// 'G3418 = X2 * G3417;' -// 'G3419 = C1 * X64;' -// 'G3420 = G3419 + X120;' -// 'G3421 = X3 * G3420;' -// 'G3422 = C1 * X65;' -// 'G3423 = G3422 + X121;' -// 'G3424 = G3412 + G3415 + G3418 + G3421 + G3423;' -// 'G3425 = C1 * X66;' -// 'G3426 = G3425 + X122;' -// 'G3427 = X4 * G3426;' -// 'G3428 = C1 * X67;' -// 'G3429 = G3428 + X123;' -// 'G3430 = X5 * G3429;' -// 'G3431 = C1 * X68;' -// 'G3432 = G3431 + X124;' -// 'G3433 = X6 * G3432;' -// 'G3434 = C1 * X69;' -// 'G3435 = G3434 + X125;' -// 'G3436 = X7 * G3435;' -// 'G3437 = C1 * X70;' -// 'G3438 = G3437 + X126;' -// 'G3439 = G3427 + G3430 + G3433 + G3436 + G3438;' -]; diff --git a/scripts/dag/direct_expression.sce b/scripts/dag/direct_expression.sce index d2b480f..62e0766 100644 --- a/scripts/dag/direct_expression.sce +++ b/scripts/dag/direct_expression.sce @@ -29,6 +29,8 @@ function ids = get_roots() endfunction function de = direct_expression(i) + global dag_from; + global nodes_in_graph; if(nodes_in_graph(i) == 0) de = '' else @@ -50,14 +52,83 @@ function de = direct_expression(i) end de = p1a + direct_expression(dag_from(i)(1)) + p1b + node_type(i) .. + p2a + direct_expression(dag_from(i)(2)) + p2b; - if length(dag_from(i)) == 3 // up to 3 sums per gate are supported + // At least two nodes forma gate. The rest mst be the same type + // of addition otherwise it is not supported. + // Since we assume it is addition, we do not parenthesize + for k=3:length(dag_from(i)) // for now only '+' will be the case here - de = de + node_type(i) + p3a + direct_expression(dag_from(i)(3)) + p3b + de = de + node_type(i) + p3a + direct_expression(dag_from(i)(k)) + p3b end end end endfunction +global dag_to_copy; +// remove node from dag_to(i) +function remove_from_dag_to(i,node) + global dag_to_copy; + + for k=1:length(dag_to_copy(i)) + if dag_to_copy(i)(k) == node + dag_to_copy(i)(k) = null() + break; + end + end +end + +function de = direct_expression_remove_out(i) + global dag_from; + global dag_to; + global nodes_in_graph; + global dag_to_copy; + if nodes_in_graph(i) == 0 | isempty(dag_to_copy(i)) & ~isempty(dag_to(i)) + de = '' + else + if isempty(dag_from(i)) + de = nodename(i); + else + p1a = '', p1b = ''; p2a = '', p2b = ''; p3a = '', p3b = ''; + if node_type(i) == '*' + if ~isempty(dag_from(dag_from(i)(1))) + if (node_type(dag_from(i)(1)) == '+') + p1a = '(', p1b = ')'; + end + end + if ~isempty(dag_from(dag_from(i)(2))) + if (node_type(dag_from(i)(2)) == '+') + p2a = '(', p2b = ')'; + end + end + end + de = p1a + direct_expression(dag_from(i)(1)) + p1b + node_type(i) .. + + p2a + direct_expression(dag_from(i)(2)) + p2b; + + remove_from_dag_to(dag_from(i)(1),i); + remove_from_dag_to(dag_from(i)(2),i); + + // At least two nodes forma gate. The rest mst be the same type + // of addition otherwise it is not supported. + // Since we assume it is addition, we do not parenthesize + for k=3:length(dag_from(i)) + // for now only '+' will be the case here + de = de + node_type(i) + p3a + direct_expression(dag_from(i)(k)) + p3b + remove_from_dag_to(dag_from(i)(k),i); + end + end + end +endfunction + + +// gets explicit expression for node i and below, +// without outputing expressions if they were alredy used +function p = pedag(i) + dag_to_copy = dag_to; + p = ''; p(i) = ''; + for k=i:-1:1 + p(k) = direct_expression_remove_out(k); + end +endfunction + disp roots: l = get_roots() nr = size(l,'*'); @@ -70,6 +141,8 @@ end del = de(l); +// p = pedag() + // write('expr.c',del); // "(C0+(C1*X14))*X15" diff --git a/scripts/dag/extract_tree.sce b/scripts/dag/extract_tree.sce new file mode 100644 index 0000000..2412b65 --- /dev/null +++ b/scripts/dag/extract_tree.sce @@ -0,0 +1,33 @@ +global extracted; +extracted = zeros(n_total,1); + +function nodes_dependent_on_i = extract_tree(i) + global extracted; + nodes_dependent_on_i = ''; + if ~extracted(i) + extracted(i) = 1; + nodes_dependent_on_i = nodename(i) + ';'; + for k=1:length(dag_to(i)) + nodes_dependent_on_i = nodes_dependent_on_i + extract_tree(dag_to(i)(k)); + end + end +endfunction + +et = list(); +for i=0:14 + et(i+1) = extract_tree(get_id('X'+ string(i))); +end + +ets = '' +for i=1:15 + ets = ets + et(i); +end + +//write('xt-dep',ets); + +fd=mopen('out/xt-dep',"wt"); +mfprintf(fd,ets); +mclose(fd); + +// s/;/ /g +// uniq xt-dep |sort -n|uniq >xt-dep-uniq diff --git a/scripts/dag/t_dep b/scripts/dag/t_dep new file mode 100755 index 0000000..f4a888f --- /dev/null +++ b/scripts/dag/t_dep @@ -0,0 +1,23 @@ +#!/bin/bash +# +# To substutute gates in the file +# Geonerally after we are using direct_expressions +# +awk '{print $1+1}' xt-dep-uniq >/tmp/t_dep_lines +sed 's/$/p;/g' /tmp/t_dep_lines >/tmp/t_dep_plines +sed 's/$/d;/g' /tmp/t_dep_lines >/tmp/t_dep_dlines + +# for l in $lines; do +# sed -n "$((l+1))p" gates > 1-gates +# done + +#echo -e $linesd | sed -n -f /dev/stdin gates > 1-gates +#echo -e "$linesd" +#echo -e $linesd | sed -f /dev/stdin gate_instructions > other-gates + + +# HERE: ------------------------------------------------------------------------ +#set -x +# "gates" is just a file with each G line in the evaluator C++ +sed -f /tmp/t_dep_dlines gates > other-gates +sed -n -f /tmp/t_dep_plines gates > 1-gates diff --git a/scripts/lu.sci b/scripts/lu.sci new file mode 100644 index 0000000..4caac1e --- /dev/null +++ b/scripts/lu.sci @@ -0,0 +1,8 @@ +s = '' +for i=12:-1:0 + s= s + 'd(' + string(i) + ') -= ' + for k=(i+1):13 + s = s + '+ m(' + string(i) + ',' + string(k) + ')*d(' + string(k) + ')'; + end + s = s + 'xx' +end diff --git a/scripts/synthdata/100-configurations-synthdata b/scripts/synthdata/100-configurations-synthdata new file mode 100644 index 0000000..e094f5e --- /dev/null +++ b/scripts/synthdata/100-configurations-synthdata @@ -0,0 +1,100 @@ +5 30 27 1650 1035 4770 +78 86 88 2200 3685 620 +52 72 99 1600 3385 3920 +99 38 84 2450 1485 3479 +11 90 7 5000 2585 2170 +39 99 40 250 485 2920 +92 67 0 2700 5085 370 +97 60 91 3350 35 1770 +84 25 98 1550 1185 220 +93 58 16 2550 2185 1370 +42 16 87 1350 4535 1220 +96 2 37 1300 3735 1470 +46 14 77 1050 2785 2720 +56 57 34 4250 4635 5020 +12 68 38 4850 3335 920 +1 33 75 4550 385 1670 +23 19 15 550 1635 320 +45 29 60 1900 1235 1870 +44 94 32 400 3135 1170 +69 26 44 0 4035 3020 +7 17 48 1150 935 1620 +35 70 28 2150 3935 2520 +49 85 67 2900 2435 2370 +87 78 54 4000 535 1920 +95 89 20 2100 2135 4570 +26 50 56 2850 4785 4520 +79 80 26 800 2735 4 +32 34 17 1250 1335 2420 +31 0 68 750 3185 270 +29 22 71 1500 3535 4420 +6 73 45 3800 2385 3520 +54 10 47 500 185 70 +94 88 93 3200 735 3120 +27 66 85 700 1585 2120 +61 40 64 3000 2835 2020 +19 27 22 3850 1885 670 +74 75 73 4200 285 3720 +16 53 59 650 2685 4720 +90 20 8 150 985 3170 +25 49 26 4050 1385 1320 +63 4 90 3550 5035 2770 +81 51 63 1700 2885 1420 +51 48 21 4400 1735 4820 +68 35 55 2250 1935 4920 +85 44 97 2800 4985 2570 +33 15 50 3750 2035 2270 +21 82 3 900 635 2220 +60 59 40 4800 2485 2670 +62 42 30 200 2985 4870 +73 64 10 3300 4787 1720 +70 69 65 2500 1435 3770 +64 5 94 100 1135 820 +76 12 66 3150 4885 2970 +58 87 6 950 1835 3470 +48 7 2 3900 2935 3070 +50 9 24 4750 738 2320 +98 71 29 4600 3085 720 +72 1 78 2300 1285 3420 +37 39 42 3400 3835 4070 +34 96 98 4950 4235 420 +75 6 86 3700 2535 1570 +22 13 11 1800 235 3570 +80 83 5 450 3885 20 +20 65 58 3600 85 1070 +47 11 61 4350 1685 1520 +15 21 74 1200 335 120 +71 56 82 3450 1435 4620 +8 45 72 4450 585 970 +89 24 81 3650 3035 570 +4 92 95 2750 4385 3320 +41 18 13 3100 3235 5070 +13 52 80 2050 4585 1120 +59 54 31 350 2085 4220 +14 76 12 5050 4685 2820 +86 93 36 2950 3585 770 +55 32 53 2400 1085 3220 +0 36 14 1750 4335 3870 +30 75 19 1850 3485 4670 +66 98 9 5100 2285 4270 +40 8 35 1100 685 4320 +17 46 89 1450 4285 470 +57 3 18 3050 435 4020 +36 37 33 600 1535 1970 +28 63 51 4650 3985 3370 +65 95 4 4900 4085 170 +43 80 69 4700 1938 3820 +67 97 83 3500 135 4470 +2 77 52 1000 785 4370 +83 62 49 4500 19 3620 +77 47 46 300 2235 3970 +9 31 79 4300 4485 1270 +91 41 23 1950 1785 2070 +82 81 1 50 1985 3670 +18 43 45 2650 2335 1020 +24 23 62 3950 3635 3270 +3 55 57 2350 4835 4970 +53 61 92 4100 3785 1820 +88 84 41 2000 4435 520 +10 28 76 1400 4135 2127 +38 91 70 3250 835 2870 diff --git a/scripts/synthdata/100-configurations-synthdata.sh b/scripts/synthdata/100-configurations-synthdata.sh new file mode 100644 index 0000000..e8385f0 --- /dev/null +++ b/scripts/synthdata/100-configurations-synthdata.sh @@ -0,0 +1,11 @@ +# generate 3 random frames and 3 random point ids +# +# each frame is 0-99 (number of frames in synthdata is 100) +# each line is 0-5116 (number of points in synthdata is 5117) +# +# not used + +f=/tmp/minus-100-configs.$$; + +seq 0 99 | gshuf > $f +seq 0 99 | paste $f - diff --git a/scripts/synthdata/getlines b/scripts/synthdata/getlines new file mode 100755 index 0000000..55b367f --- /dev/null +++ b/scripts/synthdata/getlines @@ -0,0 +1,41 @@ +#!/bin/bash + +# extracts the desired trinocular data for Chicago +# from synthetic data files +# + +cd /Users/rfabbri/lib/data/synthcurves-multiview-3d-dataset/spherical-ascii-100_views-perturb-radius_sigma10-normal_sigma0_01rad-minsep_15deg-no_two_cams_colinear_with_object + + +frames="42 54 62" +# off by one mistake by hongyi: +lines="3011 3389 620" +#set -x +for i in $frames; do + echo "// 2D points for frame $i" + for l in $lines; do + sed -n "${l}p" frame_00$i-pts-2d.txt + done +done + +for i in $frames; do + echo "// 2D tangents for frame $i" + for l in $lines; do + sed -n "${l}p" frame_00$i-tgts-2d.txt + done +done + +echo "// 3D points" +for l in $lines; do + sed -n "${l}p" crv-3D-pts.txt +done + +#for i in $frames; do +# echo "// tangents for frame $i" +# sed -n '3012p;3390p' frame_00$i-tgts-2d.txt +#done + +for i in $frames; do + echo "// extrinsics for frame $i" + cat frame_00$i.extrinsic +done diff --git a/scripts/synthdata/synthdata b/scripts/synthdata/synthdata new file mode 100755 index 0000000..cde89b0 --- /dev/null +++ b/scripts/synthdata/synthdata @@ -0,0 +1,137 @@ +#!/bin/bash + +# extracts the desired trinocular data for Chicago +# from synthetic data files +# +if [ "$#" -ne 0 -a "$#" -ne 6 -a "$#" -ne 8 -a "$#" -ne 16 ]; then + echo 'Usage 1: generate data and ground truth for a single trifocal problem:' 1>&2; + echo ' synthdata [frame1 frame2 frame3 file_line1 file_line2 file_line3 [id0 id1]]' 1>&2; + echo 'Usage 2: generate data for two trifocal problems A and B, and groundtruth for B:' 1>&2; + echo ' Usage A-B: synthdata frame1A frame2A frame3A file_line1A file_line2A file_line3A id0A id1A frame1B frame2B frame3B file_line1B file_line2B file_line3B id0B id1B' 1>&2; + exit 2 +fi + +# echoerr() { echo "LOG $@" 1>&2; } +echoerr() { printf "LOG %s\n" "$*" >&2; } +#echoerr() { printf "LOG %s\n" "$*" >/dev/null; } + +# frames are 0-indexed +# lines are 0-indexed +# +# each line is 0-5116 (number of points in synthdata is 5117) +# each frame is 0-99 (number of frames in synthdata is 100) + +id0=0 # ids of the points with tangents +id1=1 + +if [ "$#" -eq 0 ]; then + frames="42 54 62" + # off by one mistake by hongyi: + lines="3011 3389 620" # actual 0-id samples are 1 less this. +elif [ "$#" -ge 6 ]; then + frames="$1 $2 $3" + echoerr "frames: $frames" + # off by one mistake by hongyi: + lines="$4 $5 $6" # actual 0-id samples are 1 less this. + echoerr "lines: $lines" + if [ "$#" -ge 8 ]; then + id0=$7 # ids of the points with tangents + id1=$8 + echoerr "ids: $id0 $id1" + framesB="$9 ${10} ${11}" + linesB="${12} ${13} ${14}" + id0B=${15} # ids of the points with tangents + id1B=${16} + echoerr "framesB: $framesB" + echoerr "linesB: $linesB" + echoerr "idsB: $id0B $id1B" + fi +fi + + +cd $HOME/lib/data/synthcurves-multiview-3d-dataset/spherical-ascii-100_views-perturb-radius_sigma10-normal_sigma0_01rad-minsep_15deg-no_two_cams_colinear_with_object + +frame_id="" +for i in $frames; do + frame_id="$frame_id"\ $(printf "%04d" $i) +done +frames="$frame_id" + +lines0id="" +for l in $lines; do + lines0id="$lines0id"\ `echo $l + 1 | bc` +done +lines="$lines0id" + +#set -x +for i in $frames; do + echoerr "2D points for frame $i" + for l in $lines; do + sed -n "${l}p" frame_$i-pts-2D.txt + done +done + +for i in $frames; do + echoerr "2D tangents for frame $i" + for l in $lines; do + sed -n "${l}p" frame_$i-tgts-2D.txt + done +done + +echoerr id0 id1 +echo $id0 $id1 + +#echoerr "3D points" +#for l in $lines; do +# sed -n "${l}p" crv-3D-pts.txt +#done + +#for i in $frames; do +# echoerr "tangents for frame $i" +# sed -n '3012p;3390p' frame_00$i-tgts-2d.txt +#done +echoerr K +head -n 2 calib.intrinsic + + +if [ "$#" -eq 16 ]; then + frame_id="" + for i in $framesB; do + frame_id="$frame_id"\ $(printf "%04d" $i) + done + framesB="$frame_id" + + for i in $framesB; do + echoerr "extrinsics for frame $i" + cat frame_$i.extrinsic + done + + lines0id="" + for l in $linesB; do + lines0id="$lines0id"\ `echo $l + 1 | bc` + done + linesB="$lines0id" + + #set -x + for i in $framesB; do + echoerr "2D points for frame $i" + for l in $linesB; do + sed -n "${l}p" frame_$i-pts-2D.txt + done + done + + for i in $framesB; do + echoerr "2D tangents for frame $i" + for l in $linesB; do + sed -n "${l}p" frame_$i-tgts-2D.txt + done + done + + echoerr id0B id1B + echo $id0B $id1B +else + for i in $frames; do + echoerr "extrinsics for frame $i" + cat frame_$i.extrinsic + done +fi diff --git a/scripts/synthdata/synthdata-batch b/scripts/synthdata/synthdata-batch new file mode 100755 index 0000000..2e06d26 --- /dev/null +++ b/scripts/synthdata/synthdata-batch @@ -0,0 +1,69 @@ +#!/bin/bash +# echoerr() { echo "LOG $@" 1>&2; } +stamp=100_triplets-cap-500-mark_regular-steps +triplet_file=100-configurations-synthdata +#stamp=tiny-steps +#triplet_file=tiny-configurations-synthdata #100-configurations-synthdata +# +# +# +echoerr() { printf "LOG %s\n" "$*" >&2; } + +print_usage() { echoerr 'Usage: synthdata-batch [max_corr_steps tol_eps]'; exit 2; } + +echoerr number of args $# +case $# in + 2) max_corr_steps=$1 epsilon=$2 # defaults: 3, 0.000001 try: {4,5,6,7} and + ;; + 1) case $1 in + -h | --help) + echo 'Usage: synthdata-batch [max_corr_steps tol_eps]' 1>&2; exit 2 + ;; + esac + ;; + 0) echoerr using default minus args + ;; + *) print_usage +esac + +set -x + +# used inside minus-chicago-synth +if [ ! -z "$max_corr_steps" ]; then + export minus_args="--epsilon $epsilon --max_corr_steps $max_corr_steps" + stamp=$stamp-max_corr_steps_$max_corr_steps-epsilon_$epsilon +fi +eval_dir=$HOME/cprg/vxlprg/lemsvpe/minus/scripts/results-synth/work/work-$stamp + +echoerr started sequential batch minus tester + +if [ ! -d $eval_dir ]; then + echoerr creating directory $eval_dir + if ! mkdir -p $eval_dir; then + echoerr synthdata-batch: could not create directory $eval_dir. + exit 1 + fi + # if it exists, we keep dumping files at it, differentiated by PID +#else +# echo cleaning up $eval_dir +# rm -f $eval_dir/* +fi + +cp $0 $eval_dir/script.$$ + +while IFS= read -r sample_id || [ -n "$sample_id" ] +do + sample_id_tr=`echo $sample_id |tr \ -` + #mstdout=$eval_dir/${sample_id_tr}-$stamp-minus-synth-batch-stdout.$$; + mstdout=/dev/null + mstderr=$eval_dir/${sample_id_tr}-$stamp-minus-synth-batch-stderr.$$; + minus-chicago-synth $sample_id 1>$mstdout 2>$mstderr + solver_fail="$?" + failfile=$eval_dir/${sample_id_tr}-$stamp-fail.$$; + echo $solver_fail > $failfile + tfile=$eval_dir/${sample_id_tr}-$stamp-time.$$; + grep 'Time of solver' $mstderr |grep -o '[0-9][0-9]*ms'|grep -o '[0-9][0-9]*' > $tfile +done < $triplet_file + +echoerr median time +cat $eval_dir/*time*| st --median diff --git a/scripts/synthdata/synthdata-batch-old b/scripts/synthdata/synthdata-batch-old new file mode 100755 index 0000000..c591447 --- /dev/null +++ b/scripts/synthdata/synthdata-batch-old @@ -0,0 +1,68 @@ +#!/bin/bash +# echoerr() { echo "LOG $@" 1>&2; } +#stamp=100_triplets-cap-500-mark_regular-steps +stamp=100_triplets-nmax-130 +triplet_file=100-configurations-synthdata +#stamp=tiny-steps +#triplet_file=tiny-configurations-synthdata #100-configurations-synthdata +# +# +# echoerr() { printf "LOG %s\n" "$*" >&2; } +print_usage() { echoerr 'Usage: synthdata-batch [max_corr_steps tol_eps]'; exit 2; } + +echoerr number of args $# +case $# in + 2) max_corr_steps=$1 epsilon=$2 # defaults: 4, 0.000001; was: 3, 0.000001 try: {4,5,6,7} and + ;; + 1) case $1 in + -h | --help) + echo 'Usage: synthdata-batch [max_corr_steps tol_eps]' 1>&2; exit 2 + ;; + esac + ;; + 0) echoerr using default minus args + ;; + *) print_usage +esac + +set -x + +# used inside minus-chicago-synth +if [ ! -z "$max_corr_steps" ]; then + export minus_args="--epsilon $epsilon --max_corr_steps $max_corr_steps" + stamp=$stamp-max_corr_steps_$max_corr_steps-epsilon_$epsilon +fi +eval_dir=$HOME/cprg/vxlprg/lemsvpe/minus/scripts/results-synth/work/work-$stamp + +echoerr started sequential batch minus tester + +if [ ! -d $eval_dir ]; then + echoerr creating directory $eval_dir + if ! mkdir -p $eval_dir; then + echoerr synthdata-batch: could not create directory $eval_dir. + exit 1 + fi + # if it exists, we keep dumping files at it, differentiated by PID +#else +# echo cleaning up $eval_dir +# rm -f $eval_dir/* +fi + +cp $0 $eval_dir/script.$$ + +while IFS= read -r sample_id || [ -n "$sample_id" ] +do + sample_id_tr=`echo $sample_id |tr \ -` + #mstdout=$eval_dir/${sample_id_tr}-$stamp-minus-synth-batch-stdout.$$; + mstdout=/dev/null + mstderr=$eval_dir/${sample_id_tr}-$stamp-minus-synth-batch-stderr.$$; + minus-chicago-synth $sample_id 1>$mstdout 2>$mstderr + solver_fail="$?" + failfile=$eval_dir/${sample_id_tr}-$stamp-fail.$$; + echo $solver_fail > $failfile + tfile=$eval_dir/${sample_id_tr}-$stamp-time.$$; + grep 'Time of solver' $mstderr |grep -o '[0-9][0-9]*ms'|grep -o '[0-9][0-9]*' > $tfile +done < $triplet_file + +echoerr median time +cat $eval_dir/*time*| st --median diff --git a/scripts/synthdata/synthdata-scan b/scripts/synthdata/synthdata-scan new file mode 100755 index 0000000..eccd823 --- /dev/null +++ b/scripts/synthdata/synthdata-scan @@ -0,0 +1,6 @@ +# - make sure the work folder is cleared up +max_corr_steps_list="3 4 5" +epsilon_list="0.00005 0.000001 0.000005" + +# edit synthdata_batch first with the desired suffix +parallel --nice 20 synthdata-batch {1} {2} ::: $max_corr_steps_list ::: $epsilon_list diff --git a/scripts/synthdata/synthdata-scan-postprocess b/scripts/synthdata/synthdata-scan-postprocess new file mode 100644 index 0000000..3543a0b --- /dev/null +++ b/scripts/synthdata/synthdata-scan-postprocess @@ -0,0 +1,27 @@ +#!/bin/bash + +# A collection of processing tasks + +fs=`ls *mark_regular*` + +cd $f +cat *time*|st --complete +grep 3 *fail*|wc -l + +./expminus-chicago -g >/dev/null 2>bla; grep -i time bla +./minus-chicago -g --epsilon 0.000001 --max_corr_steps 4 >/dev/null + +# best is generated based on those that have error < value +# see history-ub-20191123 + +findbest() +{ + for i in `cat best`; do + echo $i + grep 'Total steps' $i/*err* |cut -f 3 -d :| awk '{$1=$1};1' | sed 's/\x1b\[[0-9;]*m//g' | st --median --complete + donek +} + + +# failure rate for all ----------------------------------------------- +# timing in terms of number of iterations --------------------------------------