From 925d2c7e58653998e88aa0036bb619ce336455ec Mon Sep 17 00:00:00 2001 From: Erik Charlebois Date: Sun, 4 Apr 2010 03:23:04 -0700 Subject: [PATCH] PGM image loading and saving --- basis/images/pgm/authors.txt | 1 + basis/images/pgm/pgm-tests.factor | 7 + basis/images/pgm/pgm.factor | 63 + basis/images/pgm/summary.txt | 1 + extra/images/testing/pgm/radial.ascii.fig | Bin 0 -> 16443 bytes extra/images/testing/pgm/radial.ascii.pgm | 16388 +++++++++++++++++++ extra/images/testing/pgm/radial.binary.fig | Bin 0 -> 16443 bytes extra/images/testing/pgm/radial.binary.pgm | Bin 0 -> 16438 bytes 8 files changed, 16460 insertions(+) create mode 100644 basis/images/pgm/authors.txt create mode 100644 basis/images/pgm/pgm-tests.factor create mode 100644 basis/images/pgm/pgm.factor create mode 100644 basis/images/pgm/summary.txt create mode 100644 extra/images/testing/pgm/radial.ascii.fig create mode 100644 extra/images/testing/pgm/radial.ascii.pgm create mode 100644 extra/images/testing/pgm/radial.binary.fig create mode 100644 extra/images/testing/pgm/radial.binary.pgm diff --git a/basis/images/pgm/authors.txt b/basis/images/pgm/authors.txt new file mode 100644 index 0000000000..6f03a12101 --- /dev/null +++ b/basis/images/pgm/authors.txt @@ -0,0 +1 @@ +Erik Charlebois diff --git a/basis/images/pgm/pgm-tests.factor b/basis/images/pgm/pgm-tests.factor new file mode 100644 index 0000000000..7bfade4717 --- /dev/null +++ b/basis/images/pgm/pgm-tests.factor @@ -0,0 +1,7 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: images.testing ; +IN: images.pgm.tests + +"vocab:images/testing/pgm/radial.binary.pgm" decode-test +"vocab:images/testing/pgm/radial.ascii.pgm" decode-test diff --git a/basis/images/pgm/pgm.factor b/basis/images/pgm/pgm.factor new file mode 100644 index 0000000000..e673565fc9 --- /dev/null +++ b/basis/images/pgm/pgm.factor @@ -0,0 +1,63 @@ +! Copyright (C) 2010 Erik Charlebois. +! See http://factorcode.org/license.txt for BSD license. +USING: accessors alien.c-types ascii combinators images images.loader +io io.encodings.ascii io.encodings.string kernel locals make math +math.parser sequences specialized-arrays ; +SPECIALIZED-ARRAY: ushort +IN: images.pgm + +SINGLETON: pgm-image +"pgm" pgm-image register-image-class + +: read-token ( -- token ) + [ read1 dup blank? + [ t ] + [ dup CHAR: # = + [ "\n" read-until 2drop t ] + [ f ] if + ] if + ] [ drop ] while + " \n\r\t" read-until drop swap + prefix ascii decode ; + +: read-number ( -- number ) + read-token string>number ; + +:: read-numbers ( n lim -- ) + n lim = [ + read-number , + n 1 + lim read-numbers + ] unless ; + +ERROR: INSPECT a ; +:: read-pgm ( -- image ) + read-token :> type + read-number :> width + read-number :> height + read-number :> max + width height * :> npixels + max 256 >= :> wide + + type { + { "P2" [ [ 0 npixels read-numbers ] wide [ ushort-array{ } ] [ B{ } ] if make ] } + { "P5" [ wide [ 2 ] [ 1 ] if npixels * read ] } + } case :> data + + image new + L >>component-order + { width height } >>dim + f >>upside-down? + data >>bitmap + wide [ ushort-components ] [ ubyte-components ] if >>component-type ; + +M: pgm-image stream>image + drop [ read-pgm ] with-input-stream ; + +M: pgm-image image>stream + drop { + [ drop "P5\n" ascii encode write ] + [ dim>> first number>string " " append ascii encode write ] + [ dim>> second number>string "\n" append ascii encode write ] + [ component-type>> ubyte-components = [ "255\n" ] [ "65535\n" ] if ascii encode write ] + [ bitmap>> write ] + } cleave ; diff --git a/basis/images/pgm/summary.txt b/basis/images/pgm/summary.txt new file mode 100644 index 0000000000..f558b7cbb5 --- /dev/null +++ b/basis/images/pgm/summary.txt @@ -0,0 +1 @@ +Image loading for PGM image files. diff --git a/extra/images/testing/pgm/radial.ascii.fig b/extra/images/testing/pgm/radial.ascii.fig new file mode 100644 index 0000000000000000000000000000000000000000..6e52311b94202145e080cf8f4dc7794d43490754 GIT binary patch literal 16443 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 literal 0 HcmV?d00001 diff --git a/extra/images/testing/pgm/radial.ascii.pgm b/extra/images/testing/pgm/radial.ascii.pgm new file mode 100644 index 0000000000..1a7a6a832d --- /dev/null +++ b/extra/images/testing/pgm/radial.ascii.pgm @@ -0,0 +1,16388 @@ +P2 +# CREATOR: GIMP PNM Filter Version 1.1 +128 128 +255 +0 +2 +4 +6 +8 +10 +12 +13 +16 +17 +19 +21 +22 +24 +26 +28 +30 +32 +33 +35 +36 +38 +40 +41 +42 +44 +45 +46 +48 +49 +51 +52 +54 +55 +56 +57 +58 +59 +60 +61 +63 +63 +65 +65 +66 +67 +67 +68 +69 +70 +71 +71 +72 +72 +72 +73 +74 +74 +74 +74 +74 +74 +75 +74 +75 +75 +74 +75 +74 +74 +74 +74 +73 +73 +73 +72 +72 +71 +70 +69 +69 +69 +67 +66 +66 +65 +64 +63 +62 +61 +60 +59 +58 +57 +56 +55 +54 +52 +51 +49 +48 +46 +45 +43 +42 +41 +39 +38 +36 +34 +33 +31 +29 +27 +26 +25 +23 +21 +19 +18 +16 +14 +12 +10 +8 +6 +4 +2 +2 +4 +6 +8 +10 +12 +13 +16 +18 +20 +21 +23 +24 +27 +29 +31 +32 +34 +35 +37 +38 +40 +41 +43 +45 +46 +48 +49 +50 +52 +54 +55 +56 +57 +59 +60 +61 +61 +63 +64 +66 +66 +67 +68 +69 +69 +70 +71 +72 +73 +73 +74 +74 +75 +76 +76 +76 +77 +76 +77 +77 +78 +77 +77 +77 +77 +77 +77 +78 +77 +77 +77 +76 +76 +75 +75 +74 +74 +74 +73 +72 +71 +71 +70 +68 +68 +67 +67 +65 +64 +63 +62 +60 +59 +59 +57 +56 +54 +54 +52 +51 +49 +47 +46 +45 +43 +41 +41 +38 +37 +35 +34 +32 +30 +29 +27 +25 +23 +21 +19 +18 +15 +14 +12 +10 +8 +6 +4 +4 +6 +8 +10 +12 +14 +16 +18 +20 +21 +23 +25 +27 +28 +30 +32 +34 +36 +37 +39 +40 +43 +44 +46 +47 +49 +50 +51 +53 +54 +56 +58 +58 +60 +60 +62 +63 +65 +66 +67 +68 +68 +70 +71 +72 +73 +73 +74 +74 +75 +76 +76 +78 +77 +78 +78 +79 +80 +79 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +80 +79 +79 +78 +78 +78 +78 +77 +77 +76 +75 +75 +74 +73 +72 +71 +70 +70 +69 +67 +67 +65 +64 +63 +62 +61 +60 +59 +57 +56 +54 +53 +52 +51 +49 +47 +46 +44 +42 +41 +39 +38 +35 +34 +32 +31 +29 +27 +25 +23 +22 +19 +18 +16 +14 +12 +10 +8 +6 +6 +8 +10 +12 +14 +16 +18 +19 +22 +23 +26 +27 +29 +31 +33 +35 +37 +38 +39 +41 +43 +45 +47 +48 +49 +51 +53 +54 +56 +57 +58 +60 +61 +63 +64 +65 +66 +67 +69 +69 +70 +71 +72 +73 +74 +75 +76 +77 +77 +78 +79 +79 +80 +80 +81 +81 +81 +82 +82 +83 +82 +83 +83 +83 +83 +83 +83 +83 +83 +83 +82 +82 +82 +82 +80 +80 +80 +79 +79 +78 +77 +76 +75 +75 +74 +73 +73 +72 +71 +69 +68 +67 +66 +65 +64 +62 +61 +59 +59 +57 +55 +54 +52 +51 +50 +48 +47 +45 +43 +42 +40 +38 +36 +35 +33 +31 +29 +27 +25 +24 +22 +20 +18 +16 +14 +12 +10 +7 +8 +9 +12 +14 +16 +18 +19 +22 +24 +25 +27 +30 +31 +34 +35 +37 +38 +41 +42 +44 +45 +47 +49 +50 +52 +53 +55 +56 +58 +59 +61 +62 +63 +65 +66 +67 +69 +70 +71 +72 +73 +73 +75 +76 +77 +77 +78 +80 +80 +81 +81 +82 +82 +84 +83 +84 +84 +84 +85 +86 +85 +86 +86 +86 +86 +85 +86 +86 +86 +86 +85 +85 +84 +84 +84 +83 +83 +82 +81 +80 +80 +80 +78 +78 +77 +76 +75 +74 +73 +72 +71 +69 +68 +68 +66 +65 +64 +62 +61 +59 +58 +57 +55 +53 +52 +50 +49 +47 +46 +44 +42 +40 +39 +36 +35 +33 +31 +29 +28 +26 +23 +22 +20 +18 +16 +14 +12 +10 +10 +12 +14 +16 +18 +20 +22 +23 +26 +28 +30 +31 +33 +36 +37 +38 +41 +42 +45 +45 +48 +50 +51 +53 +55 +56 +58 +59 +60 +62 +63 +64 +66 +68 +69 +69 +71 +73 +74 +74 +76 +77 +77 +78 +79 +80 +82 +82 +82 +84 +85 +85 +85 +86 +86 +87 +87 +88 +88 +89 +88 +88 +89 +88 +89 +89 +88 +89 +88 +88 +88 +88 +87 +87 +86 +86 +86 +85 +85 +84 +82 +82 +82 +81 +80 +79 +78 +77 +75 +74 +73 +72 +71 +70 +68 +67 +66 +64 +64 +62 +60 +59 +57 +56 +54 +53 +51 +49 +48 +46 +44 +42 +40 +39 +37 +35 +34 +31 +30 +28 +26 +24 +21 +20 +18 +16 +14 +12 +12 +14 +16 +18 +20 +22 +24 +26 +28 +30 +32 +34 +36 +38 +39 +41 +43 +45 +47 +48 +50 +52 +53 +55 +57 +58 +59 +61 +63 +64 +65 +67 +69 +70 +71 +73 +74 +74 +76 +77 +78 +79 +80 +81 +83 +83 +84 +85 +85 +86 +87 +87 +89 +89 +90 +89 +90 +90 +91 +91 +91 +92 +92 +92 +92 +92 +91 +92 +92 +91 +91 +91 +90 +89 +89 +89 +88 +87 +87 +86 +86 +85 +84 +83 +82 +81 +80 +79 +78 +77 +76 +75 +74 +72 +71 +69 +68 +67 +66 +64 +63 +61 +59 +58 +56 +55 +53 +52 +50 +49 +46 +45 +43 +41 +39 +37 +36 +33 +32 +30 +28 +26 +24 +22 +20 +18 +15 +14 +14 +15 +18 +20 +22 +24 +26 +28 +30 +31 +33 +36 +37 +40 +42 +43 +45 +47 +48 +50 +52 +54 +56 +57 +59 +61 +62 +64 +65 +67 +68 +70 +71 +72 +74 +75 +76 +77 +78 +80 +81 +82 +83 +84 +85 +86 +87 +87 +88 +89 +89 +90 +90 +91 +92 +92 +93 +93 +94 +94 +94 +95 +94 +94 +94 +94 +94 +94 +94 +94 +94 +94 +93 +92 +92 +92 +90 +91 +90 +89 +88 +87 +86 +86 +85 +84 +83 +82 +81 +80 +78 +77 +76 +75 +73 +72 +70 +69 +68 +67 +65 +63 +62 +61 +59 +57 +56 +54 +52 +50 +49 +47 +45 +43 +41 +40 +38 +35 +34 +32 +30 +28 +26 +24 +22 +20 +17 +16 +15 +17 +20 +22 +24 +26 +28 +30 +32 +34 +35 +38 +40 +41 +44 +45 +48 +49 +51 +53 +54 +56 +58 +60 +62 +63 +65 +66 +68 +69 +70 +72 +73 +74 +76 +77 +79 +80 +81 +82 +84 +84 +85 +87 +87 +89 +89 +90 +91 +91 +92 +93 +94 +94 +94 +95 +96 +96 +96 +97 +97 +97 +97 +97 +98 +98 +98 +97 +97 +96 +96 +96 +95 +95 +95 +95 +94 +93 +92 +92 +91 +90 +89 +88 +88 +87 +86 +84 +83 +82 +81 +80 +79 +77 +76 +74 +73 +72 +71 +69 +68 +66 +64 +63 +61 +59 +58 +57 +54 +53 +51 +49 +48 +45 +43 +42 +39 +37 +35 +34 +31 +30 +28 +26 +24 +21 +20 +18 +17 +20 +22 +23 +26 +28 +30 +31 +34 +36 +38 +40 +42 +44 +46 +48 +49 +51 +53 +55 +57 +59 +60 +62 +63 +65 +66 +68 +70 +72 +73 +74 +76 +78 +78 +79 +81 +83 +83 +84 +86 +87 +89 +89 +90 +91 +92 +92 +94 +95 +95 +96 +96 +97 +98 +98 +99 +98 +99 +100 +100 +99 +100 +100 +100 +100 +100 +100 +100 +99 +99 +98 +99 +98 +98 +97 +96 +96 +95 +95 +93 +93 +92 +91 +90 +89 +89 +87 +86 +85 +84 +83 +81 +79 +78 +77 +75 +74 +73 +71 +70 +69 +67 +65 +64 +62 +60 +59 +57 +55 +53 +51 +49 +47 +46 +44 +41 +40 +38 +36 +34 +32 +30 +27 +26 +24 +21 +19 +19 +21 +24 +26 +28 +30 +32 +34 +35 +38 +40 +41 +44 +45 +48 +50 +52 +54 +56 +56 +59 +61 +62 +64 +66 +67 +69 +71 +73 +74 +76 +77 +78 +79 +81 +83 +84 +85 +86 +87 +89 +90 +91 +92 +93 +93 +95 +96 +97 +97 +97 +98 +99 +100 +100 +100 +101 +101 +102 +103 +102 +102 +103 +103 +102 +103 +102 +102 +103 +102 +102 +102 +101 +100 +100 +99 +99 +98 +98 +98 +97 +96 +95 +94 +92 +91 +91 +89 +89 +88 +87 +85 +84 +83 +81 +79 +78 +77 +75 +74 +73 +71 +69 +68 +66 +64 +62 +61 +59 +57 +55 +54 +51 +49 +48 +46 +43 +42 +40 +38 +36 +33 +32 +29 +27 +26 +23 +21 +21 +23 +25 +27 +30 +32 +33 +35 +38 +40 +42 +44 +45 +48 +50 +52 +53 +55 +57 +59 +61 +63 +64 +67 +68 +69 +71 +73 +75 +76 +77 +79 +81 +82 +83 +85 +87 +88 +89 +90 +91 +92 +93 +95 +95 +96 +97 +98 +99 +99 +101 +101 +102 +102 +103 +104 +104 +105 +105 +105 +105 +105 +106 +106 +106 +106 +106 +106 +105 +105 +105 +104 +104 +103 +103 +103 +102 +101 +101 +100 +99 +98 +97 +96 +96 +95 +93 +93 +91 +90 +88 +87 +86 +85 +83 +82 +81 +79 +77 +76 +74 +73 +71 +69 +68 +66 +65 +63 +61 +59 +57 +56 +54 +51 +50 +48 +46 +43 +42 +40 +38 +35 +34 +32 +30 +27 +25 +23 +22 +25 +27 +29 +32 +34 +35 +38 +40 +42 +44 +45 +48 +50 +52 +53 +56 +57 +60 +61 +64 +65 +67 +69 +70 +72 +74 +76 +77 +79 +80 +81 +83 +84 +86 +87 +88 +90 +91 +92 +94 +95 +96 +97 +98 +99 +100 +101 +102 +102 +103 +104 +105 +105 +106 +106 +107 +108 +108 +108 +108 +108 +108 +108 +109 +109 +108 +108 +108 +108 +107 +107 +106 +106 +106 +105 +104 +104 +103 +103 +102 +101 +100 +99 +98 +97 +96 +95 +94 +92 +91 +90 +89 +87 +86 +84 +83 +82 +80 +79 +76 +75 +74 +71 +70 +69 +67 +65 +63 +61 +59 +57 +56 +54 +51 +49 +48 +46 +44 +42 +40 +38 +35 +34 +31 +29 +27 +25 +24 +26 +29 +31 +33 +35 +37 +39 +42 +44 +46 +48 +49 +51 +54 +56 +57 +60 +61 +63 +65 +67 +69 +71 +73 +74 +76 +77 +79 +81 +82 +84 +85 +87 +89 +90 +91 +92 +94 +95 +96 +97 +99 +99 +100 +102 +103 +104 +104 +106 +106 +107 +108 +108 +109 +109 +110 +110 +110 +111 +111 +111 +111 +111 +111 +112 +111 +111 +111 +111 +111 +110 +110 +109 +109 +108 +108 +107 +106 +105 +105 +103 +102 +101 +100 +99 +99 +97 +96 +95 +94 +92 +91 +90 +88 +87 +86 +84 +82 +80 +79 +77 +75 +74 +72 +71 +69 +67 +65 +63 +61 +60 +58 +56 +54 +52 +50 +48 +46 +44 +42 +39 +37 +35 +34 +31 +28 +27 +26 +28 +31 +33 +35 +37 +39 +41 +44 +45 +47 +50 +52 +54 +56 +58 +59 +62 +64 +66 +67 +69 +71 +73 +75 +76 +78 +80 +82 +83 +85 +86 +88 +90 +91 +92 +94 +95 +97 +97 +98 +100 +101 +103 +103 +104 +105 +106 +107 +108 +109 +109 +110 +111 +111 +112 +112 +113 +113 +114 +114 +114 +114 +114 +115 +114 +114 +114 +113 +113 +113 +113 +112 +111 +111 +110 +110 +109 +108 +108 +107 +106 +106 +104 +103 +102 +102 +99 +99 +97 +97 +95 +94 +92 +91 +89 +87 +87 +84 +83 +81 +80 +78 +77 +75 +73 +71 +69 +67 +66 +63 +62 +60 +58 +56 +54 +51 +50 +48 +46 +44 +42 +39 +37 +35 +33 +31 +28 +28 +31 +32 +35 +36 +39 +41 +43 +46 +47 +49 +52 +54 +56 +57 +60 +62 +63 +65 +68 +69 +71 +73 +75 +77 +79 +80 +82 +84 +85 +87 +88 +90 +91 +93 +95 +96 +97 +99 +100 +101 +102 +104 +105 +106 +107 +108 +109 +109 +111 +111 +113 +113 +113 +114 +114 +115 +116 +116 +116 +117 +117 +117 +117 +117 +117 +117 +117 +117 +117 +116 +115 +115 +115 +115 +113 +113 +112 +111 +111 +110 +109 +108 +107 +106 +104 +103 +102 +102 +100 +98 +97 +96 +95 +93 +92 +90 +89 +87 +85 +84 +82 +80 +79 +77 +75 +73 +72 +69 +67 +66 +64 +61 +60 +57 +56 +53 +52 +49 +48 +46 +43 +41 +38 +37 +35 +33 +30 +30 +31 +34 +36 +39 +40 +42 +45 +47 +49 +52 +54 +56 +57 +60 +62 +64 +65 +68 +69 +71 +74 +76 +77 +79 +81 +83 +84 +86 +87 +89 +90 +93 +94 +96 +97 +99 +100 +101 +103 +104 +106 +106 +108 +109 +110 +111 +112 +112 +114 +114 +115 +115 +117 +117 +117 +117 +119 +118 +119 +119 +119 +120 +119 +120 +119 +120 +120 +119 +119 +119 +119 +118 +118 +117 +116 +116 +115 +114 +114 +113 +111 +111 +110 +109 +108 +106 +105 +104 +103 +101 +100 +99 +97 +96 +94 +92 +91 +89 +87 +86 +84 +83 +80 +79 +77 +76 +73 +71 +70 +67 +65 +64 +62 +59 +57 +55 +54 +51 +49 +47 +45 +43 +41 +38 +37 +34 +31 +32 +34 +35 +38 +40 +43 +45 +46 +49 +52 +53 +55 +57 +59 +62 +64 +66 +68 +70 +72 +73 +75 +77 +79 +81 +83 +85 +86 +88 +90 +91 +93 +95 +97 +98 +99 +101 +102 +103 +105 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +117 +119 +119 +120 +121 +120 +121 +121 +122 +122 +122 +122 +123 +123 +122 +123 +122 +122 +122 +121 +121 +120 +121 +120 +119 +118 +117 +117 +116 +115 +114 +113 +112 +111 +110 +108 +107 +106 +105 +104 +102 +100 +99 +98 +96 +95 +93 +91 +90 +88 +86 +84 +83 +81 +79 +77 +75 +74 +71 +70 +68 +66 +63 +62 +59 +57 +55 +53 +51 +49 +47 +45 +42 +40 +38 +36 +33 +33 +35 +37 +40 +42 +44 +47 +49 +51 +53 +56 +57 +59 +61 +63 +66 +68 +70 +72 +74 +76 +78 +80 +82 +83 +86 +87 +88 +90 +93 +94 +95 +97 +99 +101 +102 +103 +105 +106 +107 +108 +110 +111 +113 +113 +115 +116 +116 +118 +118 +120 +120 +121 +121 +122 +123 +124 +124 +125 +124 +125 +126 +126 +125 +125 +125 +125 +126 +125 +125 +124 +124 +124 +123 +122 +122 +121 +121 +119 +118 +117 +116 +116 +115 +113 +112 +111 +110 +109 +107 +106 +105 +103 +102 +100 +98 +97 +96 +93 +92 +90 +89 +87 +85 +83 +81 +79 +78 +76 +74 +71 +70 +68 +65 +64 +62 +59 +58 +56 +53 +51 +48 +46 +44 +42 +39 +38 +35 +35 +36 +39 +42 +43 +46 +48 +50 +53 +54 +57 +59 +61 +64 +65 +68 +69 +72 +74 +75 +78 +80 +81 +83 +86 +87 +89 +91 +93 +94 +96 +98 +99 +101 +102 +104 +105 +107 +109 +110 +111 +113 +114 +116 +116 +117 +119 +120 +121 +121 +122 +123 +124 +124 +126 +126 +126 +127 +127 +128 +128 +128 +128 +128 +128 +128 +128 +128 +128 +127 +127 +127 +127 +126 +125 +125 +124 +123 +123 +121 +121 +120 +118 +118 +116 +115 +114 +112 +111 +110 +108 +107 +105 +104 +102 +101 +99 +98 +96 +94 +93 +91 +89 +87 +85 +84 +82 +80 +78 +75 +74 +71 +70 +68 +65 +63 +61 +59 +57 +55 +52 +50 +49 +46 +44 +41 +39 +37 +37 +39 +40 +43 +46 +48 +49 +52 +54 +57 +59 +61 +63 +66 +68 +70 +72 +73 +76 +77 +80 +82 +84 +86 +88 +90 +92 +94 +95 +97 +98 +100 +101 +103 +105 +107 +108 +110 +111 +112 +113 +115 +116 +118 +118 +120 +121 +122 +123 +124 +124 +126 +127 +127 +128 +128 +129 +129 +129 +130 +131 +131 +131 +131 +131 +131 +131 +131 +130 +130 +130 +129 +129 +129 +128 +127 +126 +126 +125 +124 +123 +122 +121 +120 +119 +118 +116 +115 +114 +113 +111 +110 +108 +107 +104 +103 +102 +100 +98 +96 +95 +93 +91 +90 +87 +85 +84 +82 +79 +78 +75 +74 +72 +69 +67 +65 +63 +60 +59 +56 +55 +52 +49 +47 +46 +43 +41 +38 +37 +40 +42 +44 +47 +49 +52 +54 +56 +58 +61 +62 +65 +67 +69 +72 +73 +75 +77 +80 +82 +83 +86 +88 +89 +92 +93 +95 +97 +99 +101 +102 +104 +106 +108 +108 +110 +112 +114 +115 +116 +118 +119 +120 +121 +122 +124 +125 +126 +127 +128 +128 +130 +130 +130 +131 +132 +132 +133 +133 +133 +133 +134 +134 +134 +134 +133 +134 +133 +133 +132 +133 +132 +131 +131 +130 +129 +128 +127 +126 +126 +125 +124 +123 +121 +120 +119 +118 +117 +115 +114 +112 +111 +109 +107 +105 +104 +103 +101 +99 +97 +95 +94 +91 +90 +87 +86 +83 +82 +80 +78 +76 +73 +71 +69 +67 +65 +62 +61 +59 +56 +53 +52 +49 +47 +45 +43 +40 +39 +41 +44 +46 +48 +51 +54 +56 +58 +60 +63 +64 +66 +69 +71 +73 +76 +78 +80 +81 +84 +86 +88 +89 +92 +93 +95 +97 +100 +100 +103 +104 +106 +108 +110 +112 +113 +114 +116 +118 +119 +120 +122 +123 +124 +126 +126 +128 +128 +129 +130 +131 +132 +133 +134 +134 +134 +135 +136 +136 +136 +137 +137 +137 +137 +137 +137 +136 +136 +136 +136 +135 +134 +134 +133 +133 +131 +132 +130 +130 +128 +127 +126 +125 +124 +123 +121 +121 +118 +117 +116 +114 +112 +111 +110 +108 +107 +105 +102 +101 +100 +98 +95 +94 +91 +90 +88 +86 +83 +82 +79 +78 +76 +73 +71 +69 +67 +65 +62 +60 +58 +55 +54 +51 +49 +47 +44 +42 +41 +44 +46 +47 +50 +53 +55 +57 +60 +61 +64 +66 +68 +71 +72 +75 +77 +79 +82 +84 +85 +88 +90 +91 +93 +95 +98 +99 +101 +103 +105 +107 +108 +110 +112 +113 +115 +117 +118 +120 +121 +122 +124 +126 +126 +128 +129 +130 +131 +132 +133 +134 +135 +135 +136 +137 +138 +138 +139 +138 +139 +139 +140 +139 +139 +140 +139 +139 +139 +139 +138 +137 +138 +136 +136 +135 +135 +134 +133 +132 +131 +130 +129 +128 +127 +126 +124 +122 +121 +119 +119 +117 +115 +113 +112 +111 +109 +107 +105 +103 +101 +99 +98 +96 +94 +92 +90 +87 +86 +84 +82 +79 +78 +75 +73 +71 +68 +66 +64 +61 +60 +58 +55 +53 +50 +48 +46 +43 +42 +44 +47 +50 +52 +54 +56 +58 +61 +64 +66 +68 +70 +72 +74 +77 +79 +81 +83 +85 +87 +90 +92 +93 +95 +98 +99 +101 +103 +105 +107 +109 +111 +112 +115 +116 +117 +119 +120 +123 +123 +125 +126 +128 +129 +130 +132 +132 +134 +135 +136 +137 +137 +138 +139 +140 +140 +141 +141 +141 +141 +142 +143 +142 +143 +142 +142 +142 +142 +142 +141 +141 +141 +140 +139 +138 +137 +137 +135 +134 +134 +132 +132 +130 +129 +128 +126 +125 +124 +122 +121 +119 +118 +115 +115 +112 +110 +109 +107 +106 +104 +101 +100 +98 +96 +93 +92 +90 +88 +85 +83 +81 +79 +77 +74 +72 +70 +67 +66 +63 +61 +59 +56 +54 +52 +49 +47 +45 +44 +46 +49 +51 +54 +56 +58 +61 +62 +65 +67 +70 +72 +74 +76 +78 +81 +83 +85 +87 +89 +92 +93 +96 +98 +100 +102 +104 +106 +107 +110 +111 +113 +115 +117 +118 +120 +121 +123 +125 +126 +127 +129 +130 +132 +132 +134 +136 +136 +137 +139 +139 +140 +141 +142 +142 +143 +143 +144 +144 +145 +145 +145 +145 +145 +145 +145 +144 +145 +145 +144 +143 +143 +142 +142 +141 +140 +139 +138 +138 +136 +135 +134 +133 +132 +130 +129 +128 +126 +124 +123 +121 +120 +118 +116 +114 +113 +111 +109 +107 +106 +104 +102 +100 +98 +95 +94 +91 +90 +87 +86 +83 +81 +79 +76 +74 +72 +70 +68 +65 +63 +61 +58 +55 +54 +51 +48 +46 +45 +48 +50 +52 +55 +58 +60 +62 +64 +67 +69 +71 +74 +76 +78 +80 +83 +84 +86 +90 +91 +93 +95 +97 +99 +101 +103 +105 +108 +109 +111 +113 +115 +117 +118 +120 +122 +124 +126 +127 +128 +130 +132 +132 +134 +136 +136 +138 +139 +140 +141 +141 +143 +144 +144 +145 +146 +146 +147 +147 +148 +148 +148 +148 +148 +148 +147 +148 +147 +147 +146 +147 +145 +145 +144 +143 +143 +142 +141 +140 +138 +138 +137 +135 +135 +133 +131 +130 +128 +127 +125 +124 +122 +120 +119 +117 +115 +114 +111 +109 +108 +106 +103 +102 +99 +97 +95 +93 +92 +89 +87 +85 +83 +81 +78 +76 +74 +71 +69 +66 +65 +62 +60 +57 +55 +52 +50 +48 +47 +50 +52 +54 +57 +58 +61 +64 +66 +68 +71 +72 +75 +77 +80 +82 +85 +86 +89 +91 +93 +95 +98 +100 +102 +104 +105 +108 +110 +111 +114 +115 +117 +119 +121 +122 +125 +126 +127 +129 +131 +133 +134 +136 +137 +138 +140 +140 +142 +143 +144 +144 +145 +146 +147 +148 +148 +149 +150 +150 +150 +151 +150 +151 +151 +151 +150 +150 +151 +149 +149 +149 +148 +148 +147 +146 +145 +145 +144 +142 +141 +140 +139 +138 +137 +135 +133 +132 +131 +129 +127 +126 +125 +123 +121 +119 +117 +116 +113 +111 +109 +107 +105 +104 +101 +99 +98 +95 +94 +91 +89 +87 +84 +82 +79 +78 +75 +73 +71 +68 +65 +64 +61 +59 +56 +54 +52 +49 +48 +50 +53 +56 +58 +60 +62 +65 +67 +69 +72 +75 +77 +79 +81 +83 +86 +88 +90 +93 +95 +97 +99 +102 +104 +105 +108 +110 +111 +113 +116 +117 +119 +121 +123 +124 +127 +128 +129 +131 +133 +134 +136 +137 +139 +140 +142 +143 +144 +146 +146 +147 +148 +149 +150 +151 +151 +152 +152 +153 +153 +153 +154 +154 +153 +154 +153 +153 +153 +152 +152 +152 +151 +151 +150 +149 +149 +148 +146 +145 +144 +143 +142 +140 +139 +138 +137 +135 +134 +132 +130 +128 +126 +125 +123 +122 +119 +117 +115 +113 +111 +110 +108 +106 +104 +101 +99 +97 +95 +93 +90 +88 +86 +83 +81 +79 +76 +75 +72 +70 +67 +65 +62 +60 +58 +56 +53 +50 +49 +52 +55 +57 +59 +61 +64 +66 +69 +71 +74 +76 +78 +81 +83 +85 +88 +90 +93 +95 +96 +98 +101 +103 +105 +107 +109 +111 +114 +115 +118 +119 +121 +123 +125 +127 +129 +130 +132 +134 +136 +137 +139 +140 +141 +143 +144 +145 +147 +148 +149 +150 +151 +151 +152 +153 +154 +154 +155 +156 +156 +156 +157 +156 +157 +156 +156 +156 +155 +155 +155 +155 +154 +153 +153 +152 +151 +150 +149 +147 +147 +145 +144 +143 +141 +140 +138 +137 +136 +134 +132 +130 +128 +127 +125 +124 +122 +120 +118 +116 +113 +112 +110 +107 +105 +103 +101 +99 +97 +94 +92 +90 +88 +86 +83 +81 +78 +76 +73 +72 +69 +67 +65 +62 +59 +57 +55 +51 +51 +53 +55 +58 +60 +63 +66 +68 +71 +73 +75 +77 +80 +82 +85 +87 +89 +91 +93 +96 +98 +101 +103 +105 +108 +110 +111 +114 +115 +118 +120 +122 +123 +125 +127 +129 +131 +132 +134 +136 +137 +139 +141 +142 +144 +145 +147 +148 +149 +150 +151 +153 +154 +154 +155 +156 +157 +157 +158 +158 +158 +159 +159 +159 +159 +160 +159 +159 +158 +158 +158 +157 +157 +155 +155 +155 +153 +152 +151 +150 +149 +147 +147 +146 +144 +142 +141 +140 +138 +136 +134 +133 +131 +129 +127 +126 +123 +121 +119 +118 +115 +113 +112 +109 +107 +105 +103 +101 +98 +96 +94 +91 +89 +87 +84 +82 +80 +78 +76 +73 +71 +68 +66 +63 +61 +58 +55 +54 +52 +55 +57 +60 +63 +65 +67 +69 +72 +74 +77 +79 +81 +84 +86 +89 +91 +93 +95 +98 +100 +102 +104 +106 +109 +111 +113 +115 +118 +120 +122 +123 +126 +128 +130 +131 +133 +135 +136 +138 +140 +142 +143 +144 +146 +148 +149 +150 +151 +152 +154 +155 +156 +157 +158 +159 +159 +160 +161 +161 +162 +162 +162 +162 +162 +162 +162 +162 +161 +161 +161 +160 +159 +159 +158 +157 +157 +155 +154 +153 +151 +151 +150 +148 +146 +145 +143 +142 +140 +138 +137 +135 +133 +131 +129 +127 +126 +123 +121 +119 +118 +115 +114 +111 +108 +107 +104 +102 +100 +98 +95 +94 +91 +89 +86 +84 +82 +79 +77 +74 +72 +70 +67 +64 +62 +60 +57 +54 +54 +56 +58 +61 +64 +66 +69 +71 +74 +76 +78 +80 +83 +86 +88 +90 +93 +95 +97 +100 +102 +104 +106 +109 +111 +113 +115 +117 +119 +121 +123 +125 +127 +130 +132 +133 +135 +137 +138 +140 +142 +144 +146 +147 +149 +150 +152 +153 +154 +155 +156 +158 +159 +159 +161 +161 +162 +162 +163 +164 +164 +164 +164 +165 +165 +165 +165 +165 +164 +164 +163 +163 +162 +161 +160 +160 +159 +158 +156 +155 +155 +153 +151 +150 +148 +147 +146 +144 +142 +141 +139 +137 +135 +133 +132 +129 +127 +126 +123 +121 +119 +117 +115 +112 +110 +108 +107 +104 +102 +100 +97 +95 +92 +90 +88 +85 +83 +81 +79 +75 +73 +71 +69 +66 +63 +61 +58 +56 +55 +57 +60 +62 +65 +67 +69 +72 +74 +77 +80 +82 +84 +87 +89 +92 +94 +96 +99 +101 +103 +106 +108 +110 +112 +115 +117 +119 +121 +123 +125 +127 +130 +132 +133 +136 +137 +139 +141 +143 +145 +146 +148 +149 +151 +153 +154 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +166 +166 +167 +168 +167 +168 +168 +168 +168 +167 +167 +167 +166 +165 +165 +164 +163 +163 +162 +161 +159 +158 +156 +155 +154 +152 +151 +149 +148 +146 +144 +143 +141 +139 +138 +135 +133 +131 +130 +127 +126 +123 +121 +119 +117 +115 +113 +111 +108 +106 +104 +101 +99 +97 +95 +91 +89 +87 +84 +82 +79 +77 +74 +72 +70 +67 +65 +62 +59 +57 +56 +58 +60 +63 +66 +68 +71 +73 +76 +79 +81 +84 +86 +89 +91 +94 +96 +98 +100 +103 +105 +107 +110 +112 +114 +116 +118 +121 +123 +125 +127 +130 +131 +133 +136 +137 +139 +141 +143 +145 +146 +149 +150 +152 +153 +155 +156 +158 +159 +161 +162 +163 +164 +165 +165 +167 +168 +168 +169 +170 +169 +170 +171 +171 +171 +170 +171 +170 +169 +170 +169 +168 +167 +166 +166 +165 +164 +163 +162 +160 +159 +158 +156 +155 +153 +151 +151 +148 +146 +145 +143 +142 +140 +137 +136 +133 +131 +130 +127 +125 +123 +121 +119 +116 +114 +111 +110 +107 +105 +102 +100 +98 +96 +93 +91 +89 +86 +84 +81 +79 +76 +74 +71 +68 +66 +64 +61 +58 +57 +60 +62 +65 +67 +70 +72 +75 +78 +80 +82 +84 +87 +90 +92 +95 +97 +99 +102 +105 +106 +109 +111 +114 +116 +118 +121 +122 +125 +127 +130 +132 +134 +136 +137 +139 +142 +144 +145 +147 +149 +151 +153 +154 +155 +157 +159 +160 +161 +163 +165 +165 +167 +168 +169 +170 +171 +171 +172 +172 +173 +173 +173 +173 +173 +173 +173 +173 +172 +172 +171 +171 +170 +169 +169 +168 +167 +166 +165 +163 +162 +161 +158 +157 +156 +154 +153 +151 +148 +147 +145 +143 +141 +139 +137 +136 +133 +131 +129 +127 +124 +123 +120 +118 +116 +113 +111 +109 +107 +104 +102 +99 +97 +95 +92 +89 +87 +85 +82 +80 +77 +75 +72 +70 +67 +65 +62 +60 +58 +61 +63 +66 +69 +71 +74 +76 +79 +81 +84 +86 +89 +91 +93 +96 +98 +101 +103 +105 +108 +110 +113 +116 +118 +120 +122 +125 +126 +129 +131 +133 +135 +137 +139 +142 +144 +145 +148 +149 +151 +153 +154 +156 +158 +160 +161 +163 +164 +165 +166 +168 +169 +171 +171 +172 +173 +174 +174 +175 +175 +176 +176 +176 +176 +176 +176 +175 +175 +175 +174 +174 +173 +172 +171 +170 +169 +168 +167 +165 +165 +163 +161 +160 +158 +156 +155 +153 +151 +149 +147 +145 +144 +141 +140 +137 +135 +133 +131 +129 +127 +124 +122 +120 +117 +115 +113 +110 +108 +106 +103 +100 +98 +96 +94 +91 +89 +86 +83 +81 +78 +76 +74 +71 +68 +66 +64 +60 +59 +62 +65 +67 +70 +73 +75 +78 +80 +83 +85 +88 +90 +92 +95 +97 +100 +103 +105 +107 +109 +112 +114 +117 +119 +121 +123 +126 +128 +131 +133 +135 +137 +139 +141 +143 +146 +148 +149 +152 +153 +155 +156 +158 +160 +162 +164 +165 +167 +168 +169 +170 +172 +173 +174 +175 +175 +177 +177 +177 +178 +178 +179 +179 +179 +179 +179 +179 +178 +178 +177 +177 +176 +175 +173 +173 +171 +171 +170 +168 +167 +165 +163 +162 +161 +159 +157 +155 +153 +151 +150 +148 +146 +143 +141 +139 +137 +134 +133 +130 +128 +126 +124 +122 +119 +117 +114 +112 +109 +107 +105 +102 +100 +97 +95 +92 +90 +88 +84 +83 +80 +77 +75 +72 +70 +67 +65 +62 +61 +63 +66 +68 +71 +73 +76 +79 +81 +84 +86 +89 +91 +94 +96 +99 +102 +104 +106 +109 +111 +113 +116 +119 +120 +123 +125 +127 +130 +132 +134 +137 +139 +141 +143 +145 +147 +150 +151 +154 +155 +157 +159 +161 +162 +165 +165 +167 +169 +171 +172 +173 +174 +176 +177 +178 +178 +179 +180 +181 +181 +181 +182 +182 +182 +182 +182 +181 +181 +180 +180 +179 +178 +178 +176 +176 +175 +173 +172 +170 +169 +167 +166 +164 +162 +160 +159 +157 +155 +154 +152 +149 +147 +146 +143 +141 +139 +136 +134 +132 +130 +128 +125 +123 +120 +118 +116 +114 +111 +109 +106 +104 +101 +98 +96 +94 +91 +89 +87 +83 +81 +79 +76 +73 +71 +69 +65 +63 +61 +64 +66 +69 +72 +74 +77 +80 +82 +85 +88 +90 +93 +95 +98 +100 +102 +105 +107 +110 +112 +115 +117 +120 +122 +124 +127 +129 +131 +134 +136 +139 +141 +143 +145 +147 +150 +151 +154 +155 +158 +159 +161 +163 +164 +167 +168 +170 +171 +173 +174 +176 +177 +178 +179 +180 +181 +182 +183 +183 +183 +184 +185 +185 +185 +185 +185 +184 +184 +183 +183 +182 +182 +180 +179 +178 +177 +175 +174 +173 +172 +169 +168 +167 +165 +163 +161 +159 +158 +155 +153 +151 +149 +147 +145 +143 +141 +138 +136 +134 +131 +130 +127 +124 +122 +120 +117 +115 +113 +110 +108 +105 +103 +100 +97 +95 +92 +90 +87 +85 +82 +79 +77 +74 +72 +69 +66 +64 +63 +65 +68 +70 +73 +75 +78 +81 +83 +86 +88 +91 +94 +97 +99 +101 +104 +106 +109 +111 +114 +116 +118 +121 +124 +126 +128 +131 +133 +136 +138 +140 +142 +145 +147 +149 +151 +154 +156 +157 +159 +161 +164 +166 +167 +169 +170 +172 +173 +175 +177 +178 +180 +180 +182 +183 +184 +185 +185 +186 +187 +187 +187 +187 +188 +187 +187 +186 +186 +186 +186 +184 +184 +183 +182 +181 +179 +178 +177 +176 +174 +172 +171 +169 +167 +165 +163 +162 +159 +157 +155 +154 +151 +149 +146 +144 +142 +140 +138 +135 +133 +131 +128 +126 +123 +121 +119 +116 +114 +112 +109 +107 +104 +101 +99 +96 +94 +91 +88 +86 +84 +81 +78 +76 +73 +70 +67 +65 +64 +66 +69 +72 +74 +76 +79 +82 +84 +87 +90 +92 +95 +97 +100 +103 +105 +108 +110 +113 +115 +118 +120 +122 +125 +128 +130 +132 +135 +137 +139 +142 +144 +146 +149 +151 +153 +155 +158 +160 +161 +163 +166 +167 +169 +171 +172 +174 +176 +178 +179 +180 +181 +183 +184 +186 +186 +187 +188 +188 +189 +190 +190 +191 +190 +190 +190 +190 +189 +188 +188 +187 +187 +185 +184 +184 +182 +180 +179 +177 +176 +175 +172 +171 +169 +168 +166 +163 +161 +160 +157 +155 +153 +151 +148 +146 +144 +141 +140 +137 +134 +133 +130 +128 +125 +122 +120 +118 +115 +112 +110 +108 +105 +103 +100 +97 +95 +92 +90 +88 +84 +82 +79 +77 +74 +71 +68 +66 +64 +67 +70 +73 +75 +77 +80 +83 +86 +88 +91 +93 +96 +99 +101 +104 +106 +109 +112 +114 +116 +119 +122 +124 +126 +129 +131 +134 +137 +138 +141 +144 +145 +148 +150 +152 +155 +157 +159 +161 +163 +166 +168 +170 +171 +173 +175 +177 +179 +180 +181 +183 +184 +186 +187 +188 +189 +189 +191 +191 +192 +193 +193 +193 +193 +193 +193 +193 +192 +192 +191 +190 +189 +188 +187 +186 +185 +183 +181 +180 +179 +177 +175 +173 +171 +169 +168 +165 +163 +161 +159 +157 +155 +152 +150 +148 +146 +143 +141 +138 +136 +134 +131 +129 +126 +124 +121 +119 +117 +114 +111 +108 +107 +104 +102 +98 +96 +94 +90 +88 +85 +83 +80 +77 +75 +72 +70 +67 +65 +68 +71 +73 +76 +79 +81 +84 +86 +89 +91 +94 +97 +100 +102 +105 +108 +110 +112 +115 +118 +120 +123 +125 +128 +130 +133 +135 +138 +140 +142 +145 +147 +150 +152 +154 +157 +158 +161 +163 +165 +167 +169 +171 +174 +175 +178 +179 +181 +182 +184 +185 +187 +188 +189 +190 +192 +193 +193 +194 +194 +195 +195 +195 +196 +196 +196 +196 +195 +194 +193 +193 +191 +190 +189 +188 +187 +185 +184 +182 +180 +179 +177 +175 +173 +171 +169 +167 +165 +163 +160 +159 +156 +154 +152 +149 +147 +144 +143 +140 +138 +135 +132 +130 +127 +125 +123 +120 +117 +115 +113 +110 +108 +104 +102 +100 +97 +94 +92 +89 +86 +83 +81 +78 +75 +73 +71 +68 +66 +69 +71 +74 +76 +79 +82 +84 +88 +90 +93 +96 +98 +100 +104 +106 +108 +111 +114 +116 +119 +121 +124 +126 +129 +132 +134 +136 +139 +141 +144 +146 +149 +151 +153 +156 +158 +160 +163 +165 +167 +169 +171 +173 +175 +177 +179 +181 +183 +185 +186 +188 +189 +191 +192 +193 +194 +195 +196 +197 +197 +198 +198 +199 +199 +199 +198 +198 +198 +197 +196 +196 +195 +193 +192 +190 +190 +188 +186 +185 +183 +181 +180 +177 +175 +173 +171 +170 +167 +165 +163 +160 +158 +155 +154 +151 +149 +146 +144 +141 +139 +136 +134 +131 +129 +127 +124 +122 +119 +116 +114 +111 +109 +105 +103 +101 +98 +96 +93 +90 +88 +85 +82 +80 +77 +74 +72 +68 +67 +70 +73 +75 +77 +81 +83 +86 +88 +91 +93 +97 +99 +101 +104 +107 +110 +112 +115 +117 +120 +123 +126 +128 +131 +133 +135 +138 +140 +143 +145 +148 +150 +152 +155 +158 +160 +162 +164 +166 +169 +171 +173 +175 +178 +180 +182 +183 +185 +187 +188 +190 +192 +193 +194 +196 +197 +198 +199 +199 +201 +200 +201 +201 +201 +201 +202 +201 +200 +199 +199 +198 +197 +196 +194 +193 +192 +190 +189 +187 +185 +183 +181 +180 +178 +175 +173 +171 +169 +166 +165 +162 +160 +157 +155 +153 +150 +148 +145 +143 +140 +138 +136 +132 +131 +127 +125 +123 +120 +118 +115 +113 +110 +107 +104 +101 +99 +97 +94 +91 +88 +86 +83 +81 +78 +75 +72 +70 +67 +71 +74 +76 +78 +82 +84 +87 +89 +92 +95 +97 +100 +103 +105 +108 +110 +113 +116 +119 +121 +123 +126 +129 +131 +134 +137 +140 +141 +145 +147 +149 +152 +154 +156 +159 +161 +163 +166 +168 +171 +172 +175 +177 +179 +181 +183 +185 +187 +189 +191 +192 +194 +195 +197 +198 +199 +200 +202 +202 +203 +203 +204 +205 +205 +204 +204 +204 +203 +202 +201 +201 +199 +199 +197 +195 +194 +192 +191 +189 +187 +185 +183 +181 +179 +177 +175 +172 +171 +168 +166 +164 +162 +159 +156 +154 +152 +149 +146 +144 +141 +139 +137 +133 +131 +129 +126 +124 +121 +118 +116 +113 +110 +108 +105 +103 +100 +97 +94 +92 +89 +86 +84 +81 +79 +76 +73 +71 +69 +71 +73 +77 +79 +82 +85 +88 +90 +93 +95 +98 +101 +104 +106 +109 +111 +114 +117 +120 +122 +125 +128 +130 +133 +135 +137 +141 +143 +145 +148 +151 +153 +155 +157 +161 +163 +165 +168 +170 +172 +175 +177 +179 +181 +183 +185 +187 +189 +191 +193 +194 +196 +197 +199 +200 +202 +203 +204 +205 +206 +207 +207 +207 +207 +207 +207 +207 +206 +205 +205 +204 +202 +200 +200 +198 +197 +194 +193 +191 +189 +188 +185 +183 +181 +179 +176 +175 +173 +170 +167 +165 +163 +160 +158 +155 +153 +150 +148 +146 +142 +140 +137 +135 +133 +129 +127 +125 +122 +119 +117 +114 +112 +109 +106 +103 +101 +98 +95 +93 +90 +87 +85 +82 +79 +76 +74 +71 +69 +72 +74 +77 +80 +83 +85 +88 +90 +94 +96 +99 +102 +104 +107 +110 +113 +115 +118 +120 +123 +126 +129 +131 +134 +136 +139 +141 +144 +147 +149 +152 +154 +157 +159 +161 +165 +166 +169 +171 +174 +176 +178 +180 +183 +185 +187 +189 +191 +193 +195 +197 +199 +201 +202 +203 +205 +206 +207 +208 +208 +210 +210 +210 +210 +210 +209 +209 +209 +208 +207 +206 +204 +204 +202 +201 +199 +197 +195 +193 +191 +189 +187 +185 +183 +181 +178 +176 +174 +171 +169 +167 +165 +162 +159 +157 +154 +151 +149 +147 +144 +141 +139 +137 +134 +131 +129 +126 +123 +120 +118 +115 +112 +109 +107 +105 +102 +99 +96 +94 +91 +88 +86 +83 +80 +78 +74 +72 +70 +73 +76 +78 +81 +84 +86 +88 +92 +95 +98 +100 +103 +106 +108 +111 +114 +116 +118 +121 +124 +126 +129 +132 +134 +137 +140 +142 +145 +148 +150 +153 +155 +158 +160 +163 +165 +168 +171 +173 +175 +178 +180 +182 +185 +187 +189 +191 +194 +195 +197 +199 +201 +203 +204 +206 +207 +209 +209 +211 +212 +212 +212 +213 +212 +213 +213 +212 +212 +211 +210 +209 +207 +206 +204 +202 +201 +199 +198 +195 +193 +191 +189 +187 +184 +182 +180 +177 +175 +173 +170 +168 +166 +163 +160 +158 +155 +152 +151 +148 +145 +142 +140 +138 +134 +132 +129 +127 +124 +121 +119 +116 +113 +110 +108 +105 +102 +100 +97 +94 +91 +89 +86 +83 +81 +78 +75 +72 +71 +73 +76 +78 +81 +85 +87 +90 +92 +95 +98 +100 +103 +106 +109 +112 +114 +116 +119 +123 +125 +127 +130 +133 +135 +139 +141 +143 +146 +149 +152 +154 +157 +160 +162 +164 +167 +170 +172 +175 +177 +179 +181 +184 +186 +189 +191 +193 +195 +197 +199 +202 +203 +205 +207 +208 +210 +211 +212 +213 +214 +215 +215 +216 +216 +215 +215 +215 +214 +213 +212 +211 +209 +208 +207 +205 +203 +201 +199 +198 +195 +193 +191 +189 +186 +184 +181 +179 +177 +175 +171 +170 +167 +164 +162 +159 +157 +154 +152 +149 +146 +144 +141 +138 +136 +133 +131 +128 +125 +122 +119 +117 +114 +111 +109 +106 +103 +101 +98 +95 +93 +90 +87 +84 +81 +79 +76 +73 +71 +74 +77 +79 +82 +85 +88 +91 +93 +95 +98 +101 +104 +106 +109 +112 +114 +118 +120 +123 +126 +128 +131 +134 +136 +139 +142 +145 +147 +149 +153 +155 +158 +160 +163 +165 +169 +171 +173 +176 +178 +181 +183 +186 +188 +190 +192 +195 +197 +199 +201 +203 +206 +207 +209 +210 +212 +213 +215 +216 +216 +218 +218 +218 +219 +218 +218 +217 +217 +216 +215 +214 +212 +211 +208 +207 +205 +204 +201 +199 +197 +195 +192 +190 +188 +185 +183 +181 +178 +175 +173 +171 +168 +165 +163 +161 +158 +156 +152 +149 +147 +144 +141 +139 +136 +133 +131 +128 +126 +123 +120 +118 +115 +112 +109 +107 +104 +101 +99 +96 +93 +90 +87 +85 +82 +79 +77 +74 +71 +74 +77 +80 +82 +85 +88 +91 +94 +96 +99 +102 +104 +107 +110 +113 +116 +118 +122 +124 +126 +129 +132 +135 +137 +141 +143 +145 +148 +150 +153 +156 +158 +161 +164 +167 +170 +172 +174 +177 +179 +182 +185 +187 +190 +191 +194 +197 +199 +201 +203 +205 +207 +209 +211 +213 +214 +216 +217 +218 +220 +221 +220 +221 +221 +221 +221 +220 +219 +218 +217 +216 +215 +212 +211 +209 +207 +205 +203 +201 +198 +197 +194 +192 +190 +187 +185 +182 +179 +177 +174 +172 +169 +167 +164 +161 +159 +156 +154 +150 +148 +145 +143 +140 +138 +134 +132 +129 +126 +124 +121 +118 +115 +112 +110 +108 +105 +102 +100 +96 +94 +91 +88 +86 +82 +80 +77 +74 +72 +75 +77 +80 +83 +86 +89 +92 +95 +97 +100 +102 +105 +108 +111 +113 +117 +119 +122 +124 +128 +130 +133 +135 +139 +140 +144 +146 +149 +152 +154 +157 +160 +162 +165 +168 +171 +173 +175 +178 +181 +183 +186 +188 +190 +193 +195 +198 +201 +203 +205 +207 +209 +211 +213 +214 +217 +219 +220 +221 +222 +223 +223 +223 +224 +224 +223 +223 +222 +221 +219 +218 +217 +215 +213 +211 +209 +207 +205 +203 +200 +198 +196 +193 +191 +188 +185 +184 +180 +178 +175 +173 +170 +167 +165 +163 +160 +157 +154 +151 +149 +146 +143 +141 +138 +136 +133 +130 +127 +125 +122 +119 +116 +113 +110 +108 +106 +102 +100 +97 +94 +92 +89 +86 +83 +81 +77 +75 +73 +75 +78 +81 +84 +87 +89 +92 +95 +97 +101 +103 +106 +108 +111 +114 +117 +119 +122 +125 +128 +131 +134 +136 +139 +142 +145 +147 +150 +152 +155 +158 +161 +163 +166 +168 +171 +174 +177 +179 +182 +185 +187 +190 +192 +195 +197 +200 +201 +205 +206 +209 +211 +213 +215 +217 +219 +221 +222 +224 +224 +226 +227 +226 +227 +227 +226 +225 +225 +224 +222 +221 +219 +217 +215 +214 +211 +208 +207 +204 +202 +200 +197 +194 +192 +190 +187 +184 +182 +179 +177 +174 +172 +168 +166 +164 +161 +158 +156 +153 +150 +147 +144 +142 +139 +136 +133 +131 +128 +125 +122 +120 +117 +114 +112 +109 +106 +103 +100 +97 +95 +92 +89 +87 +83 +80 +78 +75 +73 +76 +78 +81 +84 +87 +89 +92 +95 +98 +101 +104 +106 +109 +112 +115 +117 +120 +123 +126 +128 +132 +134 +137 +140 +142 +145 +148 +150 +154 +156 +158 +161 +164 +167 +170 +172 +175 +177 +180 +183 +185 +188 +191 +193 +196 +198 +201 +203 +205 +208 +210 +213 +215 +218 +219 +221 +223 +225 +226 +227 +229 +229 +230 +229 +229 +229 +228 +227 +226 +224 +223 +221 +219 +217 +215 +213 +210 +208 +206 +203 +201 +199 +196 +193 +191 +188 +185 +183 +180 +178 +175 +172 +169 +167 +164 +161 +159 +156 +154 +150 +148 +145 +143 +140 +136 +134 +131 +129 +125 +123 +120 +118 +114 +112 +110 +107 +103 +101 +98 +95 +93 +90 +87 +84 +82 +78 +76 +74 +76 +79 +81 +85 +88 +90 +93 +95 +98 +101 +104 +107 +109 +112 +115 +117 +121 +123 +126 +129 +132 +135 +137 +140 +142 +146 +148 +151 +154 +156 +159 +162 +164 +167 +170 +173 +176 +179 +181 +184 +186 +189 +192 +194 +197 +200 +202 +205 +207 +210 +212 +215 +217 +219 +221 +223 +225 +227 +228 +229 +231 +231 +232 +233 +232 +232 +231 +229 +228 +227 +225 +223 +221 +219 +216 +214 +212 +209 +207 +204 +202 +200 +197 +194 +192 +189 +187 +184 +181 +178 +176 +173 +170 +168 +164 +163 +160 +157 +154 +151 +148 +146 +143 +140 +137 +134 +131 +129 +126 +124 +120 +117 +115 +113 +110 +106 +104 +102 +98 +95 +93 +90 +87 +84 +81 +78 +76 +74 +76 +80 +83 +85 +88 +90 +94 +96 +99 +101 +104 +107 +110 +113 +116 +118 +122 +124 +127 +129 +132 +135 +138 +140 +144 +146 +149 +151 +155 +157 +160 +163 +166 +168 +171 +174 +176 +179 +181 +185 +187 +190 +192 +195 +198 +200 +203 +206 +208 +210 +214 +216 +218 +221 +223 +225 +227 +229 +231 +232 +233 +235 +235 +235 +235 +234 +234 +232 +231 +229 +228 +225 +223 +221 +219 +216 +214 +211 +209 +206 +203 +201 +198 +196 +193 +190 +187 +184 +182 +179 +177 +174 +171 +168 +166 +163 +160 +157 +154 +151 +149 +146 +143 +141 +138 +135 +132 +129 +127 +124 +121 +118 +115 +113 +110 +107 +104 +102 +98 +96 +93 +91 +88 +85 +82 +79 +76 +73 +76 +80 +82 +85 +88 +91 +94 +96 +100 +102 +105 +107 +110 +113 +115 +119 +122 +125 +127 +130 +133 +136 +138 +141 +144 +147 +149 +152 +155 +158 +161 +164 +166 +169 +172 +174 +177 +179 +182 +185 +188 +191 +193 +197 +199 +202 +204 +207 +210 +212 +215 +217 +220 +222 +225 +227 +229 +232 +233 +235 +236 +237 +238 +238 +238 +238 +236 +235 +233 +231 +229 +226 +224 +222 +219 +218 +215 +212 +210 +207 +205 +202 +199 +196 +193 +191 +188 +186 +183 +179 +177 +175 +171 +169 +166 +163 +161 +158 +155 +152 +150 +146 +144 +141 +138 +135 +132 +130 +127 +125 +121 +119 +116 +113 +111 +107 +105 +102 +99 +96 +94 +91 +88 +86 +82 +80 +76 +75 +76 +80 +82 +86 +88 +91 +93 +97 +99 +102 +105 +108 +111 +113 +116 +119 +121 +124 +127 +130 +133 +136 +139 +141 +144 +147 +150 +153 +155 +159 +161 +163 +166 +169 +172 +174 +178 +180 +183 +186 +188 +192 +194 +196 +200 +202 +205 +208 +210 +213 +215 +218 +221 +224 +226 +229 +231 +233 +235 +237 +239 +240 +240 +241 +241 +240 +239 +237 +235 +233 +231 +228 +226 +223 +221 +218 +216 +213 +210 +208 +205 +202 +200 +197 +194 +191 +189 +186 +183 +181 +177 +175 +172 +169 +167 +163 +161 +158 +155 +152 +149 +147 +144 +141 +139 +136 +133 +130 +127 +125 +122 +119 +116 +113 +110 +108 +105 +102 +100 +97 +94 +91 +88 +85 +83 +80 +77 +75 +77 +80 +83 +85 +88 +91 +94 +97 +99 +102 +105 +108 +111 +114 +116 +120 +122 +125 +128 +130 +133 +136 +139 +142 +145 +148 +150 +153 +156 +158 +161 +164 +167 +169 +173 +176 +178 +180 +184 +186 +189 +192 +195 +197 +200 +203 +206 +209 +212 +214 +217 +220 +222 +225 +227 +230 +232 +234 +237 +240 +241 +243 +243 +244 +243 +242 +241 +239 +237 +235 +232 +230 +227 +224 +222 +219 +216 +214 +211 +208 +206 +203 +200 +197 +194 +192 +190 +186 +183 +181 +178 +175 +173 +170 +166 +164 +161 +158 +156 +153 +150 +147 +145 +141 +139 +136 +134 +131 +128 +125 +122 +119 +117 +114 +111 +108 +105 +102 +99 +97 +94 +91 +88 +85 +83 +80 +77 +74 +77 +80 +83 +86 +88 +92 +94 +97 +100 +102 +105 +108 +111 +113 +117 +119 +123 +125 +128 +131 +133 +137 +139 +141 +145 +148 +151 +153 +156 +159 +161 +164 +168 +170 +173 +176 +178 +181 +184 +187 +189 +193 +196 +198 +200 +204 +206 +209 +212 +214 +218 +220 +223 +226 +229 +231 +234 +236 +239 +241 +243 +245 +246 +247 +246 +245 +243 +241 +239 +236 +234 +231 +228 +226 +223 +220 +217 +214 +212 +209 +206 +204 +201 +198 +196 +193 +190 +187 +184 +181 +179 +176 +173 +170 +168 +164 +162 +159 +156 +153 +151 +148 +145 +142 +139 +137 +133 +130 +128 +125 +122 +119 +117 +114 +111 +108 +105 +103 +100 +97 +94 +92 +88 +86 +83 +80 +77 +75 +77 +80 +83 +86 +88 +92 +94 +97 +100 +103 +106 +109 +111 +114 +117 +119 +122 +125 +128 +131 +134 +136 +140 +142 +145 +148 +151 +153 +156 +159 +162 +165 +167 +170 +173 +176 +178 +182 +185 +187 +190 +193 +196 +199 +202 +204 +207 +209 +213 +215 +218 +220 +223 +227 +229 +232 +235 +238 +240 +242 +245 +247 +249 +250 +249 +247 +245 +242 +240 +237 +234 +232 +229 +226 +224 +221 +218 +216 +213 +210 +206 +204 +201 +198 +196 +193 +190 +187 +185 +182 +178 +175 +173 +170 +168 +164 +162 +159 +156 +153 +150 +148 +145 +142 +139 +136 +133 +131 +128 +126 +122 +120 +117 +114 +111 +109 +106 +103 +100 +97 +94 +91 +89 +85 +83 +80 +77 +75 +77 +80 +83 +86 +89 +91 +94 +97 +100 +102 +106 +109 +112 +115 +117 +120 +123 +125 +128 +131 +134 +137 +139 +142 +145 +147 +151 +154 +156 +159 +162 +164 +167 +171 +174 +176 +179 +181 +185 +187 +190 +193 +196 +198 +202 +204 +207 +210 +213 +216 +218 +221 +224 +227 +230 +232 +235 +238 +241 +243 +246 +248 +251 +252 +251 +249 +246 +244 +241 +238 +235 +232 +229 +226 +224 +221 +219 +216 +213 +209 +207 +204 +202 +199 +195 +193 +190 +187 +185 +182 +179 +176 +173 +171 +168 +165 +162 +159 +156 +154 +151 +148 +146 +142 +139 +137 +134 +131 +129 +125 +123 +120 +117 +114 +112 +109 +105 +102 +100 +98 +95 +92 +89 +86 +84 +80 +77 +75 +77 +81 +83 +86 +88 +92 +94 +98 +100 +103 +105 +108 +111 +114 +117 +120 +123 +126 +128 +131 +134 +136 +139 +143 +145 +148 +151 +154 +157 +159 +163 +164 +168 +170 +174 +176 +179 +181 +185 +187 +190 +193 +196 +199 +201 +204 +207 +210 +213 +215 +219 +221 +224 +226 +230 +233 +235 +238 +241 +244 +247 +250 +252 +255 +252 +250 +246 +244 +241 +238 +236 +233 +230 +227 +224 +222 +218 +216 +213 +210 +207 +204 +202 +199 +196 +193 +190 +188 +185 +182 +179 +176 +173 +171 +167 +164 +162 +159 +156 +154 +150 +148 +145 +142 +139 +136 +133 +131 +128 +125 +122 +120 +117 +115 +111 +108 +106 +103 +100 +97 +94 +92 +89 +86 +83 +81 +78 +74 +78 +80 +83 +86 +88 +92 +95 +97 +100 +103 +106 +109 +111 +114 +117 +119 +123 +125 +128 +131 +134 +136 +140 +142 +145 +148 +151 +153 +157 +159 +162 +165 +168 +170 +173 +177 +179 +182 +185 +187 +190 +192 +196 +199 +201 +204 +207 +210 +213 +216 +218 +221 +224 +227 +230 +232 +235 +238 +241 +243 +246 +249 +251 +253 +251 +249 +246 +243 +241 +238 +235 +233 +230 +227 +224 +221 +218 +216 +213 +210 +207 +204 +201 +198 +196 +192 +191 +187 +184 +182 +179 +176 +173 +170 +168 +165 +162 +159 +156 +153 +151 +148 +145 +142 +140 +137 +133 +131 +129 +125 +122 +120 +117 +114 +111 +108 +106 +103 +100 +98 +95 +92 +89 +86 +83 +80 +78 +74 +78 +80 +83 +86 +89 +91 +94 +97 +100 +103 +105 +109 +111 +114 +116 +120 +123 +126 +128 +131 +134 +136 +139 +142 +145 +148 +150 +153 +156 +159 +162 +165 +167 +170 +173 +176 +179 +182 +184 +188 +190 +193 +196 +198 +201 +204 +207 +209 +212 +215 +218 +221 +223 +226 +229 +232 +235 +237 +239 +242 +244 +247 +249 +249 +249 +247 +245 +243 +239 +238 +235 +232 +229 +227 +224 +220 +218 +215 +213 +210 +206 +204 +201 +199 +196 +193 +189 +188 +184 +181 +179 +176 +173 +170 +168 +165 +162 +159 +156 +153 +150 +147 +145 +143 +139 +137 +133 +131 +128 +126 +122 +120 +117 +114 +112 +109 +105 +103 +100 +97 +94 +92 +89 +86 +83 +81 +77 +74 +77 +81 +83 +86 +89 +92 +95 +97 +100 +103 +105 +108 +111 +114 +116 +120 +122 +125 +128 +131 +134 +136 +140 +142 +145 +147 +151 +154 +156 +159 +162 +165 +167 +170 +172 +175 +178 +181 +184 +187 +190 +193 +195 +198 +201 +203 +206 +209 +212 +215 +217 +220 +223 +226 +229 +231 +234 +236 +239 +241 +243 +245 +246 +246 +246 +245 +243 +241 +238 +236 +234 +231 +228 +226 +222 +220 +217 +215 +212 +209 +207 +203 +201 +198 +195 +193 +190 +187 +184 +181 +178 +176 +173 +170 +167 +164 +161 +159 +156 +154 +150 +148 +145 +142 +139 +136 +134 +131 +128 +125 +122 +120 +117 +114 +111 +108 +105 +103 +100 +97 +95 +91 +89 +86 +83 +80 +77 +75 +77 +80 +83 +86 +88 +92 +94 +97 +99 +103 +106 +109 +111 +113 +117 +120 +122 +125 +128 +131 +133 +137 +139 +142 +145 +147 +151 +153 +155 +158 +161 +164 +167 +170 +173 +175 +178 +180 +183 +187 +189 +192 +194 +197 +200 +203 +205 +209 +212 +214 +217 +219 +222 +225 +227 +229 +232 +234 +237 +239 +241 +242 +243 +244 +243 +242 +241 +240 +237 +235 +233 +229 +227 +225 +222 +219 +217 +213 +211 +208 +206 +203 +200 +198 +195 +192 +189 +186 +184 +181 +178 +175 +172 +170 +167 +164 +161 +158 +156 +153 +150 +147 +144 +142 +139 +136 +133 +131 +128 +125 +122 +119 +117 +114 +111 +108 +106 +103 +100 +97 +94 +91 +89 +86 +83 +80 +77 +75 +77 +79 +83 +85 +88 +91 +94 +97 +100 +102 +105 +108 +111 +114 +116 +119 +122 +124 +127 +130 +133 +136 +139 +141 +145 +147 +150 +152 +155 +159 +161 +164 +166 +170 +172 +175 +177 +181 +184 +186 +189 +191 +195 +197 +199 +202 +205 +208 +211 +213 +216 +219 +221 +224 +226 +228 +231 +233 +235 +237 +239 +239 +241 +241 +241 +239 +238 +237 +235 +233 +231 +228 +226 +223 +221 +219 +216 +213 +210 +207 +205 +202 +200 +197 +195 +192 +189 +186 +183 +181 +177 +175 +172 +169 +166 +164 +161 +159 +155 +152 +149 +147 +144 +141 +139 +136 +133 +130 +128 +125 +122 +119 +116 +114 +110 +108 +105 +102 +100 +97 +94 +91 +89 +86 +83 +80 +77 +74 +77 +79 +82 +85 +88 +90 +93 +96 +99 +102 +105 +107 +110 +113 +116 +119 +121 +125 +127 +130 +133 +135 +138 +141 +143 +147 +149 +152 +155 +158 +161 +163 +166 +169 +172 +174 +177 +180 +182 +185 +188 +191 +194 +196 +199 +201 +204 +207 +209 +212 +215 +217 +220 +222 +224 +227 +229 +231 +233 +235 +236 +237 +238 +238 +237 +238 +236 +235 +233 +231 +229 +227 +224 +223 +219 +218 +214 +212 +209 +207 +204 +201 +199 +197 +193 +190 +188 +185 +183 +180 +177 +174 +171 +169 +166 +163 +160 +157 +155 +152 +149 +147 +144 +141 +139 +135 +132 +130 +127 +124 +122 +118 +116 +113 +111 +108 +105 +102 +99 +96 +94 +91 +88 +86 +82 +80 +77 +74 +77 +79 +82 +85 +87 +90 +93 +96 +99 +102 +104 +107 +110 +113 +115 +118 +121 +123 +127 +130 +132 +135 +138 +141 +144 +147 +149 +152 +155 +157 +160 +162 +166 +168 +171 +174 +176 +179 +182 +185 +187 +190 +193 +196 +198 +200 +203 +206 +208 +211 +213 +216 +219 +220 +223 +225 +227 +229 +231 +233 +234 +235 +235 +235 +235 +234 +233 +232 +231 +229 +227 +225 +223 +220 +218 +215 +213 +211 +208 +206 +203 +201 +198 +195 +192 +190 +187 +184 +182 +180 +176 +174 +171 +168 +165 +162 +160 +157 +155 +152 +149 +146 +143 +141 +138 +135 +132 +130 +126 +124 +121 +118 +116 +113 +110 +107 +104 +102 +99 +96 +93 +91 +88 +85 +82 +79 +76 +73 +77 +79 +81 +85 +88 +90 +93 +96 +98 +101 +104 +106 +109 +112 +115 +118 +120 +124 +126 +129 +132 +134 +137 +140 +143 +146 +149 +151 +154 +157 +159 +162 +165 +167 +170 +173 +176 +178 +181 +184 +187 +189 +191 +194 +197 +200 +202 +204 +207 +210 +212 +214 +217 +218 +221 +223 +225 +227 +228 +229 +231 +232 +233 +233 +233 +232 +230 +230 +229 +227 +225 +223 +221 +219 +217 +215 +212 +209 +208 +205 +202 +200 +197 +195 +191 +189 +186 +184 +181 +179 +175 +173 +170 +167 +165 +162 +159 +157 +153 +151 +148 +146 +143 +140 +137 +135 +132 +129 +127 +124 +120 +118 +115 +112 +109 +106 +104 +101 +99 +95 +93 +90 +87 +84 +82 +79 +76 +73 +76 +79 +81 +84 +86 +89 +93 +95 +98 +101 +104 +106 +109 +112 +114 +117 +121 +123 +126 +129 +131 +134 +136 +139 +142 +145 +147 +151 +153 +156 +158 +162 +164 +167 +170 +172 +175 +177 +180 +183 +185 +188 +191 +193 +196 +199 +201 +203 +205 +208 +210 +213 +215 +217 +219 +221 +222 +224 +226 +227 +228 +229 +230 +230 +229 +229 +228 +227 +226 +225 +223 +221 +219 +217 +215 +213 +210 +208 +206 +204 +201 +198 +196 +193 +191 +188 +186 +182 +180 +178 +174 +172 +169 +166 +164 +162 +159 +156 +153 +150 +148 +145 +142 +139 +137 +134 +131 +128 +126 +123 +121 +118 +115 +112 +109 +106 +103 +101 +98 +95 +92 +90 +87 +84 +81 +78 +75 +72 +76 +78 +81 +83 +87 +89 +92 +95 +97 +101 +103 +106 +109 +112 +115 +117 +119 +123 +126 +128 +130 +133 +136 +139 +142 +144 +147 +149 +153 +155 +158 +160 +163 +166 +169 +171 +173 +177 +179 +181 +184 +187 +189 +192 +194 +197 +199 +202 +204 +207 +209 +211 +214 +215 +217 +219 +221 +223 +223 +224 +226 +227 +227 +226 +226 +227 +226 +225 +223 +223 +221 +218 +217 +215 +214 +211 +209 +207 +204 +202 +200 +197 +195 +192 +190 +187 +184 +182 +179 +176 +173 +171 +168 +166 +163 +161 +158 +156 +153 +150 +147 +144 +142 +139 +136 +133 +131 +128 +125 +122 +119 +117 +114 +111 +109 +105 +103 +100 +97 +95 +92 +89 +86 +83 +80 +78 +75 +72 +75 +77 +80 +83 +86 +89 +91 +94 +97 +99 +102 +105 +108 +111 +114 +116 +119 +121 +124 +127 +130 +132 +136 +138 +141 +143 +146 +149 +151 +154 +157 +159 +163 +165 +168 +170 +173 +176 +178 +181 +184 +186 +188 +191 +193 +196 +198 +200 +203 +205 +207 +209 +211 +213 +215 +216 +218 +220 +221 +222 +223 +223 +224 +224 +224 +223 +223 +222 +220 +220 +219 +217 +215 +213 +211 +209 +207 +205 +202 +200 +198 +196 +193 +191 +188 +186 +183 +181 +178 +175 +173 +170 +168 +165 +162 +160 +157 +155 +152 +149 +146 +143 +140 +138 +135 +133 +130 +127 +124 +121 +119 +116 +113 +111 +108 +105 +102 +99 +97 +95 +92 +89 +86 +83 +80 +77 +75 +72 +74 +77 +80 +82 +85 +88 +91 +94 +97 +99 +102 +105 +107 +111 +112 +116 +119 +122 +124 +126 +130 +132 +134 +137 +140 +143 +146 +148 +151 +153 +156 +159 +161 +164 +167 +169 +172 +174 +176 +179 +182 +185 +186 +190 +192 +194 +196 +199 +200 +203 +206 +208 +209 +211 +213 +214 +216 +217 +219 +220 +220 +221 +221 +221 +221 +221 +220 +220 +218 +217 +215 +215 +212 +211 +209 +207 +205 +203 +201 +199 +197 +194 +192 +190 +186 +185 +182 +179 +177 +175 +172 +169 +167 +164 +161 +159 +156 +153 +151 +148 +145 +143 +140 +137 +135 +132 +129 +127 +124 +121 +118 +115 +113 +110 +107 +104 +102 +99 +96 +93 +91 +88 +86 +83 +79 +77 +74 +71 +74 +77 +79 +82 +85 +88 +91 +93 +95 +99 +102 +104 +106 +109 +112 +115 +117 +120 +123 +125 +129 +132 +134 +137 +139 +142 +145 +147 +150 +152 +155 +158 +161 +163 +165 +168 +171 +173 +175 +178 +180 +183 +186 +188 +190 +193 +194 +197 +199 +201 +203 +206 +207 +209 +210 +212 +213 +214 +215 +216 +217 +218 +218 +218 +218 +218 +217 +217 +216 +215 +214 +212 +211 +209 +207 +205 +203 +202 +199 +197 +195 +193 +190 +188 +185 +183 +180 +178 +176 +173 +170 +168 +166 +163 +160 +157 +155 +153 +150 +147 +145 +142 +139 +136 +134 +131 +128 +126 +123 +120 +117 +115 +112 +109 +107 +104 +101 +99 +96 +93 +90 +88 +85 +82 +80 +76 +74 +71 +73 +76 +79 +82 +84 +87 +90 +92 +95 +98 +100 +104 +106 +109 +112 +114 +116 +120 +122 +125 +128 +130 +133 +136 +138 +141 +143 +147 +149 +151 +154 +156 +159 +162 +165 +167 +169 +172 +174 +177 +179 +181 +184 +186 +188 +191 +193 +195 +197 +199 +201 +203 +205 +207 +208 +209 +211 +212 +214 +214 +214 +215 +216 +216 +215 +215 +215 +214 +213 +212 +211 +210 +208 +207 +205 +203 +201 +199 +198 +195 +193 +190 +188 +186 +184 +182 +180 +177 +174 +171 +169 +167 +164 +162 +159 +157 +154 +151 +149 +146 +144 +141 +139 +135 +133 +131 +128 +125 +122 +120 +117 +114 +112 +108 +106 +103 +101 +98 +96 +92 +90 +87 +84 +81 +79 +76 +73 +70 +72 +75 +78 +81 +83 +86 +89 +91 +94 +97 +100 +102 +105 +108 +110 +113 +116 +119 +121 +124 +127 +129 +132 +134 +137 +140 +142 +145 +148 +150 +153 +155 +158 +160 +163 +165 +168 +171 +173 +176 +178 +180 +182 +185 +187 +189 +191 +193 +195 +197 +199 +201 +203 +205 +206 +207 +208 +210 +210 +211 +212 +212 +213 +212 +213 +212 +212 +212 +211 +209 +208 +207 +206 +204 +203 +200 +199 +197 +195 +193 +191 +189 +187 +185 +182 +180 +178 +176 +173 +170 +168 +165 +163 +160 +158 +155 +153 +151 +148 +145 +142 +139 +138 +135 +132 +130 +126 +124 +121 +118 +116 +114 +111 +108 +106 +103 +100 +97 +94 +92 +89 +86 +83 +81 +78 +75 +72 +69 +72 +75 +77 +80 +83 +86 +88 +91 +93 +96 +99 +101 +104 +107 +110 +112 +115 +117 +120 +123 +126 +128 +131 +133 +136 +139 +142 +144 +147 +149 +152 +154 +157 +159 +161 +164 +166 +169 +171 +174 +176 +179 +180 +183 +185 +187 +189 +191 +193 +195 +197 +199 +200 +202 +203 +205 +206 +207 +208 +209 +209 +210 +210 +210 +210 +210 +209 +209 +208 +207 +206 +204 +203 +202 +200 +199 +197 +195 +193 +191 +189 +188 +185 +183 +180 +178 +176 +173 +172 +169 +167 +164 +161 +160 +156 +154 +152 +149 +147 +144 +142 +139 +136 +133 +131 +128 +125 +123 +120 +118 +115 +112 +110 +107 +104 +102 +99 +97 +94 +91 +89 +85 +83 +80 +78 +74 +72 +68 +71 +74 +76 +79 +82 +85 +88 +90 +93 +95 +98 +101 +104 +107 +109 +112 +114 +117 +119 +122 +125 +127 +130 +133 +136 +138 +140 +142 +146 +147 +151 +152 +156 +158 +160 +163 +165 +168 +170 +172 +174 +177 +179 +181 +183 +185 +187 +189 +191 +193 +195 +196 +198 +200 +200 +202 +204 +204 +205 +205 +206 +206 +207 +207 +207 +207 +206 +206 +205 +204 +203 +202 +201 +199 +198 +197 +195 +193 +191 +190 +187 +185 +183 +181 +179 +177 +175 +173 +169 +168 +166 +163 +160 +158 +156 +153 +150 +148 +146 +143 +140 +138 +135 +133 +130 +128 +125 +122 +119 +117 +114 +112 +109 +106 +104 +101 +99 +95 +93 +91 +87 +85 +82 +79 +77 +73 +71 +68 +70 +73 +76 +79 +81 +84 +87 +89 +92 +95 +97 +100 +103 +105 +108 +111 +113 +116 +118 +121 +124 +126 +129 +131 +134 +137 +139 +141 +144 +147 +149 +151 +154 +157 +159 +161 +163 +166 +168 +170 +172 +175 +177 +180 +181 +183 +185 +187 +189 +191 +192 +194 +196 +197 +198 +200 +201 +202 +203 +203 +203 +204 +204 +204 +205 +204 +204 +203 +202 +202 +201 +200 +198 +197 +195 +194 +193 +191 +189 +187 +185 +184 +181 +179 +177 +175 +173 +170 +168 +166 +164 +162 +158 +157 +154 +152 +149 +146 +144 +142 +139 +136 +134 +132 +129 +126 +123 +121 +118 +116 +113 +110 +108 +105 +102 +100 +97 +95 +92 +89 +87 +84 +81 +78 +76 +73 +70 +67 +70 +72 +75 +77 +81 +83 +86 +89 +91 +94 +97 +99 +102 +104 +107 +110 +113 +115 +118 +120 +123 +125 +128 +131 +132 +135 +138 +141 +142 +145 +147 +150 +152 +155 +158 +160 +162 +164 +167 +168 +171 +173 +175 +177 +179 +181 +184 +185 +187 +188 +190 +192 +193 +195 +196 +196 +198 +199 +200 +200 +201 +201 +201 +202 +202 +201 +201 +201 +200 +199 +198 +197 +196 +194 +193 +192 +190 +189 +187 +185 +183 +182 +180 +177 +176 +173 +171 +169 +167 +165 +162 +160 +157 +155 +153 +150 +148 +146 +143 +141 +138 +136 +133 +131 +128 +126 +123 +120 +117 +115 +112 +110 +107 +105 +102 +99 +97 +94 +91 +89 +86 +83 +80 +77 +75 +72 +69 +66 +69 +72 +74 +77 +79 +82 +85 +87 +90 +93 +96 +98 +100 +104 +106 +108 +111 +113 +116 +119 +121 +124 +126 +129 +132 +134 +136 +139 +141 +144 +146 +149 +151 +154 +155 +158 +160 +163 +165 +167 +169 +172 +174 +175 +177 +179 +181 +183 +185 +186 +188 +189 +190 +192 +194 +194 +196 +196 +197 +197 +198 +198 +198 +199 +199 +198 +198 +198 +197 +196 +196 +194 +194 +192 +190 +189 +187 +186 +185 +183 +181 +180 +177 +175 +173 +172 +169 +167 +164 +162 +160 +158 +155 +154 +151 +149 +146 +143 +141 +139 +136 +134 +132 +129 +127 +124 +122 +119 +117 +114 +111 +109 +106 +103 +100 +98 +95 +92 +90 +88 +85 +82 +79 +77 +74 +71 +68 +65 +68 +71 +73 +76 +78 +82 +84 +86 +90 +92 +94 +97 +99 +102 +105 +107 +110 +113 +115 +117 +120 +122 +126 +128 +130 +132 +136 +137 +140 +143 +145 +147 +149 +152 +154 +156 +159 +161 +163 +166 +168 +169 +172 +174 +175 +177 +179 +180 +182 +184 +186 +187 +188 +190 +190 +191 +193 +193 +194 +195 +196 +195 +196 +196 +195 +196 +195 +194 +194 +194 +193 +192 +191 +189 +188 +186 +186 +184 +182 +181 +179 +177 +175 +173 +171 +170 +167 +165 +163 +161 +159 +157 +154 +152 +150 +147 +144 +143 +140 +137 +135 +133 +130 +128 +125 +123 +120 +117 +115 +112 +110 +108 +105 +103 +99 +97 +94 +91 +89 +87 +84 +81 +78 +76 +73 +71 +68 +64 +67 +70 +72 +75 +77 +81 +83 +85 +88 +91 +93 +96 +99 +101 +104 +107 +109 +112 +114 +117 +119 +121 +124 +126 +129 +132 +133 +136 +138 +141 +143 +145 +148 +150 +152 +155 +157 +159 +161 +163 +165 +167 +169 +171 +173 +175 +177 +179 +180 +182 +183 +185 +186 +187 +188 +189 +190 +191 +191 +192 +193 +193 +193 +193 +193 +192 +192 +192 +192 +191 +190 +189 +188 +187 +186 +184 +183 +181 +180 +178 +176 +175 +173 +172 +170 +167 +166 +163 +161 +159 +157 +154 +153 +151 +148 +146 +143 +141 +139 +136 +133 +132 +128 +127 +124 +121 +119 +116 +114 +112 +109 +106 +103 +101 +98 +96 +94 +91 +88 +86 +83 +80 +77 +75 +72 +70 +67 +63 +66 +69 +71 +74 +76 +79 +82 +85 +87 +90 +92 +95 +98 +100 +102 +105 +107 +110 +113 +115 +118 +120 +122 +125 +128 +130 +132 +135 +137 +140 +141 +144 +146 +149 +151 +153 +155 +157 +159 +161 +163 +166 +168 +170 +171 +172 +174 +176 +178 +179 +180 +182 +183 +185 +185 +186 +187 +188 +189 +190 +190 +189 +190 +190 +190 +190 +189 +189 +189 +188 +187 +186 +186 +184 +183 +182 +181 +179 +178 +176 +175 +172 +170 +169 +167 +165 +163 +161 +159 +157 +155 +153 +151 +149 +146 +144 +142 +139 +137 +135 +132 +130 +128 +125 +122 +121 +118 +115 +112 +110 +107 +105 +102 +100 +98 +94 +93 +89 +87 +84 +82 +80 +77 +74 +72 +69 +66 +62 +65 +67 +71 +73 +76 +78 +80 +83 +86 +88 +91 +93 +96 +99 +101 +104 +106 +109 +111 +114 +117 +118 +121 +124 +126 +129 +130 +133 +135 +137 +140 +142 +144 +147 +149 +151 +153 +155 +157 +159 +161 +164 +166 +167 +169 +170 +172 +174 +175 +176 +178 +180 +181 +182 +183 +184 +185 +185 +186 +186 +186 +187 +187 +187 +188 +187 +187 +186 +186 +185 +185 +184 +183 +181 +180 +180 +178 +176 +176 +174 +172 +170 +169 +167 +165 +163 +161 +160 +158 +156 +154 +152 +149 +147 +145 +142 +140 +138 +136 +133 +131 +128 +126 +124 +121 +119 +116 +114 +111 +109 +106 +104 +102 +98 +96 +94 +91 +89 +86 +84 +81 +78 +75 +73 +70 +68 +65 +61 +64 +67 +69 +72 +75 +77 +80 +83 +85 +88 +90 +92 +95 +97 +100 +103 +105 +108 +110 +112 +115 +118 +120 +122 +125 +127 +129 +132 +134 +136 +139 +140 +142 +145 +147 +149 +151 +153 +156 +157 +159 +161 +163 +164 +166 +168 +170 +172 +173 +174 +175 +176 +178 +179 +180 +181 +182 +182 +184 +183 +184 +184 +185 +185 +184 +184 +184 +184 +184 +182 +182 +182 +180 +179 +178 +177 +176 +174 +173 +171 +170 +168 +167 +165 +163 +161 +159 +157 +156 +153 +152 +149 +147 +145 +142 +140 +138 +136 +134 +132 +129 +127 +124 +122 +120 +117 +115 +113 +110 +108 +105 +103 +100 +98 +95 +92 +90 +88 +85 +82 +80 +77 +75 +72 +69 +66 +64 +61 +63 +66 +69 +71 +74 +76 +79 +81 +83 +86 +89 +91 +93 +96 +99 +101 +104 +106 +108 +111 +114 +116 +119 +121 +123 +125 +128 +130 +132 +135 +137 +139 +141 +144 +145 +147 +149 +151 +153 +156 +157 +159 +161 +163 +164 +166 +168 +169 +171 +171 +173 +175 +175 +177 +178 +179 +179 +179 +181 +181 +181 +181 +182 +182 +182 +181 +181 +181 +180 +180 +179 +179 +177 +177 +175 +174 +173 +171 +170 +169 +167 +165 +165 +163 +161 +159 +157 +155 +154 +151 +150 +147 +145 +143 +141 +139 +137 +134 +132 +130 +127 +125 +123 +121 +118 +116 +114 +111 +108 +106 +104 +101 +99 +96 +93 +91 +89 +87 +84 +81 +79 +76 +73 +71 +69 +65 +63 +59 +62 +65 +67 +70 +73 +74 +77 +80 +82 +85 +87 +90 +93 +95 +98 +99 +103 +105 +107 +110 +112 +114 +117 +119 +121 +123 +125 +128 +130 +132 +135 +137 +139 +141 +143 +146 +148 +149 +151 +154 +155 +157 +158 +160 +162 +163 +165 +166 +168 +169 +171 +172 +173 +174 +175 +175 +176 +177 +178 +178 +179 +179 +179 +179 +179 +179 +178 +178 +178 +177 +177 +176 +175 +174 +173 +171 +170 +169 +168 +166 +165 +164 +162 +161 +159 +157 +155 +153 +152 +149 +147 +145 +143 +141 +139 +137 +135 +133 +131 +128 +126 +124 +122 +119 +117 +114 +112 +110 +107 +105 +102 +100 +98 +95 +93 +90 +87 +84 +82 +80 +78 +75 +72 +70 +67 +65 +62 +59 +61 +63 +66 +68 +71 +73 +76 +79 +81 +83 +86 +88 +91 +93 +96 +99 +101 +103 +106 +108 +110 +113 +116 +117 +120 +122 +124 +127 +129 +131 +133 +135 +137 +139 +141 +143 +146 +147 +149 +151 +153 +155 +156 +158 +160 +161 +163 +164 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +175 +176 +175 +176 +176 +176 +176 +176 +176 +176 +175 +174 +174 +173 +172 +172 +170 +169 +168 +167 +166 +164 +163 +161 +159 +158 +156 +155 +153 +151 +149 +147 +146 +143 +142 +139 +137 +136 +133 +131 +129 +126 +124 +122 +120 +117 +115 +113 +111 +108 +105 +104 +100 +99 +96 +94 +91 +89 +87 +84 +81 +79 +76 +74 +71 +68 +66 +64 +61 +57 +60 +62 +65 +67 +70 +73 +75 +78 +80 +82 +85 +87 +89 +92 +94 +97 +99 +102 +104 +107 +109 +111 +113 +116 +118 +121 +123 +124 +127 +129 +131 +133 +135 +138 +140 +141 +144 +146 +147 +149 +151 +153 +154 +156 +157 +159 +161 +162 +163 +164 +165 +166 +168 +169 +170 +170 +171 +171 +172 +172 +172 +173 +173 +173 +173 +173 +173 +172 +172 +171 +171 +170 +169 +169 +167 +166 +165 +165 +163 +162 +161 +159 +157 +156 +154 +152 +151 +149 +147 +145 +143 +141 +139 +137 +136 +133 +131 +129 +127 +124 +122 +121 +118 +116 +114 +111 +108 +106 +104 +101 +100 +97 +94 +92 +90 +88 +84 +82 +80 +77 +74 +72 +70 +67 +64 +62 +60 +56 +59 +61 +63 +66 +69 +71 +74 +76 +79 +81 +83 +86 +89 +91 +93 +96 +98 +100 +102 +105 +107 +110 +112 +114 +116 +119 +121 +123 +125 +128 +130 +131 +133 +136 +138 +139 +141 +143 +145 +147 +148 +150 +151 +154 +154 +156 +158 +159 +160 +162 +163 +164 +165 +166 +167 +168 +168 +169 +170 +170 +170 +170 +170 +171 +171 +170 +170 +170 +169 +169 +168 +167 +167 +166 +165 +164 +163 +161 +160 +159 +158 +156 +155 +154 +152 +151 +149 +147 +145 +143 +142 +140 +138 +135 +133 +131 +129 +127 +125 +123 +121 +118 +116 +114 +112 +110 +107 +105 +102 +100 +98 +96 +93 +90 +88 +86 +83 +81 +79 +76 +74 +71 +68 +66 +63 +61 +59 +54 +57 +60 +62 +65 +67 +69 +73 +75 +77 +80 +82 +84 +86 +90 +92 +94 +97 +98 +101 +103 +105 +108 +110 +112 +114 +117 +119 +121 +124 +125 +127 +129 +131 +134 +136 +137 +139 +142 +142 +144 +146 +148 +150 +151 +153 +154 +156 +157 +158 +159 +161 +162 +162 +163 +164 +165 +165 +166 +167 +167 +167 +168 +168 +168 +168 +168 +167 +167 +166 +166 +166 +165 +164 +163 +162 +161 +160 +159 +158 +157 +155 +154 +152 +152 +150 +148 +146 +144 +143 +141 +139 +137 +135 +134 +132 +130 +127 +125 +123 +121 +119 +116 +115 +113 +110 +108 +106 +103 +101 +99 +97 +94 +92 +89 +87 +84 +82 +80 +77 +74 +72 +69 +67 +65 +62 +59 +57 +53 +56 +59 +61 +64 +66 +68 +70 +73 +75 +78 +80 +83 +85 +88 +90 +92 +95 +97 +99 +102 +104 +107 +108 +110 +113 +115 +117 +119 +122 +124 +125 +127 +130 +132 +133 +135 +137 +139 +140 +142 +144 +146 +147 +149 +151 +152 +153 +154 +156 +157 +158 +159 +159 +160 +162 +162 +163 +163 +163 +164 +164 +165 +164 +165 +165 +165 +165 +164 +164 +163 +163 +162 +162 +160 +160 +159 +158 +157 +156 +155 +153 +152 +150 +149 +147 +145 +144 +142 +141 +139 +137 +135 +133 +131 +130 +128 +125 +123 +122 +119 +118 +115 +113 +111 +108 +106 +104 +101 +99 +97 +95 +92 +90 +88 +85 +83 +81 +78 +76 +73 +71 +68 +66 +63 +61 +59 +56 +52 +55 +57 +60 +62 +64 +67 +69 +72 +74 +76 +79 +81 +84 +86 +89 +91 +94 +96 +97 +100 +103 +105 +107 +109 +111 +113 +115 +117 +119 +121 +124 +126 +127 +129 +131 +133 +134 +136 +139 +140 +142 +143 +144 +147 +148 +149 +151 +151 +153 +154 +155 +156 +157 +158 +159 +159 +160 +161 +161 +161 +162 +162 +162 +162 +162 +161 +161 +161 +161 +161 +160 +159 +159 +158 +157 +156 +155 +154 +153 +152 +150 +150 +148 +147 +145 +144 +141 +140 +138 +136 +135 +134 +132 +129 +127 +125 +124 +121 +120 +117 +115 +113 +111 +109 +107 +104 +102 +100 +98 +96 +93 +91 +88 +87 +84 +82 +79 +76 +74 +71 +70 +67 +64 +62 +60 +57 +55 +51 +54 +56 +58 +61 +63 +66 +68 +70 +73 +75 +78 +80 +82 +84 +87 +89 +91 +94 +96 +99 +100 +102 +104 +107 +110 +111 +113 +116 +117 +120 +122 +123 +125 +128 +129 +131 +133 +134 +136 +137 +139 +140 +143 +144 +145 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +157 +158 +158 +159 +158 +159 +159 +159 +159 +159 +159 +158 +158 +158 +157 +156 +156 +155 +155 +153 +153 +152 +150 +149 +148 +147 +145 +144 +142 +140 +140 +138 +136 +135 +133 +131 +129 +127 +125 +123 +121 +119 +118 +115 +113 +111 +109 +107 +104 +102 +101 +98 +96 +94 +92 +89 +87 +84 +83 +80 +77 +76 +73 +70 +68 +66 +64 +61 +58 +56 +53 +49 +52 +55 +57 +60 +62 +64 +67 +69 +71 +73 +76 +79 +81 +83 +86 +88 +90 +92 +95 +96 +98 +101 +104 +105 +108 +110 +112 +113 +115 +118 +119 +121 +123 +125 +127 +128 +131 +132 +133 +135 +137 +138 +140 +142 +143 +144 +145 +147 +148 +149 +150 +151 +151 +152 +154 +153 +154 +155 +156 +155 +156 +157 +157 +156 +156 +156 +156 +156 +155 +155 +154 +154 +153 +152 +152 +150 +150 +149 +147 +146 +146 +144 +143 +142 +141 +139 +137 +135 +134 +132 +130 +129 +127 +125 +123 +121 +120 +117 +116 +113 +112 +109 +108 +105 +103 +101 +98 +97 +94 +92 +90 +88 +86 +83 +81 +78 +76 +73 +71 +69 +67 +64 +62 +59 +57 +54 +51 +48 +50 +53 +55 +58 +61 +63 +65 +68 +70 +72 +75 +77 +79 +81 +84 +85 +88 +91 +93 +95 +97 +100 +101 +103 +106 +107 +110 +112 +114 +116 +117 +120 +121 +123 +124 +127 +128 +130 +131 +133 +135 +136 +137 +139 +141 +142 +143 +144 +145 +146 +147 +148 +149 +149 +150 +151 +152 +152 +153 +153 +153 +154 +153 +153 +153 +153 +153 +153 +153 +152 +152 +151 +150 +150 +149 +149 +148 +146 +145 +144 +143 +141 +140 +139 +138 +136 +135 +133 +131 +130 +129 +127 +125 +123 +121 +119 +118 +115 +114 +112 +109 +108 +105 +104 +101 +99 +97 +95 +93 +91 +88 +86 +84 +81 +79 +77 +74 +73 +70 +68 +66 +63 +60 +58 +56 +53 +51 +47 +50 +51 +54 +56 +58 +61 +63 +65 +69 +71 +73 +75 +78 +80 +82 +84 +86 +89 +91 +93 +95 +97 +100 +102 +103 +105 +108 +109 +112 +114 +115 +117 +119 +120 +122 +124 +126 +128 +129 +130 +132 +134 +135 +136 +138 +139 +140 +141 +143 +143 +144 +145 +146 +147 +148 +148 +148 +150 +150 +150 +150 +151 +151 +151 +151 +150 +150 +151 +149 +150 +149 +148 +148 +147 +147 +146 +145 +144 +143 +141 +140 +139 +138 +137 +135 +133 +132 +130 +130 +127 +126 +124 +122 +121 +119 +117 +115 +114 +112 +109 +108 +105 +104 +101 +99 +97 +95 +93 +90 +89 +87 +84 +82 +79 +78 +75 +73 +71 +68 +66 +64 +61 +59 +56 +54 +52 +49 +45 +48 +50 +53 +55 +57 +60 +62 +64 +67 +69 +71 +73 +76 +79 +80 +82 +85 +87 +89 +91 +94 +95 +97 +100 +102 +104 +106 +107 +109 +111 +113 +115 +117 +119 +120 +122 +124 +125 +127 +129 +130 +131 +133 +134 +136 +137 +138 +139 +140 +141 +142 +142 +144 +144 +145 +146 +146 +147 +147 +147 +148 +148 +148 +148 +148 +148 +148 +147 +147 +147 +146 +145 +145 +144 +144 +143 +142 +141 +140 +139 +138 +137 +135 +134 +133 +132 +130 +128 +127 +125 +124 +122 +120 +119 +117 +115 +114 +111 +109 +108 +105 +104 +101 +100 +98 +95 +94 +92 +89 +87 +85 +82 +80 +78 +76 +73 +71 +69 +67 +64 +62 +60 +57 +55 +52 +50 +47 +44 +46 +49 +51 +54 +56 +58 +61 +63 +65 +67 +70 +72 +74 +76 +78 +81 +83 +85 +87 +89 +92 +93 +96 +98 +99 +101 +103 +106 +107 +110 +111 +113 +115 +116 +118 +120 +121 +123 +125 +126 +128 +129 +130 +131 +133 +134 +135 +136 +137 +138 +139 +140 +141 +141 +142 +143 +143 +143 +144 +145 +145 +145 +146 +145 +145 +145 +145 +145 +144 +144 +144 +143 +142 +141 +141 +140 +140 +138 +138 +137 +135 +134 +133 +131 +130 +129 +128 +126 +124 +123 +121 +119 +118 +117 +115 +113 +111 +109 +107 +105 +104 +102 +99 +97 +96 +93 +91 +90 +87 +85 +83 +81 +78 +77 +74 +72 +70 +67 +65 +63 +61 +58 +56 +54 +51 +48 +47 +43 +45 +47 +49 +52 +54 +56 +59 +61 +64 +66 +68 +70 +73 +74 +77 +79 +82 +84 +85 +88 +90 +92 +94 +96 +97 +100 +102 +103 +105 +107 +109 +111 +113 +114 +116 +117 +119 +121 +123 +124 +125 +126 +127 +129 +130 +131 +133 +134 +134 +135 +137 +138 +138 +138 +140 +140 +141 +141 +142 +142 +142 +142 +142 +142 +142 +143 +142 +142 +142 +141 +141 +141 +139 +139 +138 +137 +137 +135 +135 +134 +133 +132 +130 +129 +127 +127 +125 +124 +122 +120 +119 +118 +116 +114 +113 +111 +109 +107 +105 +104 +102 +100 +98 +96 +93 +91 +90 +87 +85 +84 +81 +79 +77 +74 +72 +70 +68 +66 +63 +61 +59 +56 +54 +52 +49 +47 +45 +41 +44 +45 +48 +50 +52 +55 +57 +59 +61 +64 +66 +68 +71 +72 +75 +78 +79 +82 +84 +86 +88 +90 +91 +93 +96 +98 +99 +102 +103 +105 +106 +108 +111 +112 +113 +115 +117 +119 +120 +121 +123 +124 +126 +127 +127 +129 +130 +131 +132 +133 +134 +135 +135 +136 +136 +137 +137 +139 +138 +139 +139 +139 +139 +139 +139 +139 +140 +139 +139 +139 +138 +137 +137 +136 +135 +135 +134 +133 +132 +131 +130 +129 +128 +127 +125 +124 +123 +121 +120 +118 +116 +115 +113 +111 +110 +108 +107 +105 +103 +102 +99 +97 +95 +93 +91 +90 +87 +86 +83 +81 +80 +77 +75 +73 +70 +68 +66 +64 +62 +60 +58 +55 +52 +51 +48 +46 +43 +39 +42 +44 +46 +49 +50 +53 +56 +58 +60 +62 +65 +67 +69 +71 +74 +76 +78 +79 +81 +84 +86 +87 +90 +91 +94 +96 +97 +99 +101 +103 +105 +106 +108 +109 +111 +112 +115 +116 +117 +118 +120 +122 +122 +124 +125 +127 +128 +129 +129 +130 +132 +132 +133 +133 +134 +135 +135 +136 +136 +136 +136 +136 +137 +137 +137 +136 +137 +136 +136 +136 +135 +135 +134 +133 +132 +132 +131 +131 +129 +128 +127 +127 +125 +124 +123 +121 +120 +119 +117 +116 +114 +112 +112 +110 +107 +107 +105 +103 +101 +99 +98 +96 +93 +91 +90 +87 +86 +84 +82 +79 +77 +75 +73 +71 +69 +67 +64 +62 +60 +58 +55 +54 +51 +49 +46 +44 +41 +38 +40 +43 +45 +47 +49 +51 +54 +56 +58 +61 +62 +65 +67 +69 +72 +73 +76 +77 +80 +81 +83 +85 +88 +90 +92 +94 +96 +97 +99 +101 +102 +104 +106 +107 +109 +110 +112 +114 +115 +116 +118 +119 +120 +121 +122 +124 +125 +126 +127 +127 +128 +129 +130 +131 +131 +132 +132 +132 +133 +133 +134 +134 +134 +134 +134 +134 +133 +134 +133 +132 +133 +131 +132 +131 +130 +129 +128 +128 +126 +126 +125 +124 +122 +121 +120 +119 +118 +116 +115 +114 +112 +111 +109 +107 +106 +104 +102 +101 +98 +97 +95 +93 +91 +90 +87 +86 +84 +82 +80 +78 +75 +73 +72 +69 +67 +65 +63 +60 +59 +56 +53 +51 +49 +47 +45 +43 +40 +36 +39 +41 +44 +45 +48 +50 +52 +55 +57 +59 +61 +63 +65 +67 +69 +71 +74 +76 +78 +80 +81 +84 +86 +87 +89 +91 +93 +95 +97 +99 +100 +101 +103 +105 +106 +109 +109 +111 +113 +114 +115 +117 +117 +119 +120 +121 +122 +123 +124 +125 +126 +126 +127 +128 +128 +129 +130 +130 +130 +130 +131 +131 +131 +131 +131 +131 +131 +131 +130 +130 +129 +129 +128 +128 +127 +126 +126 +125 +124 +124 +122 +121 +120 +119 +117 +116 +116 +113 +113 +111 +109 +108 +107 +105 +103 +102 +100 +99 +97 +94 +93 +91 +89 +88 +85 +83 +81 +80 +78 +76 +73 +72 +70 +67 +65 +63 +61 +59 +56 +54 +52 +50 +48 +46 +43 +41 +38 +34 +37 +39 +41 +44 +46 +48 +50 +53 +55 +57 +59 +61 +63 +66 +68 +70 +71 +73 +76 +77 +79 +82 +84 +85 +87 +89 +91 +93 +94 +96 +98 +100 +101 +103 +104 +106 +107 +108 +110 +112 +112 +114 +115 +116 +118 +119 +119 +121 +121 +122 +123 +124 +125 +125 +126 +127 +127 +127 +127 +128 +128 +128 +128 +129 +128 +128 +128 +128 +128 +127 +127 +126 +126 +125 +124 +124 +123 +122 +122 +120 +120 +118 +118 +116 +115 +114 +113 +111 +110 +108 +107 +106 +104 +103 +101 +100 +97 +96 +94 +92 +91 +89 +87 +86 +84 +82 +80 +78 +76 +73 +72 +70 +68 +66 +63 +61 +59 +56 +55 +53 +51 +48 +46 +44 +41 +40 +37 +33 +35 +37 +39 +42 +44 +46 +49 +51 +53 +55 +57 +59 +62 +63 +66 +67 +69 +71 +74 +76 +78 +80 +81 +84 +86 +87 +89 +90 +92 +94 +95 +97 +98 +100 +102 +104 +104 +106 +108 +109 +110 +111 +112 +114 +114 +116 +116 +118 +118 +120 +121 +121 +122 +123 +123 +123 +124 +124 +125 +125 +125 +126 +126 +125 +126 +125 +125 +125 +125 +125 +124 +123 +123 +123 +122 +121 +120 +120 +119 +118 +117 +116 +115 +113 +112 +111 +110 +109 +108 +107 +105 +103 +102 +100 +99 +97 +95 +94 +93 +90 +88 +87 +85 +83 +82 +80 +77 +76 +73 +72 +70 +68 +66 +63 +61 +59 +58 +56 +53 +51 +49 +47 +44 +42 +40 +37 +36 +31 +33 +36 +38 +41 +42 +45 +47 +49 +51 +53 +55 +57 +60 +61 +64 +65 +68 +70 +71 +74 +76 +77 +80 +81 +83 +85 +87 +89 +90 +92 +93 +95 +96 +98 +99 +101 +103 +104 +105 +107 +108 +108 +110 +111 +112 +113 +114 +115 +116 +117 +118 +118 +119 +120 +120 +121 +121 +122 +122 +122 +123 +122 +123 +122 +122 +123 +122 +123 +122 +122 +121 +120 +120 +120 +119 +119 +118 +117 +116 +115 +114 +113 +112 +111 +110 +109 +108 +106 +105 +104 +102 +101 +99 +98 +97 +95 +93 +92 +90 +88 +86 +84 +83 +81 +79 +77 +76 +73 +72 +70 +68 +66 +64 +62 +60 +58 +56 +53 +52 +49 +47 +44 +42 +40 +38 +36 +34 +29 +32 +34 +36 +38 +41 +43 +45 +47 +50 +52 +54 +56 +58 +60 +62 +64 +66 +68 +70 +71 +74 +75 +77 +79 +81 +83 +85 +86 +88 +89 +91 +92 +94 +95 +97 +99 +100 +101 +102 +104 +105 +106 +107 +108 +110 +111 +111 +113 +113 +114 +115 +116 +117 +117 +118 +118 +118 +119 +119 +119 +120 +120 +120 +120 +120 +120 +119 +120 +119 +119 +118 +118 +117 +117 +116 +116 +115 +114 +113 +113 +111 +110 +109 +108 +108 +107 +105 +104 +102 +101 +99 +98 +97 +95 +94 +92 +91 +89 +87 +86 +84 +83 +80 +79 +77 +76 +74 +72 +69 +68 +66 +64 +61 +60 +57 +55 +53 +51 +49 +47 +45 +43 +41 +39 +37 +34 +32 +28 +31 +33 +35 +37 +39 +41 +43 +46 +47 +50 +51 +53 +56 +58 +60 +61 +64 +65 +67 +70 +72 +73 +75 +77 +79 +80 +82 +83 +85 +87 +89 +90 +92 +93 +95 +96 +97 +99 +100 +102 +102 +103 +105 +106 +106 +108 +109 +110 +111 +111 +112 +113 +113 +114 +115 +115 +116 +116 +117 +116 +117 +117 +117 +116 +117 +117 +117 +117 +116 +115 +116 +115 +114 +114 +113 +113 +112 +111 +111 +110 +109 +108 +107 +106 +104 +104 +102 +101 +100 +98 +98 +96 +94 +93 +92 +90 +89 +87 +86 +84 +82 +81 +78 +77 +75 +73 +72 +69 +68 +66 +63 +61 +60 +57 +56 +54 +51 +50 +48 +46 +43 +41 +39 +37 +35 +32 +30 +27 +29 +31 +33 +35 +37 +39 +41 +43 +45 +48 +50 +52 +54 +56 +58 +59 +62 +64 +65 +68 +69 +71 +73 +74 +77 +78 +80 +81 +83 +84 +86 +88 +90 +90 +92 +94 +95 +96 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +110 +111 +112 +112 +112 +113 +113 +113 +113 +114 +114 +114 +114 +114 +114 +114 +113 +113 +114 +113 +112 +112 +111 +110 +110 +110 +109 +108 +107 +106 +105 +104 +104 +102 +101 +100 +99 +98 +96 +95 +93 +92 +91 +89 +87 +86 +85 +83 +81 +80 +78 +76 +74 +72 +71 +69 +68 +66 +63 +62 +60 +57 +56 +53 +52 +50 +47 +46 +44 +41 +39 +37 +35 +33 +31 +28 +25 +27 +29 +31 +33 +36 +37 +40 +41 +43 +46 +48 +50 +52 +54 +56 +58 +60 +61 +63 +65 +68 +69 +71 +72 +74 +75 +78 +79 +81 +82 +84 +85 +87 +88 +90 +91 +92 +93 +95 +96 +98 +98 +100 +101 +101 +102 +104 +105 +106 +106 +107 +108 +108 +109 +110 +110 +110 +110 +111 +111 +111 +111 +111 +112 +111 +111 +111 +111 +111 +110 +110 +109 +109 +109 +108 +107 +106 +106 +105 +105 +103 +103 +101 +101 +100 +98 +97 +96 +95 +94 +92 +91 +90 +89 +87 +85 +84 +82 +81 +79 +77 +76 +74 +72 +71 +69 +67 +66 +63 +61 +60 +58 +55 +53 +52 +49 +47 +45 +43 +42 +39 +38 +35 +34 +31 +29 +27 +22 +25 +27 +29 +31 +34 +35 +37 +40 +42 +44 +46 +48 +50 +52 +54 +56 +58 +59 +61 +63 +64 +66 +68 +71 +72 +74 +75 +77 +79 +80 +81 +83 +84 +85 +87 +89 +90 +91 +92 +93 +95 +96 +97 +98 +99 +100 +101 +102 +102 +103 +104 +105 +105 +105 +106 +107 +108 +107 +108 +108 +108 +109 +108 +108 +108 +108 +109 +108 +108 +108 +107 +107 +107 +105 +105 +105 +104 +103 +102 +102 +101 +100 +99 +98 +97 +96 +95 +93 +92 +91 +90 +88 +87 +86 +84 +83 +82 +80 +78 +77 +75 +74 +72 +70 +69 +66 +65 +63 +61 +60 +57 +56 +54 +51 +49 +48 +46 +43 +41 +40 +38 +35 +33 +31 +29 +27 +25 +21 +23 +25 +27 +29 +32 +33 +36 +38 +40 +42 +44 +46 +48 +50 +52 +54 +55 +57 +59 +61 +63 +64 +66 +68 +70 +71 +73 +74 +76 +77 +80 +81 +82 +84 +85 +86 +87 +89 +90 +92 +92 +93 +94 +95 +96 +97 +98 +99 +99 +100 +102 +102 +103 +103 +104 +104 +104 +105 +105 +105 +105 +105 +106 +106 +105 +105 +105 +106 +105 +105 +105 +104 +104 +103 +102 +102 +101 +101 +100 +99 +98 +97 +97 +95 +94 +94 +93 +91 +89 +88 +88 +86 +84 +83 +82 +80 +79 +77 +76 +75 +72 +71 +69 +68 +66 +65 +62 +61 +59 +58 +56 +54 +51 +50 +48 +46 +44 +42 +40 +38 +36 +34 +31 +30 +27 +25 +23 +19 +22 +24 +26 +27 +30 +32 +34 +36 +38 +39 +42 +43 +46 +47 +50 +51 +53 +55 +57 +58 +60 +63 +64 +66 +67 +69 +70 +73 +74 +75 +76 +78 +80 +81 +83 +83 +85 +86 +87 +89 +90 +91 +92 +93 +94 +95 +95 +96 +97 +98 +98 +99 +100 +100 +101 +102 +101 +102 +103 +103 +103 +102 +103 +103 +102 +102 +103 +102 +103 +102 +102 +101 +101 +100 +100 +100 +99 +98 +98 +97 +96 +94 +93 +93 +92 +91 +90 +89 +87 +87 +85 +83 +83 +81 +80 +78 +77 +75 +74 +72 +71 +69 +68 +65 +64 +63 +61 +59 +57 +55 +54 +51 +50 +47 +46 +44 +42 +40 +38 +36 +34 +32 +30 +28 +25 +24 +22 +17 +19 +21 +23 +25 +28 +30 +31 +34 +36 +37 +40 +42 +43 +46 +47 +50 +51 +53 +54 +57 +58 +60 +62 +64 +65 +67 +68 +70 +72 +73 +74 +76 +77 +79 +80 +81 +83 +83 +85 +86 +87 +88 +89 +91 +91 +92 +92 +93 +95 +95 +96 +96 +97 +98 +98 +99 +99 +99 +99 +100 +100 +100 +100 +100 +100 +100 +100 +100 +99 +99 +98 +99 +98 +97 +97 +97 +96 +95 +94 +94 +92 +92 +91 +90 +89 +89 +87 +86 +84 +84 +82 +81 +80 +79 +77 +75 +74 +73 +71 +70 +68 +67 +65 +63 +62 +60 +59 +56 +55 +53 +51 +49 +47 +46 +44 +42 +40 +38 +36 +34 +32 +29 +28 +25 +24 +21 +19 +16 +18 +19 +22 +24 +26 +28 +30 +31 +34 +36 +38 +40 +42 +44 +45 +47 +49 +50 +52 +54 +56 +57 +59 +61 +62 +65 +66 +67 +69 +71 +72 +73 +75 +76 +78 +79 +80 +81 +83 +83 +85 +86 +86 +87 +88 +89 +90 +91 +91 +92 +93 +94 +95 +95 +95 +95 +96 +96 +97 +97 +97 +97 +97 +97 +97 +98 +97 +97 +97 +96 +96 +96 +95 +95 +94 +94 +93 +92 +92 +91 +90 +89 +88 +87 +86 +86 +84 +83 +82 +81 +80 +78 +77 +76 +75 +73 +72 +71 +69 +68 +66 +64 +63 +61 +59 +58 +56 +54 +53 +50 +49 +47 +45 +44 +42 +40 +38 +35 +33 +32 +29 +28 +26 +24 +22 +19 +17 +13 +16 +18 +19 +22 +24 +26 +28 +30 +31 +34 +36 +38 +40 +42 +43 +45 +47 +48 +50 +52 +54 +55 +57 +59 +60 +62 +63 +65 +67 +68 +69 +71 +72 +74 +75 +76 +77 +79 +80 +81 +82 +82 +84 +85 +86 +87 +88 +88 +89 +89 +91 +91 +92 +92 +93 +93 +94 +93 +94 +94 +94 +94 +94 +95 +95 +95 +95 +94 +94 +94 +93 +93 +93 +92 +92 +91 +90 +89 +89 +88 +88 +87 +85 +84 +84 +82 +82 +80 +79 +79 +78 +76 +75 +73 +72 +70 +69 +68 +66 +65 +63 +62 +61 +59 +58 +56 +54 +52 +50 +48 +47 +45 +44 +41 +39 +37 +35 +34 +31 +30 +28 +26 +24 +22 +20 +18 +16 +12 +14 +16 +18 +20 +22 +24 +26 +28 +30 +32 +33 +36 +38 +39 +41 +43 +45 +46 +48 +50 +52 +54 +55 +57 +58 +59 +61 +63 +64 +65 +67 +68 +69 +71 +72 +74 +75 +76 +77 +78 +79 +80 +82 +82 +83 +84 +84 +86 +87 +87 +88 +88 +89 +89 +90 +90 +90 +90 +91 +91 +91 +92 +92 +92 +92 +91 +91 +92 +91 +91 +91 +90 +89 +89 +88 +88 +87 +87 +86 +85 +85 +84 +84 +82 +81 +80 +79 +78 +77 +76 +75 +74 +72 +71 +70 +68 +67 +66 +64 +63 +61 +60 +58 +56 +55 +53 +52 +50 +48 +46 +45 +43 +41 +39 +38 +36 +34 +32 +30 +28 +26 +24 +22 +20 +18 +15 +14 +9 +12 +14 +16 +18 +20 +22 +24 +25 +28 +30 +32 +34 +35 +37 +39 +41 +42 +44 +46 +48 +49 +50 +53 +54 +56 +58 +59 +60 +62 +63 +65 +66 +67 +69 +70 +71 +72 +73 +74 +75 +76 +78 +78 +80 +81 +81 +82 +83 +83 +85 +85 +86 +86 +86 +86 +88 +88 +87 +88 +89 +89 +88 +89 +89 +89 +88 +89 +88 +88 +88 +88 +88 +87 +87 +86 +85 +85 +84 +84 +83 +82 +81 +81 +80 +79 +78 +77 +76 +75 +73 +72 +71 +70 +68 +67 +66 +64 +63 +62 +60 +59 +57 +56 +54 +53 +51 +49 +48 +46 +45 +43 +41 +39 +37 +35 +34 +31 +30 +28 +26 +24 +22 +20 +18 +16 +14 +12 +8 +10 +12 +14 +16 +18 +20 +22 +24 +25 +27 +29 +32 +33 +35 +37 +38 +40 +41 +44 +45 +48 +49 +50 +52 +53 +55 +56 +57 +60 +61 +62 +63 +65 +66 +67 +68 +69 +71 +72 +73 +74 +75 +76 +76 +78 +79 +79 +80 +80 +81 +82 +83 +83 +83 +84 +85 +85 +85 +86 +86 +86 +86 +86 +86 +86 +86 +86 +85 +85 +85 +85 +84 +84 +83 +83 +82 +82 +81 +81 +80 +79 +79 +78 +77 +75 +75 +74 +73 +72 +71 +69 +69 +67 +66 +65 +63 +62 +61 +59 +58 +57 +55 +54 +52 +50 +48 +47 +45 +44 +42 +40 +38 +36 +35 +33 +31 +30 +27 +26 +23 +22 +20 +18 +16 +14 +12 +10 +5 +8 +10 +12 +14 +16 +18 +20 +22 +24 +25 +27 +29 +31 +33 +34 +36 +38 +40 +42 +43 +45 +47 +48 +49 +52 +52 +54 +55 +56 +58 +60 +60 +62 +63 +65 +66 +67 +68 +69 +71 +72 +72 +73 +74 +75 +76 +77 +77 +78 +78 +79 +80 +80 +81 +82 +82 +82 +82 +82 +83 +83 +83 +83 +84 +83 +83 +82 +83 +82 +82 +82 +81 +81 +80 +81 +80 +80 +79 +78 +77 +77 +76 +75 +74 +74 +72 +72 +71 +69 +68 +67 +66 +64 +63 +62 +60 +60 +58 +57 +55 +54 +53 +51 +50 +48 +47 +45 +43 +41 +39 +38 +36 +34 +33 +31 +29 +27 +25 +23 +22 +20 +18 +16 +14 +12 +10 +8 +4 +6 +8 +10 +12 +14 +16 +17 +19 +21 +24 +25 +27 +29 +30 +33 +34 +36 +38 +39 +41 +43 +44 +46 +47 +49 +50 +52 +53 +55 +56 +57 +58 +60 +61 +62 +63 +65 +65 +67 +67 +68 +70 +71 +71 +72 +73 +74 +75 +75 +76 +76 +77 +77 +78 +79 +79 +79 +79 +80 +80 +80 +81 +81 +81 +80 +81 +80 +80 +80 +79 +79 +79 +79 +78 +78 +77 +77 +76 +75 +75 +74 +73 +72 +71 +71 +70 +69 +68 +67 +66 +65 +64 +62 +61 +60 +59 +57 +56 +54 +53 +52 +50 +48 +47 +46 +44 +43 +41 +39 +37 +36 +34 +33 +30 +29 +27 +26 +23 +21 +20 +18 +16 +13 +11 +10 +8 +6 +2 +4 +6 +8 +10 +11 +14 +16 +18 +19 +21 +23 +25 +27 +29 +30 +32 +33 +35 +37 +39 +40 +42 +43 +45 +46 +48 +49 +51 +52 +53 +55 +56 +57 +58 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +69 +70 +71 +71 +72 +73 +74 +74 +74 +76 +75 +77 +77 +77 +77 +77 +78 +77 +77 +78 +77 +77 +77 +77 +77 +77 +77 +77 +76 +75 +75 +74 +74 +73 +73 +72 +71 +71 +70 +69 +68 +67 +66 +65 +64 +63 +62 +60 +60 +59 +57 +56 +54 +54 +52 +50 +49 +48 +46 +44 +43 +42 +40 +38 +37 +35 +33 +32 +30 +28 +27 +25 +23 +22 +20 +18 +16 +14 +11 +10 +8 +6 +4 diff --git a/extra/images/testing/pgm/radial.binary.fig b/extra/images/testing/pgm/radial.binary.fig new file mode 100644 index 0000000000000000000000000000000000000000..6e52311b94202145e080cf8f4dc7794d43490754 GIT binary patch literal 16443 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 literal 0 HcmV?d00001 diff --git a/extra/images/testing/pgm/radial.binary.pgm b/extra/images/testing/pgm/radial.binary.pgm new file mode 100644 index 0000000000000000000000000000000000000000..598ee59e2d01f0216f3df07a56713eb23c5d9661 GIT binary patch literal 16438 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 literal 0 HcmV?d00001