From a017afc3db6ff108e9afa34d7ac3710e6fcb9111 Mon Sep 17 00:00:00 2001 From: Oleg Kovalov Date: Fri, 5 Jan 2024 17:37:01 +0100 Subject: [PATCH] Initial implementation (#2) --- README.md | 4 +- Taskfile.yml | 27 + codegen.gotmpl | 42 + go.mod | 5 + go.sum | 2 + main.go | 94 ++ problem.cnf | 100 ++ sudoku.cnf | 3271 ++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 3544 insertions(+), 1 deletion(-) create mode 100644 Taskfile.yml create mode 100644 codegen.gotmpl create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go create mode 100644 problem.cnf create mode 100644 sudoku.cnf diff --git a/README.md b/README.md index 136a8f4..65fd408 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# fusaso \ No newline at end of file +# fusaso + +I'm a horrible person but Go fuzzing is cool. diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..1ddd666 --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,27 @@ +# https://taskfile.dev + +version: '3' + +tasks: + default: + cmds: + - task --list-all + silent: true + + build: + cmds: + - go build -o fusaso main.go + + run: + cmds: + - task: build + - ./fusaso + + fuzz: + cmds: + - go test -v -run=^$ -fuzz=FuzzSolve solve_test.g + + solve: + cmds: + - task: build + - ./fusaso -run diff --git a/codegen.gotmpl b/codegen.gotmpl new file mode 100644 index 0000000..bbfba61 --- /dev/null +++ b/codegen.gotmpl @@ -0,0 +1,42 @@ +//go:build ignore +package tofuzz + +import ( + "strings" + "testing" +) + +var variables int = {{ .Variables }} + +func FuzzSolve(f *testing.F) { + f.Add(strings.Repeat("0", variables)) + f.Add(strings.Repeat("1", variables)) + + f.Fuzz(func(t *testing.T, s string) { + switch { + case len(s) != variables: + return + case !isValid(s): + return + case check(s): + t.Fatalf("solution: %s", s) + } + }) +} + +func isValid(s string) bool { + for _, c := range s { + if c != '0' && c != '1' { + return false + } + } + return true +} + +func check(x string) bool{ + switch { +{{ range .Cases }} {{ "\t" }}case {{ . }}: return false {{ "\n" }}{{ end }} + default: + return true + } +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c0370e1 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/cristaloleg/fusaso + +go 1.21 + +require github.com/cristaloleg/cnf v0.1.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5da5085 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/cristaloleg/cnf v0.1.0 h1:9uUb/2bct8vuKLOJanAM0qsJD2ZeILAzRXykBJl/sJI= +github.com/cristaloleg/cnf v0.1.0/go.mod h1:HIGwS53/irUMNVfUpEs/6j/tRZgfiNr3YUtUWODZGjM= diff --git a/main.go b/main.go new file mode 100644 index 0000000..2389784 --- /dev/null +++ b/main.go @@ -0,0 +1,94 @@ +package main + +import ( + _ "embed" + "flag" + "fmt" + "io" + "os" + "os/exec" + "strings" + "text/template" + + "github.com/cristaloleg/cnf" +) + +func main() { + fset := flag.NewFlagSet("fusaso", flag.ContinueOnError) + + filename := fset.String("problem", "problem.cnf", "file with the problem (DIMACS format)") + output := fset.String("out", "fuzz_solve_test.go", "file with the codegen") + run := fset.Bool("run", false, "run the fuzzing") + + if err := fset.Parse(os.Args[1:]); err != nil { + panic(err) + } + + problemFile, err := os.Open(*filename) + if err != nil { + panic(err) + } + defer problemFile.Close() + + outfile, err := os.Create(*output) + if err != nil { + panic(err) + } + defer outfile.Close() + + problem, err := cnf.ParseDIMAC(problemFile) + if err != nil { + panic(err) + } + + if err := codegen(outfile, problem); err != nil { + panic(err) + } + + if *run { + cmd := exec.Command("go", "test", "-run=^$", "-fuzz=FuzzSolve", *output) + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + _ = cmd.Run() + } +} + +func codegen(w io.Writer, p *cnf.Problem) error { + p.Formula.SortBySize() + + data := struct { + Variables int + Cases []string + }{ + Variables: p.Variables, + Cases: toCases(p.Formula), + } + + return template.Must(template.New("").Parse(codeTmpl)).Execute(w, data) +} + +//go:embed codegen.gotmpl +var codeTmpl string + +func toCases(formula cnf.Formula) []string { + res := make([]string, len(formula)) + for i, c := range formula { + res[i] = conv(c) + } + return res +} + +func conv(clause cnf.Clause) string { + var b strings.Builder + for i, lit := range clause { + if i > 0 { + fmt.Fprint(&b, " && ") + } + if lit.Sign() { + fmt.Fprintf(&b, `x[%d] == '0'`, lit.Var()-1) + } else { + fmt.Fprintf(&b, `x[%d] == '1'`, lit.Var()-1) + } + } + return b.String() +} diff --git a/problem.cnf b/problem.cnf new file mode 100644 index 0000000..34bf0dc --- /dev/null +++ b/problem.cnf @@ -0,0 +1,100 @@ +c This Formular is generated by mcnf +c +c horn? no +c forced? no +c mixed sat? no +c clause length = 3 +c +p cnf 20 91 + 4 -18 19 0 +3 18 -5 0 +-5 -8 -15 0 +-20 7 -16 0 +10 -13 -7 0 +-12 -9 17 0 +17 19 5 0 +-16 9 15 0 +11 -5 -14 0 +18 -10 13 0 +-3 11 12 0 +-6 -17 -8 0 +-18 14 1 0 +-19 -15 10 0 +12 18 -19 0 +-8 4 7 0 +-8 -9 4 0 +7 17 -15 0 +12 -7 -14 0 +-10 -11 8 0 +2 -15 -11 0 +9 6 1 0 +-11 20 -17 0 +9 -15 13 0 +12 -7 -17 0 +-18 -2 20 0 +20 12 4 0 +19 11 14 0 +-16 18 -4 0 +-1 -17 -19 0 +-13 15 10 0 +-12 -14 -13 0 +12 -14 -7 0 +-7 16 10 0 +6 10 7 0 +20 14 -16 0 +-19 17 11 0 +-7 1 -20 0 +-5 12 15 0 +-4 -9 -13 0 +12 -11 -7 0 +-5 19 -8 0 +1 16 17 0 +20 -14 -15 0 +13 -4 10 0 +14 7 10 0 +-5 9 20 0 +10 1 -19 0 +-16 -15 -1 0 +16 3 -11 0 +-15 -10 4 0 +4 -15 -3 0 +-10 -16 11 0 +-8 12 -5 0 +14 -6 12 0 +1 6 11 0 +-13 -5 -1 0 +-7 -2 12 0 +1 -20 19 0 +-2 -13 -8 0 +15 18 4 0 +-11 14 9 0 +-6 -15 -2 0 +5 -12 -15 0 +-6 17 5 0 +-13 5 -19 0 +20 -1 14 0 +9 -17 15 0 +-5 19 -18 0 +-12 8 -10 0 +-18 14 -4 0 +15 -9 13 0 +9 -5 -1 0 +10 -19 -14 0 +20 9 4 0 +-9 -2 19 0 +-5 13 -17 0 +2 -10 -18 0 +-18 3 11 0 +7 -9 17 0 +-15 -6 -3 0 +-2 3 -13 0 +12 3 -2 0 +-2 -3 17 0 +20 -15 -16 0 +-5 -17 -19 0 +-20 -18 11 0 +-9 1 -5 0 +-19 9 17 0 +12 -2 17 0 +4 -16 -5 0 +c [4, 3, -5, -20, 10, -12, 17, -16, 18, 11, 0] diff --git a/sudoku.cnf b/sudoku.cnf new file mode 100644 index 0000000..6135b6d --- /dev/null +++ b/sudoku.cnf @@ -0,0 +1,3271 @@ +p cnf 729 3270 +1 2 3 4 5 6 7 8 9 0 +-1 -2 0 +-1 -3 0 +-1 -4 0 +-1 -5 0 +-1 -6 0 +-1 -7 0 +-1 -8 0 +-1 -9 0 +-2 -3 0 +-2 -4 0 +-2 -5 0 +-2 -6 0 +-2 -7 0 +-2 -8 0 +-2 -9 0 +-3 -4 0 +-3 -5 0 +-3 -6 0 +-3 -7 0 +-3 -8 0 +-3 -9 0 +-4 -5 0 +-4 -6 0 +-4 -7 0 +-4 -8 0 +-4 -9 0 +-5 -6 0 +-5 -7 0 +-5 -8 0 +-5 -9 0 +-6 -7 0 +-6 -8 0 +-6 -9 0 +-7 -8 0 +-7 -9 0 +-8 -9 0 +10 11 12 13 14 15 16 17 18 0 +-10 -11 0 +-10 -12 0 +-10 -13 0 +-10 -14 0 +-10 -15 0 +-10 -16 0 +-10 -17 0 +-10 -18 0 +-11 -12 0 +-11 -13 0 +-11 -14 0 +-11 -15 0 +-11 -16 0 +-11 -17 0 +-11 -18 0 +-12 -13 0 +-12 -14 0 +-12 -15 0 +-12 -16 0 +-12 -17 0 +-12 -18 0 +-13 -14 0 +-13 -15 0 +-13 -16 0 +-13 -17 0 +-13 -18 0 +-14 -15 0 +-14 -16 0 +-14 -17 0 +-14 -18 0 +-15 -16 0 +-15 -17 0 +-15 -18 0 +-16 -17 0 +-16 -18 0 +-17 -18 0 +19 20 21 22 23 24 25 26 27 0 +-19 -20 0 +-19 -21 0 +-19 -22 0 +-19 -23 0 +-19 -24 0 +-19 -25 0 +-19 -26 0 +-19 -27 0 +-20 -21 0 +-20 -22 0 +-20 -23 0 +-20 -24 0 +-20 -25 0 +-20 -26 0 +-20 -27 0 +-21 -22 0 +-21 -23 0 +-21 -24 0 +-21 -25 0 +-21 -26 0 +-21 -27 0 +-22 -23 0 +-22 -24 0 +-22 -25 0 +-22 -26 0 +-22 -27 0 +-23 -24 0 +-23 -25 0 +-23 -26 0 +-23 -27 0 +-24 -25 0 +-24 -26 0 +-24 -27 0 +-25 -26 0 +-25 -27 0 +-26 -27 0 +28 29 30 31 32 33 34 35 36 0 +-28 -29 0 +-28 -30 0 +-28 -31 0 +-28 -32 0 +-28 -33 0 +-28 -34 0 +-28 -35 0 +-28 -36 0 +-29 -30 0 +-29 -31 0 +-29 -32 0 +-29 -33 0 +-29 -34 0 +-29 -35 0 +-29 -36 0 +-30 -31 0 +-30 -32 0 +-30 -33 0 +-30 -34 0 +-30 -35 0 +-30 -36 0 +-31 -32 0 +-31 -33 0 +-31 -34 0 +-31 -35 0 +-31 -36 0 +-32 -33 0 +-32 -34 0 +-32 -35 0 +-32 -36 0 +-33 -34 0 +-33 -35 0 +-33 -36 0 +-34 -35 0 +-34 -36 0 +-35 -36 0 +37 38 39 40 41 42 43 44 45 0 +-37 -38 0 +-37 -39 0 +-37 -40 0 +-37 -41 0 +-37 -42 0 +-37 -43 0 +-37 -44 0 +-37 -45 0 +-38 -39 0 +-38 -40 0 +-38 -41 0 +-38 -42 0 +-38 -43 0 +-38 -44 0 +-38 -45 0 +-39 -40 0 +-39 -41 0 +-39 -42 0 +-39 -43 0 +-39 -44 0 +-39 -45 0 +-40 -41 0 +-40 -42 0 +-40 -43 0 +-40 -44 0 +-40 -45 0 +-41 -42 0 +-41 -43 0 +-41 -44 0 +-41 -45 0 +-42 -43 0 +-42 -44 0 +-42 -45 0 +-43 -44 0 +-43 -45 0 +-44 -45 0 +46 47 48 49 50 51 52 53 54 0 +-46 -47 0 +-46 -48 0 +-46 -49 0 +-46 -50 0 +-46 -51 0 +-46 -52 0 +-46 -53 0 +-46 -54 0 +-47 -48 0 +-47 -49 0 +-47 -50 0 +-47 -51 0 +-47 -52 0 +-47 -53 0 +-47 -54 0 +-48 -49 0 +-48 -50 0 +-48 -51 0 +-48 -52 0 +-48 -53 0 +-48 -54 0 +-49 -50 0 +-49 -51 0 +-49 -52 0 +-49 -53 0 +-49 -54 0 +-50 -51 0 +-50 -52 0 +-50 -53 0 +-50 -54 0 +-51 -52 0 +-51 -53 0 +-51 -54 0 +-52 -53 0 +-52 -54 0 +-53 -54 0 +55 56 57 58 59 60 61 62 63 0 +-55 -56 0 +-55 -57 0 +-55 -58 0 +-55 -59 0 +-55 -60 0 +-55 -61 0 +-55 -62 0 +-55 -63 0 +-56 -57 0 +-56 -58 0 +-56 -59 0 +-56 -60 0 +-56 -61 0 +-56 -62 0 +-56 -63 0 +-57 -58 0 +-57 -59 0 +-57 -60 0 +-57 -61 0 +-57 -62 0 +-57 -63 0 +-58 -59 0 +-58 -60 0 +-58 -61 0 +-58 -62 0 +-58 -63 0 +-59 -60 0 +-59 -61 0 +-59 -62 0 +-59 -63 0 +-60 -61 0 +-60 -62 0 +-60 -63 0 +-61 -62 0 +-61 -63 0 +-62 -63 0 +64 65 66 67 68 69 70 71 72 0 +-64 -65 0 +-64 -66 0 +-64 -67 0 +-64 -68 0 +-64 -69 0 +-64 -70 0 +-64 -71 0 +-64 -72 0 +-65 -66 0 +-65 -67 0 +-65 -68 0 +-65 -69 0 +-65 -70 0 +-65 -71 0 +-65 -72 0 +-66 -67 0 +-66 -68 0 +-66 -69 0 +-66 -70 0 +-66 -71 0 +-66 -72 0 +-67 -68 0 +-67 -69 0 +-67 -70 0 +-67 -71 0 +-67 -72 0 +-68 -69 0 +-68 -70 0 +-68 -71 0 +-68 -72 0 +-69 -70 0 +-69 -71 0 +-69 -72 0 +-70 -71 0 +-70 -72 0 +-71 -72 0 +73 74 75 76 77 78 79 80 81 0 +-73 -74 0 +-73 -75 0 +-73 -76 0 +-73 -77 0 +-73 -78 0 +-73 -79 0 +-73 -80 0 +-73 -81 0 +-74 -75 0 +-74 -76 0 +-74 -77 0 +-74 -78 0 +-74 -79 0 +-74 -80 0 +-74 -81 0 +-75 -76 0 +-75 -77 0 +-75 -78 0 +-75 -79 0 +-75 -80 0 +-75 -81 0 +-76 -77 0 +-76 -78 0 +-76 -79 0 +-76 -80 0 +-76 -81 0 +-77 -78 0 +-77 -79 0 +-77 -80 0 +-77 -81 0 +-78 -79 0 +-78 -80 0 +-78 -81 0 +-79 -80 0 +-79 -81 0 +-80 -81 0 +82 83 84 85 86 87 88 89 90 0 +-82 -83 0 +-82 -84 0 +-82 -85 0 +-82 -86 0 +-82 -87 0 +-82 -88 0 +-82 -89 0 +-82 -90 0 +-83 -84 0 +-83 -85 0 +-83 -86 0 +-83 -87 0 +-83 -88 0 +-83 -89 0 +-83 -90 0 +-84 -85 0 +-84 -86 0 +-84 -87 0 +-84 -88 0 +-84 -89 0 +-84 -90 0 +-85 -86 0 +-85 -87 0 +-85 -88 0 +-85 -89 0 +-85 -90 0 +-86 -87 0 +-86 -88 0 +-86 -89 0 +-86 -90 0 +-87 -88 0 +-87 -89 0 +-87 -90 0 +-88 -89 0 +-88 -90 0 +-89 -90 0 +91 92 93 94 95 96 97 98 99 0 +-91 -92 0 +-91 -93 0 +-91 -94 0 +-91 -95 0 +-91 -96 0 +-91 -97 0 +-91 -98 0 +-91 -99 0 +-92 -93 0 +-92 -94 0 +-92 -95 0 +-92 -96 0 +-92 -97 0 +-92 -98 0 +-92 -99 0 +-93 -94 0 +-93 -95 0 +-93 -96 0 +-93 -97 0 +-93 -98 0 +-93 -99 0 +-94 -95 0 +-94 -96 0 +-94 -97 0 +-94 -98 0 +-94 -99 0 +-95 -96 0 +-95 -97 0 +-95 -98 0 +-95 -99 0 +-96 -97 0 +-96 -98 0 +-96 -99 0 +-97 -98 0 +-97 -99 0 +-98 -99 0 +100 101 102 103 104 105 106 107 108 0 +-100 -101 0 +-100 -102 0 +-100 -103 0 +-100 -104 0 +-100 -105 0 +-100 -106 0 +-100 -107 0 +-100 -108 0 +-101 -102 0 +-101 -103 0 +-101 -104 0 +-101 -105 0 +-101 -106 0 +-101 -107 0 +-101 -108 0 +-102 -103 0 +-102 -104 0 +-102 -105 0 +-102 -106 0 +-102 -107 0 +-102 -108 0 +-103 -104 0 +-103 -105 0 +-103 -106 0 +-103 -107 0 +-103 -108 0 +-104 -105 0 +-104 -106 0 +-104 -107 0 +-104 -108 0 +-105 -106 0 +-105 -107 0 +-105 -108 0 +-106 -107 0 +-106 -108 0 +-107 -108 0 +109 110 111 112 113 114 115 116 117 0 +-109 -110 0 +-109 -111 0 +-109 -112 0 +-109 -113 0 +-109 -114 0 +-109 -115 0 +-109 -116 0 +-109 -117 0 +-110 -111 0 +-110 -112 0 +-110 -113 0 +-110 -114 0 +-110 -115 0 +-110 -116 0 +-110 -117 0 +-111 -112 0 +-111 -113 0 +-111 -114 0 +-111 -115 0 +-111 -116 0 +-111 -117 0 +-112 -113 0 +-112 -114 0 +-112 -115 0 +-112 -116 0 +-112 -117 0 +-113 -114 0 +-113 -115 0 +-113 -116 0 +-113 -117 0 +-114 -115 0 +-114 -116 0 +-114 -117 0 +-115 -116 0 +-115 -117 0 +-116 -117 0 +118 119 120 121 122 123 124 125 126 0 +-118 -119 0 +-118 -120 0 +-118 -121 0 +-118 -122 0 +-118 -123 0 +-118 -124 0 +-118 -125 0 +-118 -126 0 +-119 -120 0 +-119 -121 0 +-119 -122 0 +-119 -123 0 +-119 -124 0 +-119 -125 0 +-119 -126 0 +-120 -121 0 +-120 -122 0 +-120 -123 0 +-120 -124 0 +-120 -125 0 +-120 -126 0 +-121 -122 0 +-121 -123 0 +-121 -124 0 +-121 -125 0 +-121 -126 0 +-122 -123 0 +-122 -124 0 +-122 -125 0 +-122 -126 0 +-123 -124 0 +-123 -125 0 +-123 -126 0 +-124 -125 0 +-124 -126 0 +-125 -126 0 +127 128 129 130 131 132 133 134 135 0 +-127 -128 0 +-127 -129 0 +-127 -130 0 +-127 -131 0 +-127 -132 0 +-127 -133 0 +-127 -134 0 +-127 -135 0 +-128 -129 0 +-128 -130 0 +-128 -131 0 +-128 -132 0 +-128 -133 0 +-128 -134 0 +-128 -135 0 +-129 -130 0 +-129 -131 0 +-129 -132 0 +-129 -133 0 +-129 -134 0 +-129 -135 0 +-130 -131 0 +-130 -132 0 +-130 -133 0 +-130 -134 0 +-130 -135 0 +-131 -132 0 +-131 -133 0 +-131 -134 0 +-131 -135 0 +-132 -133 0 +-132 -134 0 +-132 -135 0 +-133 -134 0 +-133 -135 0 +-134 -135 0 +136 137 138 139 140 141 142 143 144 0 +-136 -137 0 +-136 -138 0 +-136 -139 0 +-136 -140 0 +-136 -141 0 +-136 -142 0 +-136 -143 0 +-136 -144 0 +-137 -138 0 +-137 -139 0 +-137 -140 0 +-137 -141 0 +-137 -142 0 +-137 -143 0 +-137 -144 0 +-138 -139 0 +-138 -140 0 +-138 -141 0 +-138 -142 0 +-138 -143 0 +-138 -144 0 +-139 -140 0 +-139 -141 0 +-139 -142 0 +-139 -143 0 +-139 -144 0 +-140 -141 0 +-140 -142 0 +-140 -143 0 +-140 -144 0 +-141 -142 0 +-141 -143 0 +-141 -144 0 +-142 -143 0 +-142 -144 0 +-143 -144 0 +145 146 147 148 149 150 151 152 153 0 +-145 -146 0 +-145 -147 0 +-145 -148 0 +-145 -149 0 +-145 -150 0 +-145 -151 0 +-145 -152 0 +-145 -153 0 +-146 -147 0 +-146 -148 0 +-146 -149 0 +-146 -150 0 +-146 -151 0 +-146 -152 0 +-146 -153 0 +-147 -148 0 +-147 -149 0 +-147 -150 0 +-147 -151 0 +-147 -152 0 +-147 -153 0 +-148 -149 0 +-148 -150 0 +-148 -151 0 +-148 -152 0 +-148 -153 0 +-149 -150 0 +-149 -151 0 +-149 -152 0 +-149 -153 0 +-150 -151 0 +-150 -152 0 +-150 -153 0 +-151 -152 0 +-151 -153 0 +-152 -153 0 +154 155 156 157 158 159 160 161 162 0 +-154 -155 0 +-154 -156 0 +-154 -157 0 +-154 -158 0 +-154 -159 0 +-154 -160 0 +-154 -161 0 +-154 -162 0 +-155 -156 0 +-155 -157 0 +-155 -158 0 +-155 -159 0 +-155 -160 0 +-155 -161 0 +-155 -162 0 +-156 -157 0 +-156 -158 0 +-156 -159 0 +-156 -160 0 +-156 -161 0 +-156 -162 0 +-157 -158 0 +-157 -159 0 +-157 -160 0 +-157 -161 0 +-157 -162 0 +-158 -159 0 +-158 -160 0 +-158 -161 0 +-158 -162 0 +-159 -160 0 +-159 -161 0 +-159 -162 0 +-160 -161 0 +-160 -162 0 +-161 -162 0 +163 164 165 166 167 168 169 170 171 0 +-163 -164 0 +-163 -165 0 +-163 -166 0 +-163 -167 0 +-163 -168 0 +-163 -169 0 +-163 -170 0 +-163 -171 0 +-164 -165 0 +-164 -166 0 +-164 -167 0 +-164 -168 0 +-164 -169 0 +-164 -170 0 +-164 -171 0 +-165 -166 0 +-165 -167 0 +-165 -168 0 +-165 -169 0 +-165 -170 0 +-165 -171 0 +-166 -167 0 +-166 -168 0 +-166 -169 0 +-166 -170 0 +-166 -171 0 +-167 -168 0 +-167 -169 0 +-167 -170 0 +-167 -171 0 +-168 -169 0 +-168 -170 0 +-168 -171 0 +-169 -170 0 +-169 -171 0 +-170 -171 0 +172 173 174 175 176 177 178 179 180 0 +-172 -173 0 +-172 -174 0 +-172 -175 0 +-172 -176 0 +-172 -177 0 +-172 -178 0 +-172 -179 0 +-172 -180 0 +-173 -174 0 +-173 -175 0 +-173 -176 0 +-173 -177 0 +-173 -178 0 +-173 -179 0 +-173 -180 0 +-174 -175 0 +-174 -176 0 +-174 -177 0 +-174 -178 0 +-174 -179 0 +-174 -180 0 +-175 -176 0 +-175 -177 0 +-175 -178 0 +-175 -179 0 +-175 -180 0 +-176 -177 0 +-176 -178 0 +-176 -179 0 +-176 -180 0 +-177 -178 0 +-177 -179 0 +-177 -180 0 +-178 -179 0 +-178 -180 0 +-179 -180 0 +181 182 183 184 185 186 187 188 189 0 +-181 -182 0 +-181 -183 0 +-181 -184 0 +-181 -185 0 +-181 -186 0 +-181 -187 0 +-181 -188 0 +-181 -189 0 +-182 -183 0 +-182 -184 0 +-182 -185 0 +-182 -186 0 +-182 -187 0 +-182 -188 0 +-182 -189 0 +-183 -184 0 +-183 -185 0 +-183 -186 0 +-183 -187 0 +-183 -188 0 +-183 -189 0 +-184 -185 0 +-184 -186 0 +-184 -187 0 +-184 -188 0 +-184 -189 0 +-185 -186 0 +-185 -187 0 +-185 -188 0 +-185 -189 0 +-186 -187 0 +-186 -188 0 +-186 -189 0 +-187 -188 0 +-187 -189 0 +-188 -189 0 +190 191 192 193 194 195 196 197 198 0 +-190 -191 0 +-190 -192 0 +-190 -193 0 +-190 -194 0 +-190 -195 0 +-190 -196 0 +-190 -197 0 +-190 -198 0 +-191 -192 0 +-191 -193 0 +-191 -194 0 +-191 -195 0 +-191 -196 0 +-191 -197 0 +-191 -198 0 +-192 -193 0 +-192 -194 0 +-192 -195 0 +-192 -196 0 +-192 -197 0 +-192 -198 0 +-193 -194 0 +-193 -195 0 +-193 -196 0 +-193 -197 0 +-193 -198 0 +-194 -195 0 +-194 -196 0 +-194 -197 0 +-194 -198 0 +-195 -196 0 +-195 -197 0 +-195 -198 0 +-196 -197 0 +-196 -198 0 +-197 -198 0 +199 200 201 202 203 204 205 206 207 0 +-199 -200 0 +-199 -201 0 +-199 -202 0 +-199 -203 0 +-199 -204 0 +-199 -205 0 +-199 -206 0 +-199 -207 0 +-200 -201 0 +-200 -202 0 +-200 -203 0 +-200 -204 0 +-200 -205 0 +-200 -206 0 +-200 -207 0 +-201 -202 0 +-201 -203 0 +-201 -204 0 +-201 -205 0 +-201 -206 0 +-201 -207 0 +-202 -203 0 +-202 -204 0 +-202 -205 0 +-202 -206 0 +-202 -207 0 +-203 -204 0 +-203 -205 0 +-203 -206 0 +-203 -207 0 +-204 -205 0 +-204 -206 0 +-204 -207 0 +-205 -206 0 +-205 -207 0 +-206 -207 0 +208 209 210 211 212 213 214 215 216 0 +-208 -209 0 +-208 -210 0 +-208 -211 0 +-208 -212 0 +-208 -213 0 +-208 -214 0 +-208 -215 0 +-208 -216 0 +-209 -210 0 +-209 -211 0 +-209 -212 0 +-209 -213 0 +-209 -214 0 +-209 -215 0 +-209 -216 0 +-210 -211 0 +-210 -212 0 +-210 -213 0 +-210 -214 0 +-210 -215 0 +-210 -216 0 +-211 -212 0 +-211 -213 0 +-211 -214 0 +-211 -215 0 +-211 -216 0 +-212 -213 0 +-212 -214 0 +-212 -215 0 +-212 -216 0 +-213 -214 0 +-213 -215 0 +-213 -216 0 +-214 -215 0 +-214 -216 0 +-215 -216 0 +217 218 219 220 221 222 223 224 225 0 +-217 -218 0 +-217 -219 0 +-217 -220 0 +-217 -221 0 +-217 -222 0 +-217 -223 0 +-217 -224 0 +-217 -225 0 +-218 -219 0 +-218 -220 0 +-218 -221 0 +-218 -222 0 +-218 -223 0 +-218 -224 0 +-218 -225 0 +-219 -220 0 +-219 -221 0 +-219 -222 0 +-219 -223 0 +-219 -224 0 +-219 -225 0 +-220 -221 0 +-220 -222 0 +-220 -223 0 +-220 -224 0 +-220 -225 0 +-221 -222 0 +-221 -223 0 +-221 -224 0 +-221 -225 0 +-222 -223 0 +-222 -224 0 +-222 -225 0 +-223 -224 0 +-223 -225 0 +-224 -225 0 +226 227 228 229 230 231 232 233 234 0 +-226 -227 0 +-226 -228 0 +-226 -229 0 +-226 -230 0 +-226 -231 0 +-226 -232 0 +-226 -233 0 +-226 -234 0 +-227 -228 0 +-227 -229 0 +-227 -230 0 +-227 -231 0 +-227 -232 0 +-227 -233 0 +-227 -234 0 +-228 -229 0 +-228 -230 0 +-228 -231 0 +-228 -232 0 +-228 -233 0 +-228 -234 0 +-229 -230 0 +-229 -231 0 +-229 -232 0 +-229 -233 0 +-229 -234 0 +-230 -231 0 +-230 -232 0 +-230 -233 0 +-230 -234 0 +-231 -232 0 +-231 -233 0 +-231 -234 0 +-232 -233 0 +-232 -234 0 +-233 -234 0 +235 236 237 238 239 240 241 242 243 0 +-235 -236 0 +-235 -237 0 +-235 -238 0 +-235 -239 0 +-235 -240 0 +-235 -241 0 +-235 -242 0 +-235 -243 0 +-236 -237 0 +-236 -238 0 +-236 -239 0 +-236 -240 0 +-236 -241 0 +-236 -242 0 +-236 -243 0 +-237 -238 0 +-237 -239 0 +-237 -240 0 +-237 -241 0 +-237 -242 0 +-237 -243 0 +-238 -239 0 +-238 -240 0 +-238 -241 0 +-238 -242 0 +-238 -243 0 +-239 -240 0 +-239 -241 0 +-239 -242 0 +-239 -243 0 +-240 -241 0 +-240 -242 0 +-240 -243 0 +-241 -242 0 +-241 -243 0 +-242 -243 0 +244 245 246 247 248 249 250 251 252 0 +-244 -245 0 +-244 -246 0 +-244 -247 0 +-244 -248 0 +-244 -249 0 +-244 -250 0 +-244 -251 0 +-244 -252 0 +-245 -246 0 +-245 -247 0 +-245 -248 0 +-245 -249 0 +-245 -250 0 +-245 -251 0 +-245 -252 0 +-246 -247 0 +-246 -248 0 +-246 -249 0 +-246 -250 0 +-246 -251 0 +-246 -252 0 +-247 -248 0 +-247 -249 0 +-247 -250 0 +-247 -251 0 +-247 -252 0 +-248 -249 0 +-248 -250 0 +-248 -251 0 +-248 -252 0 +-249 -250 0 +-249 -251 0 +-249 -252 0 +-250 -251 0 +-250 -252 0 +-251 -252 0 +253 254 255 256 257 258 259 260 261 0 +-253 -254 0 +-253 -255 0 +-253 -256 0 +-253 -257 0 +-253 -258 0 +-253 -259 0 +-253 -260 0 +-253 -261 0 +-254 -255 0 +-254 -256 0 +-254 -257 0 +-254 -258 0 +-254 -259 0 +-254 -260 0 +-254 -261 0 +-255 -256 0 +-255 -257 0 +-255 -258 0 +-255 -259 0 +-255 -260 0 +-255 -261 0 +-256 -257 0 +-256 -258 0 +-256 -259 0 +-256 -260 0 +-256 -261 0 +-257 -258 0 +-257 -259 0 +-257 -260 0 +-257 -261 0 +-258 -259 0 +-258 -260 0 +-258 -261 0 +-259 -260 0 +-259 -261 0 +-260 -261 0 +262 263 264 265 266 267 268 269 270 0 +-262 -263 0 +-262 -264 0 +-262 -265 0 +-262 -266 0 +-262 -267 0 +-262 -268 0 +-262 -269 0 +-262 -270 0 +-263 -264 0 +-263 -265 0 +-263 -266 0 +-263 -267 0 +-263 -268 0 +-263 -269 0 +-263 -270 0 +-264 -265 0 +-264 -266 0 +-264 -267 0 +-264 -268 0 +-264 -269 0 +-264 -270 0 +-265 -266 0 +-265 -267 0 +-265 -268 0 +-265 -269 0 +-265 -270 0 +-266 -267 0 +-266 -268 0 +-266 -269 0 +-266 -270 0 +-267 -268 0 +-267 -269 0 +-267 -270 0 +-268 -269 0 +-268 -270 0 +-269 -270 0 +271 272 273 274 275 276 277 278 279 0 +-271 -272 0 +-271 -273 0 +-271 -274 0 +-271 -275 0 +-271 -276 0 +-271 -277 0 +-271 -278 0 +-271 -279 0 +-272 -273 0 +-272 -274 0 +-272 -275 0 +-272 -276 0 +-272 -277 0 +-272 -278 0 +-272 -279 0 +-273 -274 0 +-273 -275 0 +-273 -276 0 +-273 -277 0 +-273 -278 0 +-273 -279 0 +-274 -275 0 +-274 -276 0 +-274 -277 0 +-274 -278 0 +-274 -279 0 +-275 -276 0 +-275 -277 0 +-275 -278 0 +-275 -279 0 +-276 -277 0 +-276 -278 0 +-276 -279 0 +-277 -278 0 +-277 -279 0 +-278 -279 0 +280 281 282 283 284 285 286 287 288 0 +-280 -281 0 +-280 -282 0 +-280 -283 0 +-280 -284 0 +-280 -285 0 +-280 -286 0 +-280 -287 0 +-280 -288 0 +-281 -282 0 +-281 -283 0 +-281 -284 0 +-281 -285 0 +-281 -286 0 +-281 -287 0 +-281 -288 0 +-282 -283 0 +-282 -284 0 +-282 -285 0 +-282 -286 0 +-282 -287 0 +-282 -288 0 +-283 -284 0 +-283 -285 0 +-283 -286 0 +-283 -287 0 +-283 -288 0 +-284 -285 0 +-284 -286 0 +-284 -287 0 +-284 -288 0 +-285 -286 0 +-285 -287 0 +-285 -288 0 +-286 -287 0 +-286 -288 0 +-287 -288 0 +289 290 291 292 293 294 295 296 297 0 +-289 -290 0 +-289 -291 0 +-289 -292 0 +-289 -293 0 +-289 -294 0 +-289 -295 0 +-289 -296 0 +-289 -297 0 +-290 -291 0 +-290 -292 0 +-290 -293 0 +-290 -294 0 +-290 -295 0 +-290 -296 0 +-290 -297 0 +-291 -292 0 +-291 -293 0 +-291 -294 0 +-291 -295 0 +-291 -296 0 +-291 -297 0 +-292 -293 0 +-292 -294 0 +-292 -295 0 +-292 -296 0 +-292 -297 0 +-293 -294 0 +-293 -295 0 +-293 -296 0 +-293 -297 0 +-294 -295 0 +-294 -296 0 +-294 -297 0 +-295 -296 0 +-295 -297 0 +-296 -297 0 +298 299 300 301 302 303 304 305 306 0 +-298 -299 0 +-298 -300 0 +-298 -301 0 +-298 -302 0 +-298 -303 0 +-298 -304 0 +-298 -305 0 +-298 -306 0 +-299 -300 0 +-299 -301 0 +-299 -302 0 +-299 -303 0 +-299 -304 0 +-299 -305 0 +-299 -306 0 +-300 -301 0 +-300 -302 0 +-300 -303 0 +-300 -304 0 +-300 -305 0 +-300 -306 0 +-301 -302 0 +-301 -303 0 +-301 -304 0 +-301 -305 0 +-301 -306 0 +-302 -303 0 +-302 -304 0 +-302 -305 0 +-302 -306 0 +-303 -304 0 +-303 -305 0 +-303 -306 0 +-304 -305 0 +-304 -306 0 +-305 -306 0 +307 308 309 310 311 312 313 314 315 0 +-307 -308 0 +-307 -309 0 +-307 -310 0 +-307 -311 0 +-307 -312 0 +-307 -313 0 +-307 -314 0 +-307 -315 0 +-308 -309 0 +-308 -310 0 +-308 -311 0 +-308 -312 0 +-308 -313 0 +-308 -314 0 +-308 -315 0 +-309 -310 0 +-309 -311 0 +-309 -312 0 +-309 -313 0 +-309 -314 0 +-309 -315 0 +-310 -311 0 +-310 -312 0 +-310 -313 0 +-310 -314 0 +-310 -315 0 +-311 -312 0 +-311 -313 0 +-311 -314 0 +-311 -315 0 +-312 -313 0 +-312 -314 0 +-312 -315 0 +-313 -314 0 +-313 -315 0 +-314 -315 0 +316 317 318 319 320 321 322 323 324 0 +-316 -317 0 +-316 -318 0 +-316 -319 0 +-316 -320 0 +-316 -321 0 +-316 -322 0 +-316 -323 0 +-316 -324 0 +-317 -318 0 +-317 -319 0 +-317 -320 0 +-317 -321 0 +-317 -322 0 +-317 -323 0 +-317 -324 0 +-318 -319 0 +-318 -320 0 +-318 -321 0 +-318 -322 0 +-318 -323 0 +-318 -324 0 +-319 -320 0 +-319 -321 0 +-319 -322 0 +-319 -323 0 +-319 -324 0 +-320 -321 0 +-320 -322 0 +-320 -323 0 +-320 -324 0 +-321 -322 0 +-321 -323 0 +-321 -324 0 +-322 -323 0 +-322 -324 0 +-323 -324 0 +325 326 327 328 329 330 331 332 333 0 +-325 -326 0 +-325 -327 0 +-325 -328 0 +-325 -329 0 +-325 -330 0 +-325 -331 0 +-325 -332 0 +-325 -333 0 +-326 -327 0 +-326 -328 0 +-326 -329 0 +-326 -330 0 +-326 -331 0 +-326 -332 0 +-326 -333 0 +-327 -328 0 +-327 -329 0 +-327 -330 0 +-327 -331 0 +-327 -332 0 +-327 -333 0 +-328 -329 0 +-328 -330 0 +-328 -331 0 +-328 -332 0 +-328 -333 0 +-329 -330 0 +-329 -331 0 +-329 -332 0 +-329 -333 0 +-330 -331 0 +-330 -332 0 +-330 -333 0 +-331 -332 0 +-331 -333 0 +-332 -333 0 +334 335 336 337 338 339 340 341 342 0 +-334 -335 0 +-334 -336 0 +-334 -337 0 +-334 -338 0 +-334 -339 0 +-334 -340 0 +-334 -341 0 +-334 -342 0 +-335 -336 0 +-335 -337 0 +-335 -338 0 +-335 -339 0 +-335 -340 0 +-335 -341 0 +-335 -342 0 +-336 -337 0 +-336 -338 0 +-336 -339 0 +-336 -340 0 +-336 -341 0 +-336 -342 0 +-337 -338 0 +-337 -339 0 +-337 -340 0 +-337 -341 0 +-337 -342 0 +-338 -339 0 +-338 -340 0 +-338 -341 0 +-338 -342 0 +-339 -340 0 +-339 -341 0 +-339 -342 0 +-340 -341 0 +-340 -342 0 +-341 -342 0 +343 344 345 346 347 348 349 350 351 0 +-343 -344 0 +-343 -345 0 +-343 -346 0 +-343 -347 0 +-343 -348 0 +-343 -349 0 +-343 -350 0 +-343 -351 0 +-344 -345 0 +-344 -346 0 +-344 -347 0 +-344 -348 0 +-344 -349 0 +-344 -350 0 +-344 -351 0 +-345 -346 0 +-345 -347 0 +-345 -348 0 +-345 -349 0 +-345 -350 0 +-345 -351 0 +-346 -347 0 +-346 -348 0 +-346 -349 0 +-346 -350 0 +-346 -351 0 +-347 -348 0 +-347 -349 0 +-347 -350 0 +-347 -351 0 +-348 -349 0 +-348 -350 0 +-348 -351 0 +-349 -350 0 +-349 -351 0 +-350 -351 0 +352 353 354 355 356 357 358 359 360 0 +-352 -353 0 +-352 -354 0 +-352 -355 0 +-352 -356 0 +-352 -357 0 +-352 -358 0 +-352 -359 0 +-352 -360 0 +-353 -354 0 +-353 -355 0 +-353 -356 0 +-353 -357 0 +-353 -358 0 +-353 -359 0 +-353 -360 0 +-354 -355 0 +-354 -356 0 +-354 -357 0 +-354 -358 0 +-354 -359 0 +-354 -360 0 +-355 -356 0 +-355 -357 0 +-355 -358 0 +-355 -359 0 +-355 -360 0 +-356 -357 0 +-356 -358 0 +-356 -359 0 +-356 -360 0 +-357 -358 0 +-357 -359 0 +-357 -360 0 +-358 -359 0 +-358 -360 0 +-359 -360 0 +361 362 363 364 365 366 367 368 369 0 +-361 -362 0 +-361 -363 0 +-361 -364 0 +-361 -365 0 +-361 -366 0 +-361 -367 0 +-361 -368 0 +-361 -369 0 +-362 -363 0 +-362 -364 0 +-362 -365 0 +-362 -366 0 +-362 -367 0 +-362 -368 0 +-362 -369 0 +-363 -364 0 +-363 -365 0 +-363 -366 0 +-363 -367 0 +-363 -368 0 +-363 -369 0 +-364 -365 0 +-364 -366 0 +-364 -367 0 +-364 -368 0 +-364 -369 0 +-365 -366 0 +-365 -367 0 +-365 -368 0 +-365 -369 0 +-366 -367 0 +-366 -368 0 +-366 -369 0 +-367 -368 0 +-367 -369 0 +-368 -369 0 +370 371 372 373 374 375 376 377 378 0 +-370 -371 0 +-370 -372 0 +-370 -373 0 +-370 -374 0 +-370 -375 0 +-370 -376 0 +-370 -377 0 +-370 -378 0 +-371 -372 0 +-371 -373 0 +-371 -374 0 +-371 -375 0 +-371 -376 0 +-371 -377 0 +-371 -378 0 +-372 -373 0 +-372 -374 0 +-372 -375 0 +-372 -376 0 +-372 -377 0 +-372 -378 0 +-373 -374 0 +-373 -375 0 +-373 -376 0 +-373 -377 0 +-373 -378 0 +-374 -375 0 +-374 -376 0 +-374 -377 0 +-374 -378 0 +-375 -376 0 +-375 -377 0 +-375 -378 0 +-376 -377 0 +-376 -378 0 +-377 -378 0 +379 380 381 382 383 384 385 386 387 0 +-379 -380 0 +-379 -381 0 +-379 -382 0 +-379 -383 0 +-379 -384 0 +-379 -385 0 +-379 -386 0 +-379 -387 0 +-380 -381 0 +-380 -382 0 +-380 -383 0 +-380 -384 0 +-380 -385 0 +-380 -386 0 +-380 -387 0 +-381 -382 0 +-381 -383 0 +-381 -384 0 +-381 -385 0 +-381 -386 0 +-381 -387 0 +-382 -383 0 +-382 -384 0 +-382 -385 0 +-382 -386 0 +-382 -387 0 +-383 -384 0 +-383 -385 0 +-383 -386 0 +-383 -387 0 +-384 -385 0 +-384 -386 0 +-384 -387 0 +-385 -386 0 +-385 -387 0 +-386 -387 0 +388 389 390 391 392 393 394 395 396 0 +-388 -389 0 +-388 -390 0 +-388 -391 0 +-388 -392 0 +-388 -393 0 +-388 -394 0 +-388 -395 0 +-388 -396 0 +-389 -390 0 +-389 -391 0 +-389 -392 0 +-389 -393 0 +-389 -394 0 +-389 -395 0 +-389 -396 0 +-390 -391 0 +-390 -392 0 +-390 -393 0 +-390 -394 0 +-390 -395 0 +-390 -396 0 +-391 -392 0 +-391 -393 0 +-391 -394 0 +-391 -395 0 +-391 -396 0 +-392 -393 0 +-392 -394 0 +-392 -395 0 +-392 -396 0 +-393 -394 0 +-393 -395 0 +-393 -396 0 +-394 -395 0 +-394 -396 0 +-395 -396 0 +397 398 399 400 401 402 403 404 405 0 +-397 -398 0 +-397 -399 0 +-397 -400 0 +-397 -401 0 +-397 -402 0 +-397 -403 0 +-397 -404 0 +-397 -405 0 +-398 -399 0 +-398 -400 0 +-398 -401 0 +-398 -402 0 +-398 -403 0 +-398 -404 0 +-398 -405 0 +-399 -400 0 +-399 -401 0 +-399 -402 0 +-399 -403 0 +-399 -404 0 +-399 -405 0 +-400 -401 0 +-400 -402 0 +-400 -403 0 +-400 -404 0 +-400 -405 0 +-401 -402 0 +-401 -403 0 +-401 -404 0 +-401 -405 0 +-402 -403 0 +-402 -404 0 +-402 -405 0 +-403 -404 0 +-403 -405 0 +-404 -405 0 +406 407 408 409 410 411 412 413 414 0 +-406 -407 0 +-406 -408 0 +-406 -409 0 +-406 -410 0 +-406 -411 0 +-406 -412 0 +-406 -413 0 +-406 -414 0 +-407 -408 0 +-407 -409 0 +-407 -410 0 +-407 -411 0 +-407 -412 0 +-407 -413 0 +-407 -414 0 +-408 -409 0 +-408 -410 0 +-408 -411 0 +-408 -412 0 +-408 -413 0 +-408 -414 0 +-409 -410 0 +-409 -411 0 +-409 -412 0 +-409 -413 0 +-409 -414 0 +-410 -411 0 +-410 -412 0 +-410 -413 0 +-410 -414 0 +-411 -412 0 +-411 -413 0 +-411 -414 0 +-412 -413 0 +-412 -414 0 +-413 -414 0 +415 416 417 418 419 420 421 422 423 0 +-415 -416 0 +-415 -417 0 +-415 -418 0 +-415 -419 0 +-415 -420 0 +-415 -421 0 +-415 -422 0 +-415 -423 0 +-416 -417 0 +-416 -418 0 +-416 -419 0 +-416 -420 0 +-416 -421 0 +-416 -422 0 +-416 -423 0 +-417 -418 0 +-417 -419 0 +-417 -420 0 +-417 -421 0 +-417 -422 0 +-417 -423 0 +-418 -419 0 +-418 -420 0 +-418 -421 0 +-418 -422 0 +-418 -423 0 +-419 -420 0 +-419 -421 0 +-419 -422 0 +-419 -423 0 +-420 -421 0 +-420 -422 0 +-420 -423 0 +-421 -422 0 +-421 -423 0 +-422 -423 0 +424 425 426 427 428 429 430 431 432 0 +-424 -425 0 +-424 -426 0 +-424 -427 0 +-424 -428 0 +-424 -429 0 +-424 -430 0 +-424 -431 0 +-424 -432 0 +-425 -426 0 +-425 -427 0 +-425 -428 0 +-425 -429 0 +-425 -430 0 +-425 -431 0 +-425 -432 0 +-426 -427 0 +-426 -428 0 +-426 -429 0 +-426 -430 0 +-426 -431 0 +-426 -432 0 +-427 -428 0 +-427 -429 0 +-427 -430 0 +-427 -431 0 +-427 -432 0 +-428 -429 0 +-428 -430 0 +-428 -431 0 +-428 -432 0 +-429 -430 0 +-429 -431 0 +-429 -432 0 +-430 -431 0 +-430 -432 0 +-431 -432 0 +433 434 435 436 437 438 439 440 441 0 +-433 -434 0 +-433 -435 0 +-433 -436 0 +-433 -437 0 +-433 -438 0 +-433 -439 0 +-433 -440 0 +-433 -441 0 +-434 -435 0 +-434 -436 0 +-434 -437 0 +-434 -438 0 +-434 -439 0 +-434 -440 0 +-434 -441 0 +-435 -436 0 +-435 -437 0 +-435 -438 0 +-435 -439 0 +-435 -440 0 +-435 -441 0 +-436 -437 0 +-436 -438 0 +-436 -439 0 +-436 -440 0 +-436 -441 0 +-437 -438 0 +-437 -439 0 +-437 -440 0 +-437 -441 0 +-438 -439 0 +-438 -440 0 +-438 -441 0 +-439 -440 0 +-439 -441 0 +-440 -441 0 +442 443 444 445 446 447 448 449 450 0 +-442 -443 0 +-442 -444 0 +-442 -445 0 +-442 -446 0 +-442 -447 0 +-442 -448 0 +-442 -449 0 +-442 -450 0 +-443 -444 0 +-443 -445 0 +-443 -446 0 +-443 -447 0 +-443 -448 0 +-443 -449 0 +-443 -450 0 +-444 -445 0 +-444 -446 0 +-444 -447 0 +-444 -448 0 +-444 -449 0 +-444 -450 0 +-445 -446 0 +-445 -447 0 +-445 -448 0 +-445 -449 0 +-445 -450 0 +-446 -447 0 +-446 -448 0 +-446 -449 0 +-446 -450 0 +-447 -448 0 +-447 -449 0 +-447 -450 0 +-448 -449 0 +-448 -450 0 +-449 -450 0 +451 452 453 454 455 456 457 458 459 0 +-451 -452 0 +-451 -453 0 +-451 -454 0 +-451 -455 0 +-451 -456 0 +-451 -457 0 +-451 -458 0 +-451 -459 0 +-452 -453 0 +-452 -454 0 +-452 -455 0 +-452 -456 0 +-452 -457 0 +-452 -458 0 +-452 -459 0 +-453 -454 0 +-453 -455 0 +-453 -456 0 +-453 -457 0 +-453 -458 0 +-453 -459 0 +-454 -455 0 +-454 -456 0 +-454 -457 0 +-454 -458 0 +-454 -459 0 +-455 -456 0 +-455 -457 0 +-455 -458 0 +-455 -459 0 +-456 -457 0 +-456 -458 0 +-456 -459 0 +-457 -458 0 +-457 -459 0 +-458 -459 0 +460 461 462 463 464 465 466 467 468 0 +-460 -461 0 +-460 -462 0 +-460 -463 0 +-460 -464 0 +-460 -465 0 +-460 -466 0 +-460 -467 0 +-460 -468 0 +-461 -462 0 +-461 -463 0 +-461 -464 0 +-461 -465 0 +-461 -466 0 +-461 -467 0 +-461 -468 0 +-462 -463 0 +-462 -464 0 +-462 -465 0 +-462 -466 0 +-462 -467 0 +-462 -468 0 +-463 -464 0 +-463 -465 0 +-463 -466 0 +-463 -467 0 +-463 -468 0 +-464 -465 0 +-464 -466 0 +-464 -467 0 +-464 -468 0 +-465 -466 0 +-465 -467 0 +-465 -468 0 +-466 -467 0 +-466 -468 0 +-467 -468 0 +469 470 471 472 473 474 475 476 477 0 +-469 -470 0 +-469 -471 0 +-469 -472 0 +-469 -473 0 +-469 -474 0 +-469 -475 0 +-469 -476 0 +-469 -477 0 +-470 -471 0 +-470 -472 0 +-470 -473 0 +-470 -474 0 +-470 -475 0 +-470 -476 0 +-470 -477 0 +-471 -472 0 +-471 -473 0 +-471 -474 0 +-471 -475 0 +-471 -476 0 +-471 -477 0 +-472 -473 0 +-472 -474 0 +-472 -475 0 +-472 -476 0 +-472 -477 0 +-473 -474 0 +-473 -475 0 +-473 -476 0 +-473 -477 0 +-474 -475 0 +-474 -476 0 +-474 -477 0 +-475 -476 0 +-475 -477 0 +-476 -477 0 +478 479 480 481 482 483 484 485 486 0 +-478 -479 0 +-478 -480 0 +-478 -481 0 +-478 -482 0 +-478 -483 0 +-478 -484 0 +-478 -485 0 +-478 -486 0 +-479 -480 0 +-479 -481 0 +-479 -482 0 +-479 -483 0 +-479 -484 0 +-479 -485 0 +-479 -486 0 +-480 -481 0 +-480 -482 0 +-480 -483 0 +-480 -484 0 +-480 -485 0 +-480 -486 0 +-481 -482 0 +-481 -483 0 +-481 -484 0 +-481 -485 0 +-481 -486 0 +-482 -483 0 +-482 -484 0 +-482 -485 0 +-482 -486 0 +-483 -484 0 +-483 -485 0 +-483 -486 0 +-484 -485 0 +-484 -486 0 +-485 -486 0 +487 488 489 490 491 492 493 494 495 0 +-487 -488 0 +-487 -489 0 +-487 -490 0 +-487 -491 0 +-487 -492 0 +-487 -493 0 +-487 -494 0 +-487 -495 0 +-488 -489 0 +-488 -490 0 +-488 -491 0 +-488 -492 0 +-488 -493 0 +-488 -494 0 +-488 -495 0 +-489 -490 0 +-489 -491 0 +-489 -492 0 +-489 -493 0 +-489 -494 0 +-489 -495 0 +-490 -491 0 +-490 -492 0 +-490 -493 0 +-490 -494 0 +-490 -495 0 +-491 -492 0 +-491 -493 0 +-491 -494 0 +-491 -495 0 +-492 -493 0 +-492 -494 0 +-492 -495 0 +-493 -494 0 +-493 -495 0 +-494 -495 0 +496 497 498 499 500 501 502 503 504 0 +-496 -497 0 +-496 -498 0 +-496 -499 0 +-496 -500 0 +-496 -501 0 +-496 -502 0 +-496 -503 0 +-496 -504 0 +-497 -498 0 +-497 -499 0 +-497 -500 0 +-497 -501 0 +-497 -502 0 +-497 -503 0 +-497 -504 0 +-498 -499 0 +-498 -500 0 +-498 -501 0 +-498 -502 0 +-498 -503 0 +-498 -504 0 +-499 -500 0 +-499 -501 0 +-499 -502 0 +-499 -503 0 +-499 -504 0 +-500 -501 0 +-500 -502 0 +-500 -503 0 +-500 -504 0 +-501 -502 0 +-501 -503 0 +-501 -504 0 +-502 -503 0 +-502 -504 0 +-503 -504 0 +505 506 507 508 509 510 511 512 513 0 +-505 -506 0 +-505 -507 0 +-505 -508 0 +-505 -509 0 +-505 -510 0 +-505 -511 0 +-505 -512 0 +-505 -513 0 +-506 -507 0 +-506 -508 0 +-506 -509 0 +-506 -510 0 +-506 -511 0 +-506 -512 0 +-506 -513 0 +-507 -508 0 +-507 -509 0 +-507 -510 0 +-507 -511 0 +-507 -512 0 +-507 -513 0 +-508 -509 0 +-508 -510 0 +-508 -511 0 +-508 -512 0 +-508 -513 0 +-509 -510 0 +-509 -511 0 +-509 -512 0 +-509 -513 0 +-510 -511 0 +-510 -512 0 +-510 -513 0 +-511 -512 0 +-511 -513 0 +-512 -513 0 +514 515 516 517 518 519 520 521 522 0 +-514 -515 0 +-514 -516 0 +-514 -517 0 +-514 -518 0 +-514 -519 0 +-514 -520 0 +-514 -521 0 +-514 -522 0 +-515 -516 0 +-515 -517 0 +-515 -518 0 +-515 -519 0 +-515 -520 0 +-515 -521 0 +-515 -522 0 +-516 -517 0 +-516 -518 0 +-516 -519 0 +-516 -520 0 +-516 -521 0 +-516 -522 0 +-517 -518 0 +-517 -519 0 +-517 -520 0 +-517 -521 0 +-517 -522 0 +-518 -519 0 +-518 -520 0 +-518 -521 0 +-518 -522 0 +-519 -520 0 +-519 -521 0 +-519 -522 0 +-520 -521 0 +-520 -522 0 +-521 -522 0 +523 524 525 526 527 528 529 530 531 0 +-523 -524 0 +-523 -525 0 +-523 -526 0 +-523 -527 0 +-523 -528 0 +-523 -529 0 +-523 -530 0 +-523 -531 0 +-524 -525 0 +-524 -526 0 +-524 -527 0 +-524 -528 0 +-524 -529 0 +-524 -530 0 +-524 -531 0 +-525 -526 0 +-525 -527 0 +-525 -528 0 +-525 -529 0 +-525 -530 0 +-525 -531 0 +-526 -527 0 +-526 -528 0 +-526 -529 0 +-526 -530 0 +-526 -531 0 +-527 -528 0 +-527 -529 0 +-527 -530 0 +-527 -531 0 +-528 -529 0 +-528 -530 0 +-528 -531 0 +-529 -530 0 +-529 -531 0 +-530 -531 0 +532 533 534 535 536 537 538 539 540 0 +-532 -533 0 +-532 -534 0 +-532 -535 0 +-532 -536 0 +-532 -537 0 +-532 -538 0 +-532 -539 0 +-532 -540 0 +-533 -534 0 +-533 -535 0 +-533 -536 0 +-533 -537 0 +-533 -538 0 +-533 -539 0 +-533 -540 0 +-534 -535 0 +-534 -536 0 +-534 -537 0 +-534 -538 0 +-534 -539 0 +-534 -540 0 +-535 -536 0 +-535 -537 0 +-535 -538 0 +-535 -539 0 +-535 -540 0 +-536 -537 0 +-536 -538 0 +-536 -539 0 +-536 -540 0 +-537 -538 0 +-537 -539 0 +-537 -540 0 +-538 -539 0 +-538 -540 0 +-539 -540 0 +541 542 543 544 545 546 547 548 549 0 +-541 -542 0 +-541 -543 0 +-541 -544 0 +-541 -545 0 +-541 -546 0 +-541 -547 0 +-541 -548 0 +-541 -549 0 +-542 -543 0 +-542 -544 0 +-542 -545 0 +-542 -546 0 +-542 -547 0 +-542 -548 0 +-542 -549 0 +-543 -544 0 +-543 -545 0 +-543 -546 0 +-543 -547 0 +-543 -548 0 +-543 -549 0 +-544 -545 0 +-544 -546 0 +-544 -547 0 +-544 -548 0 +-544 -549 0 +-545 -546 0 +-545 -547 0 +-545 -548 0 +-545 -549 0 +-546 -547 0 +-546 -548 0 +-546 -549 0 +-547 -548 0 +-547 -549 0 +-548 -549 0 +550 551 552 553 554 555 556 557 558 0 +-550 -551 0 +-550 -552 0 +-550 -553 0 +-550 -554 0 +-550 -555 0 +-550 -556 0 +-550 -557 0 +-550 -558 0 +-551 -552 0 +-551 -553 0 +-551 -554 0 +-551 -555 0 +-551 -556 0 +-551 -557 0 +-551 -558 0 +-552 -553 0 +-552 -554 0 +-552 -555 0 +-552 -556 0 +-552 -557 0 +-552 -558 0 +-553 -554 0 +-553 -555 0 +-553 -556 0 +-553 -557 0 +-553 -558 0 +-554 -555 0 +-554 -556 0 +-554 -557 0 +-554 -558 0 +-555 -556 0 +-555 -557 0 +-555 -558 0 +-556 -557 0 +-556 -558 0 +-557 -558 0 +559 560 561 562 563 564 565 566 567 0 +-559 -560 0 +-559 -561 0 +-559 -562 0 +-559 -563 0 +-559 -564 0 +-559 -565 0 +-559 -566 0 +-559 -567 0 +-560 -561 0 +-560 -562 0 +-560 -563 0 +-560 -564 0 +-560 -565 0 +-560 -566 0 +-560 -567 0 +-561 -562 0 +-561 -563 0 +-561 -564 0 +-561 -565 0 +-561 -566 0 +-561 -567 0 +-562 -563 0 +-562 -564 0 +-562 -565 0 +-562 -566 0 +-562 -567 0 +-563 -564 0 +-563 -565 0 +-563 -566 0 +-563 -567 0 +-564 -565 0 +-564 -566 0 +-564 -567 0 +-565 -566 0 +-565 -567 0 +-566 -567 0 +568 569 570 571 572 573 574 575 576 0 +-568 -569 0 +-568 -570 0 +-568 -571 0 +-568 -572 0 +-568 -573 0 +-568 -574 0 +-568 -575 0 +-568 -576 0 +-569 -570 0 +-569 -571 0 +-569 -572 0 +-569 -573 0 +-569 -574 0 +-569 -575 0 +-569 -576 0 +-570 -571 0 +-570 -572 0 +-570 -573 0 +-570 -574 0 +-570 -575 0 +-570 -576 0 +-571 -572 0 +-571 -573 0 +-571 -574 0 +-571 -575 0 +-571 -576 0 +-572 -573 0 +-572 -574 0 +-572 -575 0 +-572 -576 0 +-573 -574 0 +-573 -575 0 +-573 -576 0 +-574 -575 0 +-574 -576 0 +-575 -576 0 +577 578 579 580 581 582 583 584 585 0 +-577 -578 0 +-577 -579 0 +-577 -580 0 +-577 -581 0 +-577 -582 0 +-577 -583 0 +-577 -584 0 +-577 -585 0 +-578 -579 0 +-578 -580 0 +-578 -581 0 +-578 -582 0 +-578 -583 0 +-578 -584 0 +-578 -585 0 +-579 -580 0 +-579 -581 0 +-579 -582 0 +-579 -583 0 +-579 -584 0 +-579 -585 0 +-580 -581 0 +-580 -582 0 +-580 -583 0 +-580 -584 0 +-580 -585 0 +-581 -582 0 +-581 -583 0 +-581 -584 0 +-581 -585 0 +-582 -583 0 +-582 -584 0 +-582 -585 0 +-583 -584 0 +-583 -585 0 +-584 -585 0 +586 587 588 589 590 591 592 593 594 0 +-586 -587 0 +-586 -588 0 +-586 -589 0 +-586 -590 0 +-586 -591 0 +-586 -592 0 +-586 -593 0 +-586 -594 0 +-587 -588 0 +-587 -589 0 +-587 -590 0 +-587 -591 0 +-587 -592 0 +-587 -593 0 +-587 -594 0 +-588 -589 0 +-588 -590 0 +-588 -591 0 +-588 -592 0 +-588 -593 0 +-588 -594 0 +-589 -590 0 +-589 -591 0 +-589 -592 0 +-589 -593 0 +-589 -594 0 +-590 -591 0 +-590 -592 0 +-590 -593 0 +-590 -594 0 +-591 -592 0 +-591 -593 0 +-591 -594 0 +-592 -593 0 +-592 -594 0 +-593 -594 0 +595 596 597 598 599 600 601 602 603 0 +-595 -596 0 +-595 -597 0 +-595 -598 0 +-595 -599 0 +-595 -600 0 +-595 -601 0 +-595 -602 0 +-595 -603 0 +-596 -597 0 +-596 -598 0 +-596 -599 0 +-596 -600 0 +-596 -601 0 +-596 -602 0 +-596 -603 0 +-597 -598 0 +-597 -599 0 +-597 -600 0 +-597 -601 0 +-597 -602 0 +-597 -603 0 +-598 -599 0 +-598 -600 0 +-598 -601 0 +-598 -602 0 +-598 -603 0 +-599 -600 0 +-599 -601 0 +-599 -602 0 +-599 -603 0 +-600 -601 0 +-600 -602 0 +-600 -603 0 +-601 -602 0 +-601 -603 0 +-602 -603 0 +604 605 606 607 608 609 610 611 612 0 +-604 -605 0 +-604 -606 0 +-604 -607 0 +-604 -608 0 +-604 -609 0 +-604 -610 0 +-604 -611 0 +-604 -612 0 +-605 -606 0 +-605 -607 0 +-605 -608 0 +-605 -609 0 +-605 -610 0 +-605 -611 0 +-605 -612 0 +-606 -607 0 +-606 -608 0 +-606 -609 0 +-606 -610 0 +-606 -611 0 +-606 -612 0 +-607 -608 0 +-607 -609 0 +-607 -610 0 +-607 -611 0 +-607 -612 0 +-608 -609 0 +-608 -610 0 +-608 -611 0 +-608 -612 0 +-609 -610 0 +-609 -611 0 +-609 -612 0 +-610 -611 0 +-610 -612 0 +-611 -612 0 +613 614 615 616 617 618 619 620 621 0 +-613 -614 0 +-613 -615 0 +-613 -616 0 +-613 -617 0 +-613 -618 0 +-613 -619 0 +-613 -620 0 +-613 -621 0 +-614 -615 0 +-614 -616 0 +-614 -617 0 +-614 -618 0 +-614 -619 0 +-614 -620 0 +-614 -621 0 +-615 -616 0 +-615 -617 0 +-615 -618 0 +-615 -619 0 +-615 -620 0 +-615 -621 0 +-616 -617 0 +-616 -618 0 +-616 -619 0 +-616 -620 0 +-616 -621 0 +-617 -618 0 +-617 -619 0 +-617 -620 0 +-617 -621 0 +-618 -619 0 +-618 -620 0 +-618 -621 0 +-619 -620 0 +-619 -621 0 +-620 -621 0 +622 623 624 625 626 627 628 629 630 0 +-622 -623 0 +-622 -624 0 +-622 -625 0 +-622 -626 0 +-622 -627 0 +-622 -628 0 +-622 -629 0 +-622 -630 0 +-623 -624 0 +-623 -625 0 +-623 -626 0 +-623 -627 0 +-623 -628 0 +-623 -629 0 +-623 -630 0 +-624 -625 0 +-624 -626 0 +-624 -627 0 +-624 -628 0 +-624 -629 0 +-624 -630 0 +-625 -626 0 +-625 -627 0 +-625 -628 0 +-625 -629 0 +-625 -630 0 +-626 -627 0 +-626 -628 0 +-626 -629 0 +-626 -630 0 +-627 -628 0 +-627 -629 0 +-627 -630 0 +-628 -629 0 +-628 -630 0 +-629 -630 0 +631 632 633 634 635 636 637 638 639 0 +-631 -632 0 +-631 -633 0 +-631 -634 0 +-631 -635 0 +-631 -636 0 +-631 -637 0 +-631 -638 0 +-631 -639 0 +-632 -633 0 +-632 -634 0 +-632 -635 0 +-632 -636 0 +-632 -637 0 +-632 -638 0 +-632 -639 0 +-633 -634 0 +-633 -635 0 +-633 -636 0 +-633 -637 0 +-633 -638 0 +-633 -639 0 +-634 -635 0 +-634 -636 0 +-634 -637 0 +-634 -638 0 +-634 -639 0 +-635 -636 0 +-635 -637 0 +-635 -638 0 +-635 -639 0 +-636 -637 0 +-636 -638 0 +-636 -639 0 +-637 -638 0 +-637 -639 0 +-638 -639 0 +640 641 642 643 644 645 646 647 648 0 +-640 -641 0 +-640 -642 0 +-640 -643 0 +-640 -644 0 +-640 -645 0 +-640 -646 0 +-640 -647 0 +-640 -648 0 +-641 -642 0 +-641 -643 0 +-641 -644 0 +-641 -645 0 +-641 -646 0 +-641 -647 0 +-641 -648 0 +-642 -643 0 +-642 -644 0 +-642 -645 0 +-642 -646 0 +-642 -647 0 +-642 -648 0 +-643 -644 0 +-643 -645 0 +-643 -646 0 +-643 -647 0 +-643 -648 0 +-644 -645 0 +-644 -646 0 +-644 -647 0 +-644 -648 0 +-645 -646 0 +-645 -647 0 +-645 -648 0 +-646 -647 0 +-646 -648 0 +-647 -648 0 +649 650 651 652 653 654 655 656 657 0 +-649 -650 0 +-649 -651 0 +-649 -652 0 +-649 -653 0 +-649 -654 0 +-649 -655 0 +-649 -656 0 +-649 -657 0 +-650 -651 0 +-650 -652 0 +-650 -653 0 +-650 -654 0 +-650 -655 0 +-650 -656 0 +-650 -657 0 +-651 -652 0 +-651 -653 0 +-651 -654 0 +-651 -655 0 +-651 -656 0 +-651 -657 0 +-652 -653 0 +-652 -654 0 +-652 -655 0 +-652 -656 0 +-652 -657 0 +-653 -654 0 +-653 -655 0 +-653 -656 0 +-653 -657 0 +-654 -655 0 +-654 -656 0 +-654 -657 0 +-655 -656 0 +-655 -657 0 +-656 -657 0 +658 659 660 661 662 663 664 665 666 0 +-658 -659 0 +-658 -660 0 +-658 -661 0 +-658 -662 0 +-658 -663 0 +-658 -664 0 +-658 -665 0 +-658 -666 0 +-659 -660 0 +-659 -661 0 +-659 -662 0 +-659 -663 0 +-659 -664 0 +-659 -665 0 +-659 -666 0 +-660 -661 0 +-660 -662 0 +-660 -663 0 +-660 -664 0 +-660 -665 0 +-660 -666 0 +-661 -662 0 +-661 -663 0 +-661 -664 0 +-661 -665 0 +-661 -666 0 +-662 -663 0 +-662 -664 0 +-662 -665 0 +-662 -666 0 +-663 -664 0 +-663 -665 0 +-663 -666 0 +-664 -665 0 +-664 -666 0 +-665 -666 0 +667 668 669 670 671 672 673 674 675 0 +-667 -668 0 +-667 -669 0 +-667 -670 0 +-667 -671 0 +-667 -672 0 +-667 -673 0 +-667 -674 0 +-667 -675 0 +-668 -669 0 +-668 -670 0 +-668 -671 0 +-668 -672 0 +-668 -673 0 +-668 -674 0 +-668 -675 0 +-669 -670 0 +-669 -671 0 +-669 -672 0 +-669 -673 0 +-669 -674 0 +-669 -675 0 +-670 -671 0 +-670 -672 0 +-670 -673 0 +-670 -674 0 +-670 -675 0 +-671 -672 0 +-671 -673 0 +-671 -674 0 +-671 -675 0 +-672 -673 0 +-672 -674 0 +-672 -675 0 +-673 -674 0 +-673 -675 0 +-674 -675 0 +676 677 678 679 680 681 682 683 684 0 +-676 -677 0 +-676 -678 0 +-676 -679 0 +-676 -680 0 +-676 -681 0 +-676 -682 0 +-676 -683 0 +-676 -684 0 +-677 -678 0 +-677 -679 0 +-677 -680 0 +-677 -681 0 +-677 -682 0 +-677 -683 0 +-677 -684 0 +-678 -679 0 +-678 -680 0 +-678 -681 0 +-678 -682 0 +-678 -683 0 +-678 -684 0 +-679 -680 0 +-679 -681 0 +-679 -682 0 +-679 -683 0 +-679 -684 0 +-680 -681 0 +-680 -682 0 +-680 -683 0 +-680 -684 0 +-681 -682 0 +-681 -683 0 +-681 -684 0 +-682 -683 0 +-682 -684 0 +-683 -684 0 +685 686 687 688 689 690 691 692 693 0 +-685 -686 0 +-685 -687 0 +-685 -688 0 +-685 -689 0 +-685 -690 0 +-685 -691 0 +-685 -692 0 +-685 -693 0 +-686 -687 0 +-686 -688 0 +-686 -689 0 +-686 -690 0 +-686 -691 0 +-686 -692 0 +-686 -693 0 +-687 -688 0 +-687 -689 0 +-687 -690 0 +-687 -691 0 +-687 -692 0 +-687 -693 0 +-688 -689 0 +-688 -690 0 +-688 -691 0 +-688 -692 0 +-688 -693 0 +-689 -690 0 +-689 -691 0 +-689 -692 0 +-689 -693 0 +-690 -691 0 +-690 -692 0 +-690 -693 0 +-691 -692 0 +-691 -693 0 +-692 -693 0 +694 695 696 697 698 699 700 701 702 0 +-694 -695 0 +-694 -696 0 +-694 -697 0 +-694 -698 0 +-694 -699 0 +-694 -700 0 +-694 -701 0 +-694 -702 0 +-695 -696 0 +-695 -697 0 +-695 -698 0 +-695 -699 0 +-695 -700 0 +-695 -701 0 +-695 -702 0 +-696 -697 0 +-696 -698 0 +-696 -699 0 +-696 -700 0 +-696 -701 0 +-696 -702 0 +-697 -698 0 +-697 -699 0 +-697 -700 0 +-697 -701 0 +-697 -702 0 +-698 -699 0 +-698 -700 0 +-698 -701 0 +-698 -702 0 +-699 -700 0 +-699 -701 0 +-699 -702 0 +-700 -701 0 +-700 -702 0 +-701 -702 0 +703 704 705 706 707 708 709 710 711 0 +-703 -704 0 +-703 -705 0 +-703 -706 0 +-703 -707 0 +-703 -708 0 +-703 -709 0 +-703 -710 0 +-703 -711 0 +-704 -705 0 +-704 -706 0 +-704 -707 0 +-704 -708 0 +-704 -709 0 +-704 -710 0 +-704 -711 0 +-705 -706 0 +-705 -707 0 +-705 -708 0 +-705 -709 0 +-705 -710 0 +-705 -711 0 +-706 -707 0 +-706 -708 0 +-706 -709 0 +-706 -710 0 +-706 -711 0 +-707 -708 0 +-707 -709 0 +-707 -710 0 +-707 -711 0 +-708 -709 0 +-708 -710 0 +-708 -711 0 +-709 -710 0 +-709 -711 0 +-710 -711 0 +712 713 714 715 716 717 718 719 720 0 +-712 -713 0 +-712 -714 0 +-712 -715 0 +-712 -716 0 +-712 -717 0 +-712 -718 0 +-712 -719 0 +-712 -720 0 +-713 -714 0 +-713 -715 0 +-713 -716 0 +-713 -717 0 +-713 -718 0 +-713 -719 0 +-713 -720 0 +-714 -715 0 +-714 -716 0 +-714 -717 0 +-714 -718 0 +-714 -719 0 +-714 -720 0 +-715 -716 0 +-715 -717 0 +-715 -718 0 +-715 -719 0 +-715 -720 0 +-716 -717 0 +-716 -718 0 +-716 -719 0 +-716 -720 0 +-717 -718 0 +-717 -719 0 +-717 -720 0 +-718 -719 0 +-718 -720 0 +-719 -720 0 +721 722 723 724 725 726 727 728 729 0 +-721 -722 0 +-721 -723 0 +-721 -724 0 +-721 -725 0 +-721 -726 0 +-721 -727 0 +-721 -728 0 +-721 -729 0 +-722 -723 0 +-722 -724 0 +-722 -725 0 +-722 -726 0 +-722 -727 0 +-722 -728 0 +-722 -729 0 +-723 -724 0 +-723 -725 0 +-723 -726 0 +-723 -727 0 +-723 -728 0 +-723 -729 0 +-724 -725 0 +-724 -726 0 +-724 -727 0 +-724 -728 0 +-724 -729 0 +-725 -726 0 +-725 -727 0 +-725 -728 0 +-725 -729 0 +-726 -727 0 +-726 -728 0 +-726 -729 0 +-727 -728 0 +-727 -729 0 +-728 -729 0 +1 10 19 28 37 46 55 64 73 0 +2 11 20 29 38 47 56 65 74 0 +3 12 21 30 39 48 57 66 75 0 +4 13 22 31 40 49 58 67 76 0 +5 14 23 32 41 50 59 68 77 0 +6 15 24 33 42 51 60 69 78 0 +7 16 25 34 43 52 61 70 79 0 +8 17 26 35 44 53 62 71 80 0 +9 18 27 36 45 54 63 72 81 0 +82 91 100 109 118 127 136 145 154 0 +83 92 101 110 119 128 137 146 155 0 +84 93 102 111 120 129 138 147 156 0 +85 94 103 112 121 130 139 148 157 0 +86 95 104 113 122 131 140 149 158 0 +87 96 105 114 123 132 141 150 159 0 +88 97 106 115 124 133 142 151 160 0 +89 98 107 116 125 134 143 152 161 0 +90 99 108 117 126 135 144 153 162 0 +163 172 181 190 199 208 217 226 235 0 +164 173 182 191 200 209 218 227 236 0 +165 174 183 192 201 210 219 228 237 0 +166 175 184 193 202 211 220 229 238 0 +167 176 185 194 203 212 221 230 239 0 +168 177 186 195 204 213 222 231 240 0 +169 178 187 196 205 214 223 232 241 0 +170 179 188 197 206 215 224 233 242 0 +171 180 189 198 207 216 225 234 243 0 +244 253 262 271 280 289 298 307 316 0 +245 254 263 272 281 290 299 308 317 0 +246 255 264 273 282 291 300 309 318 0 +247 256 265 274 283 292 301 310 319 0 +248 257 266 275 284 293 302 311 320 0 +249 258 267 276 285 294 303 312 321 0 +250 259 268 277 286 295 304 313 322 0 +251 260 269 278 287 296 305 314 323 0 +252 261 270 279 288 297 306 315 324 0 +325 334 343 352 361 370 379 388 397 0 +326 335 344 353 362 371 380 389 398 0 +327 336 345 354 363 372 381 390 399 0 +328 337 346 355 364 373 382 391 400 0 +329 338 347 356 365 374 383 392 401 0 +330 339 348 357 366 375 384 393 402 0 +331 340 349 358 367 376 385 394 403 0 +332 341 350 359 368 377 386 395 404 0 +333 342 351 360 369 378 387 396 405 0 +406 415 424 433 442 451 460 469 478 0 +407 416 425 434 443 452 461 470 479 0 +408 417 426 435 444 453 462 471 480 0 +409 418 427 436 445 454 463 472 481 0 +410 419 428 437 446 455 464 473 482 0 +411 420 429 438 447 456 465 474 483 0 +412 421 430 439 448 457 466 475 484 0 +413 422 431 440 449 458 467 476 485 0 +414 423 432 441 450 459 468 477 486 0 +487 496 505 514 523 532 541 550 559 0 +488 497 506 515 524 533 542 551 560 0 +489 498 507 516 525 534 543 552 561 0 +490 499 508 517 526 535 544 553 562 0 +491 500 509 518 527 536 545 554 563 0 +492 501 510 519 528 537 546 555 564 0 +493 502 511 520 529 538 547 556 565 0 +494 503 512 521 530 539 548 557 566 0 +495 504 513 522 531 540 549 558 567 0 +568 577 586 595 604 613 622 631 640 0 +569 578 587 596 605 614 623 632 641 0 +570 579 588 597 606 615 624 633 642 0 +571 580 589 598 607 616 625 634 643 0 +572 581 590 599 608 617 626 635 644 0 +573 582 591 600 609 618 627 636 645 0 +574 583 592 601 610 619 628 637 646 0 +575 584 593 602 611 620 629 638 647 0 +576 585 594 603 612 621 630 639 648 0 +649 658 667 676 685 694 703 712 721 0 +650 659 668 677 686 695 704 713 722 0 +651 660 669 678 687 696 705 714 723 0 +652 661 670 679 688 697 706 715 724 0 +653 662 671 680 689 698 707 716 725 0 +654 663 672 681 690 699 708 717 726 0 +655 664 673 682 691 700 709 718 727 0 +656 665 674 683 692 701 710 719 728 0 +657 666 675 684 693 702 711 720 729 0 +1 82 163 244 325 406 487 568 649 0 +2 83 164 245 326 407 488 569 650 0 +3 84 165 246 327 408 489 570 651 0 +4 85 166 247 328 409 490 571 652 0 +5 86 167 248 329 410 491 572 653 0 +6 87 168 249 330 411 492 573 654 0 +7 88 169 250 331 412 493 574 655 0 +8 89 170 251 332 413 494 575 656 0 +9 90 171 252 333 414 495 576 657 0 +10 91 172 253 334 415 496 577 658 0 +11 92 173 254 335 416 497 578 659 0 +12 93 174 255 336 417 498 579 660 0 +13 94 175 256 337 418 499 580 661 0 +14 95 176 257 338 419 500 581 662 0 +15 96 177 258 339 420 501 582 663 0 +16 97 178 259 340 421 502 583 664 0 +17 98 179 260 341 422 503 584 665 0 +18 99 180 261 342 423 504 585 666 0 +19 100 181 262 343 424 505 586 667 0 +20 101 182 263 344 425 506 587 668 0 +21 102 183 264 345 426 507 588 669 0 +22 103 184 265 346 427 508 589 670 0 +23 104 185 266 347 428 509 590 671 0 +24 105 186 267 348 429 510 591 672 0 +25 106 187 268 349 430 511 592 673 0 +26 107 188 269 350 431 512 593 674 0 +27 108 189 270 351 432 513 594 675 0 +28 109 190 271 352 433 514 595 676 0 +29 110 191 272 353 434 515 596 677 0 +30 111 192 273 354 435 516 597 678 0 +31 112 193 274 355 436 517 598 679 0 +32 113 194 275 356 437 518 599 680 0 +33 114 195 276 357 438 519 600 681 0 +34 115 196 277 358 439 520 601 682 0 +35 116 197 278 359 440 521 602 683 0 +36 117 198 279 360 441 522 603 684 0 +37 118 199 280 361 442 523 604 685 0 +38 119 200 281 362 443 524 605 686 0 +39 120 201 282 363 444 525 606 687 0 +40 121 202 283 364 445 526 607 688 0 +41 122 203 284 365 446 527 608 689 0 +42 123 204 285 366 447 528 609 690 0 +43 124 205 286 367 448 529 610 691 0 +44 125 206 287 368 449 530 611 692 0 +45 126 207 288 369 450 531 612 693 0 +46 127 208 289 370 451 532 613 694 0 +47 128 209 290 371 452 533 614 695 0 +48 129 210 291 372 453 534 615 696 0 +49 130 211 292 373 454 535 616 697 0 +50 131 212 293 374 455 536 617 698 0 +51 132 213 294 375 456 537 618 699 0 +52 133 214 295 376 457 538 619 700 0 +53 134 215 296 377 458 539 620 701 0 +54 135 216 297 378 459 540 621 702 0 +55 136 217 298 379 460 541 622 703 0 +56 137 218 299 380 461 542 623 704 0 +57 138 219 300 381 462 543 624 705 0 +58 139 220 301 382 463 544 625 706 0 +59 140 221 302 383 464 545 626 707 0 +60 141 222 303 384 465 546 627 708 0 +61 142 223 304 385 466 547 628 709 0 +62 143 224 305 386 467 548 629 710 0 +63 144 225 306 387 468 549 630 711 0 +64 145 226 307 388 469 550 631 712 0 +65 146 227 308 389 470 551 632 713 0 +66 147 228 309 390 471 552 633 714 0 +67 148 229 310 391 472 553 634 715 0 +68 149 230 311 392 473 554 635 716 0 +69 150 231 312 393 474 555 636 717 0 +70 151 232 313 394 475 556 637 718 0 +71 152 233 314 395 476 557 638 719 0 +72 153 234 315 396 477 558 639 720 0 +73 154 235 316 397 478 559 640 721 0 +74 155 236 317 398 479 560 641 722 0 +75 156 237 318 399 480 561 642 723 0 +76 157 238 319 400 481 562 643 724 0 +77 158 239 320 401 482 563 644 725 0 +78 159 240 321 402 483 564 645 726 0 +79 160 241 322 403 484 565 646 727 0 +80 161 242 323 404 485 566 647 728 0 +81 162 243 324 405 486 567 648 729 0 +1 10 19 82 91 100 163 172 181 0 +2 11 20 83 92 101 164 173 182 0 +3 12 21 84 93 102 165 174 183 0 +4 13 22 85 94 103 166 175 184 0 +5 14 23 86 95 104 167 176 185 0 +6 15 24 87 96 105 168 177 186 0 +7 16 25 88 97 106 169 178 187 0 +8 17 26 89 98 107 170 179 188 0 +9 18 27 90 99 108 171 180 189 0 +28 37 46 109 118 127 190 199 208 0 +29 38 47 110 119 128 191 200 209 0 +30 39 48 111 120 129 192 201 210 0 +31 40 49 112 121 130 193 202 211 0 +32 41 50 113 122 131 194 203 212 0 +33 42 51 114 123 132 195 204 213 0 +34 43 52 115 124 133 196 205 214 0 +35 44 53 116 125 134 197 206 215 0 +36 45 54 117 126 135 198 207 216 0 +55 64 73 136 145 154 217 226 235 0 +56 65 74 137 146 155 218 227 236 0 +57 66 75 138 147 156 219 228 237 0 +58 67 76 139 148 157 220 229 238 0 +59 68 77 140 149 158 221 230 239 0 +60 69 78 141 150 159 222 231 240 0 +61 70 79 142 151 160 223 232 241 0 +62 71 80 143 152 161 224 233 242 0 +63 72 81 144 153 162 225 234 243 0 +244 253 262 325 334 343 406 415 424 0 +245 254 263 326 335 344 407 416 425 0 +246 255 264 327 336 345 408 417 426 0 +247 256 265 328 337 346 409 418 427 0 +248 257 266 329 338 347 410 419 428 0 +249 258 267 330 339 348 411 420 429 0 +250 259 268 331 340 349 412 421 430 0 +251 260 269 332 341 350 413 422 431 0 +252 261 270 333 342 351 414 423 432 0 +271 280 289 352 361 370 433 442 451 0 +272 281 290 353 362 371 434 443 452 0 +273 282 291 354 363 372 435 444 453 0 +274 283 292 355 364 373 436 445 454 0 +275 284 293 356 365 374 437 446 455 0 +276 285 294 357 366 375 438 447 456 0 +277 286 295 358 367 376 439 448 457 0 +278 287 296 359 368 377 440 449 458 0 +279 288 297 360 369 378 441 450 459 0 +298 307 316 379 388 397 460 469 478 0 +299 308 317 380 389 398 461 470 479 0 +300 309 318 381 390 399 462 471 480 0 +301 310 319 382 391 400 463 472 481 0 +302 311 320 383 392 401 464 473 482 0 +303 312 321 384 393 402 465 474 483 0 +304 313 322 385 394 403 466 475 484 0 +305 314 323 386 395 404 467 476 485 0 +306 315 324 387 396 405 468 477 486 0 +487 496 505 568 577 586 649 658 667 0 +488 497 506 569 578 587 650 659 668 0 +489 498 507 570 579 588 651 660 669 0 +490 499 508 571 580 589 652 661 670 0 +491 500 509 572 581 590 653 662 671 0 +492 501 510 573 582 591 654 663 672 0 +493 502 511 574 583 592 655 664 673 0 +494 503 512 575 584 593 656 665 674 0 +495 504 513 576 585 594 657 666 675 0 +514 523 532 595 604 613 676 685 694 0 +515 524 533 596 605 614 677 686 695 0 +516 525 534 597 606 615 678 687 696 0 +517 526 535 598 607 616 679 688 697 0 +518 527 536 599 608 617 680 689 698 0 +519 528 537 600 609 618 681 690 699 0 +520 529 538 601 610 619 682 691 700 0 +521 530 539 602 611 620 683 692 701 0 +522 531 540 603 612 621 684 693 702 0 +541 550 559 622 631 640 703 712 721 0 +542 551 560 623 632 641 704 713 722 0 +543 552 561 624 633 642 705 714 723 0 +544 553 562 625 634 643 706 715 724 0 +545 554 563 626 635 644 707 716 725 0 +546 555 564 627 636 645 708 717 726 0 +547 556 565 628 637 646 709 718 727 0 +548 557 566 629 638 647 710 719 728 0 +549 558 567 630 639 648 711 720 729 0 +5 0 +12 0 +43 0 +87 0 +109 0 +126 0 +131 0 +180 0 +188 0 +231 0 +251 0 +285 0 +318 0 +328 0 +359 0 +372 0 +397 0 +412 0 +443 0 +483 0 +501 0 +542 0 +557 0 +598 0 +604 0 +621 0 +644 0 +692 0 +718 0 +729 0 \ No newline at end of file