From 65f891e7312095f1893142d1dc0e786f416bd7d9 Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Fri, 13 Jun 2025 13:21:37 +0200 Subject: [PATCH] already did all the things :-) --- dfa-decompose/.ruff.toml | 5 + dfa-decompose/README.md | 20 + dfa-decompose/main.py | 195 ++ dfa-decompose/requirements.txt | 1 + dfa-decompose/results-2/comp2-6-4.txt | 16 + dfa-decompose/results-2/comp2-7-3.txt | 10 + dfa-decompose/results-2/comp2-diagram.txt | 16 + dfa-decompose/results-2/comp2_1.dot | 15 + dfa-decompose/results-2/comp2_1.pdf | Bin 0 -> 11850 bytes dfa-decompose/results-2/comp2_2.dot | 15 + dfa-decompose/results-2/comp2_2.pdf | Bin 0 -> 11659 bytes dfa-decompose/results-3/comp3-5-4-3.txt | 2 + dfa-decompose/results-3/comp3-6-3-3.txt | 2 + dfa-decompose/results-3/comp3_1.dot | 17 + dfa-decompose/results-3/comp3_1.pdf | Bin 0 -> 13673 bytes dfa-decompose/results-3/comp3_2.dot | 11 + dfa-decompose/results-3/comp3_2.pdf | Bin 0 -> 12915 bytes dfa-decompose/results-3/comp3_3.dot | 5 + dfa-decompose/results-3/comp3_3.pdf | Bin 0 -> 12271 bytes dfa-decompose/results-3/triples.dot | 170 ++ dfa-decompose/results-3/triples.svg | 1 + pom.xml | 71 + results/apache.dot | 2320 +++++++++++++++++ results/full-partial-optim.svg | 1 + results/full-partial.dot | 30 + results/full-partial.pdf | Bin 0 -> 18951 bytes results/full.dot | 49 + results/full.pdf | Bin 0 -> 17446 bytes results/guava.dot | 2320 +++++++++++++++++ results/java.dot | 2320 +++++++++++++++++ run.sh | 7 + src/main/java/nl/ou/utf8learner/Main.java | 163 ++ src/main/java/nl/ou/utf8learner/UTF8SUL.java | 27 + .../java/nl/ou/utf8learner/UTF8SULApache.java | 20 + .../java/nl/ou/utf8learner/UTF8SULGuava.java | 14 + .../java/nl/ou/utf8learner/UTF8SULICU4J.java | 30 + 36 files changed, 7873 insertions(+) create mode 100644 dfa-decompose/.ruff.toml create mode 100644 dfa-decompose/README.md create mode 100644 dfa-decompose/main.py create mode 100644 dfa-decompose/requirements.txt create mode 100644 dfa-decompose/results-2/comp2-6-4.txt create mode 100644 dfa-decompose/results-2/comp2-7-3.txt create mode 100644 dfa-decompose/results-2/comp2-diagram.txt create mode 100644 dfa-decompose/results-2/comp2_1.dot create mode 100644 dfa-decompose/results-2/comp2_1.pdf create mode 100644 dfa-decompose/results-2/comp2_2.dot create mode 100644 dfa-decompose/results-2/comp2_2.pdf create mode 100644 dfa-decompose/results-3/comp3-5-4-3.txt create mode 100644 dfa-decompose/results-3/comp3-6-3-3.txt create mode 100644 dfa-decompose/results-3/comp3_1.dot create mode 100644 dfa-decompose/results-3/comp3_1.pdf create mode 100644 dfa-decompose/results-3/comp3_2.dot create mode 100644 dfa-decompose/results-3/comp3_2.pdf create mode 100644 dfa-decompose/results-3/comp3_3.dot create mode 100644 dfa-decompose/results-3/comp3_3.pdf create mode 100644 dfa-decompose/results-3/triples.dot create mode 100644 dfa-decompose/results-3/triples.svg create mode 100644 pom.xml create mode 100644 results/apache.dot create mode 100644 results/full-partial-optim.svg create mode 100644 results/full-partial.dot create mode 100644 results/full-partial.pdf create mode 100644 results/full.dot create mode 100644 results/full.pdf create mode 100644 results/guava.dot create mode 100644 results/java.dot create mode 100755 run.sh create mode 100644 src/main/java/nl/ou/utf8learner/Main.java create mode 100644 src/main/java/nl/ou/utf8learner/UTF8SUL.java create mode 100644 src/main/java/nl/ou/utf8learner/UTF8SULApache.java create mode 100644 src/main/java/nl/ou/utf8learner/UTF8SULGuava.java create mode 100644 src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java diff --git a/dfa-decompose/.ruff.toml b/dfa-decompose/.ruff.toml new file mode 100644 index 0000000..ffd9640 --- /dev/null +++ b/dfa-decompose/.ruff.toml @@ -0,0 +1,5 @@ +indent-width = 2 +line-length = 320 + +[format] +quote-style = "single" diff --git a/dfa-decompose/README.md b/dfa-decompose/README.md new file mode 100644 index 0000000..951b81b --- /dev/null +++ b/dfa-decompose/README.md @@ -0,0 +1,20 @@ +dfa-decompose +============= + +Given a DFA, try to find smaller DFAs such that their intersection is the +input. + +``` +pip install -r requirements.txt +python main.py +``` + +## Copyright notice + +(c) 2025 Joshua Moerman, Open Universiteit, licensed under the EUPL (European +Union Public License). If you want to use this code and find the license not +suitable for you, then please do get in touch. + +``` +SPDX-License-Identifier: EUPL-1.2 +``` diff --git a/dfa-decompose/main.py b/dfa-decompose/main.py new file mode 100644 index 0000000..cfec48b --- /dev/null +++ b/dfa-decompose/main.py @@ -0,0 +1,195 @@ +# Copyright 2024-2025 Joshua Moerman, Open Universiteit. All rights reserved +# SPDX-License-Identifier: EUPL-1.2 + +import itertools +from pysat.solvers import Solver +from pysat.card import CardEnc +from pysat.formula import IDPool + +# Script to decompose a DFA as the intersection of smaller DFAs. +# As an example this is applied to the UTF-8 automaton, see +# https://joshuamoerman.nl/2025/6/The-UTF-8-Automaton.html + +# Regular language of UTF8 sequences (9 states including a sink state). +# The model used here is a complete DFA, bytes are mapped to classes +# as explained here: https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + +# Possible improvements: +# - Allow partial models. The current smallest decomposition is as 6+4. +# Coincidentally, both components have a sink state and we get a +# decomposition of size 5+3 which is quite good. Encoding partiallity +# directly will always find a minimal decomposition. +# - Get rid of input "8", since it is never accepted in a UTF8 string. +# - Only use reduced_sizes and not size. This will reduce the number of +# variables and constraints. +# - Write a loop to search for smallest decompositions, this is now +# done by hand. + +# With 2 components, decomposable as: +# 5+5 NO +# 6+4 YES +# 7+3 YES +# 8+2 NO +# and everything below: NO + +# With 3 components, decomposable as: +# 4+4+4 NO +# 5+4+3 YES +# 5+5+2 ??? +# 6+3+3 YES +# 6+4+2 YES (see above) +# 7+3+2 YES (see above) +# 8+2+2 ??? +# any x+y+z such that the sum is 11 or less: NO +# any x+y+z such that the sum is 13 or more: YES +def exampleDfa(): + initial = 0 + final = set([0]) + alphabet = list(range(12)) + states = list(range(9)) + trans = {} + + trans[(0, 0)] = 0 + trans[(0, 2)] = 2 + trans[(0, 3)] = 3 + trans[(0, 4)] = 5 + trans[(0, 5)] = 8 + trans[(0, 6)] = 7 + trans[(0, 10)] = 4 + trans[(0, 11)] = 6 + trans[(2, 1)] = 0 + trans[(2, 7)] = 0 + trans[(2, 9)] = 0 + trans[(3, 1)] = 2 + trans[(3, 7)] = 2 + trans[(3, 9)] = 2 + trans[(4, 7)] = 2 + trans[(5, 1)] = 2 + trans[(5, 9)] = 2 + trans[(6, 7)] = 3 + trans[(6, 9)] = 3 + trans[(7, 1)] = 3 + trans[(7, 7)] = 3 + trans[(7, 9)] = 3 + trans[(8, 1)] = 3 + + assert len(trans) == 23 + + for s in states: + for a in alphabet: + if (s,a) not in trans: + trans[(s,a)] = 1 + return {'initial': initial, 'final': final, 'trans': trans} + + +class DfaEncode: + def __init__(self): + self.components = 3 + self.reduced_sizes = {0: 7, 1: 2, 2: 2} + print(f'SIZES = {self.reduced_sizes}') + self.size = max(self.reduced_sizes.values()) + self.alphabet = list(range(12)) + self.dfa = exampleDfa() + self.dfa_size = 9 + + self.vpool = IDPool() + self.solver = Solver() + + def var_bool(self, b): + return self.vpool.id(('bool', b)) + + def var_trans(self, m, s, a, t): + assert 0 <= m and m < self.components + assert 0 <= s and s < self.size + assert a in self.alphabet + assert 0 <= t and t < self.size + + return self.vpool.id(('trans', m, s, a, t)) + + def var_final(self, m, s): + assert 0 <= m and m < self.components + assert 0 <= s and s < self.size + + return self.vpool.id(('final', m, s)) + + def var_bisim(self, ss, org): + assert len(ss) == self.components + + return self.vpool.id(('bisim', tuple(ss), org)) + + def constrain_component(self, m): + for s in range(self.size): + for a in self.alphabet: + lits = [self.var_trans(m, s, a, t) for t in range(self.reduced_sizes[m])] + cnf = CardEnc.equals(lits, 1, vpool=self.vpool) + self.solver.append_formula(cnf.clauses) + + def constrain_bisim(self): + ss_init = [0 for m in range(self.components)] + org_init = self.dfa['initial'] + + # we require initial states to be bisimilar + self.solver.add_clause([self.var_bisim(ss_init, org_init)]) + + for org in range(self.dfa_size): + for ss in itertools.product(range(self.size), repeat=self.components): + # require intersection of components have the right acceptance + # if bisim and all components accept => then original dfa accepts + clause1 = [-self.var_bisim(ss, org)] + [-self.var_final(m, ss[m]) for m in range(self.components)] + [self.var_bool(org in self.dfa['final'])] + self.solver.add_clause(clause1) + # if bisim and original dfa accepts => then each component accepts + for m in range(self.components): + clause2 = [-self.var_bisim(ss, org)] + [-self.var_bool(org in self.dfa['final'])] + [self.var_final(m, ss[m])] + self.solver.add_clause(clause2) + + # require transitions to bisimilar states + for a in self.alphabet: + org2 = self.dfa['trans'][(org, a)] + + for tt in itertools.product(range(self.size), repeat=self.components): + clause = [-self.var_bisim(ss, org)] + [-self.var_trans(m, ss[m], a, tt[m]) for m in range(self.components)] + [self.var_bisim(tt, org2)] + self.solver.add_clause(clause) + + def constraint(self): + self.solver.add_clause([-self.var_bool(False)]) + self.solver.add_clause([self.var_bool(True)]) + + for m in range(self.components): + self.constrain_component(m) + + self.constrain_bisim() + + def solve(self): + self.solver.solve() + + def get_model(self): + lits = self.solver.get_model() + model = set([lit for lit in lits if lit > 0]) + + components = {} + for m in range(self.components): + dfa = {'trans': {}, 'final': set(), 'initial': 0} + for s in range(self.size): + if self.var_final(m, s) in model: + dfa['final'].add(s) + + for a in self.alphabet: + for t in range(self.size): + if self.var_trans(m, s, a, t) in model: + dfa['trans'][(s, a)] = t + + components[m] = dfa + + return components + + +def main(): + encoder = DfaEncode() + encoder.constraint() + encoder.solver.solve() + m = encoder.get_model() + print(m) + + +if __name__ == '__main__': + main() diff --git a/dfa-decompose/requirements.txt b/dfa-decompose/requirements.txt new file mode 100644 index 0000000..e7de295 --- /dev/null +++ b/dfa-decompose/requirements.txt @@ -0,0 +1 @@ +python-sat diff --git a/dfa-decompose/results-2/comp2-6-4.txt b/dfa-decompose/results-2/comp2-6-4.txt new file mode 100644 index 0000000..47890df --- /dev/null +++ b/dfa-decompose/results-2/comp2-6-4.txt @@ -0,0 +1,16 @@ +{0: + {'trans': + {(0, 0): 0, (0, 1): 4, (0, 2): 2, (0, 3): 5, (0, 4): 5, (0, 5): 3, (0, 6): 1, (0, 7): 4, (0, 8): 4, (0, 9): 4, (0, 10): 3, (0, 11): 1, (1, 0): 4, (1, 1): 5, (1, 2): 4, (1, 3): 4, (1, 4): 4, (1, 5): 4, (1, 6): 4, (1, 7): 5, (1, 8): 4, (1, 9): 5, (1, 10): 4, (1, 11): 4, (2, 0): 4, (2, 1): 0, (2, 2): 4, (2, 3): 4, (2, 4): 4, (2, 5): 4, (2, 6): 4, (2, 7): 0, (2, 8): 1, (2, 9): 0, (2, 10): 4, (2, 11): 4, (3, 0): 4, (3, 1): 5, (3, 2): 4, (3, 3): 4, (3, 4): 4, (3, 5): 4, (3, 6): 4, (3, 7): 2, (3, 8): 4, (3, 9): 4, (3, 10): 4, (3, 11): 4, (4, 0): 4, (4, 1): 4, (4, 2): 4, (4, 3): 4, (4, 4): 4, (4, 5): 4, (4, 6): 4, (4, 7): 4, (4, 8): 4, (4, 9): 4, (4, 10): 4, (4, 11): 4, (5, 0): 4, (5, 1): 2, (5, 2): 4, (5, 3): 4, (5, 4): 4, (5, 5): 4, (5, 6): 4, (5, 7): 2, (5, 8): 4, (5, 9): 2, (5, 10): 4, (5, 11): 4}, + 'final': + {0}, + 'initial': + 0}, + +1: + {'trans': + {(0, 0): 1, (0, 1): 1, (0, 2): 1, (0, 3): 1, (0, 4): 0, (0, 5): 0, (0, 6): 1, (0, 7): 2, (0, 8): 1, (0, 9): 1, (0, 10): 3, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 0, (1, 5): 0, (1, 6): 1, (1, 7): 1, (1, 8): 2, (1, 9): 1, (1, 10): 3, (1, 11): 3, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 2, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 3, (3, 1): 2, (3, 2): 0, (3, 3): 2, (3, 4): 2, (3, 5): 3, (3, 6): 1, (3, 7): 1, (3, 8): 3, (3, 9): 1, (3, 10): 0, (3, 11): 0, (4, 0): 3, (4, 1): 3, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 3, (4, 8): 3, (4, 9): 3, (4, 10): 3, (4, 11): 3, (5, 0): 3, (5, 1): 3, (5, 2): 3, (5, 3): 3, (5, 4): 3, (5, 5): 3, (5, 6): 3, (5, 7): 3, (5, 8): 3, (5, 9): 3, (5, 10): 3, (5, 11): 3}, + 'final': + {0, 1}, + 'initial': + 0} +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2-7-3.txt b/dfa-decompose/results-2/comp2-7-3.txt new file mode 100644 index 0000000..01b5a4f --- /dev/null +++ b/dfa-decompose/results-2/comp2-7-3.txt @@ -0,0 +1,10 @@ +{ + 0: { + 'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 5, (0, 3): 6, (0, 4): 6, (0, 5): 4, (0, 6): 2, (0, 7): 1, (0, 8): 6, (0, 9): 1, (0, 10): 4, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 6, (1, 9): 1, (1, 10): 1, (1, 11): 1, (2, 0): 1, (2, 1): 6, (2, 2): 1, (2, 3): 1, (2, 4): 1, (2, 5): 1, (2, 6): 1, (2, 7): 6, (2, 8): 6, (2, 9): 6, (2, 10): 1, (2, 11): 1, (3, 0): 1, (3, 1): 1, (3, 2): 1, (3, 3): 1, (3, 4): 1, (3, 5): 1, (3, 6): 1, (3, 7): 6, (3, 8): 6, (3, 9): 6, (3, 10): 1, (3, 11): 1, (4, 0): 1, (4, 1): 6, (4, 2): 1, (4, 3): 1, (4, 4): 0, (4, 5): 1, (4, 6): 1, (4, 7): 5, (4, 8): 1, (4, 9): 1, (4, 10): 1, (4, 11): 1, (5, 0): 1, (5, 1): 0, (5, 2): 1, (5, 3): 1, (5, 4): 1, (5, 5): 1, (5, 6): 1, (5, 7): 0, (5, 8): 6, (5, 9): 0, (5, 10): 1, (5, 11): 1, (6, 0): 1, (6, 1): 5, (6, 2): 1, (6, 3): 1, (6, 4): 1, (6, 5): 1, (6, 6): 1, (6, 7): 5, (6, 8): 6, (6, 9): 5, (6, 10): 1, (6, 11): 1}, + 'final': {0}, + 'initial': 0}, + 1: { + 'trans': {(0, 0): 0, (0, 1): 2, (0, 2): 2, (0, 3): 0, (0, 4): 1, (0, 5): 2, (0, 6): 2, (0, 7): 2, (0, 8): 2, (0, 9): 2, (0, 10): 0, (0, 11): 2, (1, 0): 1, (1, 1): 2, (1, 2): 0, (1, 3): 2, (1, 4): 2, (1, 5): 1, (1, 6): 0, (1, 7): 0, (1, 8): 2, (1, 9): 2, (1, 10): 1, (1, 11): 0, (2, 0): 2, (2, 1): 0, (2, 2): 0, (2, 3): 2, (2, 4): 2, (2, 5): 1, (2, 6): 0, (2, 7): 0, (2, 8): 2, (2, 9): 0, (2, 10): 1, (2, 11): 0, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2, (6, 0): 2, (6, 1): 2, (6, 2): 2, (6, 3): 2, (6, 4): 2, (6, 5): 2, (6, 6): 2, (6, 7): 2, (6, 8): 2, (6, 9): 2, (6, 10): 2, (6, 11): 2}, + 'final': {0}, + 'initial': 0} +} diff --git a/dfa-decompose/results-2/comp2-diagram.txt b/dfa-decompose/results-2/comp2-diagram.txt new file mode 100644 index 0000000..c4d2e16 --- /dev/null +++ b/dfa-decompose/results-2/comp2-diagram.txt @@ -0,0 +1,16 @@ + + 8,5+ YES + / \ + 7,5 YES 8,4 YES + / \ / \ + 6,5 YES 7,4 YES 8,3 YES + / \ / \ / \ + 5,5 no 6,4 YES 7,3 YES 8,2 no + \ / \ / \ / + 5,4 no 6,3 no 7,2 no + / \ / \ / + 4,4 no 5,3 no 6,2 no + \ / \ / + 4,3 no 5,2 no + \ / + 4-,2 no diff --git a/dfa-decompose/results-2/comp2_1.dot b/dfa-decompose/results-2/comp2_1.dot new file mode 100644 index 0000000..4549dac --- /dev/null +++ b/dfa-decompose/results-2/comp2_1.dot @@ -0,0 +1,15 @@ +digraph g { +s0 [shape="doublecircle" label="s0"]; +s0 -> s0 [label="0x00-0x7F"] +s0 -> s2 [label="0xC2-0xDF"] +s0 -> s5 [label="0xE1-0xEF"] +s0 -> s3 [label="0xE0, 0xF4"] +s0 -> s1 [label="0xF0-0xF3"] +s1 -> s5 [label="0x80-0xBF"] +s2 -> s0 [label="0x80-0xBF"] +s3 -> s5 [label="0x80-0x8F"] +s3 -> s2 [label="0xA0-0xBF"] +s5 -> s2 [label="0x80-0xBF"] +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2_1.pdf b/dfa-decompose/results-2/comp2_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f3605fc9c94b55e20bb606cdad04816b44e83d23 GIT binary patch literal 11850 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 literal 0 HcmV?d00001 diff --git a/dfa-decompose/results-2/comp2_2.dot b/dfa-decompose/results-2/comp2_2.dot new file mode 100644 index 0000000..f5008e4 --- /dev/null +++ b/dfa-decompose/results-2/comp2_2.dot @@ -0,0 +1,15 @@ +digraph g { +s0 [shape="doublecircle" label="s0"]; +s1 [shape="doublecircle" label="s1"]; +s0 -> s1 [label="0x00-0x9F,\n0xC2-0xDF,\n0xE1-0xEC,\n0xEE-0xEF,\n0xF1-0xF3"] +s0 -> s0 [label="0xED, 0xF4"] +s0 -> s3 [label="0xE0, 0xF0"] +s1 -> s1 [label="0x00-0xBF, 0xC2-0xDF, 0xE1-0xEC, 0xEE-0xEF, 0xF1-0xF3"] +s1 -> s0 [label="0xED, 0xF4"] +s1 -> s3 [label="0xE0, 0xF0"] +s3 -> s3 [label="0x00-0x7F, 0xF4"] +s3 -> s0 [label="0xC2-0xE0, 0xF0"] +s3 -> s1 [label="0x90-0xBF, 0xF1-0xF3"] +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2_2.pdf b/dfa-decompose/results-2/comp2_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6a65fc2816b0749c37d8ab63b5a261a88d71835a GIT binary patch literal 11659 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 Hl1Tp#Q1XHx literal 0 HcmV?d00001 diff --git a/dfa-decompose/results-3/comp3-5-4-3.txt b/dfa-decompose/results-3/comp3-5-4-3.txt new file mode 100644 index 0000000..34e633e --- /dev/null +++ b/dfa-decompose/results-3/comp3-5-4-3.txt @@ -0,0 +1,2 @@ +SIZES = {0: 5, 1: 4, 2: 3} +{0: {'trans': {(0, 0): 0, (0, 1): 3, (0, 2): 2, (0, 3): 4, (0, 4): 4, (0, 5): 1, (0, 6): 1, (0, 7): 3, (0, 8): 2, (0, 9): 3, (0, 10): 4, (0, 11): 1, (1, 0): 3, (1, 1): 4, (1, 2): 3, (1, 3): 3, (1, 4): 3, (1, 5): 3, (1, 6): 3, (1, 7): 4, (1, 8): 2, (1, 9): 4, (1, 10): 0, (1, 11): 3, (2, 0): 3, (2, 1): 0, (2, 2): 3, (2, 3): 3, (2, 4): 3, (2, 5): 3, (2, 6): 3, (2, 7): 0, (2, 8): 2, (2, 9): 0, (2, 10): 0, (2, 11): 3, (3, 0): 3, (3, 1): 3, (3, 2): 3, (3, 3): 3, (3, 4): 3, (3, 5): 3, (3, 6): 3, (3, 7): 3, (3, 8): 2, (3, 9): 3, (3, 10): 0, (3, 11): 3, (4, 0): 3, (4, 1): 2, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 0, (4, 11): 3}, 'final': {0}, 'initial': 0}, 1: {'trans': {(0, 0): 1, (0, 1): 3, (0, 2): 3, (0, 3): 3, (0, 4): 0, (0, 5): 0, (0, 6): 3, (0, 7): 2, (0, 8): 3, (0, 9): 3, (0, 10): 1, (0, 11): 1, (1, 0): 1, (1, 1): 2, (1, 2): 3, (1, 3): 3, (1, 4): 0, (1, 5): 0, (1, 6): 3, (1, 7): 3, (1, 8): 3, (1, 9): 3, (1, 10): 1, (1, 11): 1, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 3, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 0, (3, 1): 3, (3, 2): 3, (3, 3): 3, (3, 4): 0, (3, 5): 0, (3, 6): 3, (3, 7): 3, (3, 8): 3, (3, 9): 3, (3, 10): 1, (3, 11): 1, (4, 0): 3, (4, 1): 3, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 3, (4, 8): 3, (4, 9): 3, (4, 10): 3, (4, 11): 3}, 'final': {0, 1, 3}, 'initial': 0}, 2: {'trans': {(0, 0): 0, (0, 1): 0, (0, 2): 0, (0, 3): 0, (0, 4): 0, (0, 5): 1, (0, 6): 0, (0, 7): 0, (0, 8): 2, (0, 9): 0, (0, 10): 1, (0, 11): 0, (1, 0): 2, (1, 1): 0, (1, 2): 2, (1, 3): 2, (1, 4): 2, (1, 5): 2, (1, 6): 2, (1, 7): 0, (1, 8): 2, (1, 9): 2, (1, 10): 2, (1, 11): 2, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 2, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2}, 'final': {0}, 'initial': 0}} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3-6-3-3.txt b/dfa-decompose/results-3/comp3-6-3-3.txt new file mode 100644 index 0000000..1112b16 --- /dev/null +++ b/dfa-decompose/results-3/comp3-6-3-3.txt @@ -0,0 +1,2 @@ +SIZES = {0: 6, 1: 3, 2: 3} +{0: {'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 2, (0, 3): 4, (0, 4): 4, (0, 5): 5, (0, 6): 3, (0, 7): 1, (0, 8): 5, (0, 9): 1, (0, 10): 5, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 5, (1, 9): 1, (1, 10): 1, (1, 11): 1, (2, 0): 1, (2, 1): 0, (2, 2): 1, (2, 3): 1, (2, 4): 1, (2, 5): 1, (2, 6): 1, (2, 7): 0, (2, 8): 5, (2, 9): 0, (2, 10): 1, (2, 11): 1, (3, 0): 1, (3, 1): 4, (3, 2): 1, (3, 3): 1, (3, 4): 1, (3, 5): 1, (3, 6): 1, (3, 7): 4, (3, 8): 5, (3, 9): 4, (3, 10): 1, (3, 11): 1, (4, 0): 1, (4, 1): 2, (4, 2): 1, (4, 3): 1, (4, 4): 1, (4, 5): 1, (4, 6): 1, (4, 7): 2, (4, 8): 5, (4, 9): 2, (4, 10): 1, (4, 11): 1, (5, 0): 1, (5, 1): 4, (5, 2): 1, (5, 3): 1, (5, 4): 1, (5, 5): 1, (5, 6): 1, (5, 7): 2, (5, 8): 5, (5, 9): 1, (5, 10): 1, (5, 11): 1}, 'final': {0}, 'initial': 0}, 1: {'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 1, (0, 3): 2, (0, 4): 0, (0, 5): 1, (0, 6): 1, (0, 7): 2, (0, 8): 0, (0, 9): 1, (0, 10): 2, (0, 11): 1, (1, 0): 1, (1, 1): 2, (1, 2): 2, (1, 3): 1, (1, 4): 1, (1, 5): 0, (1, 6): 2, (1, 7): 2, (1, 8): 0, (1, 9): 2, (1, 10): 0, (1, 11): 2, (2, 0): 2, (2, 1): 1, (2, 2): 1, (2, 3): 2, (2, 4): 0, (2, 5): 1, (2, 6): 1, (2, 7): 1, (2, 8): 0, (2, 9): 1, (2, 10): 2, (2, 11): 1, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2}, 'final': {0, 2}, 'initial': 0}, 2: {'trans': {(0, 0): 0, (0, 1): 2, (0, 2): 1, (0, 3): 1, (0, 4): 1, (0, 5): 1, (0, 6): 1, (0, 7): 1, (0, 8): 1, (0, 9): 1, (0, 10): 0, (0, 11): 0, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 1, (1, 9): 1, (1, 10): 0, (1, 11): 0, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 1, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2}, 'final': {0, 1}, 'initial': 0}} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_1.dot b/dfa-decompose/results-3/comp3_1.dot new file mode 100644 index 0000000..a237515 --- /dev/null +++ b/dfa-decompose/results-3/comp3_1.dot @@ -0,0 +1,17 @@ +digraph g{ +0 -> 0 [label="[0]"] +0 -> 1 [label="[5, 6, 11]"] +0 -> 2 [label="[2]"] +0 -> 3 [label="[1, 7, 9]"] +0 -> 4 [label="[3, 4, 10]"] +1 -> 0 [label="[10]"] +1 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +1 -> 4 [label="[1, 7, 9]"] +2 -> 0 [label="[1, 7, 9, 10]"] +2 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +3 -> 0 [label="[10]"] +3 -> 3 [label="[0, 1, 2, 3, 4, 5, 6, 7, 9, 11]"] +4 -> 0 [label="[10]"] +4 -> 2 [label="[1, 7, 9]"] +4 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_1.pdf b/dfa-decompose/results-3/comp3_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8f929b2b14f18741a50d3e37b93b184543ce53b8 GIT binary patch literal 13673 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 literal 0 HcmV?d00001 diff --git a/dfa-decompose/results-3/comp3_2.dot b/dfa-decompose/results-3/comp3_2.dot new file mode 100644 index 0000000..bc2382f --- /dev/null +++ b/dfa-decompose/results-3/comp3_2.dot @@ -0,0 +1,11 @@ +digraph g{ +0 -> 0 [label="[4, 5]"] +0 -> 1 [label="[0, 10, 11]"] +0 -> 3 [label="[1, 2, 3, 6, 9]"] +1 -> 0 [label="[4, 5]"] +1 -> 1 [label="[0, 10, 11]"] +1 -> 3 [label="[2, 3, 6, 7, 9]"] +3 -> 0 [label="[0, 4, 5]"] +3 -> 1 [label="[10, 11]"] +3 -> 3 [label="[1, 2, 3, 6, 7, 9]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_2.pdf b/dfa-decompose/results-3/comp3_2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d15a3c01005bb44be171aa8d09962fd5eb15efae GIT binary patch literal 12915 zcmbWe1yo$iwuXzl6Wp5M?(XjH?hvf8#$5sdg1dVNE>*Nd^{1E(D7DhB0h`+i=#_vchg|c9Rw}Gx%mHnoU1*Y_2{tcOjA=`sPH9jID@5{iJ8)rW1^Exlv>sH&OdyRR2MSWZD=_V!1jEN@NP(NPcIv8V71 zjf9T=;anBph<#yxpK#-y@waQnU84U=D08=IOykiZzq6q>!8faDid9n^2J9D0G zHia)4sp&B5HPWszNZAqiEA7+PS>f`~?v)B|#$b=lXAF#Lwcngpp zL5F9#_k`|Ofz0a0RK+LUysW(FQqwL;*a`fQ6g-%+veZuuW>2iR3aZuW{KFGNo)%1` zrbt^*V`o%%a^Z}pBbz4li-RIt3UqW~qmw^&-gum#TyFHH==HDgo#TA4%kQqWW6|O5 zG6~~JEl=W3C##9khULeKY=*=sfP@(tfS^4Gtnuw}N;-#x_vz9ae}5?CuQoHyzaHEH zm@{iEf)%2~lU4*6t^rR4v1+LohS3MIL*Ge@h`tHis#yq6or&9UY5r=eIv$dQu0r7U zgx3Q4WFRmNw3}egoz`T%f>I`=yu}j0__A)jbFMj4t&b=bgwunk!8R6#1aCAQz z-3;AH2C9Q+&MSg!n}ItqP;A`XY6^o8tSpc?56x$puh=)YeExGfC3g0YOay3k7&ha1 z!=2CbjP3^zqG~aNSWsq?(0L_1w;JnjFczw37qVSP7oo4le?T9JNzu2X`*Y!7Ahp=h z!Y6Iz3nOaf)2`hK%S@CvC7y-z3vX~t2K$)1*(5G+;!GV2X+a3P6ZsX?>FwMJFJSe3 zCM6Q~%DrQcP&0&fz?8PwmdMT2FM>0{qaRZX#=|IIEb^x``DI zpOe_3^iQ8)jT1izvz{}T4~kU24I?Y#nTA)^ZVkSH8byic@klDtRGvs>1sDeIeF43PQL3miGUK||`O^|CY-|K*wrmKADrQ*T*b0!i3BsNr0EBvTN zlReHqguG)Ri@3?%ihFDj!RAsz4q%VfG@BxQFS_F!=n15I*r*&J?`wacW@~9#l}Gz7 zxxUiZTD*t-jPj;3!oqRBUe+csI{!zG22wvu?l+%+uSWbiWEpDBIA8>vrHIWqs*6}L znOH}hQCzci9yMYm0{SVlkwo4*zMdEBt;~nC-d1JfR~xgzMPs#Nd|$>u-(X@GN3+Qa zm-JCnEH2sVGf^5Xt}(3mkGoy(N|uic3|fB_QVn^o{`{2qoHH;pzkYt2ECd!5)z^by z0W|-YPQE<7D(tJQzTRJim4%I&=hfl0$@aGZ|B_q@50I1^=tXV;{QR$mmoFw0=9dP5 zNlXO50$?&TdAYub@Jq+K&s&)k0W80IB(0rYKmhiCJ^$~=1e+T3TEtGo zHUt<9H@LxnM&{S>e?r6gXJRa@|CrgIiM&SZ|NU%wUF&a8761z?8w>0IIIWJotUc5< z8uoO(b6iSklVmk^O66T?lZMpc;YpFgXSd8n0VBDE@62f7#c9K-0f5LGg$I2{1LTI<={=N(k~(&n~S8TsG%u0Gw34eHvS*8c^X ztGiKzfCFQhKqj1Nu+`;VMHG4j3vd+x%b0JlOu}b;TB8?!h=|2Rof*SINMpe3RGq3lbn_9dqHG*P1bngG5 zswSBfg~vzP&d#O+{IU%gdB! z@tQ|5N2Bdw`>azaEN1Cx5b+t#f5qK>I091p{4SVI&Oj)Q$nOIvw3?|k1bVB;yd)~! zfQ=MaUO(Q2=L=q<{x>K!8ykF*4}_@J1+J-)a=MTQDddU)B29RiAhTiOQt)tc`mE>gRdQw>2f$ay!x8-<&qB(GB}{sipg< z?eqCIDA{+pm(j}F33`oxAFDd+)#}muP_@k7MQ2~#MjoMA=4wt;{!UaCnX+Yb`Mh$H zI|A;algxXpV?fiWg(@@HXc^rP49D#X;k{j1ym8k#a^3 zo5=0(g8q+q2E?vh?rtZ0&KHA;Tjbk6B!(4Wf)^5E*=uV}G%?GS`RaE;`Oj^XGd9cZ4=vH!53_%?EHKbIqnl~2EW)$h zs>jRFR?=1KGxNzQnHSh<2qLIxxDDyqN>n$CfA7Tj5wGfNygFk^W!)7Luv(7Q$^E9R zl0L*2V}5 z7hz8*UGTCW*%=UwaNorFs-VQBKrzh${{TOo&7%O6vlxQ1!l0EM1L!2aX&B`0qDv4F zQNMqq$ycoMrTiO~-Fq+0l^&of*1L-Y%@i&XwPTH_bkCBRIA)uVvYOV-@ek)w7wSQ^Y~J`r z+skiLWXqmrRw))9_LUdyl>~lTI(EjICXu0MrhV7k9TLNn@@DS zx(&4Rgv8d$`Vd)@?iOh{@X1#!F-qM{ZP$TD6h{of39MsgW5ULQGPHIOcbMC= zTj=v0IRh!yE40+rqqE-a&U2&T6;?TY}zzu&87O?hJ>>Ew|T3v^?5_4 zUYi8%b}MxsRase^TH7lRPTfKabV@6yTDnPhja2Bqq8?m+>umgeoEV=D>)s~%o%8CE zxWn%ce2BC3#kYM6ZwR!exRTcsMLvWhy*H(k7oBha9$};AI|Ah*)&S}Xfrj2hsJjrp z3%|&_@bAIRB`i}gIB_M*9>N>p;oYc5FJ3CUo4#GuFubVUk=7TodxN?g|gV?b~8t*r$YgjWD zH!yd!j;5B>W9kzI%ibQLCA&QgmL9=8T-yGXi_PtFLKw$KHr*mOge-8heRi3bms&P9xCt6*jO?s&NoO`{bH3deVJti(D*1IKq}YRaK2K zB;mV=%QDcU(b=T#uc3B5;tV|(keK^!*1FL0ispuMVXsln0gb*#72oK7n^iim?@dos zAnan%VB>0=`F(3vizIO~X_J$YfuUubN~P*ZOR|CkZc3U_7M9C3!!(ZTanw%x+l%!l z^HqAgc_8ceQLK``KISAYa)_b?mg~^aK*Qvi#IMT)=a&d2?cn*R^NzRAG|~ELbcyYR zZJxvk84IG_q(AB&l>Ozdwpx!`vMRG$L`h}#X)AU*fruu0M!uyp(WW7TZI~#952&z5(tVx{UBj@UAur&3HH_`=*3LerD zuvyZtuKEDs^puxfj~|ztiTlH0ZyxhN7b~ZIW{0)Sm{ZCq{->Szt*3)g-dao~KHC*U zk=O!W+&*rZ_U0_x&5{xGg0;m&7wegtO+V@=cfK}d$e(((pHU<9Bl~34F>cSP4_b|A znV-0A@x7_!B$$*wcM~7&UDBtEw|qDTM4DN5%myV!v)A-n!|$+D&mg2};!+x$unX(e^Hne4#Gz>u+QYk&M9OEXQW-G0T|%P%I1@<2LE^3N5qL~?M9nTis*`zE1- zPD_p=jT<0*qwH8V%Qv)xGC1z^tY96x$yCI8>0dUj^bC#aeqJ*$jIV~zIizI!3#?zj z7f_D2`Cf)DH9NQTvp!84Ev<0A@v%8n)4Dd>LC?em@*6c;yRCJn$M>HuJ}YSm&5wV~ z+_#Y?#-M&WV+j7}p?<7Ux~#Nmo;R zhUYf{!->U0s0%uQsKkOo@InklD1>;^;G)9Du%nF>>9l1O|1c(=uzI&=ooDl%x}j<; zmakvRp6o9XR!I}DXcj@v`JKT5*IizQO3i_~h{&Kg*;1ZJAmVvQtwJ_QM%UqTlZudB z;S@T9iQQEXvm5t0ODzHd85|us)jp+;+w=qhG^)G3zwbJ76~EJR7D?;Hz@?qK=;)7< zpNo&Pqh!F5v+CJY7spPLY$aAa){~*P0>uiXd`Eeg znRte{P&BMFIjMr#C~#uwDF`TJL#-3)km(f0`}L0)MrNmLe0Bq(V^Nk+k(TT7$%Wvp za&nvW;VzU;k>v)0x{LFN6vt!k&V$fn5aTM|+DhZdHr4SJ+lpYCe@xGgN4?dKa<>*$+va347L z$wj`$cG1(a+k=jMDuW{jFic$QB-Z6r({Qt&jh9d3#FDv>Odl_wbJnHWgN+fm;aP7L zrC~q#NIRylU7l?X@bFf(bj!UJ=K@z%34K^MXhP8ZM#U`tpbhC00MD){0GiTid3yo94)dK5 zuTYak8BwU1$OdmL6oXdDTw<>%tx+mkjd(2Pk@o^+mN-<2nQ96av*e1VM~t|)XB+^Y z{Edlh_gxXs1cK6<*H`&w0GM8(a|u=L8^+-7Gd{cADRphS4l`b);m`ACsS*8T#cy*u zFEP3x@b@Xd%hREBI&lWg54F8fYCgkEg<&9X17GPCCmgJoHY}uc7IMl7U`k7A>q4$W zVUiEB{0N=r7w<_n0`VA1>6Gxv^6yKnl z2UZDKaQiNHdDAUpCoDwVk3;>O6k7IHCT?rM>P`3i32C||WTpv1BNLkXJUkChBMJ+d zvaQ-nf_=o@ZZSuUm0VXJVXtTW_FhphA#<+U%7LYU_5rFoY%*>W!jTZq32@srUXR4` z`?sx7{@thh_s(Q|q;2$73FDF{8JG6VUkkA>qSz~y$t)P*>1o~wTexQ@J#dQTNuWwKy+t7W_?LB)n&x;eoi?+ z&XK}To^G`h<(wP12^37%y5w0J=eo>#)c8qY{l3n~ODUVYao_=&VcoXdK^*^WW59p` zLIqun;>0#{@}m{0=d`M>5mg(Vv4C9&aZ~W)w&LFVr>o`uHI7@NNAREW*kGW^be!p< z`PlhoS=b4_Ge7X*Gu_t0j&!z1(XPj&6=zvO5<&a85tD z;|O)FCJDzEe$baZ759vM47s2aYd6Wyo4vhnX4^#^e;D^i3w6}JEnfHTVhRz8)W_42 zJG>EQ`Iwso%-2{^5^M@vDIUO#`9^of+ged|Emx>V&1^ggaq{ zZZ9kHa?id~)2_G?vE`hy70;p5-lOs7iqvWYY)%i^m7o|^e8DXr|NEQ`l5;sp#Sw1L zFJap?7@8tRy2FfC(+l)oIFlxA!LGGfcE~z=@N?rZ3#XoMZ_Z3tx>7D5?#AyT9~pjT z^%TA>5xYgH;IQ{T|QCXFY#)TNCv*Wu3* ztgwoIBp!PCyYp1gM`nmlMR84*N9JpGR(@0UrJ^UMp$NX(cf$6MtDXLIOg&%pdvB`4 zn0DmIV$R`@^i~43YRytdvz#f6;Pk9lm&XOojcUdV%`>~(zxnK2-69>X)yuEuY;hHt z?_1uv{HR?Cm2Ciz`I2%s`nWUTFI?1$s5IE}ogi0Mj2>N4Mcu*lMzwggy4MboU3UB8 zraJZNXQ7Y4zBm8k$M=s6);K<0%SWdk*r$2r=eC*j+tp<{&?m(oy@|i9Au+=8iUx#^ zZ;&{Gq1~KQIU+<-*g~g4_fLUu%rCunILAGU%%*uZwV4A&fF^47k9z%Lp+Q% zqq!SlA-xcpmUX5#v%@OE|G{#O8#eBe0SGDsI zbs$@Uv2aZEab!!ZeK7VdB-mA3$&tNFn3S=FPs~lLwV@}u*)-q3SL zVfku+f8e2V(Eu;XU3{!v(g6({H1#tu&s~sR<(RZdjfcJiewrmI8erpr<9YYs$Z^a= zGW}@1R&YHUELHecw_Y~Qljqulnjf9r%OTi^G#I&V=lsnsTVZ&j=V>^79+SSj_sp9g zm`1_9ao%~!c3gDMF6M~rQpDl<(2>S&<|Nyz9C2tL0~Km>3~0QIoQGh_rW#zbB$tYU|Lz2nKAE_BHu(7vxx4oQ~78qyKlG5U`cXDmLR82)&NAaz~ zIi`{OatAQ1;3Te3;K4ak3E*U#Pr@-HC6<>(KPHo~K!_x1V=~%fszZ9QT~8(B*X!T< z*UjWJ)JHN*e!BmrrC&JLGP_oFxCAoF;`$Odw0N-O$KfH#q%=FscUAj-h!MwC`SAGI z)dmgH#@Dec{jcnMVIt&ttLPHfdBzVkj6v)*KPB{{5)F>Pg^e%EEx4w z+XvZBN{zc4;5L;XIOOqmA9cfZ27~`TvVsck%iLE{YwI7z=5SL7v)MdRK&@)pc5^ed~ao!lsV#@Yv))Y~|`%g{~ z47jiY_M4ya1pEpOJMYY6dPUUibNe-Ad@}Y(5(PLLe_V3JJ}q1Q^r0!XNGsKCAtm>)vcwjaB4LqG0?BG41iwF;!J`oLA8tp>OCe=6#AsdrMeFX zz*MNiyN%m@oYQ!xfEuW|aSf{@EFEnWOKwC;zKlbT(*nD+)gN}XXy`nV>V4jCBPUbt zP=#bV)Pc_QVTi!8g}`#mR{hW$qWi0Ts*4N*Es47dr+(MxfH%a6{DmblK<74{OMK{H zKl5=Y_ot0-;s_kNX3RAWam8%@bv;wff^Y6lHE^V`llrt-lDAYq&pATI%<+(igz8jK z_JQFlM=?&#Kf|(M-dag8Wj#*V-)00Qt;ijw7^rrbd)5eKV$*NehVoo`d6_cCDdd{Z zPP27ZDDJ^u)gg(0)mttdU1l2~@HA7h@?8tMgMBO2SO`mHcRejtXGYP?8JsT21Qgoa(a@HDp2(I`K{u6b^S#f7nW&JX z$jX~vgh2ykpF^PL*#}5?HX!m#^3x1WgR(uuKYh-czBMD6fE+d|Cqd|0e{V1J*Fr-~ zMn!v76iR^~oX6GX2oAJ>)4Q|5Q?0C38%Q%k4TTwElctQ4>~ggul==_F4TICN)dB&;;a|Gjc!V#u-y~Ca$;7Pdmcy(R08CG)|)^MaH{B zP!}SIp)dre_q9T!@dbbKlzNN_6l{TRFU)#2`AWiEJxO#SdvG0hMHL%}+(r0v*UxaT zyi{?gnDkpm!15y|w*(+Cikp*G10AHwBMOj;zC?XEJRGhA&tF03Mc&3qL`D#yW+*rk zx(z!5TgK1q;l`4cnWrELv9Sq7H0zTQ4ya$zgb1+V#;@0p( z6lseqC<(<}ac|o{000gd)iIxwpx5w#>z}pNu~jv>E(P*tFb`)c0Qc|A$)ih3U_=fJ zqX>K0+!)UFqF9x@=T^KW??mg=fq>_|#hj3+&RPQmLTPp>24Mv42X)_EKGls0%&f{b zh2#bs^9732`b6ByLGL`=V(|8I-)XidD6%WIzh5ny?hpTj?wfcEn%|63HkerMzJ?7) zxP$C|d??8ly=ph{VmhA=UnzKY>l!>IuB=)wyY?#!wPrHH8*=_p`bD}DBN4-q_PB6L zQFU3d6x^gx?UvQ|lVHAucvZNn>U?PIaK+*~G5^wn@)Y&2f$ANB?2RukaB_@_jtNWO zIt3OZCHpzGjO!Uo0qdf~s=_cgQ|(4((EER*r{s72ck5KMgPxfrXge)Q3RhfC*1-W4JI5Su$G{o ztkYCvE0Q()&pDd{14J;^34@%2cp<_Y-#g1@O5L$H^}*?8eu;EFXDpFRmOW%%$7Kq} zd*h)fz1F){00TW{NfM2m%B!$U31lnzq?%xvZW7P8_w#F(3l-D4h7Yg9&V7zEa#BH0 z4i1wRt<*8|O?vRo=1zho&u2m{MOv{T9SO}ORS7jqYVabpeN8v&wg~I6+U{=ITbFFc3DY; z8?(;RtA9}*6|GRLb*U32FiA3o0iX92gWBQP8tXl#V!gc4JaZg3_j`agV~fP(>=cUpD@`m2WB>{;|$^W!YqP1 z^ism(W5394WePqDe|Da^Iv7lJ&VYBrbi{uE8${i!C@2c%6_WOl-c=$2u9jV9g)m*M zC$8=6TLX#Tuky?Oyv$9@O%M*n^kK9|ap@fh$%4v)f`um+j9F>+Vf0R4fjk0ZnxZF5 z$cl{@)l(L2oz%29tJ#9YUMk*v0Qs~;mw_@1dKDUc*cL7x&4=w17(CUD??5W`Yl=iI z>@M}&%Jmjr^+mZqL<@?75b5c4`Xj#GQV}UlJH;h$)%xt#J}z6_Wei_b57#bP+=a_s z4d;HZuO=tTfbR1K@$2+Ar!QE0_FAVM)_ru69Ej4c*6ts&iOw?1kMC z!ix_t)($~MBmfGEi>*qR=H6<_9Jq^hz=`t@^>OFP={{9nojS`<9<#P`W%YZXK(6xq z!2Cp@n9o;%IgVi<4r02U5W6~$btriEjC<`La1bNfpi<`_0z3>l>677oUSIb^eIKD~ zJqIf$Vf%8;mCm_dQJ%EkSiz$Gnl+G>_fq8zVf?0na-!{`R<8VvL4=e)8Un+@ljQNT zo!&;Ze%#xh9J|hYJ6WbE&m2%sdL#YT(==&3kHB(onnw)yMD}t*p~is&eJA(VCano| zuY2_Xdc}RQ-eghvgcq4^Kf76b_s$-4M=yx^TDqO zoqqN`m0xaWg1546@f)%mlXuqSgNKG?`4(;g>McBaJgeWuU0OFXE^kuOqd$Sx=<*13~y#%IsuzE_E z#s)}Ml{GsO+MqAQb6LJut;F?CjDmrzoQpszL#ha+LuNxx!IQ*`KrSVnjx~{HrNp)G z<2Ea2>3hdcD>*pu(O7=!Igu(lS|-9TNS!>8qRq|>;>(^+LSCH85fr8;q;0A}aAye2 zyHqty!b5vpW^qgCeoum+K0G1&BeB+QrFy`kJk<_Q)K+egtL@h&D^v*6!HUHxXaoO4 z&JGfSp#H_&JPl+&wv2YN&=bVkmOd03+tMQq_{~i^%9$s`H@JN(B*ZN@{V@V;9!lLu zeQRoIKaJC<#aW+_JBNFbePbD{h^}3O%hk~QHvyGq!-rPzf|X^LMs_d@Lw$(W!T@|c&a$mQS)k|D2SMiqJ^Z_&<{-Z51HuX zXr{GtI?Ahr^U|Gny@;quKGWslLcI4pc@0W2aAoI2&ag4 z<7PCWMKS~7>h~msqKPV0AC-QbdKwbrdi&L9(YM7H*7xFI*3XoRa9A*IH2n)-ZA)#V z)#;dEY6V=UMwAr$>d8@u<>l;_LQ_QcJ+JTBtoXi^x>kiD4RJ2KCWd(NW#wOUoSIf* z1X*rziaWir(rc8s63iLGq0i)xl%4%h{#3DRmR;`X{E`z)+^wlN^NTq1;doDmaiF8t z@(vJap$R;n0kHt|S1WZz4t7!d0W066^6ckS8#97pb_38PZhU&_ zrzJv2JgG5i)r$z2?vz<#bEyM)%d$LRgqLXuniLY*nuFm^grduv_>C?SE}wrK4| z5t-ch9@oxPj6JP|a0+*(!@RM%U$Q-2xrYy=x@^~&;WAlFICj{ub%E31P4T4Qq0`rA zn!Irnr;Nx4&vWgbDD@Y(Pcp}=YrW16=Z(gO#-fZCGo>vgsr3U?n!i4L@%wm5J6`rV zMTd!OKJ9QoV~6&F=91=u;*#Qm=aPrPXO+H^n9a}pt=1_`Gzgt0EH$9!wuz3bWlwgT zDb+9BH}l`o=llnE^P32IC5*%^T+E!U9YGGxznPyGlcI_J3oaz9B`GE& zPp58eZ{eb7;jZdnZvs?SQ&9igP13~P+RhU|{mTRJ;sW^PL-X6g&cwUZ#;?7739Ew!(E61#2C%$}fa*U$HI{#d z{|^uLH`DfivdU}|Y^)m00o`xJ7{Q2wA+i2TJ-iO~2SeljyBz)#kozAo7Pq#vv~acn znpwOAni;^vZ19gcv%UuEcgi5VbOC;?;h&3QW%=9T54r|m{hfEOnfZSK*aopR(cJ)~ zQ1|REGd}g$5tYKyM)M}y*(Cum@B}d%B=|(Khi9QnGtYfN-V6AxsNj8; zz)N$y-Rf!)T*oW&Qv7l*>#8ApN}~58jvZt0#nJj`3Xm7sy*%d#VPB9TiJ`#;==98$ z$O!!ypT5j8u?RYf%I1nM21%s!`ySjDQ9eYKkc_MxzlT<}aB*;T ze#xE}S$WNzmu>%N8T?9+e`XBJKQrdH3Mu^uu*v%G(^BzoNb?ogWc^nd{tvKUBd*h? zn;A{~^k+nKV&5B68Mk=OR6LTO#C0SHa9YV31kK`#kr*sQ7a_IC&W}0ln&ehU| z+II-;8*u}%z*_3@xJ(Bk(h_q8PKel64xC6-IA+3go?OwJ3dk6@7L$C|`zbnBZR!PF zLDw92{P@@wYg>dddJT9bUHeR|dYM&)@%>VP40j4am6B`id5yGNYRIw9D z5a=*~w>aWgf$|IRH6PH$nc48~!FrJr@NmIaLXe;TGaxP?6K9Zz^UGRUSUK6*5GW`l Ilq3=UA3a=B0ssI2 literal 0 HcmV?d00001 diff --git a/dfa-decompose/results-3/comp3_3.dot b/dfa-decompose/results-3/comp3_3.dot new file mode 100644 index 0000000..747bdc7 --- /dev/null +++ b/dfa-decompose/results-3/comp3_3.dot @@ -0,0 +1,5 @@ +digraph g{ +0 -> 0 [label="[0, 1, 2, 3, 4, 6, 7, 9, 11]"] +0 -> 1 [label="[5, 10]"] +1 -> 0 [label="[1, 7]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_3.pdf b/dfa-decompose/results-3/comp3_3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1455a6cc006d15fdb7b0ecf687723b9e79dc3a08 GIT binary patch literal 12271 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 literal 0 HcmV?d00001 diff --git a/dfa-decompose/results-3/triples.dot b/dfa-decompose/results-3/triples.dot new file mode 100644 index 0000000..f4245dd --- /dev/null +++ b/dfa-decompose/results-3/triples.dot @@ -0,0 +1,170 @@ +digraph g { +t5x4x4 -> t6x4x4 +t4x3x2 -> t4x4x2 +t7x5x2 -> t7x5x3 +t8x4x4 -> t8x5x4 +t7x7x4 -> t7x7x5 +t6x5x2 -> t6x6x2 +t7x6x3 -> t7x6x4 +t8x6x5 -> t8x7x5 +t5x3x2 -> t6x3x2 +t6x5x3 -> t6x5x4 +t7x3x3 -> t8x3x3 +t5x4x2 -> t5x5x2 +t8x2x2 -> t8x3x2 +t6x5x4 -> t7x5x4 +t7x2x2 -> t7x3x2 +t7x6x6 -> t7x7x6 +t7x5x3 -> t7x6x3 +t5x3x2 -> t5x3x3 +t7x4x3 -> t8x4x3 +t6x4x2 -> t6x4x3 +t4x4x2 -> t5x4x2 +t5x5x2 -> t6x5x2 +t4x3x2 -> t4x3x3 +t6x3x2 -> t6x4x2 +t7x5x2 -> t8x5x2 +t8x4x2 -> t8x5x2 +t7x5x5 -> t7x6x5 +t8x6x3 -> t8x7x3 +t7x6x4 -> t7x6x5 +t7x7x7 -> t8x7x7 +t7x3x2 -> t8x3x2 +t2x2x2 -> t3x2x2 +t4x4x4 -> t5x4x4 +t7x4x3 -> t7x4x4 +t7x5x3 -> t8x5x3 +t8x8x4 -> t8x8x5 +t5x2x2 -> t5x3x2 +t4x4x3 -> t4x4x4 +t8x7x6 -> t8x8x6 +t3x3x2 -> t4x3x2 +t6x6x3 -> t7x6x3 +t8x5x5 -> t8x6x5 +t6x6x5 -> t6x6x6 +t8x4x2 -> t8x4x3 +t5x5x4 -> t5x5x5 +t8x6x6 -> t8x7x6 +t6x5x5 -> t6x6x5 +t8x6x2 -> t8x6x3 +t7x5x4 -> t8x5x4 +t7x6x5 -> t8x6x5 +t8x8x6 -> t8x8x7 +t7x5x3 -> t7x5x4 +t6x5x4 -> t6x5x5 +t8x5x4 -> t8x5x5 +t7x6x2 -> t7x6x3 +t8x7x4 -> t8x8x4 +t5x5x3 -> t5x5x4 +t5x4x3 -> t5x5x3 +t6x4x3 -> t6x4x4 +t7x6x4 -> t8x6x4 +t7x7x3 -> t7x7x4 +t6x6x6 -> t7x6x6 +t4x2x2 -> t5x2x2 +t6x5x3 -> t6x6x3 +t7x4x2 -> t7x4x3 +t4x3x3 -> t4x4x3 +t6x4x4 -> t6x5x4 +t6x5x5 -> t7x5x5 +t6x5x4 -> t6x6x4 +t8x7x2 -> t8x8x2 +t6x4x3 -> t6x5x3 +t8x7x4 -> t8x7x5 +t7x7x5 -> t7x7x6 +t8x8x7 -> t8x8x8 +t7x4x4 -> t7x5x4 +t6x6x4 -> t7x6x4 +t8x5x3 -> t8x5x4 +t7x7x2 -> t8x7x2 +t7x6x5 -> t7x7x5 +t3x3x2 -> t3x3x3 +t7x3x3 -> t7x4x3 +t8x7x2 -> t8x7x3 +t6x6x5 -> t7x6x5 +t4x2x2 -> t4x3x2 +t5x5x3 -> t6x5x3 +t5x4x3 -> t5x4x4 +t4x3x3 -> t5x3x3 +t6x3x2 -> t6x3x3 +t7x3x2 -> t7x3x3 +t6x5x3 -> t7x5x3 +t7x7x3 -> t8x7x3 +t7x7x6 -> t8x7x6 +t4x4x3 -> t5x4x3 +t6x6x2 -> t7x6x2 +t8x5x2 -> t8x5x3 +t7x4x4 -> t8x4x4 +t8x6x3 -> t8x6x4 +t8x4x3 -> t8x5x3 +t5x4x2 -> t6x4x2 +t6x2x2 -> t7x2x2 +t7x4x2 -> t8x4x2 +t3x2x2 -> t4x2x2 +t8x3x2 -> t8x4x2 +t6x3x3 -> t6x4x3 +t7x4x3 -> t7x5x3 +t8x7x5 -> t8x7x6 +t7x2x2 -> t8x2x2 +t8x6x4 -> t8x6x5 +t7x7x6 -> t7x7x7 +t5x3x3 -> t6x3x3 +t6x2x2 -> t6x3x2 +t8x6x2 -> t8x7x2 +t6x5x2 -> t6x5x3 +t7x3x2 -> t7x4x2 +t6x4x2 -> t7x4x2 +t4x4x2 -> t4x4x3 +t8x6x5 -> t8x6x6 +t6x6x4 -> t6x6x5 +t8x7x3 -> t8x8x3 +t5x5x4 -> t6x5x4 +t5x4x2 -> t5x4x3 +t8x5x4 -> t8x6x4 +t5x5x2 -> t5x5x3 +t6x3x3 -> t7x3x3 +t3x3x3 -> t4x3x3 +t8x6x4 -> t8x7x4 +t6x5x2 -> t7x5x2 +t5x2x2 -> t6x2x2 +t8x4x3 -> t8x4x4 +t5x3x2 -> t5x4x2 +t7x5x4 -> t7x6x4 +t7x6x2 -> t8x6x2 +t6x6x3 -> t6x6x4 +t6x4x4 -> t7x4x4 +t8x7x3 -> t8x7x4 +t7x6x2 -> t7x7x2 +t7x7x5 -> t8x7x5 +t7x4x2 -> t7x5x2 +t7x5x2 -> t7x6x2 +t7x7x2 -> t7x7x3 +t7x6x4 -> t7x7x4 +t7x6x6 -> t8x6x6 +t7x6x5 -> t7x6x6 +t7x5x4 -> t7x5x5 +t4x3x2 -> t5x3x2 +t8x8x5 -> t8x8x6 +t6x6x2 -> t6x6x3 +t6x4x3 -> t7x4x3 +t7x6x3 -> t7x7x3 +t8x7x7 -> t8x8x7 +t8x5x3 -> t8x6x3 +t6x3x2 -> t7x3x2 +t5x4x4 -> t5x5x4 +t8x8x3 -> t8x8x4 +t8x7x6 -> t8x7x7 +t8x5x2 -> t8x6x2 +t3x2x2 -> t3x3x2 +t7x6x3 -> t8x6x3 +t8x3x3 -> t8x4x3 +t5x3x3 -> t5x4x3 +t7x5x5 -> t8x5x5 +t7x7x4 -> t8x7x4 +t8x7x5 -> t8x8x5 +t8x3x2 -> t8x3x3 +t8x8x2 -> t8x8x3 +t6x4x2 -> t6x5x2 +t5x4x3 -> t6x4x3 +t5x5x5 -> t6x5x5 +} \ No newline at end of file diff --git a/dfa-decompose/results-3/triples.svg b/dfa-decompose/results-3/triples.svg new file mode 100644 index 0000000..5a461e9 --- /dev/null +++ b/dfa-decompose/results-3/triples.svg @@ -0,0 +1 @@ +t5x4x4t6x4x4t4x3x2t4x4x2t7x5x2t7x5x3t8x4x4t8x5x4t7x7x4t7x7x5t6x5x2t6x6x2t7x6x3t7x6x4t8x6x5t8x7x5t5x3x2t6x3x2t6x5x3t6x5x4t7x3x3t8x3x3t5x4x2t5x5x2t8x2x2t8x3x2t7x5x4t7x2x2t7x3x2t7x6x6t7x7x6t5x3x3t7x4x3t8x4x3t6x4x2t6x4x3t4x3x3t8x5x2t8x4x2t7x5x5t7x6x5t8x6x3t8x7x3t7x7x7t8x7x7t2x2x2t3x2x2t4x4x4t7x4x4t8x5x3t8x8x4t8x8x5t5x2x2t4x4x3t8x7x6t8x8x6t3x3x2t6x6x3t8x5x5t6x6x5t6x6x6t5x5x4t5x5x5t8x6x6t6x5x5t8x6x2t8x8x7t7x6x2t8x7x4t5x5x3t5x4x3t8x6x4t7x7x3t4x2x2t7x4x2t6x6x4t8x7x2t8x8x2t8x8x8t7x7x2t3x3x3t6x3x3t6x2x2t8x8x3 \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cb35562 --- /dev/null +++ b/pom.xml @@ -0,0 +1,71 @@ + + 4.0.0 + + nl.ou.utf8learner + utf8learner + 1.0.0-SNAPSHOT + + + UTF-8 + 11 + + + + + net.automatalib.distribution + automata-distribution + 0.13.0-SNAPSHOT + pom + + + de.learnlib.distribution + learnlib-distribution + 0.19.0-SNAPSHOT + pom + + + commons-codec + commons-codec + 1.18.0 + + + com.ibm.icu + icu4j + 77.1 + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + + + nl.ou.utf8learner.Main + + + + + *:* + + module-info.class + + + + + + + + + + \ No newline at end of file diff --git a/results/apache.dot b/results/apache.dot new file mode 100644 index 0000000..dbe67e5 --- /dev/null +++ b/results/apache.dot @@ -0,0 +1,2320 @@ +digraph g { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/results/full-partial-optim.svg b/results/full-partial-optim.svg new file mode 100644 index 0000000..171bdb8 --- /dev/null +++ b/results/full-partial-optim.svg @@ -0,0 +1 @@ +0x00-0x7F0xC2-0xDF0xE00xE1-0xEC, 0xEE-0xEF0xED0xF00xF1-0xF30xF40x80-0xBF0x80-0xBF0xA0-0xBF0x80-0x9F0x80-0xBF0x90-0xBF0x80-0x8Fs0s2s3s4s5s6s7s8 \ No newline at end of file diff --git a/results/full-partial.dot b/results/full-partial.dot new file mode 100644 index 0000000..fb3e6ad --- /dev/null +++ b/results/full-partial.dot @@ -0,0 +1,30 @@ +digraph full { + + s0 [shape="doublecircle" label="s0"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0x00-0x7F"]; + s0 -> s2 [label="0xC2-0xDF"]; + s0 -> s4 [label="0xE0"]; + s0 -> s3 [label="0xE1-0xEC, 0xEE-0xEF"]; + s0 -> s5 [label="0xED"]; + s0 -> s7 [label="0xF0"]; + s0 -> s6 [label="0xF1-0xF3"]; + s0 -> s8 [label="0xF4"]; + s2 -> s0 [label="0x80-0xBF"]; + s3 -> s2 [label="0x80-0xBF"]; + s4 -> s2 [label="0xA0-0xBF"]; + s5 -> s2 [label="0x80-0x9F"]; + s6 -> s3 [label="0x80-0xBF"]; + s7 -> s3 [label="0x90-0xBF"]; + s8 -> s3 [label="0x80-0x8F"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} \ No newline at end of file diff --git a/results/full-partial.pdf b/results/full-partial.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0bfacb47d6b7b14270c561b34b2a83e602abcbc0 GIT binary patch literal 18951 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 PZ7yEwJmd>zj~KkU{47kQ+6)2B`XDzEhu` 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 s0 [label="0 -- 127"]; + s0 -> s1 [label="-128 -- -63"]; + s0 -> s2 [label="-62 -- -33"]; + s0 -> s4 [label="-32"]; + s0 -> s3 [label="-31 -- -20"]; + s0 -> s5 [label="-19"]; + s0 -> s3 [label="-18 -- -17"]; + s0 -> s7 [label="-16"]; + s0 -> s6 [label="-15 -- -13"]; + s0 -> s8 [label="-12"]; + s0 -> s1 [label="-11 -- -1"]; + s1 -> s1 [label="0 -- -1"]; + s2 -> s1 [label="0 -- 127"]; + s2 -> s0 [label="-128 -- -65"]; + s2 -> s1 [label="-64 -- -1"]; + s3 -> s1 [label="0 -- 127"]; + s3 -> s2 [label="-128 -- -65"]; + s3 -> s1 [label="-64 -- -1"]; + s4 -> s1 [label="0 -- -97"]; + s4 -> s2 [label="-96 -- -65"]; + s4 -> s1 [label="-64 -- -1"]; + s5 -> s1 [label="0 -- 127"]; + s5 -> s2 [label="-128 -- -97"]; + s5 -> s1 [label="-96 -- -1"]; + s6 -> s1 [label="0 -- 127"]; + s6 -> s3 [label="-128 -- -65"]; + s6 -> s1 [label="-64 -- -1"]; + s7 -> s1 [label="0 -- -113"]; + s7 -> s3 [label="-112 -- -65"]; + s7 -> s1 [label="-64 -- -1"]; + s8 -> s1 [label="0 -- 127"]; + s8 -> s3 [label="-128 -- -113"]; + s8 -> s1 [label="-112 -- -1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} \ No newline at end of file diff --git a/results/full.pdf b/results/full.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ef25fb8a6a83edddd7344e2ed484fcba368f2aa9 GIT binary patch literal 17446 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%0AV#{vJH8T55@9^SJ s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/results/java.dot b/results/java.dot new file mode 100644 index 0000000..dbe67e5 --- /dev/null +++ b/results/java.dot @@ -0,0 +1,2320 @@ +digraph g { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..3b23c30 --- /dev/null +++ b/run.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -euxo pipefail + +mvn package + +time java -cp target/utf8learner-1.0.0-SNAPSHOT.jar nl.ou.utf8learner.Main diff --git a/src/main/java/nl/ou/utf8learner/Main.java b/src/main/java/nl/ou/utf8learner/Main.java new file mode 100644 index 0000000..4c3b69f --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/Main.java @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.io.IOException; +import java.util.Collection; +import org.checkerframework.checker.nullness.qual.Nullable; +import com.google.common.collect.Lists; +import de.learnlib.acex.AcexAnalyzers; +import de.learnlib.algorithm.LearningAlgorithm.DFALearner; +import de.learnlib.algorithm.ttt.dfa.TTTLearnerDFA; +import de.learnlib.oracle.EquivalenceOracle; +import de.learnlib.oracle.EquivalenceOracle.DFAEquivalenceOracle; +import de.learnlib.oracle.MembershipOracle.DFAMembershipOracle; +import de.learnlib.oracle.equivalence.DFAEQOracleChain; +import de.learnlib.oracle.equivalence.DFARandomWpMethodEQOracle; +import de.learnlib.oracle.equivalence.DFAWMethodEQOracle; +import de.learnlib.query.DefaultQuery; +import de.learnlib.query.Query; +import de.learnlib.util.Experiment.DFAExperiment; +import net.automatalib.alphabet.impl.AbstractAlphabet; +import net.automatalib.automaton.fsa.DFA; +import net.automatalib.serialization.dot.GraphDOT; +import net.automatalib.word.Word; + +public class Main { + public static void main(String[] args) throws IOException { + // Basic set-up. Normally one would use a Cache, but in this case + // the queries are much faster than the lookup. So no cache here. + ByteAlphabet alph = new ByteAlphabet(); + DFAMembershipOracle mqOracle = new UTF8MembershipOracle(); + + // We run three equivalence oracles in sequence: from fast to exhaustive. + // It is really only the W-method in the end which makes a lot of queries. + // But we want at least some guarantee of completeness :-). + DFAEquivalenceOracle fixedTestSuite = new DFASampleSetEQOracle<>(getTestSuite(), mqOracle); + DFAEquivalenceOracle randomWpMethod = new DFARandomWpMethodEQOracle<>(mqOracle, 0, 8, 5000); + DFAEquivalenceOracle wmethod = new DFAWMethodEQOracle<>(mqOracle, 1); + DFAEquivalenceOracle eqOracle = new DFAEQOracleChain<>(fixedTestSuite, randomWpMethod, wmethod); + + // TTT is always a good default + DFALearner learner = new TTTLearnerDFA<>(alph, mqOracle, AcexAnalyzers.BINARY_SEARCH_BWD); + DFAExperiment experiment = new DFAExperiment<>(learner, eqOracle, alph); + experiment.run(); + + // Output result! + System.err.println(""); + System.out.println(experiment.getRounds().getSummary()); + GraphDOT.write(experiment.getFinalHypothesis(), alph, System.out); + } + + // Implementing the membership oracle directly. We obtain a word of bytes, + // and assemble them into a byte array, which is then passed to the + // underlying implementation. + public static class UTF8MembershipOracle implements DFAMembershipOracle { + private long count = 0; + + @Override + public void processQuery(Query query) { + count++; + System.err.print("\r" + count); + + Word input = query.getInput(); + byte[] bytearray = new byte[input.length()]; + + int i = 0; + for (Byte b : input) { + bytearray[i] = b; + i++; + } + + boolean acc = UTF8SUL.accepts(bytearray); + query.answer(acc); + } + + @Override + public void processQueries(Collection> queries) { + for (Query query : queries) { + processQuery(query); + } + } + } + + // Alphabet of all 256 bytes. Implemented directly for efficiency. + public static class ByteAlphabet extends AbstractAlphabet { + @Override + public Byte getSymbol(int index) { + return (byte) index; + } + + @Override + public int getSymbolIndex(Byte symbol) { + if (symbol >= 0) { + return (int) symbol; + } else { + return (int) (symbol + 256); + } + } + + @Override + public boolean containsSymbol(Byte symbol) { + return true; + } + + @Override + public int size() { + return 256; + } + } + + // For some reason the SampleSetEQOracle of LearnLib was not easy to + // use with DFAs. So I made my own. + public static class DFASampleSetEQOracle implements EquivalenceOracle.DFAEquivalenceOracle { + final private Collection> testSuite; + final private DFAMembershipOracle truth; + + public DFASampleSetEQOracle(Collection> testSuite, DFAMembershipOracle truth) { + this.testSuite = testSuite; + this.truth = truth; + } + + @Override + public @Nullable DefaultQuery findCounterExample(DFA hypothesis, + Collection alphabet) { + for (Word test : testSuite) { + DefaultQuery query = new DefaultQuery<>(test); + truth.processQuery(query); + + if (hypothesis.accepts(test) != query.getOutput()) { + return query; + } + } + + return null; + } + } + + // This should cover all states, I think. + public static Collection> getTestSuite() { + return Lists.newArrayList( + Word.fromSymbols((byte) -15, (byte) 64), + Word.fromSymbols((byte) -62, (byte) -65), + Word.fromSymbols((byte) -33, (byte) 127), + Word.fromSymbols((byte) -32, (byte) 0), + Word.fromSymbols((byte) -12, (byte) -112), + Word.fromSymbols((byte) -18, (byte) -100, (byte) 0), + Word.fromSymbols((byte) -32, (byte) -70, (byte) -120), + Word.fromSymbols((byte) -19, (byte) -97, (byte) -1), + Word.fromSymbols((byte) -31, (byte) -128, (byte) -100), + Word.fromSymbols((byte) -31, (byte) -128, (byte) 127), + Word.fromSymbols((byte) -16, (byte) -112, (byte) -64), + Word.fromSymbols((byte) -18, (byte) -100, (byte) -100), + Word.fromSymbols((byte) -19, (byte) -97, (byte) -90), + Word.fromSymbols((byte) 0xEF, (byte) 0xBB, (byte) 0xBF), + Word.fromSymbols((byte) -16, (byte) -112, (byte) -128, (byte) -128), + Word.fromSymbols((byte) -12, (byte) -120, (byte) -65, (byte) -80), + Word.fromSymbols((byte) -15, (byte) -65, (byte) -65, (byte) -65), + Word.fromSymbols((byte) -15, (byte) -128, (byte) -128, (byte) -128)); + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SUL.java b/src/main/java/nl/ou/utf8learner/UTF8SUL.java new file mode 100644 index 0000000..6a7022f --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SUL.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CodingErrorAction; +import java.nio.charset.CharacterCodingException; + +public class UTF8SUL { + public static boolean accepts(byte[] data) { + CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder(); + decoder.onMalformedInput(CodingErrorAction.REPORT); + decoder.onUnmappableCharacter(CodingErrorAction.REPORT); + + try { + decoder.decode(ByteBuffer.wrap(data)); + return true; + } catch (CharacterCodingException e) { + return false; + } + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULApache.java b/src/main/java/nl/ou/utf8learner/UTF8SULApache.java new file mode 100644 index 0000000..17bbf84 --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULApache.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.util.Arrays; +import org.apache.commons.codec.binary.StringUtils; + +public class UTF8SULApache { + public static boolean accepts(byte[] data) { + try { + String s = StringUtils.newStringUtf8(data); + return Arrays.equals(data, StringUtils.getBytesUtf8(s)); + } catch (Exception e) { + return false; + } + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java b/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java new file mode 100644 index 0000000..b78cea1 --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import com.google.common.base.Utf8; + +public class UTF8SULGuava { + public static boolean accepts(byte[] data) { + return Utf8.isWellFormed(data); + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java b/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java new file mode 100644 index 0000000..59c89ef --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import com.ibm.icu.text.CharsetDetector; +import com.ibm.icu.text.CharsetMatch; + +public class UTF8SULICU4J { + public static boolean accepts(byte[] data) { + // The CharsetDetector is not a good validator, it accepts a certain + // amount of errors. And it doesn't always report short strings as + // valid UTF-8. + CharsetDetector detector = new CharsetDetector(); + detector.setDeclaredEncoding("UTF-8"); + detector.setText(data); + + CharsetMatch[] matches = detector.detectAll(); + for (CharsetMatch match : matches) { + // The confidence can be either 15, 25, 80 or 100. + if ("UTF-8".equalsIgnoreCase(match.getName()) && match.getConfidence() >= 100) { + return true; + } + } + + return false; + } +}