packages feed

eo-phi-normalizer 2.2.2 → 2.3.0

raw patch · 23 files changed

+24572/−22399 lines, 23 filesdep +code-pagedep +text-manipulatesetup-changed

Dependencies added: code-page, text-manipulate

Files

CHANGELOG.md view
@@ -6,6 +6,23 @@ and this project adheres to the [Haskell Package Versioning Policy](https://pvp.haskell.org/). +## v2.3.0 - 2024-12-05++### Breaking changes++- Fix issues related to LaTeX ([#598](https://github.com/objectionary/eo-phi-normalizer/pull/598))+- Support syntax for constant objects (strings, ints, floats) ([#602](https://github.com/objectionary/eo-phi-normalizer/pull/602))++### Changes and fixes++- Set the correct locale automatically ([#590](https://github.com/objectionary/eo-phi-normalizer/pull/590), [#609](https://github.com/objectionary/eo-phi-normalizer/pull/609), [#611](https://github.com/objectionary/eo-phi-normalizer/pull/611))++### Documentation and maintenance++- Fix site generation ([#612](https://github.com/objectionary/eo-phi-normalizer/pull/612))+- Add examples to `rewrite` docs ([#608](https://github.com/objectionary/eo-phi-normalizer/pull/608))+- chore(deps): update dependency prettier to v3.4.2 ([#597](https://github.com/objectionary/eo-phi-normalizer/pull/597))+ ## v2.2.2 - 2024-11-29  ### New@@ -25,7 +42,7 @@ - Update dependency prettier to v3.4.1 ([#552](https://github.com/objectionary/eo-phi-normalizer/pull/552)) - Update dependency pre-commit to v4 - autoclosed ([#503](https://github.com/objectionary/eo-phi-normalizer/pull/503)) - Update dependency eolang to ^0.24.0 ([#520](https://github.com/objectionary/eo-phi-normalizer/pull/520))-- Add `CONTRIBUTE.md` ([#576](https://github.com/objectionary/eo-phi-normalizer/pull/576))+- Add `CONTRIBUTING.md` ([#576](https://github.com/objectionary/eo-phi-normalizer/pull/576))  ## v2.2.1 - 2024-11-27 
Setup.hs view
@@ -21,7 +21,9 @@ -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -- SOFTWARE. {- FOURMOLU_ENABLE -}-{-# LANGUAGE CPP #-}++{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-}  -- Source: https://github.com/haskell/cabal/issues/6726#issuecomment-918663262@@ -30,65 +32,77 @@ -- for the parsers included in Ogma. module Main (main) where +import Control.Exception (Handler (..), SomeException, catches, displayException, evaluate)+import Data.ByteString as BS (readFile, writeFile) import Data.List (intercalate)+import Data.Text (Text)+import Data.Text.Encoding (decodeUtf8, encodeUtf8) import Distribution.Simple (defaultMainWithHooks, hookedPrograms, postConf, preBuild, simpleUserHooks) import Distribution.Simple.Program (Program (..), findProgramVersion, simpleProgram)+import Main.Utf8 (withUtf8) import PyF (fmt)-import System.Exit (ExitCode (..))+import System.Exit (ExitCode (..), exitWith)+import System.IO.CodePage (withCP65001) import System.Process (callCommand)-import Text.Printf (printf)-import Control.Exception (evaluate) +readFile' :: FilePath -> IO Text+readFile' = (decodeUtf8 <$>) . BS.readFile++writeFile' :: FilePath -> Text -> IO ()+writeFile' path = BS.writeFile path . encodeUtf8++withCorrectLocale :: IO a -> IO a+withCorrectLocale act = do+  let withCorrectLocale' = withCP65001 . withUtf8+  withCorrectLocale' act+    `catches` [ Handler $ \(x :: ExitCode) -> exitWith x+              , Handler $ \(x :: SomeException) ->+                  withCorrectLocale' do+                    putStrLn (displayException x)+                    exitWith (ExitFailure 1)+              ]+ -- | Run BNFC, happy, and alex on the grammar before the actual build step. -- -- All options for bnfc are hard-coded here. main :: IO () main =-  defaultMainWithHooks $-    simpleUserHooks-      { hookedPrograms = [bnfcProgram]-      , postConf = \args flags packageDesc localBuildInfo -> do-          let-            isWindows =-#ifdef mingw32_HOST_OS-                      True-#else-                      False-#endif-            -- See the details on the command form in https://github.com/objectionary/eo-phi-normalizer/issues/347#issuecomment-2117097070-            addLicense :: FilePath -> IO ()-            addLicense file = do-              let readFile' path = do-                    content <- readFile path-                    evaluate (length content)-                    pure content-                  targetFile = "src/Language/EO/Phi/Syntax/" <> file-              license <- readFile' "LICENSE"-              let licenseFormatted = printf "{-\n%s-}\n\n" license-              code <- readFile' targetFile-              evaluate (length license)-              writeFile targetFile (licenseFormatted <> code)+  withCorrectLocale $+    defaultMainWithHooks $+      simpleUserHooks+        { hookedPrograms = [bnfcProgram]+        , postConf = \args flags packageDesc localBuildInfo -> do+            let+              addLicense :: FilePath -> IO ()+              addLicense file = do+                let targetFile = "src/Language/EO/Phi/Syntax/" <> file+                license <- readFile' "LICENSE"+                let licenseFormatted = [fmt|{{-\n{license}-}}\n\n|] :: Text+                code <- readFile' targetFile+                writeFile' targetFile (licenseFormatted <> code) -            command = intercalate "; " $-                [ "set -ex" ] <>-                [ "chcp.com" | isWindows ] <>-                [ "chcp.com 65001" | isWindows ] <>-                [ "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"] <>-                [ "cd src/Language/EO/Phi/Syntax" ] <>-                [ "alex Lex.x" ] <>-                [ "happy Par.y" ] <>-                [ "true" ]+              -- See the details on the command form in https://github.com/objectionary/eo-phi-normalizer/issues/347#issuecomment-2117097070+              command =+                intercalate+                  "; "+                  [ "set -ex"+                  , "bnfc --haskell -d -p Language.EO.Phi --generic -o src/ grammar/EO/Phi/Syntax.cf"+                  , "cd src/Language/EO/Phi/Syntax"+                  , "alex Lex.x"+                  , "happy Par.y"+                  , "true"+                  ] -            fullCommand = [fmt|bash -c ' {command} '|]+              fullCommand = [fmt|bash -c ' {command} '|] -          putStrLn fullCommand+            putStrLn fullCommand -          _ <- callCommand fullCommand-          _ <- addLicense "Abs.hs"-          _ <- addLicense "Print.hs"+            _ <- callCommand fullCommand+            _ <- addLicense "Abs.hs"+            _ <- addLicense "Print.hs" -          postConf simpleUserHooks args flags packageDesc localBuildInfo-      }+            postConf simpleUserHooks args flags packageDesc localBuildInfo+        }  -- | NOTE: This should be in Cabal.Distribution.Simple.Program.Builtin. bnfcProgram :: Program
app/Main.hs view
@@ -51,7 +51,7 @@  module Main (main) where -import Control.Exception (Exception (..), SomeException, catch, throw)+import Control.Exception (Exception (..), SomeException, catch, throwIO) import Control.Lens.Lens ((&)) import Control.Lens.Operators ((?~)) import Control.Monad (forM, unless, when)@@ -63,9 +63,11 @@ import Data.Maybe (fromMaybe) import Data.Text.Internal.Builder (toLazyText) import Data.Text.Lazy as TL (unpack)+import Data.Text.Lazy.Manipulate (toOrdinal) import Data.Version (showVersion) import Data.Yaml (decodeFileThrow, decodeThrow) import GHC.Generics (Generic)+import Language.EO.Locale (withCorrectLocale) import Language.EO.Phi (Binding (..), Bytes (Bytes), Object (..), Program (Program), parseProgram, printTree) import Language.EO.Phi.Dataize import Language.EO.Phi.Dataize.Context@@ -81,9 +83,9 @@ import Language.EO.Phi.Rules.Fast (fastYegorInsideOut, fastYegorInsideOutAsRule) import Language.EO.Phi.Rules.RunYegor (yegorRuleSet) import Language.EO.Phi.Rules.Yaml (RuleSet (rules, title), convertRuleNamed, parseRuleSetFromFile)+import Language.EO.Phi.Syntax (desugar, wrapBytesInBytes, wrapTermination) import Language.EO.Phi.ToLaTeX import Language.EO.Test.YamlSpec (spec)-import Main.Utf8 import Options.Applicative hiding (metavar) import Options.Applicative qualified as Optparse (metavar) import Paths_eo_phi_normalizer (version)@@ -469,14 +471,14 @@   Just file' ->     doesFileExist file' >>= \case       True -> pure (Just file')-      False -> throw $ FileDoesNotExist file'+      False -> throwIO $ FileDoesNotExist file'  getProgram :: Maybe FilePath -> IO Program getProgram inputFile = do   inputFile' <- getFile inputFile-  src <- maybe getContents' readFile inputFile' `catch` (throw . CouldNotRead . show @SomeException)+  src <- maybe getContents' readFile inputFile' `catch` (throwIO . CouldNotRead . show @SomeException)   case parseProgram src of-    Left err -> throw $ CouldNotParse err+    Left err -> throwIO $ CouldNotParse err     Right program -> pure program  getLoggers :: Maybe FilePath -> IO (String -> IO (), String -> IO ())@@ -513,7 +515,7 @@ getMetrics :: Maybe String -> Maybe FilePath -> IO ProgramMetrics getMetrics bindingsPath inputFile = do   program <- getProgram inputFile-  either throw pure (getMetrics' program bindingsPath)+  either throwIO pure (getMetrics' program bindingsPath)  injectLamdbaPackage :: [Binding] -> [Binding] injectLamdbaPackage bs@@ -562,11 +564,14 @@   obj@MetaObject{} -> obj   obj@MetaTailContext{} -> obj   obj@MetaFunction{} -> obj+  obj@ConstString{} -> wrapRawBytesIn (desugar obj)+  obj@ConstInt{} -> wrapRawBytesIn (desugar obj)+  obj@ConstFloat{} -> wrapRawBytesIn (desugar obj)  -- * Main  main :: IO ()-main = withUtf8 do+main = withCorrectLocale do   opts <- customExecParser pprefs (cliOpts (showVersion version))   let printAsProgramOrAsObject = \case         Formation bindings' -> printTree $ Program bindings'@@ -597,9 +602,9 @@           Nothing -> do             ruleSet :: RuleSet <- decodeThrow $(embedFileRelative "test/eo/phi/rules/new.yaml")             return (False, ruleSet.title, convertRuleNamed <$> ruleSet.rules)-      unless (single || json || (chain && latex)) $ logStrLn ruleSetTitle+      unless (single || json || latex) $ logStrLn ruleSetTitle       bindingsWithDeps <- case deepMergePrograms (program' : deps) of-        Left err -> throw (CouldNotMergeDependencies err)+        Left err -> throwIO (CouldNotMergeDependencies err)         Right (Program bindingsWithDeps) -> return bindingsWithDeps       let Program bindings = program'           uniqueResults@@ -611,7 +616,24 @@             limits = ApplicationLimits maxDepth (maxGrowthFactor * objectSize (Formation bindings))             ctx = (defaultContext rules (Formation bindingsWithDeps)){builtinRules = builtin} -- IMPORTANT: context contains dependencies!           totalResults = length uniqueResults-      when (null uniqueResults || null (head uniqueResults)) (throw CouldNotNormalize)+          inLatexDocument :: IO () -> IO ()+          inLatexDocument logContent = do+            logStrLn+              [fmtTrim|+                % {ruleSetTitle}++                \\documentclass{{article}}+                \\usepackage{{eolang}}+                \\begin{{document}}+              |]+            logContent+            logStrLn "\n\\end{document}"+          inPhiEquation :: String -> IO ()+          inPhiEquation phiExpr = do+            logStrLn "\\begin{phiquation*}"+            logStrLn [fmtTrim|{phiExpr}|]+            logStrLn "\\end{phiquation*}"+      when (null uniqueResults || null (head uniqueResults)) (throwIO CouldNotNormalize)       if         | single && json ->             logStrLn@@ -630,25 +652,29 @@                 { input = printTree program'                 , output = (logEntryToPair . fmap printAsProgramOrAsObject <$>) <$> uniqueResults                 }-        | chain && latex -> do-            logStrLn-              [fmtTrim|-                % {ruleSetTitle}--                \\documentclass{{article}}-                \\usepackage{{eolang}}-                \\begin{{document}}-              |]-            forM_ uniqueResults $ \steps -> do+        | chain && latex -> inLatexDocument $ do+            forM_ (zip [1 ..] uniqueResults) $ \(index, steps) -> do               let latexLines = toLatexString (Formation bindings) : (toLatexString . (.logEntryLog) <$> steps)                   transitions :: [String] = ((\x -> [fmt| \\trans_{{\\rulename{{{logEntryMessage x}}}}} \n|]) <$> steps) <> ["."]-                  linesCombined :: String = fold $ zipWith (\latexLine transition -> [fmt|{latexLine}{transition}|]) latexLines transitions-              logStrLn "\\begin{phiquation*}"-              logStrLn [fmtTrim|{linesCombined}|]-              logStrLn "\\end{phiquation*}"-            logStrLn "\n\\end{document}"+                  trailingTransitions :: [String] = "" : repeat [fmt|  \\trans |]+                  linesCombined :: String =+                    fold $+                      zipWith3+                        ( \trailingTrans latexLine transition ->+                            [fmt|{trailingTrans}{latexLine}{transition}|]+                        )+                        trailingTransitions+                        latexLines+                        transitions+              unless (length uniqueResults == 1) $+                logStrLn+                  [fmt|\nThis is the {unpack (toOrdinal index)} possible chain of normalizing rewritings:\n|]+              inPhiEquation linesCombined         | latex ->-            logStrLn . toLatexString $ logEntryLog (head (head uniqueResults))+            inLatexDocument $+              inPhiEquation $+                toLatexString $+                  logEntryLog (head (head uniqueResults))         | otherwise -> do             logStrLn "Input:"             logStrLn (printTree program')@@ -668,7 +694,7 @@       program' <- getProgram inputFile       deps <- mapM (getProgram . Just) dependencies       bindingsWithDeps <- case deepMergePrograms (program' : deps) of-        Left err -> throw (CouldNotMergeDependencies err)+        Left err -> throwIO (CouldNotMergeDependencies err)         Right (Program bindingsWithDeps) -> return bindingsWithDeps       (builtin, _ruleSetTitle, rules) <-         case rulesPath of
eo-phi-normalizer.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           eo-phi-normalizer-version:        2.2.2+version:        2.3.0 synopsis:       Command line normalizer of 𝜑-calculus expressions. description:    Please see the README on GitHub at <https://github.com/objectionary/eo-phi-normalizer#readme> homepage:       https://github.com/objectionary/eo-phi-normalizer#readme@@ -202,10 +202,15 @@       Cabal >=2.4.0.1 && <4.0     , PyF     , base >=4.11.0.0 && <5.0+    , bytestring+    , code-page     , process >=1.6.3.0+    , text+    , with-utf8  library   exposed-modules:+      Language.EO.Locale       Language.EO.Phi       Language.EO.Phi.Dataize       Language.EO.Phi.Dataize.Atoms@@ -255,6 +260,7 @@     , blaze-markup     , bytestring     , cereal+    , code-page     , containers     , directory     , file-embed >=0.0.16.0@@ -269,7 +275,9 @@     , scientific     , template-haskell     , text+    , text-manipulate     , unordered-containers+    , with-utf8     , yaml   default-language: Haskell2010 @@ -297,6 +305,7 @@     , blaze-markup     , bytestring     , cereal+    , code-page     , containers     , directory     , eo-phi-normalizer@@ -313,6 +322,7 @@     , scientific     , template-haskell     , text+    , text-manipulate     , unordered-containers     , with-utf8     , yaml@@ -322,6 +332,7 @@   type: exitcode-stdio-1.0   main-is: Main.hs   other-modules:+      Language.EO.Locale       Language.EO.Phi       Language.EO.Phi.Dataize       Language.EO.Phi.Dataize.Atoms@@ -371,6 +382,7 @@     , blaze-markup     , bytestring     , cereal+    , code-page     , containers     , directory     , doctest-parallel@@ -387,7 +399,9 @@     , scientific     , template-haskell     , text+    , text-manipulate     , unordered-containers+    , with-utf8     , yaml   default-language: Haskell2010 @@ -423,6 +437,7 @@     , blaze-markup     , bytestring     , cereal+    , code-page     , containers     , directory     , eo-phi-normalizer@@ -439,6 +454,7 @@     , scientific     , template-haskell     , text+    , text-manipulate     , unordered-containers     , with-utf8     , yaml
grammar/EO/Phi/Syntax.cf view
@@ -54,6 +54,9 @@ GlobalObject.      Object ::= "Φ"; ThisObject.        Object ::= "ξ"; Termination.       Object ::= "⊥" ;+ConstString.       Object ::= String ;+ConstInt.          Object ::= Integer ;+ConstFloat.        Object ::= Double ; MetaSubstThis.     Object ::= Object "[" "ξ" "↦" Object "]" ; MetaContextualize. Object ::= "⌈" Object "," Object "⌉" ; MetaObject.        Object ::= ObjectMetaId ;
+ src/Language/EO/Locale.hs view
@@ -0,0 +1,43 @@+{- FOURMOLU_DISABLE -}+-- The MIT License (MIT)++-- Copyright (c) 2016-2024 Objectionary.com++-- Permission is hereby granted, free of charge, to any person obtaining a copy+-- of this software and associated documentation files (the "Software"), to deal+-- in the Software without restriction, including without limitation the rights+-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+-- copies of the Software, and to permit persons to whom the Software is+-- furnished to do so, subject to the following conditions:++-- The above copyright notice and this permission notice shall be included+-- in all copies or substantial portions of the Software.++-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+-- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE+-- SOFTWARE.+{- FOURMOLU_ENABLE -}+{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Language.EO.Locale where++import Control.Exception (Exception (..), Handler (..), SomeException, catches)+import Main.Utf8 (withUtf8)+import System.Exit (ExitCode (..), exitWith)+import System.IO.CodePage (withCP65001)++withCorrectLocale :: IO a -> IO a+withCorrectLocale act = do+  let withCorrectLocale' = withCP65001 . withUtf8+  withCorrectLocale' act+    `catches` [ Handler $ \(x :: ExitCode) -> exitWith x+              , Handler $ \(x :: SomeException) ->+                  withCorrectLocale' do+                    putStrLn (displayException x)+                    exitWith (ExitFailure 1)+              ]
src/Language/EO/Phi.hs view
@@ -40,9 +40,7 @@  -- | Parse a 'Program' or return a parsing error. parseProgram :: String -> Either String Phi.Program-parseProgram input = Phi.pProgram tokens- where-  tokens = Phi.myLexer input+parseProgram = parseWith Phi.pProgram  -- | Parse an 'Object' or return a parsing error. parseObject :: String -> Either String Phi.Object
src/Language/EO/Phi/Dataize.hs view
@@ -24,26 +24,45 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE OverloadedStrings #-}+{-# HLINT ignore "Redundant fmap" #-}+{-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TupleSections #-} {-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} -{-# HLINT ignore "Redundant fmap" #-}- module Language.EO.Phi.Dataize where  import Data.HashMap.Strict qualified as HashMap import Data.List.NonEmpty qualified as NonEmpty import Data.Maybe (listToMaybe)-import Language.EO.Phi (printTree) import Language.EO.Phi.Rules.Common import Language.EO.Phi.Rules.Fast (fastYegorInsideOut) import Language.EO.Phi.Rules.Yaml (substThis)-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax import PyF (fmt) import System.IO.Unsafe (unsafePerformIO) +desugarAsBytes :: Either Object Bytes -> Either Object Bytes+desugarAsBytes (Left obj) = case obj of+  ConstString s -> Right (stringToBytes s)+  ConstInt n -> Right (intToBytes (fromInteger n))+  ConstFloat x -> Right (floatToBytes x)+  _ -> Left obj+desugarAsBytes (Right bytes) = Right bytes++pattern AsBytes :: Bytes -> Either Object Bytes+pattern AsBytes bytes <- (desugarAsBytes -> Right bytes)+  where+    AsBytes bytes = Right bytes++pattern AsObject :: Object -> Either Object Bytes+pattern AsObject obj <- (desugarAsBytes -> Left obj)+  where+    AsObject obj = Left obj++{-# COMPLETE AsBytes, AsObject #-}+ -- | Perform one step of dataization to the object (if possible). dataizeStep :: Context -> Object -> (Context, Either Object Bytes) dataizeStep ctx obj = snd $ head $ runChain (dataizeStepChain obj) ctx -- FIXME: head is bad@@ -63,37 +82,37 @@ dataizeStepChain obj@(Formation bs)   | Just (DeltaBinding bytes) <- listToMaybe [b | b@(DeltaBinding _) <- bs]   , not hasEmpty = do-      logStep "Found bytes" (Right bytes)+      logStep "Found bytes" (AsBytes bytes)       ctx <- getContext-      return (ctx, Right bytes)+      return (ctx, AsBytes bytes)   | Just (LambdaBinding (Function funcName)) <- listToMaybe [b | b@(LambdaBinding _) <- bs]   , not hasEmpty = do       ctx' <- getContext       let lambaIsKnownAndNotEnabled = HashMap.member funcName ctx'.knownAtoms && not (HashMap.member funcName ctx'.enabledAtoms)       if lambaIsKnownAndNotEnabled         then do-          logStep [fmt|Not evaluating the lambda '{funcName}' since it's disabled.|] (Left obj)-          pure (ctx', Left obj)+          logStep [fmt|Not evaluating the lambda '{funcName}' since it's disabled.|] (AsObject obj)+          pure (ctx', AsObject obj)         else do-          logStep [fmt|Evaluating lambda '{funcName}' |] (Left obj)+          logStep [fmt|Evaluating lambda '{funcName}' |] (AsObject obj)           msplit (evaluateBuiltinFunChain funcName obj ()) >>= \case             Nothing -> do               ctx <- getContext-              return (ctx, Left obj)+              return (ctx, AsObject obj)             Just ((obj', _state), _alts) -> do               ctx <- getContext-              return (ctx, Left obj')+              return (ctx, AsObject obj')   | Just (AlphaBinding Phi decoratee) <- listToMaybe [b | b@(AlphaBinding Phi _) <- bs]   , not hasEmpty = do       let decoratee' = substThis obj decoratee-      logStep "Dataizing inside phi" (Left decoratee')+      logStep "Dataizing inside phi" (AsObject decoratee')       ctx <- getContext       let extendedContext = (extendContextWith obj ctx){currentAttr = Phi}-      return (extendedContext, Left decoratee')+      return (extendedContext, AsObject decoratee')   | otherwise = do-      logStep "No change to formation" (Left obj)+      logStep "No change to formation" (AsObject obj)       ctx <- getContext-      return (ctx, Left obj)+      return (ctx, AsObject obj)  where   isEmpty (EmptyBinding _) = True   isEmpty DeltaEmptyBinding = True@@ -101,24 +120,24 @@   hasEmpty = any isEmpty bs -- IMPORTANT: dataize the object being copied IF normalization is stuck on it! dataizeStepChain (Application obj bindings) = incLogLevel $ do-  logStep "Dataizing inside application" (Left obj)+  logStep "Dataizing inside application" (AsObject obj)   modifyContext (\c -> c{dataizePackage = False}) $ do     (ctx, obj') <- dataizeStepChain obj     case obj' of-      Left obj'' -> return (ctx, Left (obj'' `Application` bindings))-      Right bytes -> return (ctx, Left (Formation [DeltaBinding bytes] `Application` bindings))+      Left obj'' -> return (ctx, AsObject (obj'' `Application` bindings))+      Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `Application` bindings)) -- IMPORTANT: dataize the object being dispatched IF normalization is stuck on it! dataizeStepChain (ObjectDispatch obj attr) = incLogLevel $ do-  logStep "Dataizing inside dispatch" (Left obj)+  logStep "Dataizing inside dispatch" (AsObject obj)   modifyContext (\c -> c{dataizePackage = False}) $ do     (ctx, obj') <- dataizeStepChain obj     case obj' of-      Left obj'' -> return (ctx, Left (obj'' `ObjectDispatch` attr))-      Right bytes -> return (ctx, Left (Formation [DeltaBinding bytes] `ObjectDispatch` attr))+      Left obj'' -> return (ctx, AsObject (obj'' `ObjectDispatch` attr))+      Right bytes -> return (ctx, AsObject (Formation [DeltaBinding bytes] `ObjectDispatch` attr)) dataizeStepChain obj = do-  logStep "Nothing to dataize" (Left obj)+  logStep "Nothing to dataize" (AsObject obj)   ctx <- getContext-  return (ctx, Left obj)+  return (ctx, AsObject obj)  dataizeRecursivelyChain' :: Context -> Object -> ([LogEntry (Either Object Bytes)], Either Object Bytes) dataizeRecursivelyChain' ctx obj = head (runChain (dataizeRecursivelyChain False obj) ctx)@@ -129,7 +148,7 @@ dataizeRecursivelyChain = fmap minimizeObject' . go  where   go normalizeRequired obj = do-    logStep "Dataizing" (Left obj)+    logStep "Dataizing" (AsObject obj)     ctx <- getContext     let globalObject = NonEmpty.last (outerFormations ctx)     let limits = defaultApplicationLimits (objectSize globalObject)@@ -141,20 +160,20 @@           | otherwise = applyRulesChainWith limits obj     msplit (transformNormLogs normalizedObj) >>= \case       Nothing -> do-        logStep "No rules applied" (Left obj)-        return (Left obj)+        logStep "No rules applied" (AsObject obj)+        return (AsObject obj)       -- We trust that all chains lead to the same result due to confluence       Just (normObj, _alternatives)-        | normObj == obj && normalizeRequired -> return (Left obj)+        | normObj == obj && normalizeRequired -> return (AsObject obj)         | otherwise -> do             (ctx', step) <- dataizeStepChain normObj             case step of-              (Left stillObj)+              (AsObject stillObj)                 | stillObj == normObj && ctx `sameContext` ctx' -> do-                    logStep "Dataization changed nothing" (Left stillObj)+                    logStep "Dataization changed nothing" (AsObject stillObj)                     return step -- dataization changed nothing                 | otherwise -> do-                    logStep "Dataization changed something" (Left stillObj)+                    logStep "Dataization changed something" (AsObject stillObj)                     withContext ctx' $ go False stillObj -- partially dataized               bytes -> return bytes @@ -176,16 +195,16 @@   let o_rho = ObjectDispatch obj Rho   let o_a0 = ObjectDispatch obj (Alpha (AlphaIndex "α0"))   lhs <- incLogLevel $ do-    logStep "Evaluating LHS" (Left o_rho)+    logStep "Evaluating LHS" (AsObject o_rho)     dataizeRecursivelyChain True o_rho   rhs <- incLogLevel $ do-    logStep "Evaluating RHS" (Left o_a0)+    logStep "Evaluating RHS" (AsObject o_a0)     dataizeRecursivelyChain True o_a0   result <- case (lhs, rhs) of-    (Right l, Right r) -> do+    (AsBytes l, AsBytes r) -> do       let bytes = resultToBytes (bytesToParam r `func` bytesToParam l)           resultObj = wrapBytes bytes-      logStep "Evaluated function" (Left resultObj)+      logStep "Evaluated function" (AsObject resultObj)       return resultObj     _ -> fail "Couldn't find bytes in one or both of LHS and RHS"   return (result, ())@@ -212,22 +231,22 @@   let lhsArg = arg1 obj   let rhsArg = arg2 obj   lhs <- incLogLevel $ do-    logStep "Evaluating LHS" (Left lhsArg)+    logStep "Evaluating LHS" (AsObject lhsArg)     dataizeRecursivelyChain True lhsArg   rhs <- incLogLevel $ do-    logStep "Evaluating RHS" (Left rhsArg)+    logStep "Evaluating RHS" (AsObject rhsArg)     dataizeRecursivelyChain True rhsArg   result <- case (lhs, rhs) of-    (Right l, Right r) -> do+    (AsBytes l, AsBytes r) -> do       let bytes = resultToBytes (bytesToParam l `func` bytesToParam r)           resultObj = wrapBytes bytes-      logStep "Evaluated function" (Left resultObj)+      logStep "Evaluated function" (AsObject resultObj)       return resultObj-    (Left _l, Left _r) ->+    (AsObject _l, AsObject _r) ->       fail (name <> ": Couldn't find bytes in both LHS and RHS")-    (Left l, _) -> do+    (AsObject l, _) -> do       fail (name <> ": Couldn't find bytes in LHS: " <> printTree (hideRho l))-    (_, Left r) -> do+    (_, AsObject r) -> do       fail (name <> ": Couldn't find bytes in RHS: " <> printTree (hideRho r))   return (result, ()) @@ -252,7 +271,7 @@  -- This should maybe get converted to a type class and some instances? evaluateIntIntIntFunChain :: (Int -> Int -> Int) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)-evaluateIntIntIntFunChain = evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInInt extractRho (extractLabel "x")+evaluateIntIntIntFunChain = evaluateBinaryDataizationFunChain intToBytes bytesToInt wrapBytesInConstInt extractRho (extractLabel "x")  evaluateIntIntBoolFunChain :: (Int -> Int -> Bool) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState) evaluateIntIntBoolFunChain = evaluateBinaryDataizationFunChain boolToBytes bytesToInt wrapBytesAsBool extractRho (extractLabel "x")@@ -265,7 +284,7 @@ evaluateBytesBytesFunChain = evaluateUnaryDataizationFunChain intToBytes bytesToInt wrapBytesInBytes extractRho  evaluateFloatFloatFloatFunChain :: (Double -> Double -> Double) -> String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState)-evaluateFloatFloatFloatFunChain = evaluateBinaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInFloat extractRho (extractLabel "x")+evaluateFloatFloatFloatFunChain = evaluateBinaryDataizationFunChain floatToBytes bytesToFloat wrapBytesInConstFloat extractRho (extractLabel "x")  -- | Like `evaluateDataizationFunChain` but specifically for the built-in functions. -- This function is not safe. It returns undefined for unknown functions@@ -278,7 +297,7 @@  evaluateBuiltinFunChainUnknown :: String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState) evaluateBuiltinFunChainUnknown atomName obj state = do-  logStep [fmt|[INFO]: unknown atom ({atomName})|] (Left obj)+  logStep [fmt|[INFO]: unknown atom ({atomName})|] (AsObject obj)   return (obj, state)  -- | Like `evaluateDataizationFun` but specifically for the built-in functions.@@ -296,20 +315,3 @@ extractAlpha0 = (`ObjectDispatch` Alpha (AlphaIndex "α0")) extractLabel :: String -> Object -> Object extractLabel attrName = (`ObjectDispatch` Label (LabelId attrName))-wrapBytesInInt :: Bytes -> Object-wrapBytesInInt (Bytes bytes) = [fmt|Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInFloat :: Bytes -> Object-wrapBytesInFloat (Bytes bytes) = [fmt|Φ.org.eolang.float(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInString :: Bytes -> Object-wrapBytesInString (Bytes bytes) = [fmt|Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]-wrapBytesInBytes :: Bytes -> Object-wrapBytesInBytes (Bytes bytes) = [fmt|Φ.org.eolang.bytes(Δ ⤍ {bytes})|]-wrapTermination :: Object-wrapTermination = [fmt|Φ.org.eolang.error(α0 ↦ Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes})))|]- where-  Bytes bytes = stringToBytes "unknown error"--wrapBytesAsBool :: Bytes -> Object-wrapBytesAsBool bytes-  | bytesToInt bytes == 0 = [fmt|Φ.org.eolang.false|]-  | otherwise = [fmt|Φ.org.eolang.true|]
src/Language/EO/Phi/Dataize/Atoms.hs view
@@ -30,7 +30,7 @@ import Data.List (singleton) import Language.EO.Phi.Dataize import Language.EO.Phi.Rules.Common-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax  knownAtomsList :: [(String, String -> Object -> EvaluationState -> DataizeChain (Object, EvaluationState))] knownAtomsList =@@ -52,8 +52,8 @@     , \name obj state -> do         thisStr <- incLogLevel $ dataizeRecursivelyChain True (extractRho obj)         bytes <- case thisStr of-          Right bytes -> pure bytes-          Left _ -> fail "Couldn't find bytes"+          AsBytes bytes -> pure bytes+          AsObject _ -> fail "Couldn't find bytes"         evaluateBinaryDataizationFunChain id bytesToInt wrapBytesInBytes (extractLabel "start") (extractLabel "len") (sliceBytes bytes) name obj state     )   , ("Lorg_eolang_bytes_and", evaluateBytesBytesBytesFunChain (.&.))@@ -72,15 +72,15 @@   , ("Lorg_eolang_float_plus", evaluateFloatFloatFloatFunChain (+))   , ("Lorg_eolang_float_div", evaluateFloatFloatFloatFunChain (/))   , -- string-    ("Lorg_eolang_string_length", evaluateUnaryDataizationFunChain intToBytes bytesToString wrapBytesInInt extractRho length)+    ("Lorg_eolang_string_length", evaluateUnaryDataizationFunChain intToBytes bytesToString wrapBytesInConstInt extractRho length)   ,     ( "Lorg_eolang_string_slice"     , \name obj state -> do         thisStr <- incLogLevel $ dataizeRecursivelyChain True (extractRho obj)         string <- case thisStr of-          Right bytes -> pure $ bytesToString bytes-          Left _ -> fail "Couldn't find bytes"-        evaluateBinaryDataizationFunChain stringToBytes bytesToInt wrapBytesInString (extractLabel "start") (extractLabel "len") (\start len -> take len (drop start string)) name obj state+          AsBytes bytes -> pure $ bytesToString bytes+          AsObject _ -> fail "Couldn't find bytes"+        evaluateBinaryDataizationFunChain stringToBytes bytesToInt wrapBytesInConstString (extractLabel "start") (extractLabel "len") (\start len -> take len (drop start string)) name obj state     )   , -- others     ("Lorg_eolang_dataized", evaluateUnaryDataizationFunChain id id wrapBytesInBytes (extractLabel "target") id)@@ -95,7 +95,7 @@                       True -> do                         let (packageBindings, restBindings) = span isPackage bindings                         bs <- mapM dataizeBindingChain restBindings-                        logStep "Dataized 'Package' siblings" (Left $ Formation (bs ++ packageBindings))+                        logStep "Dataized 'Package' siblings" (AsObject $ Formation (bs ++ packageBindings))                         return (Formation (bs ++ packageBindings), state)                       False ->                         return (Formation bindings, state)
src/Language/EO/Phi/Normalize.hs view
@@ -38,6 +38,7 @@ import Data.Generics.Labels () import GHC.Generics (Generic) import Language.EO.Phi.Rules.Common (lookupBinding, objectBindings)+import Language.EO.Phi.Syntax (desugar) import Language.EO.Phi.Syntax.Abs  data Context = Context@@ -77,6 +78,9 @@   MetaFunction _ _ -> error "To be honest, I'm not sure what should be here"   MetaSubstThis{} -> error "impossible"   MetaContextualize{} -> error "impossible"+  obj@ConstString{} -> peelObject (desugar obj)+  obj@ConstInt{} -> peelObject (desugar obj)+  obj@ConstFloat{} -> peelObject (desugar obj)  where   followedBy (PeeledObject object actions) action = PeeledObject object (actions ++ [action]) 
src/Language/EO/Phi/Rules/Common.hs view
@@ -28,7 +28,6 @@ {-# LANGUAGE GeneralisedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-} {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} @@ -37,50 +36,17 @@ import Control.Applicative (Alternative ((<|>)), asum) import Control.Arrow (Arrow (first)) import Control.Monad-import Data.ByteString (ByteString)-import Data.ByteString qualified as ByteString.Strict-import Data.Char (toUpper) import Data.HashMap.Strict qualified as HashMap-import Data.List (intercalate, minimumBy, nubBy, sortOn)+import Data.List (minimumBy, nubBy, sortOn) import Data.List.NonEmpty (NonEmpty (..), (<|)) import Data.Ord (comparing)-import Data.Serialize qualified as Serialize-import Data.String (IsString (..))-import Data.Text qualified as Text-import Data.Text.Encoding qualified as Text-import Language.EO.Phi.Syntax.Abs-import Language.EO.Phi.Syntax.Lex (Token)-import Language.EO.Phi.Syntax.Par-import Numeric (readHex, showHex)+import Language.EO.Phi.Syntax  -- $setup -- >>> :set -XOverloadedStrings -- >>> :set -XOverloadedLists -- >>> import Language.EO.Phi.Syntax -instance IsString Program where fromString = unsafeParseWith pProgram-instance IsString Object where fromString = unsafeParseWith pObject-instance IsString Binding where fromString = unsafeParseWith pBinding-instance IsString Attribute where fromString = unsafeParseWith pAttribute-instance IsString RuleAttribute where fromString = unsafeParseWith pRuleAttribute-instance IsString PeeledObject where fromString = unsafeParseWith pPeeledObject-instance IsString ObjectHead where fromString = unsafeParseWith pObjectHead--instance IsString MetaId where fromString = unsafeParseWith pMetaId--parseWith :: ([Token] -> Either String a) -> String -> Either String a-parseWith parser input = parser tokens- where-  tokens = myLexer input---- | Parse a 'Object' from a 'String'.--- May throw an 'error` if input has a syntactical or lexical errors.-unsafeParseWith :: ([Token] -> Either String a) -> String -> a-unsafeParseWith parser input =-  case parseWith parser input of-    Left parseError -> error (parseError <> "\non input\n" <> input <> "\n")-    Right object -> object- -- | State of evaluation is not needed yet, but it might be in the future type EvaluationState = () @@ -136,28 +102,32 @@ withSubObject :: (Context -> Object -> [(String, Object)]) -> Context -> Object -> [(String, Object)] withSubObject f ctx root =   f ctx root-    <|> case root of-      Formation bindings ->-        propagateName1 Formation-          <$> withSubObjectBindings f ((extendContextWith root subctx){insideFormation = True, insideAbstractFormation = isAbstract}) bindings-       where-        isAbstract = any isEmptyBinding bindings-      Application obj bindings ->-        asum-          [ propagateName2 Application <$> withSubObject f subctx obj <*> pure bindings-          , propagateName1 (Application obj) <$> withSubObjectBindings f subctx bindings-          ]-      ObjectDispatch obj a -> propagateName2 ObjectDispatch <$> withSubObject f subctx obj <*> pure a-      GlobalObject{} -> []-      ThisObject{} -> []-      Termination -> []-      MetaObject _ -> []-      MetaFunction _ _ -> []-      MetaTailContext{} -> []-      MetaSubstThis _ _ -> []-      MetaContextualize _ _ -> []+    <|> go root  where   subctx = ctx{insideSubObject = True}+  go = \case+    Formation bindings ->+      propagateName1 Formation+        <$> withSubObjectBindings f ((extendContextWith root subctx){insideFormation = True, insideAbstractFormation = isAbstract}) bindings+     where+      isAbstract = any isEmptyBinding bindings+    Application obj bindings ->+      asum+        [ propagateName2 Application <$> withSubObject f subctx obj <*> pure bindings+        , propagateName1 (Application obj) <$> withSubObjectBindings f subctx bindings+        ]+    ObjectDispatch obj a -> propagateName2 ObjectDispatch <$> withSubObject f subctx obj <*> pure a+    GlobalObject{} -> []+    ThisObject{} -> []+    Termination -> []+    MetaObject _ -> []+    MetaFunction _ _ -> []+    MetaTailContext{} -> []+    MetaSubstThis _ _ -> []+    MetaContextualize _ _ -> []+    ConstString{} -> []+    ConstInt{} -> []+    ConstFloat{} -> []  -- | Given a unary function that operates only on plain objects, -- converts it to a function that operates on named objects@@ -225,6 +195,9 @@   MetaSubstThis{} -> 1 -- should be impossible   MetaContextualize{} -> 1 -- should be impossible   MetaTailContext{} -> 1 -- should be impossible+  obj@ConstString{} -> objectSize (desugar obj)+  obj@ConstInt{} -> objectSize (desugar obj)+  obj@ConstFloat{} -> objectSize (desugar obj)  bindingSize :: Binding -> Int bindingSize = \case@@ -417,222 +390,6 @@ objectBindings (Application obj bs) = objectBindings obj ++ bs objectBindings (ObjectDispatch obj _attr) = objectBindings obj objectBindings _ = []--padLeft :: Int -> [Char] -> [Char]-padLeft n s = replicate (n - length s) '0' ++ s---- | Split a list into chunks of given size.--- All lists in the result are guaranteed to have length less than or equal to the given size.------ >>> chunksOf 2 "012345678"--- ["01","23","45","67","8"]------ See 'paddedLeftChunksOf' for a version with padding to guarantee exact chunk size.-chunksOf :: Int -> [a] -> [[a]]-chunksOf _ [] = []-chunksOf n xs = chunk : chunksOf n leftover- where-  (chunk, leftover) = splitAt n xs---- | Split a list into chunks of given size,--- padding on the left if necessary.--- All lists in the result are guaranteed to have given size.------ >>> paddedLeftChunksOf '0' 2 "1234567"--- ["01","23","45","67"]--- >>> paddedLeftChunksOf '0' 2 "123456"--- ["12","34","56"]------ prop> n > 0  ==>  all (\chunk -> length chunk == n) (paddedLeftChunksOf c n s)-paddedLeftChunksOf :: a -> Int -> [a] -> [[a]]-paddedLeftChunksOf padSymbol n xs-  | padSize == n = chunksOf n xs-  | otherwise = chunksOf n (replicate padSize padSymbol ++ xs)- where-  len = length xs-  padSize = n - len `mod` n---- | Normalize the bytestring representation to fit valid 'Bytes' token.------ >>> normalizeBytes "238714ABCDEF"--- "23-87-14-AB-CD-EF"------ >>> normalizeBytes "0238714ABCDEF"--- "00-23-87-14-AB-CD-EF"------ >>> normalizeBytes "4"--- "04-"-normalizeBytes :: String -> String-normalizeBytes = withDashes . paddedLeftChunksOf '0' 2 . map toUpper- where-  withDashes = \case-    [] -> "00-"-    [byte] -> byte <> "-"-    bytes -> intercalate "-" bytes---- | Concatenate 'Bytes'.--- FIXME: we should really use 'ByteString' instead of the underlying 'String' representation.------ >>> concatBytes "00-" "01-02"--- Bytes "00-01-02"------ >>> concatBytes "03-04" "01-02"--- Bytes "03-04-01-02"------ >>> concatBytes "03-04" "01-"--- Bytes "03-04-01"-concatBytes :: Bytes -> Bytes -> Bytes-concatBytes (Bytes xs) (Bytes zs) = Bytes (normalizeBytes (filter (/= '-') (xs <> zs)))---- | Select a slice (section) of 'Bytes'.------ >>> sliceBytes "12-34-56" 1 1--- Bytes "34-"------ >>> sliceBytes "12-34-56" 1 0--- Bytes "00-"------ >>> sliceBytes "12-34-56" 0 2--- Bytes "12-34"-sliceBytes :: Bytes -> Int -> Int -> Bytes-sliceBytes (Bytes bytes) start len = Bytes $ normalizeBytes $ take (2 * len) (drop (2 * start) (filter (/= '-') bytes))---- | Convert an 'Int' into 'Bytes' representation.------ >>> intToBytes 7--- Bytes "00-00-00-00-00-00-00-07"--- >>> intToBytes (3^33)--- Bytes "00-13-BF-EF-A6-5A-BB-83"--- >>> intToBytes (-1)--- Bytes "FF-FF-FF-FF-FF-FF-FF-FF"-intToBytes :: Int -> Bytes-intToBytes n = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode n---- | Parse 'Bytes' as 'Int'.------ >>> bytesToInt "00-13-BF-EF-A6-5A-BB-83"--- 5559060566555523--- >>> bytesToInt "AB-"--- 171------ May error on invalid 'Bytes':------ >>> bytesToInt "s"--- *** Exception: Prelude.head: empty list--- ...--- ...--- ...--- ...--- ...--- ...-bytesToInt :: Bytes -> Int-bytesToInt (Bytes (dropWhile (== '0') . filter (/= '-') -> bytes))-  | null bytes = 0-  | otherwise = fst $ head $ readHex bytes---- | Convert 'Bool' to 'Bytes'.------ >>> boolToBytes False--- Bytes "00-"--- >>> boolToBytes True--- Bytes "01-"-boolToBytes :: Bool -> Bytes-boolToBytes True = Bytes "01-"-boolToBytes False = Bytes "00-"---- | Interpret 'Bytes' as 'Bool'.------ Zero is interpreted as 'False'.------ >>> bytesToBool "00-"--- False------ >>> bytesToBool "00-00"--- False------ Everything else is interpreted as 'True'.------ >>> bytesToBool "01-"--- True------ >>> bytesToBool "00-01"--- True------ >>> bytesToBool "AB-CD"--- True-bytesToBool :: Bytes -> Bool-bytesToBool (Bytes (dropWhile (== '0') . filter (/= '-') -> [])) = False-bytesToBool _ = True---- | Encode 'String' as 'Bytes'.------ >>> stringToBytes "Hello, world!"--- Bytes "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"------ >>> stringToBytes "Привет, мир!"--- Bytes "D0-9F-D1-80-D0-B8-D0-B2-D0-B5-D1-82-2C-20-D0-BC-D0-B8-D1-80-21"------ >>> stringToBytes  "hello, 大家!"--- Bytes "68-65-6C-6C-6F-2C-20-E5-A4-A7-E5-AE-B6-21"-stringToBytes :: String -> Bytes-stringToBytes s = bytestringToBytes $ Text.encodeUtf8 (Text.pack s)--bytestringToBytes :: ByteString -> Bytes-bytestringToBytes = Bytes . normalizeBytes . foldMap (padLeft 2 . (`showHex` "")) . ByteString.Strict.unpack--bytesToByteString :: Bytes -> ByteString-bytesToByteString (Bytes bytes) = ByteString.Strict.pack (go (filter (/= '-') bytes))- where-  go [] = []-  go (x : y : xs) = fst (head (readHex [x, y])) : go xs-  go [_] = error "impossible: partial byte"---- | Decode 'String' from 'Bytes'.------ >>> bytesToString "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"--- "Hello, world!"-bytesToString :: Bytes -> String-bytesToString = Text.unpack . Text.decodeUtf8 . bytesToByteString---- | Encode 'Double' as 'Bytes' following IEEE754.------ Note: it is called "float" in EO, but it actually occupies 8 bytes so it corresponds to 'Double'.------ >>> floatToBytes 0--- Bytes "00-00-00-00-00-00-00-00"------ >>> floatToBytes (-0.1)--- Bytes "BF-B9-99-99-99-99-99-9A"------ >>> floatToBytes (1/0)       -- Infinity--- Bytes "7F-F0-00-00-00-00-00-00"------ >>> floatToBytes (asin 2) `elem` ["FF-F8-00-00-00-00-00-00", "7F-F8-00-00-00-00-00-00"]  -- sNaN or qNaN--- True-floatToBytes :: Double -> Bytes-floatToBytes f = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode f---- | Decode 'Double' from 'Bytes' following IEEE754.------ >>> bytesToFloat "00-00-00-00-00-00-00-00"--- 0.0------ >>> bytesToFloat "BF-B9-99-99-99-99-99-9A"--- -0.1------ >>> bytesToFloat "7F-F0-00-00-00-00-00-00"--- Infinity------ >>> bytesToFloat "FF-F8-00-00-00-00-00-00"--- NaN-bytesToFloat :: Bytes -> Double-bytesToFloat (Bytes bytes) =-  case Serialize.decode $ ByteString.Strict.pack $ map (fst . head . readHex) $ words (map dashToSpace bytes) of-    Left msg -> error msg-    Right x -> x- where-  dashToSpace '-' = ' '-  dashToSpace c = c  isRhoBinding :: Binding -> Bool isRhoBinding (AlphaBinding Rho _) = True
src/Language/EO/Phi/Rules/Fast.hs view
@@ -29,7 +29,7 @@ import Data.List.NonEmpty qualified as NonEmpty import Language.EO.Phi.Rules.Common import Language.EO.Phi.Rules.Yaml qualified as Yaml-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax  -- $setup -- >>> :set -XOverloadedStrings@@ -211,3 +211,6 @@   MetaObject{} -> error "impossible MetaObject!"   MetaTailContext{} -> error "impossible MetaTailContext!"   MetaFunction{} -> error "impossible MetaFunction!"+  obj@ConstString{} -> obj -- fastYegorInsideOut ctx (desugar obj)+  obj@ConstInt{} -> obj -- fastYegorInsideOut ctx (desugar obj)+  obj@ConstFloat{} -> obj -- fastYegorInsideOut ctx (desugar obj)
src/Language/EO/Phi/Rules/Yaml.hs view
@@ -52,10 +52,9 @@ import Data.Yaml qualified as Yaml import GHC.Generics (Generic) -import Language.EO.Phi (printTree) import Language.EO.Phi.Rules.Common (Context (..), NamedRule) import Language.EO.Phi.Rules.Common qualified as Common-import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax import PyF (fmt)  -- $setup@@ -239,6 +238,9 @@   MetaTailContext obj _ -> objectLabelIds obj   MetaSubstThis obj obj' -> objectLabelIds obj <> objectLabelIds obj'   MetaContextualize obj obj' -> objectLabelIds obj <> objectLabelIds obj'+  obj@ConstString{} -> objectLabelIds (desugar obj)+  obj@ConstInt{} -> objectLabelIds (desugar obj)+  obj@ConstFloat{} -> objectLabelIds (desugar obj)  bindingLabelIds :: Binding -> Set LabelId bindingLabelIds = \case@@ -283,6 +285,9 @@ objectMetaIds (MetaTailContext obj x) = objectMetaIds obj <> Set.singleton (MetaIdTail x) objectMetaIds (MetaSubstThis obj obj') = foldMap objectMetaIds [obj, obj'] objectMetaIds (MetaContextualize obj obj') = foldMap objectMetaIds [obj, obj']+objectMetaIds obj@ConstString{} = objectMetaIds (desugar obj)+objectMetaIds obj@ConstInt{} = objectMetaIds (desugar obj)+objectMetaIds obj@ConstFloat{} = objectMetaIds (desugar obj)  bindingMetaIds :: Binding -> Set MetaId bindingMetaIds (AlphaBinding attr obj) = attrMetaIds attr <> objectMetaIds obj@@ -312,6 +317,9 @@ objectHasMetavars MetaTailContext{} = True objectHasMetavars (MetaSubstThis _ _) = True -- technically not a metavar, but a substitution objectHasMetavars (MetaContextualize _ _) = True+objectHasMetavars obj@ConstString{} = objectHasMetavars (desugar obj)+objectHasMetavars obj@ConstInt{} = objectHasMetavars (desugar obj)+objectHasMetavars obj@ConstFloat{} = objectHasMetavars (desugar obj)  bindingHasMetavars :: Binding -> Bool bindingHasMetavars (AlphaBinding attr obj) = attrHasMetavars attr || objectHasMetavars obj@@ -440,6 +448,9 @@       Just OneHoleContext{..} ->         let holeSubst = mempty{objectMetas = [(holeMetaId, applySubst subst obj)]}          in applySubst holeSubst contextObject+  obj@ConstString{} -> applySubst subst (desugar obj)+  obj@ConstInt{} -> applySubst subst (desugar obj)+  obj@ConstFloat{} -> applySubst subst (desugar obj)  applySubstAttr :: Subst -> Attribute -> Attribute applySubstAttr Subst{..} = \case@@ -508,6 +519,9 @@     GlobalObject -> []     ThisObject -> []     Termination -> []+    ConstString{} -> []+    ConstInt{} -> []+    ConstFloat{} -> []     -- should cases below be errors?     MetaSubstThis{} -> []     MetaContextualize{} -> []@@ -621,6 +635,9 @@     obj@MetaSubstThis{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)     obj@MetaObject{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)     obj@MetaFunction{} -> error ("impossible: trying to substitute ξ in " <> printTree obj)+    obj@ConstString{} -> obj+    obj@ConstInt{} -> obj+    obj@ConstFloat{} -> obj  -- {⟦ x ↦ ⟦ b ↦ ⟦ Δ ⤍ 01- ⟧, φ ↦ ⟦ b ↦ ⟦ Δ ⤍ 02- ⟧, c ↦ ⟦ a ↦ ξ.ρ.ρ.b ⟧.a ⟧.c ⟧.φ, λ ⤍ Package ⟧} @@ -651,6 +668,9 @@     obj@MetaSubstThis{} -> error ("impossible: trying to contextualize " <> printTree obj)     obj@MetaObject{} -> error ("impossible: trying to contextualize " <> printTree obj)     obj@MetaFunction{} -> error ("impossible: trying to contextualize " <> printTree obj)+    obj@ConstString{} -> go (desugar obj)+    obj@ConstInt{} -> go (desugar obj)+    obj@ConstFloat{} -> go (desugar obj)  contextualizeBinding :: Object -> Binding -> Binding contextualizeBinding obj = \case
src/Language/EO/Phi/Syntax.hs view
@@ -22,19 +22,121 @@ -- SOFTWARE. {- FOURMOLU_ENABLE -} {-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Wno-orphans #-}  module Language.EO.Phi.Syntax (   module Language.EO.Phi.Syntax.Abs,+  desugar,   printTree,   shrinkDots,++  -- * Conversion to 'Bytes'+  intToBytes,+  floatToBytes,+  boolToBytes,+  stringToBytes,++  -- * Conversion from 'Bytes'+  bytesToInt,+  bytesToFloat,+  bytesToString,+  bytesToBool,++  -- * Wrapping 'Bytes' into 'Object'+  wrapBytesInConstInt,+  wrapBytesInConstFloat,+  wrapBytesInConstString,+  wrapBytesInBytes,+  wrapBytesInInt,+  wrapBytesInFloat,+  wrapBytesAsBool,+  wrapBytesInString,+  wrapTermination,++  -- * Functions over 'Bytes'+  sliceBytes,+  concatBytes,++  -- * Helpers+  chunksOf,+  paddedLeftChunksOf,+  normalizeBytes,+  parseWith, ) where -import Data.Char (isSpace)-import Language.EO.Phi.Rules.Common ()+import Data.ByteString (ByteString)+import Data.ByteString qualified as ByteString.Strict+import Data.Char (isSpace, toUpper)+import Data.List (intercalate)+import Data.Serialize qualified as Serialize+import Data.String (IsString (fromString))+import Data.Text qualified as Text+import Data.Text.Encoding qualified as Text import Language.EO.Phi.Syntax.Abs+import Language.EO.Phi.Syntax.Lex (Token)+import Language.EO.Phi.Syntax.Par import Language.EO.Phi.Syntax.Print qualified as Phi+import Numeric (readHex, showHex)+import PyF (fmt) +-- $setup+-- >>> :set -XOverloadedStrings+-- >>> :set -XOverloadedLists++desugar :: Object -> Object+desugar = \case+  ConstString string -> wrapBytesInString (stringToBytes string)+  ConstInt n -> wrapBytesInInt (intToBytes (fromInteger n))+  ConstFloat x -> wrapBytesInFloat (floatToBytes x)+  Formation bindings -> Formation (map desugarBinding bindings)+  Application obj bindings -> Application (desugar obj) (map desugarBinding bindings)+  ObjectDispatch obj a -> ObjectDispatch (desugar obj) a+  GlobalObject -> GlobalObject+  ThisObject -> ThisObject+  Termination -> Termination+  MetaSubstThis obj this -> MetaSubstThis (desugar obj) (desugar this)+  obj@MetaObject{} -> obj+  MetaContextualize obj1 obj2 -> MetaContextualize (desugar obj1) (desugar obj2)+  MetaTailContext obj metaId -> MetaTailContext (desugar obj) metaId+  MetaFunction name obj -> MetaFunction name (desugar obj)++desugarBinding :: Binding -> Binding+desugarBinding = \case+  AlphaBinding a obj -> AlphaBinding a (desugar obj)+  binding -> binding++-- MetaSubstThis++wrapBytesInInt :: Bytes -> Object+wrapBytesInInt (Bytes bytes) = [fmt|Φ.org.eolang.int(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInFloat :: Bytes -> Object+wrapBytesInFloat (Bytes bytes) = [fmt|Φ.org.eolang.float(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInString :: Bytes -> Object+wrapBytesInString (Bytes bytes) = [fmt|Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes}))|]+wrapBytesInBytes :: Bytes -> Object+wrapBytesInBytes (Bytes bytes) = [fmt|Φ.org.eolang.bytes(Δ ⤍ {bytes})|]+wrapTermination :: Object+wrapTermination = [fmt|Φ.org.eolang.error(α0 ↦ Φ.org.eolang.string(as-bytes ↦ Φ.org.eolang.bytes(Δ ⤍ {bytes})))|]+ where+  Bytes bytes = stringToBytes "unknown error"++wrapBytesInConstInt :: Bytes -> Object+wrapBytesInConstInt bytes = [fmt|Φ.org.eolang.int(as-bytes ↦ {bytesToInt bytes})|]++wrapBytesInConstFloat :: Bytes -> Object+wrapBytesInConstFloat bytes = [fmt|Φ.org.eolang.float(as-bytes ↦ {bytesToFloat bytes})|]++wrapBytesInConstString :: Bytes -> Object+wrapBytesInConstString bytes = [fmt|Φ.org.eolang.string(as-bytes ↦ {show (bytesToString bytes)})|]++wrapBytesAsBool :: Bytes -> Object+wrapBytesAsBool bytes+  | bytesToInt bytes == 0 = [fmt|Φ.org.eolang.false|]+  | otherwise = [fmt|Φ.org.eolang.true|]+ -- * Overriding generated pretty-printer  -- | Like 'Phi.printTree', but without spaces around dots and no indentation for curly braces.@@ -125,3 +227,243 @@   -- Make sure we are on a fresh line.   onNewLine :: Int -> Bool -> ShowS   onNewLine i p = (if p then id else showChar '\n') . indent i++padLeft :: Int -> [Char] -> [Char]+padLeft n s = replicate (n - length s) '0' ++ s++-- | Split a list into chunks of given size.+-- All lists in the result are guaranteed to have length less than or equal to the given size.+--+-- >>> chunksOf 2 "012345678"+-- ["01","23","45","67","8"]+--+-- See 'paddedLeftChunksOf' for a version with padding to guarantee exact chunk size.+chunksOf :: Int -> [a] -> [[a]]+chunksOf _ [] = []+chunksOf n xs = chunk : chunksOf n leftover+ where+  (chunk, leftover) = splitAt n xs++-- | Split a list into chunks of given size,+-- padding on the left if necessary.+-- All lists in the result are guaranteed to have given size.+--+-- >>> paddedLeftChunksOf '0' 2 "1234567"+-- ["01","23","45","67"]+-- >>> paddedLeftChunksOf '0' 2 "123456"+-- ["12","34","56"]+--+-- prop> n > 0  ==>  all (\chunk -> length chunk == n) (paddedLeftChunksOf c n s)+paddedLeftChunksOf :: a -> Int -> [a] -> [[a]]+paddedLeftChunksOf padSymbol n xs+  | padSize == n = chunksOf n xs+  | otherwise = chunksOf n (replicate padSize padSymbol ++ xs)+ where+  len = length xs+  padSize = n - len `mod` n++-- | Normalize the bytestring representation to fit valid 'Bytes' token.+--+-- >>> normalizeBytes "238714ABCDEF"+-- "23-87-14-AB-CD-EF"+--+-- >>> normalizeBytes "0238714ABCDEF"+-- "00-23-87-14-AB-CD-EF"+--+-- >>> normalizeBytes "4"+-- "04-"+normalizeBytes :: String -> String+normalizeBytes = withDashes . paddedLeftChunksOf '0' 2 . map toUpper+ where+  withDashes = \case+    [] -> "00-"+    [byte] -> byte <> "-"+    bytes -> intercalate "-" bytes++-- | Concatenate 'Bytes'.+-- FIXME: we should really use 'ByteString' instead of the underlying 'String' representation.+--+-- >>> concatBytes "00-" "01-02"+-- Bytes "00-01-02"+--+-- >>> concatBytes "03-04" "01-02"+-- Bytes "03-04-01-02"+--+-- >>> concatBytes "03-04" "01-"+-- Bytes "03-04-01"+concatBytes :: Bytes -> Bytes -> Bytes+concatBytes (Bytes xs) (Bytes zs) = Bytes (normalizeBytes (filter (/= '-') (xs <> zs)))++-- | Select a slice (section) of 'Bytes'.+--+-- >>> sliceBytes "12-34-56" 1 1+-- Bytes "34-"+--+-- >>> sliceBytes "12-34-56" 1 0+-- Bytes "00-"+--+-- >>> sliceBytes "12-34-56" 0 2+-- Bytes "12-34"+sliceBytes :: Bytes -> Int -> Int -> Bytes+sliceBytes (Bytes bytes) start len = Bytes $ normalizeBytes $ take (2 * len) (drop (2 * start) (filter (/= '-') bytes))++-- | Convert an 'Int' into 'Bytes' representation.+--+-- >>> intToBytes 7+-- Bytes "00-00-00-00-00-00-00-07"+-- >>> intToBytes (3^33)+-- Bytes "00-13-BF-EF-A6-5A-BB-83"+-- >>> intToBytes (-1)+-- Bytes "FF-FF-FF-FF-FF-FF-FF-FF"+intToBytes :: Int -> Bytes+intToBytes n = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode n++-- | Parse 'Bytes' as 'Int'.+--+-- >>> bytesToInt "00-13-BF-EF-A6-5A-BB-83"+-- 5559060566555523+-- >>> bytesToInt "AB-"+-- 171+--+-- May error on invalid 'Bytes':+--+-- >>> bytesToInt "s"+-- *** Exception: Prelude.head: empty list+-- ...+-- ...+-- ...+-- ...+-- ...+-- ...+bytesToInt :: Bytes -> Int+bytesToInt (Bytes (dropWhile (== '0') . filter (/= '-') -> bytes))+  | null bytes = 0+  | otherwise = fst $ head $ readHex bytes++-- | Convert 'Bool' to 'Bytes'.+--+-- >>> boolToBytes False+-- Bytes "00-"+-- >>> boolToBytes True+-- Bytes "01-"+boolToBytes :: Bool -> Bytes+boolToBytes True = Bytes "01-"+boolToBytes False = Bytes "00-"++-- | Interpret 'Bytes' as 'Bool'.+--+-- Zero is interpreted as 'False'.+--+-- >>> bytesToBool "00-"+-- False+--+-- >>> bytesToBool "00-00"+-- False+--+-- Everything else is interpreted as 'True'.+--+-- >>> bytesToBool "01-"+-- True+--+-- >>> bytesToBool "00-01"+-- True+--+-- >>> bytesToBool "AB-CD"+-- True+bytesToBool :: Bytes -> Bool+bytesToBool (Bytes (dropWhile (== '0') . filter (/= '-') -> [])) = False+bytesToBool _ = True++-- | Encode 'String' as 'Bytes'.+--+-- >>> stringToBytes "Hello, world!"+-- Bytes "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"+--+-- >>> stringToBytes "Привет, мир!"+-- Bytes "D0-9F-D1-80-D0-B8-D0-B2-D0-B5-D1-82-2C-20-D0-BC-D0-B8-D1-80-21"+--+-- >>> stringToBytes  "hello, 大家!"+-- Bytes "68-65-6C-6C-6F-2C-20-E5-A4-A7-E5-AE-B6-21"+stringToBytes :: String -> Bytes+stringToBytes s = bytestringToBytes $ Text.encodeUtf8 (Text.pack s)++bytestringToBytes :: ByteString -> Bytes+bytestringToBytes = Bytes . normalizeBytes . foldMap (padLeft 2 . (`showHex` "")) . ByteString.Strict.unpack++bytesToByteString :: Bytes -> ByteString+bytesToByteString (Bytes bytes) = ByteString.Strict.pack (go (filter (/= '-') bytes))+ where+  go [] = []+  go (x : y : xs) = fst (head (readHex [x, y])) : go xs+  go [_] = error "impossible: partial byte"++-- | Decode 'String' from 'Bytes'.+--+-- >>> bytesToString "48-65-6C-6C-6F-2C-20-77-6F-72-6C-64-21"+-- "Hello, world!"+bytesToString :: Bytes -> String+bytesToString = Text.unpack . Text.decodeUtf8 . bytesToByteString++-- | Encode 'Double' as 'Bytes' following IEEE754.+--+-- Note: it is called "float" in EO, but it actually occupies 8 bytes so it corresponds to 'Double'.+--+-- >>> floatToBytes 0+-- Bytes "00-00-00-00-00-00-00-00"+--+-- >>> floatToBytes (-0.1)+-- Bytes "BF-B9-99-99-99-99-99-9A"+--+-- >>> floatToBytes (1/0)       -- Infinity+-- Bytes "7F-F0-00-00-00-00-00-00"+--+-- >>> floatToBytes (asin 2) `elem` ["FF-F8-00-00-00-00-00-00", "7F-F8-00-00-00-00-00-00"]  -- sNaN or qNaN+-- True+floatToBytes :: Double -> Bytes+floatToBytes f = Bytes $ normalizeBytes $ foldMap (padLeft 2 . (`showHex` "")) $ ByteString.Strict.unpack $ Serialize.encode f++-- | Decode 'Double' from 'Bytes' following IEEE754.+--+-- >>> bytesToFloat "00-00-00-00-00-00-00-00"+-- 0.0+--+-- >>> bytesToFloat "BF-B9-99-99-99-99-99-9A"+-- -0.1+--+-- >>> bytesToFloat "7F-F0-00-00-00-00-00-00"+-- Infinity+--+-- >>> bytesToFloat "FF-F8-00-00-00-00-00-00"+-- NaN+bytesToFloat :: Bytes -> Double+bytesToFloat (Bytes bytes) =+  case Serialize.decode $ ByteString.Strict.pack $ map (fst . head . readHex) $ words (map dashToSpace bytes) of+    Left msg -> error msg+    Right x -> x+ where+  dashToSpace '-' = ' '+  dashToSpace c = c++instance IsString Program where fromString = unsafeParseWith pProgram+instance IsString Object where fromString = unsafeParseWith pObject+instance IsString Binding where fromString = unsafeParseWith pBinding+instance IsString Attribute where fromString = unsafeParseWith pAttribute+instance IsString RuleAttribute where fromString = unsafeParseWith pRuleAttribute+instance IsString PeeledObject where fromString = unsafeParseWith pPeeledObject+instance IsString ObjectHead where fromString = unsafeParseWith pObjectHead++instance IsString MetaId where fromString = unsafeParseWith pMetaId++parseWith :: ([Token] -> Either String a) -> String -> Either String a+parseWith parser input = either (\x -> Left [fmt|{x}\non the input:\n{input}|]) Right parsed+ where+  tokens = myLexer input+  parsed = parser tokens++-- | Parse a 'Object' from a 'String'.+-- May throw an 'error` if input has a syntactical or lexical errors.+unsafeParseWith :: ([Token] -> Either String a) -> String -> a+unsafeParseWith parser input =+  case parseWith parser input of+    Left parseError -> error parseError+    Right object -> object
src/Language/EO/Phi/Syntax/Abs.hs view
@@ -41,7 +41,7 @@  module Language.EO.Phi.Syntax.Abs where -import Prelude (String)+import Prelude (Double, Integer, String) import qualified Prelude as C (Eq, Ord, Show, Read) import qualified Data.String @@ -66,6 +66,9 @@     | GlobalObject     | ThisObject     | Termination+    | ConstString String+    | ConstInt Integer+    | ConstFloat Double     | MetaSubstThis Object Object     | MetaContextualize Object Object     | MetaObject ObjectMetaId
src/Language/EO/Phi/Syntax/Lex.hs view
@@ -27,20709 +27,22493 @@ alex_tab_size :: Int alex_tab_size = 8 alex_base :: Array Int Int-alex_base = listArray (0 :: Int, 152)-  [ -8-  , 76-  , -73-  , 140-  , -153-  , -159-  , 268-  , 396-  , 652-  , 771-  , 0-  , 0-  , 0-  , 884-  , 949-  , 1013-  , -150-  , -156-  , 1141-  , 1269-  , 1525-  , 1644-  , 0-  , 0-  , 0-  , 1757-  , 1822-  , 1886-  , -147-  , -152-  , 2014-  , 2078-  , 2206-  , 2462-  , 2581-  , 0-  , 0-  , 0-  , 2694-  , 2759-  , 2823-  , -146-  , -29-  , 2951-  , 3015-  , 770-  , -28-  , 800-  , 823-  , 1643-  , -111-  , 1538-  , -145-  , 50-  , -140-  , -138-  , 3079-  , 3207-  , 3463-  , 3582-  , 0-  , 0-  , 0-  , 3695-  , 3760-  , 3824-  , -139-  , -136-  , 3952-  , 4080-  , 4336-  , 4455-  , 4583-  , 4727-  , 8-  , 0-  , 4808-  , 5064-  , 5065-  , 5193-  , 4658-  , 5258-  , 5371-  , 0-  , 0-  , 0-  , 0-  , 5585-  , 5799-  , 6055-  , 6056-  , 6184-  , 5441-  , 5651-  , 6297-  , 0-  , 0-  , 0-  , 6487-  , 183-  , 0-  , -143-  , -122-  , -85-  , -98-  , 0-  , 9-  , 6631-  , 6876-  , 7121-  , 7357-  , 7613-  , 7614-  , 7742-  , -80-  , -106-  , 6567-  , 6813-  , 7855-  , 0-  , 0-  , 0-  , 8111-  , 8347-  , 8603-  , 8604-  , 8732-  , 34-  , -75-  , 7057-  , 8048-  , 8845-  , 0-  , 0-  , 0-  , 737-  , 0-  , 1610-  , 9092-  , -44-  , 9348-  , 9349-  , 9477-  , 36-  , -43-  , 9541-  , 9606-  , 9719-  , 0-  , 0-  , 0-  , 0-  , 0-  ]--alex_table :: Array Int Int-alex_table = listArray (0 :: Int, 9974)-  [ 0-  , 99-  , 99-  , 99-  , 99-  , 99-  , 5-  , -1-  , -1-  , 17-  , -1-  , -1-  , 29-  , 55-  , -1-  , -1-  , 45-  , 48-  , 100-  , 100-  , 67-  , 100-  , 100-  , 100-  , 99-  , 98-  , 100-  , 100-  , -1-  , -1-  , -1-  , -1-  , 100-  , 100-  , 100-  , 100-  , 100-  , 106-  , 100-  , 74-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 47-  , 88-  , 100-  , 100-  , 114-  , 105-  , 76-  , 71-  , 108-  , 108-  , 108-  , 108-  , 108-  , 108-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 100-  , 127-  , 100-  , -1-  , -1-  , 138-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 100-  , 143-  , 100-  , 3-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 52-  , 0-  , 104-  , 43-  , 101-  , 0-  , 103-  , 0-  , 99-  , 99-  , 99-  , 99-  , 99-  , 0-  , 51-  , 50-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 54-  , 0-  , 0-  , 0-  , 0-  , 102-  , 99-  , 0-  , 0-  , 53-  , 2-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 7-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 8-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 42-  , 42-  , 42-  , 42-  , 42-  , 42-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 49-  , 49-  , 49-  , 49-  , 49-  , 49-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 8-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 151-  , 3-  , 7-  , 75-  , 4-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 75-  , 2-  , 6-  , 152-  , 152-  , 152-  , 1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 14-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 15-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 19-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 20-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 136-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 135-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 100-  , 0-  , -1-  , -1-  , -1-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 0-  , -1-  , -1-  , 100-  , 0-  , 0-  , -1-  , 46-  , 46-  , 46-  , 46-  , 46-  , 46-  , 0-  , 137-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 100-  , 0-  , 0-  , 100-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 20-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 12-  , 15-  , 19-  , 11-  , 16-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 11-  , 14-  , 18-  , 10-  , 10-  , 10-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 26-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 27-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 32-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 33-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 33-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 24-  , 27-  , 32-  , 23-  , 28-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 23-  , 26-  , 31-  , 22-  , 22-  , 22-  , 25-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 40-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 57-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 58-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 37-  , 40-  , 57-  , 36-  , 41-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 36-  , 39-  , 56-  , 35-  , 35-  , 35-  , 38-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 64-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 69-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 70-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 70-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 62-  , 65-  , 69-  , 61-  , 66-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 61-  , 64-  , 68-  , 60-  , 60-  , 60-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 0-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , -1-  , 0-  , 0-  , 0-  , 73-  , 0-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , 73-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 72-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 77-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 80-  , 78-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 81-  , 79-  , 85-  , 85-  , 85-  , 82-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 77-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 83-  , 78-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 84-  , 80-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 81-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 87-  , 0-  , 0-  , 0-  , 0-  , 86-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 89-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 92-  , 90-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 93-  , 91-  , 97-  , 97-  , 97-  , 94-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 87-  , 92-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 89-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 92-  , 90-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 93-  , 91-  , 97-  , 97-  , 97-  , 94-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 89-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 95-  , 90-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 96-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 21-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 34-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 9-  , 0-  , 0-  , 0-  , 0-  , 59-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 73-  , 0-  , 0-  , 110-  , 110-  , 0-  , 0-  , 0-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 0-  , 110-  , 110-  , 110-  , 139-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 110-  , 0-  , 110-  , 107-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 0-  , 0-  , 110-  , 110-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 111-  , 44-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 116-  , 112-  , 120-  , 115-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 117-  , 113-  , 121-  , 121-  , 121-  , 118-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 73-  , 0-  , 0-  , 110-  , 110-  , 0-  , 0-  , 0-  , 110-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 0-  , 0-  , 110-  , 110-  , 110-  , 0-  , 110-  , 109-  , 109-  , 109-  , 109-  , 109-  , 109-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 110-  , 0-  , 110-  , 107-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 0-  , 0-  , 110-  , 110-  , 116-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 111-  , 44-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 116-  , 112-  , 120-  , 115-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 117-  , 113-  , 121-  , 121-  , 121-  , 118-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 110-  , 0-  , 0-  , 110-  , 110-  , 110-  , 110-  , 110-  , 73-  , 0-  , 0-  , 110-  , 110-  , 0-  , 45-  , 0-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 0-  , 110-  , 110-  , 110-  , 0-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 110-  , 0-  , 110-  , 107-  , 110-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 107-  , 0-  , 0-  , 0-  , 110-  , 110-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , 111-  , 44-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 116-  , 112-  , 120-  , 115-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 117-  , 113-  , 121-  , 121-  , 121-  , 118-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 111-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 116-  , 112-  , 120-  , 115-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 117-  , 113-  , 121-  , 121-  , 121-  , 118-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 111-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 119-  , 112-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 120-  , 117-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 0-  , 0-  , 123-  , 123-  , 0-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 123-  , 0-  , 0-  , 123-  , 123-  , 123-  , 123-  , 123-  , 73-  , 0-  , 0-  , 123-  , 123-  , 0-  , 123-  , 0-  , 123-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 0-  , 123-  , 123-  , 123-  , 0-  , 123-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 123-  , 0-  , 123-  , 122-  , 123-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 122-  , 0-  , 0-  , 0-  , 123-  , 123-  , 129-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 124-  , 30-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 129-  , 125-  , 133-  , 128-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 130-  , 126-  , 134-  , 134-  , 134-  , 131-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 124-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 129-  , 125-  , 133-  , 128-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 130-  , 126-  , 134-  , 134-  , 134-  , 131-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 124-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 132-  , 125-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 133-  , 130-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , 0-  , 0-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , 0-  , -1-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , 0-  , -1-  , -1-  , -1-  , 0-  , 0-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 140-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 145-  , 141-  , 149-  , 144-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 146-  , 142-  , 150-  , 150-  , 150-  , 147-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 140-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 148-  , 141-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , 149-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 145-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 146-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  ]--alex_check :: Array Int Int-alex_check = listArray (0 :: Int, 9974)-  [ -1-  , 9-  , 10-  , 11-  , 12-  , 13-  , 159-  , 166-  , 167-  , 159-  , 166-  , 167-  , 159-  , 159-  , 166-  , 167-  , 45-  , 45-  , 129-  , 141-  , 159-  , 166-  , 165-  , 134-  , 32-  , 33-  , 166-  , 167-  , 166-  , 167-  , 166-  , 167-  , 40-  , 41-  , 42-  , 133-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 42-  , 136-  , 137-  , 159-  , 45-  , 47-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 159-  , 93-  , 166-  , 167-  , 132-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 159-  , 125-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , 134-  , -1-  , 136-  , 195-  , 138-  , -1-  , 140-  , -1-  , 9-  , 10-  , 11-  , 12-  , 13-  , -1-  , 206-  , 207-  , 166-  , 167-  , 166-  , 167-  , -1-  , -1-  , -1-  , -1-  , -1-  , 159-  , -1-  , -1-  , -1-  , -1-  , 164-  , 32-  , -1-  , -1-  , 226-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , 148-  , -1-  , 44-  , 45-  , 46-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , 58-  , 59-  , 166-  , -1-  , -1-  , 63-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , -1-  , 177-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 187-  , -1-  , -1-  , 190-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , -1-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , -1-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 39-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 10-  , -1-  , -1-  , -1-  , 95-  , -1-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 195-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 42-  , -1-  , -1-  , -1-  , -1-  , 47-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 42-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 66-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 98-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 116-  , -1-  , -1-  , -1-  , -1-  , 121-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , -1-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , 207-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , -1-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , 45-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , -1-  , -1-  , 11-  , 12-  , -1-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , -1-  , -1-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , -1-  , -1-  , 42-  , 43-  , -1-  , 45-  , -1-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , -1-  , -1-  , 60-  , 61-  , 62-  , -1-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , -1-  , 92-  , -1-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , -1-  , -1-  , -1-  , 126-  , 127-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , -1-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , -1-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 9-  , 10-  , -1-  , -1-  , 13-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 32-  , 33-  , -1-  , -1-  , -1-  , -1-  , -1-  , 39-  , 40-  , 41-  , -1-  , -1-  , 44-  , 45-  , 46-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 58-  , 59-  , -1-  , -1-  , -1-  , 63-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 91-  , -1-  , 93-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 123-  , 124-  , 125-  , -1-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 0-  , 1-  , 2-  , 3-  , 4-  , 5-  , 6-  , 7-  , 8-  , 9-  , 10-  , 11-  , 12-  , 13-  , 14-  , 15-  , 16-  , 17-  , 18-  , 19-  , 20-  , 21-  , 22-  , 23-  , 24-  , 25-  , 26-  , 27-  , 28-  , 29-  , 30-  , 31-  , 32-  , 33-  , 34-  , 35-  , 36-  , 37-  , 38-  , 39-  , 40-  , 41-  , 42-  , 43-  , 44-  , 45-  , 46-  , 47-  , 48-  , 49-  , 50-  , 51-  , 52-  , 53-  , 54-  , 55-  , 56-  , 57-  , 58-  , 59-  , 60-  , 61-  , 62-  , 63-  , 64-  , 65-  , 66-  , 67-  , 68-  , 69-  , 70-  , 71-  , 72-  , 73-  , 74-  , 75-  , 76-  , 77-  , 78-  , 79-  , 80-  , 81-  , 82-  , 83-  , 84-  , 85-  , 86-  , 87-  , 88-  , 89-  , 90-  , 91-  , 92-  , 93-  , 94-  , 95-  , 96-  , 97-  , 98-  , 99-  , 100-  , 101-  , 102-  , 103-  , 104-  , 105-  , 106-  , 107-  , 108-  , 109-  , 110-  , 111-  , 112-  , 113-  , 114-  , 115-  , 116-  , 117-  , 118-  , 119-  , 120-  , 121-  , 122-  , 123-  , 124-  , 125-  , 126-  , 127-  , -1-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 128-  , 129-  , 130-  , 131-  , 132-  , 133-  , 134-  , 135-  , 136-  , 137-  , 138-  , 139-  , 140-  , 141-  , 142-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  , 143-  , 144-  , 145-  , 146-  , 147-  , 148-  , 149-  , 150-  , 151-  , 152-  , 153-  , 154-  , 155-  , 156-  , 157-  , 158-  , 159-  , 160-  , 161-  , 162-  , 163-  , 164-  , 165-  , 166-  , 167-  , 168-  , 169-  , 170-  , 171-  , 172-  , 173-  , 174-  , 175-  , 176-  , 177-  , 178-  , 179-  , 180-  , 181-  , 182-  , 183-  , 184-  , 185-  , 186-  , 187-  , 188-  , 189-  , 190-  , 191-  , 192-  , 193-  , 194-  , 195-  , 196-  , 197-  , 198-  , 199-  , 200-  , 201-  , 202-  , 203-  , 204-  , 205-  , 206-  , 207-  , 208-  , 209-  , 210-  , 211-  , 212-  , 213-  , 214-  , 215-  , 216-  , 217-  , 218-  , 219-  , 220-  , 221-  , 222-  , 223-  , 224-  , 225-  , 226-  , 227-  , 228-  , 229-  , 230-  , 231-  , 232-  , 233-  , 234-  , 235-  , 236-  , 237-  , 238-  , 239-  , 240-  , 241-  , 242-  , 243-  , 244-  , 245-  , 246-  , 247-  , 248-  , 249-  , 250-  , 251-  , 252-  , 253-  , 254-  , 255-  ]--alex_deflt :: Array Int Int-alex_deflt = listArray (0 :: Int, 152)-  [ -1-  , 75-  , 151-  , 9-  , 151-  , 9-  , -1-  , -1-  , 9-  , 9-  , 11-  , 12-  , 21-  , 11-  , 12-  , 21-  , 12-  , 21-  , -1-  , -1-  , 21-  , 21-  , 23-  , 24-  , 34-  , 23-  , 24-  , 34-  , 24-  , 34-  , 123-  , -1-  , -1-  , 34-  , 34-  , 36-  , 37-  , 59-  , 36-  , 37-  , 59-  , 37-  , -1-  , -1-  , 110-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 59-  , -1-  , -1-  , 59-  , 59-  , 61-  , 62-  , 71-  , 61-  , 62-  , 71-  , 62-  , 71-  , -1-  , -1-  , 71-  , 71-  , -1-  , -1-  , -1-  , 151-  , 76-  , 76-  , -1-  , -1-  , 76-  , 83-  , 84-  , 76-  , 83-  , 84-  , -1-  , 88-  , 88-  , 88-  , -1-  , -1-  , 88-  , 95-  , 96-  , 88-  , 95-  , 96-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , -1-  , 110-  , 110-  , -1-  , -1-  , 110-  , 119-  , 110-  , 119-  , 120-  , 110-  , 119-  , 120-  , -1-  , 123-  , 123-  , -1-  , -1-  , 123-  , 132-  , 123-  , 132-  , 133-  , 123-  , 132-  , 133-  , -1-  , -1-  , -1-  , 138-  , -1-  , 138-  , -1-  , -1-  , 138-  , 148-  , 138-  , 148-  , 149-  , 138-  , 148-  , 149-  , 9-  , 75-  ]--alex_accept = listArray (0 :: Int, 152)-  [ AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 18-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 17-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 16-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 15-  , AlexAcc 14-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 13-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 12-  , AlexAccNone-  , AlexAcc 11-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccSkip-  , AlexAcc 10-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 9-  , AlexAccNone-  , AlexAcc 8-  , AlexAcc 7-  , AlexAcc 6-  , AlexAcc 5-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 4-  , AlexAcc 3-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAcc 2-  , AlexAcc 1-  , AlexAccNone-  , AlexAcc 0-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  , AlexAccNone-  ]--alex_actions = array (0 :: Int, 19)-  [ (18,alex_action_9)-  , (17,alex_action_10)-  , (16,alex_action_11)-  , (15,alex_action_4)-  , (14,alex_action_4)-  , (13,alex_action_12)-  , (12,alex_action_13)-  , (11,alex_action_14)-  , (10,alex_action_3)-  , (9,alex_action_4)-  , (8,alex_action_5)-  , (7,alex_action_5)-  , (6,alex_action_5)-  , (5,alex_action_5)-  , (4,alex_action_6)-  , (3,alex_action_6)-  , (2,alex_action_7)-  , (1,alex_action_7)-  , (0,alex_action_8)-  ]--alex_action_3 = tok (eitherResIdent TV)-alex_action_4 = tok (eitherResIdent T_Bytes)-alex_action_5 = tok (eitherResIdent T_Function)-alex_action_6 = tok (eitherResIdent T_LabelId)-alex_action_7 = tok (eitherResIdent T_AlphaIndex)-alex_action_8 = tok (eitherResIdent T_LabelMetaId)-alex_action_9 = tok (eitherResIdent T_TailMetaId)-alex_action_10 = tok (eitherResIdent T_BindingsMetaId)-alex_action_11 = tok (eitherResIdent T_ObjectMetaId)-alex_action_12 = tok (eitherResIdent T_BytesMetaId)-alex_action_13 = tok (eitherResIdent T_MetaFunctionName)-alex_action_14 = tok (eitherResIdent TV)--#define ALEX_NOPRED 1--- -------------------------------------------------------------------------------- ALEX TEMPLATE------ This code is in the PUBLIC DOMAIN; you may copy it freely and use--- it for any purpose whatsoever.---- -------------------------------------------------------------------------------- INTERNALS and main scanner engine--#ifdef ALEX_GHC-#  define ILIT(n) n#-#  define IBOX(n) (I# (n))-#  define FAST_INT Int#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#  if __GLASGOW_HASKELL__ > 706-#    define GTE(n,m) (tagToEnum# (n >=# m))-#    define EQ(n,m) (tagToEnum# (n ==# m))-#  else-#    define GTE(n,m) (n >=# m)-#    define EQ(n,m) (n ==# m)-#  endif-#  define PLUS(n,m) (n +# m)-#  define MINUS(n,m) (n -# m)-#  define TIMES(n,m) (n *# m)-#  define NEGATE(n) (negateInt# (n))-#  define IF_GHC(x) (x)-#else-#  define ILIT(n) (n)-#  define IBOX(n) (n)-#  define FAST_INT Int-#  define GTE(n,m) (n >= m)-#  define EQ(n,m) (n == m)-#  define PLUS(n,m) (n + m)-#  define MINUS(n,m) (n - m)-#  define TIMES(n,m) (n * m)-#  define NEGATE(n) (negate (n))-#  define IF_GHC(x)-#endif--#ifdef ALEX_GHC-data AlexAddr = AlexA# Addr#--- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.-#if __GLASGOW_HASKELL__ < 503-uncheckedShiftL# = shiftL#-#endif--{-# INLINE alexIndexInt16OffAddr #-}-alexIndexInt16OffAddr :: AlexAddr -> Int# -> Int#-alexIndexInt16OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow16Int# i-  where-        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)-        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-        low  = int2Word# (ord# (indexCharOffAddr# arr off'))-        off' = off *# 2#-#else-#if __GLASGOW_HASKELL__ >= 901-  int16ToInt#-#endif-    (indexInt16OffAddr# arr off)-#endif-#else-alexIndexInt16OffAddr arr off = arr ! off-#endif--#ifdef ALEX_GHC-{-# INLINE alexIndexInt32OffAddr #-}-alexIndexInt32OffAddr :: AlexAddr -> Int# -> Int#-alexIndexInt32OffAddr (AlexA# arr) off =-#ifdef WORDS_BIGENDIAN-  narrow32Int# i-  where-   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`-                     (b2 `uncheckedShiftL#` 16#) `or#`-                     (b1 `uncheckedShiftL#` 8#) `or#` b0)-   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))-   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))-   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))-   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))-   off' = off *# 4#-#else-#if __GLASGOW_HASKELL__ >= 901-  int32ToInt#-#endif-    (indexInt32OffAddr# arr off)-#endif-#else-alexIndexInt32OffAddr arr off = arr ! off-#endif--#ifdef ALEX_GHC--#if __GLASGOW_HASKELL__ < 503-quickIndex arr i = arr ! i-#else--- GHC >= 503, unsafeAt is available from Data.Array.Base.-quickIndex = unsafeAt-#endif-#else-quickIndex arr i = arr ! i-#endif---- -------------------------------------------------------------------------------- Main lexing routines--data AlexReturn a-  = AlexEOF-  | AlexError  !AlexInput-  | AlexSkip   !AlexInput !Int-  | AlexToken  !AlexInput !Int a---- alexScan :: AlexInput -> StartCode -> AlexReturn a-alexScan input__ IBOX(sc)-  = alexScanUser undefined input__ IBOX(sc)--alexScanUser user__ input__ IBOX(sc)-  = case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of-  (AlexNone, input__') ->-    case alexGetByte input__ of-      Nothing ->-#ifdef ALEX_DEBUG-                                   trace ("End of input.") $-#endif-                                   AlexEOF-      Just _ ->-#ifdef ALEX_DEBUG-                                   trace ("Error.") $-#endif-                                   AlexError input__'--  (AlexLastSkip input__'' len, _) ->-#ifdef ALEX_DEBUG-    trace ("Skipping.") $-#endif-    AlexSkip input__'' len--  (AlexLastAcc k input__''' len, _) ->-#ifdef ALEX_DEBUG-    trace ("Accept.") $-#endif-    AlexToken input__''' len (alex_actions ! k)----- Push the input through the DFA, remembering the most recent accepting--- state it encountered.--alex_scan_tkn user__ orig_input len input__ s last_acc =-  input__ `seq` -- strict in the input-  let-  new_acc = (check_accs (alex_accept `quickIndex` IBOX(s)))-  in-  new_acc `seq`-  case alexGetByte input__ of-     Nothing -> (new_acc, input__)-     Just (c, new_input) ->-#ifdef ALEX_DEBUG-      trace ("State: " ++ show IBOX(s) ++ ", char: " ++ show c) $-#endif-      case fromIntegral c of { IBOX(ord_c) ->-        let-                base   = alexIndexInt32OffAddr alex_base s-                offset = PLUS(base,ord_c)--                new_s = if GTE(offset,ILIT(0))-                          && let check  = alexIndexInt16OffAddr alex_check offset-                             in  EQ(check,ord_c)-                          then alexIndexInt16OffAddr alex_table offset-                          else alexIndexInt16OffAddr alex_deflt s-        in-        case new_s of-            ILIT(-1) -> (new_acc, input__)-                -- on an error, we want to keep the input *before* the-                -- character that failed, not after.-            _ -> alex_scan_tkn user__ orig_input-#ifdef ALEX_LATIN1-                   PLUS(len,ILIT(1))-                   -- issue 119: in the latin1 encoding, *each* byte is one character-#else-                   (if c < 0x80 || c >= 0xC0 then PLUS(len,ILIT(1)) else len)-                   -- note that the length is increased ONLY if this is the 1st byte in a char encoding)-#endif-                   new_input new_s new_acc-      }-  where-        check_accs (AlexAccNone) = last_acc-        check_accs (AlexAcc a  ) = AlexLastAcc a input__ IBOX(len)-        check_accs (AlexAccSkip) = AlexLastSkip  input__ IBOX(len)-#ifndef ALEX_NOPRED-        check_accs (AlexAccPred a predx rest)-           | predx user__ orig_input IBOX(len) input__-           = AlexLastAcc a input__ IBOX(len)-           | otherwise-           = check_accs rest-        check_accs (AlexAccSkipPred predx rest)-           | predx user__ orig_input IBOX(len) input__-           = AlexLastSkip input__ IBOX(len)-           | otherwise-           = check_accs rest-#endif--data AlexLastAcc-  = AlexNone-  | AlexLastAcc !Int !AlexInput !Int-  | AlexLastSkip     !AlexInput !Int--data AlexAcc user-  = AlexAccNone-  | AlexAcc Int-  | AlexAccSkip-#ifndef ALEX_NOPRED-  | AlexAccPred Int (AlexAccPred user) (AlexAcc user)-  | AlexAccSkipPred (AlexAccPred user) (AlexAcc user)--type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool---- -------------------------------------------------------------------------------- Predicates on a rule--alexAndPred p1 p2 user__ in1 len in2-  = p1 user__ in1 len in2 && p2 user__ in1 len in2----alexPrevCharIsPred :: Char -> AlexAccPred _-alexPrevCharIs c _ input__ _ _ = c == alexInputPrevChar input__--alexPrevCharMatches f _ input__ _ _ = f (alexInputPrevChar input__)----alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _-alexPrevCharIsOneOf arr _ input__ _ _ = arr ! alexInputPrevChar input__----alexRightContext :: Int -> AlexAccPred _-alexRightContext IBOX(sc) user__ _ _ input__ =-     case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of-          (AlexNone, _) -> False-          _ -> True-        -- TODO: there's no need to find the longest-        -- match when checking the right context, just-        -- the first match will do.-#endif-{-# LINE 92 "Lex.x" #-}+alex_base = listArray (0 :: Int, 171)+  [ -8+  , -153+  , -159+  , 91+  , 219+  , 475+  , 594+  , 0+  , 0+  , 0+  , 707+  , -73+  , 771+  , -150+  , -156+  , 899+  , 1027+  , 1283+  , -120+  , 1402+  , -35+  , 0+  , 140+  , 0+  , 0+  , 0+  , 1515+  , 1580+  , 1644+  , -136+  , 1834+  , -139+  , 1914+  , 2042+  , 2298+  , 2417+  , 2673+  , 2918+  , 1828+  , 0+  , 0+  , 0+  , 3020+  , 2610+  , 2854+  , -130+  , -116+  , 3276+  , 3277+  , 3393+  , 3521+  , 3777+  , 3896+  , 155+  , -15+  , 0+  , -102+  , -84+  , -106+  , -111+  , 0+  , 599+  , 0+  , 0+  , 0+  , 4009+  , 4074+  , 4138+  , 4266+  , 4394+  , 4650+  , 4736+  , 4950+  , 0+  , 0+  , 0+  , 0+  , 5063+  , 4588+  , 4806+  , 5191+  , 5319+  , 5575+  , 5693+  , 0+  , 571+  , 593+  , 610+  , 620+  , 640+  , 653+  , 1368+  , 0+  , 5939+  , 6195+  , 6196+  , 6324+  , 1392+  , 5512+  , 6389+  , 6502+  , -80+  , 1315+  , -82+  , 1279+  , 485+  , 1853+  , 2416+  , 2446+  , 10+  , 2469+  , 43+  , 0+  , 0+  , 0+  , 6719+  , 5822+  , 6851+  , 7087+  , 7343+  , 7344+  , 7472+  , 17+  , -43+  , 6787+  , 7537+  , 7650+  , 7778+  , 0+  , 0+  , 0+  , 7961+  , 8217+  , 8218+  , 8346+  , 19+  , 54+  , 8410+  , 8475+  , 8588+  , 0+  , 0+  , 0+  , 8835+  , 9091+  , 9092+  , 9220+  , 48+  , 57+  , 9284+  , 9349+  , 9462+  , 0+  , 0+  , 0+  , 9709+  , 9965+  , 9966+  , 10094+  , 439+  , 58+  , 10158+  , 10223+  , 10336+  , 0+  , 0+  , 0+  , 0+  , 0+  , 10400+  , 10465+  , 10578+  ]++alex_table :: Array Int Int+alex_table = listArray (0 :: Int, 10833)+  [ 0+  , 61+  , 61+  , 61+  , 61+  , 61+  , 2+  , -1+  , -1+  , 14+  , -1+  , -1+  , 19+  , 21+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 31+  , 61+  , 30+  , 93+  , -1+  , -1+  , 46+  , 55+  , 60+  , 60+  , 60+  , 60+  , 60+  , 60+  , 54+  , 60+  , 85+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , 108+  , -1+  , -1+  , 60+  , 60+  , 60+  , 107+  , 118+  , 47+  , 47+  , 47+  , 47+  , 47+  , 47+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 60+  , 60+  , 60+  , 60+  , 60+  , 110+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 60+  , 122+  , 60+  , 12+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 48+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 22+  , 104+  , 105+  , 110+  , 89+  , 0+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 135+  , -1+  , -1+  , 147+  , 159+  , 102+  , 4+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 5+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 61+  , 61+  , 61+  , 61+  , 61+  , 71+  , 60+  , 0+  , 0+  , 0+  , 83+  , 60+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 61+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 88+  , 87+  , 0+  , 0+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 86+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 90+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 5+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 167+  , 169+  , 4+  , 84+  , 1+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 84+  , 170+  , 3+  , 168+  , 168+  , 168+  , 171+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 11+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 16+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 17+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 89+  , -1+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 91+  , 93+  , 60+  , 0+  , 0+  , 0+  , 93+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 60+  , -1+  , -1+  , -1+  , 103+  , 0+  , 56+  , 0+  , 59+  , 0+  , 57+  , 20+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 60+  , 0+  , 0+  , 60+  , 0+  , 0+  , 0+  , 0+  , 101+  , 0+  , 0+  , 0+  , 0+  , 58+  , 0+  , 0+  , 0+  , 0+  , 93+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 93+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 93+  , 0+  , 0+  , 0+  , 93+  , 0+  , 93+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 17+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 9+  , 12+  , 16+  , 8+  , 13+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 8+  , 11+  , 15+  , 7+  , 7+  , 7+  , 10+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 27+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 28+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 155+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 109+  , 109+  , 109+  , 109+  , 109+  , 109+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 143+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 6+  , 0+  , 0+  , 0+  , 0+  , 131+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 18+  , 33+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 34+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , -1+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 0+  , 0+  , 0+  , 0+  , 0+  , 89+  , 0+  , 53+  , 53+  , 53+  , 53+  , 53+  , 53+  , 53+  , 53+  , 53+  , 53+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 111+  , 111+  , 111+  , 111+  , 111+  , 111+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 106+  , 106+  , 106+  , 106+  , 106+  , 106+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 34+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 28+  , 33+  , 24+  , 29+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 27+  , 32+  , 23+  , 23+  , 23+  , 26+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 0+  , 0+  , 35+  , 35+  , 0+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 35+  , 0+  , 0+  , 35+  , 35+  , 35+  , 35+  , 35+  , 115+  , 0+  , 0+  , 35+  , 35+  , 0+  , 35+  , 0+  , 35+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 0+  , 35+  , 35+  , 35+  , 0+  , 35+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 35+  , 0+  , 35+  , 36+  , 35+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 0+  , 0+  , 35+  , 35+  , 44+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 34+  , 127+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 25+  , 28+  , 33+  , 24+  , 29+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 24+  , 27+  , 32+  , 23+  , 23+  , 23+  , 26+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 115+  , 0+  , 0+  , 52+  , 52+  , 0+  , 110+  , 0+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 52+  , 52+  , 52+  , 0+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 52+  , 0+  , 52+  , 117+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 0+  , 52+  , 52+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 51+  , 38+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 44+  , 50+  , 40+  , 45+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 43+  , 49+  , 39+  , 39+  , 39+  , 42+  , 43+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 115+  , 0+  , 0+  , 52+  , 52+  , 0+  , 0+  , 0+  , 52+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 0+  , 0+  , 52+  , 52+  , 52+  , 0+  , 52+  , 37+  , 37+  , 37+  , 37+  , 37+  , 37+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 52+  , 0+  , 52+  , 117+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 0+  , 52+  , 52+  , 0+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 51+  , 38+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 44+  , 50+  , 40+  , 45+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 43+  , 49+  , 39+  , 39+  , 39+  , 42+  , 50+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 51+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 51+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 44+  , 50+  , 40+  , 45+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 43+  , 49+  , 39+  , 39+  , 39+  , 42+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 66+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 67+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 69+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 70+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 72+  , 79+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 70+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 67+  , 69+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 66+  , 68+  , 62+  , 62+  , 62+  , 65+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 72+  , 0+  , 0+  , 0+  , 0+  , 73+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 70+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 64+  , 67+  , 69+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 63+  , 66+  , 68+  , 62+  , 62+  , 62+  , 65+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 78+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 81+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 82+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 82+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 76+  , 79+  , 81+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 75+  , 78+  , 80+  , 74+  , 74+  , 74+  , 77+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 92+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 0+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 97+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 94+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 98+  , 95+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 99+  , 96+  , 114+  , 114+  , 114+  , 100+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 94+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 112+  , 95+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 113+  , 98+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 99+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 115+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 0+  , 0+  , 0+  , 0+  , 115+  , 0+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 115+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 52+  , 0+  , 0+  , 52+  , 52+  , 52+  , 52+  , 52+  , 115+  , 0+  , 0+  , 52+  , 52+  , 0+  , 0+  , 0+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 52+  , 52+  , 52+  , 116+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 52+  , 0+  , 52+  , 117+  , 52+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 117+  , 0+  , 0+  , 0+  , 52+  , 52+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , 51+  , 38+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 41+  , 44+  , 50+  , 40+  , 45+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 40+  , 43+  , 49+  , 39+  , 39+  , 39+  , 42+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 119+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 124+  , 120+  , 129+  , 123+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 125+  , 121+  , 130+  , 130+  , 130+  , 126+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 119+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 128+  , 120+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 129+  , 124+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 125+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 0+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , 36+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 132+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 137+  , 133+  , 141+  , 136+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 138+  , 134+  , 142+  , 142+  , 142+  , 139+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 132+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 140+  , 133+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , 141+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 137+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 138+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 144+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 149+  , 145+  , 153+  , 148+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 150+  , 146+  , 154+  , 154+  , 154+  , 151+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 144+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 152+  , 145+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , 153+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 149+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 150+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , 0+  , 0+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , 0+  , -1+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , 0+  , -1+  , -1+  , -1+  , 0+  , 0+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 156+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 161+  , 157+  , 165+  , 160+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 162+  , 158+  , 166+  , 166+  , 166+  , 163+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 156+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 164+  , 157+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , 165+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 161+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 162+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 169+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 170+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  ]++alex_check :: Array Int Int+alex_check = listArray (0 :: Int, 10833)+  [ -1+  , 9+  , 10+  , 11+  , 12+  , 13+  , 159+  , 166+  , 167+  , 159+  , 166+  , 167+  , 132+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 159+  , 32+  , 33+  , 34+  , 166+  , 167+  , 159+  , 45+  , 133+  , 40+  , 41+  , 42+  , 141+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 166+  , 167+  , 136+  , 137+  , 165+  , 45+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 166+  , 93+  , 166+  , 167+  , 45+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 159+  , 125+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 166+  , 167+  , 166+  , 167+  , 195+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 206+  , 207+  , 45+  , 46+  , -1+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 159+  , 166+  , 167+  , 159+  , 159+  , 226+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , 166+  , 167+  , 13+  , 9+  , 10+  , 11+  , 12+  , 13+  , 42+  , 129+  , -1+  , -1+  , -1+  , 47+  , 134+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , 32+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 45+  , -1+  , -1+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , 101+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , 46+  , 13+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 34+  , 148+  , -1+  , -1+  , -1+  , 39+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , 166+  , 44+  , 45+  , 46+  , 134+  , -1+  , 136+  , -1+  , 138+  , -1+  , 140+  , 177+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , 187+  , -1+  , -1+  , 190+  , -1+  , -1+  , -1+  , -1+  , 159+  , -1+  , -1+  , -1+  , -1+  , 164+  , -1+  , -1+  , -1+  , -1+  , 92+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , 102+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 110+  , -1+  , -1+  , -1+  , 114+  , -1+  , 116+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 66+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 98+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 116+  , -1+  , -1+  , -1+  , -1+  , 121+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 207+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , -1+  , 46+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , -1+  , -1+  , -1+  , -1+  , -1+  , 46+  , -1+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , 45+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , 45+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , -1+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , -1+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 42+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 42+  , -1+  , -1+  , -1+  , -1+  , 47+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , 10+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 10+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 34+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 92+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 39+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , -1+  , -1+  , -1+  , 95+  , -1+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , -1+  , -1+  , 11+  , 12+  , -1+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , -1+  , -1+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , -1+  , -1+  , 42+  , 43+  , -1+  , -1+  , -1+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , -1+  , -1+  , 60+  , 61+  , 62+  , 195+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , -1+  , 92+  , -1+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , -1+  , -1+  , -1+  , 126+  , 127+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , -1+  , -1+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , -1+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , -1+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 9+  , 10+  , -1+  , -1+  , 13+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 32+  , 33+  , -1+  , -1+  , -1+  , -1+  , -1+  , 39+  , 40+  , 41+  , -1+  , -1+  , 44+  , 45+  , 46+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 58+  , 59+  , -1+  , -1+  , -1+  , 63+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 91+  , -1+  , 93+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 123+  , 124+  , 125+  , -1+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 0+  , 1+  , 2+  , 3+  , 4+  , 5+  , 6+  , 7+  , 8+  , 9+  , 10+  , 11+  , 12+  , 13+  , 14+  , 15+  , 16+  , 17+  , 18+  , 19+  , 20+  , 21+  , 22+  , 23+  , 24+  , 25+  , 26+  , 27+  , 28+  , 29+  , 30+  , 31+  , 32+  , 33+  , 34+  , 35+  , 36+  , 37+  , 38+  , 39+  , 40+  , 41+  , 42+  , 43+  , 44+  , 45+  , 46+  , 47+  , 48+  , 49+  , 50+  , 51+  , 52+  , 53+  , 54+  , 55+  , 56+  , 57+  , 58+  , 59+  , 60+  , 61+  , 62+  , 63+  , 64+  , 65+  , 66+  , 67+  , 68+  , 69+  , 70+  , 71+  , 72+  , 73+  , 74+  , 75+  , 76+  , 77+  , 78+  , 79+  , 80+  , 81+  , 82+  , 83+  , 84+  , 85+  , 86+  , 87+  , 88+  , 89+  , 90+  , 91+  , 92+  , 93+  , 94+  , 95+  , 96+  , 97+  , 98+  , 99+  , 100+  , 101+  , 102+  , 103+  , 104+  , 105+  , 106+  , 107+  , 108+  , 109+  , 110+  , 111+  , 112+  , 113+  , 114+  , 115+  , 116+  , 117+  , 118+  , 119+  , 120+  , 121+  , 122+  , 123+  , 124+  , 125+  , 126+  , 127+  , -1+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 128+  , 129+  , 130+  , 131+  , 132+  , 133+  , 134+  , 135+  , 136+  , 137+  , 138+  , 139+  , 140+  , 141+  , 142+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  , 143+  , 144+  , 145+  , 146+  , 147+  , 148+  , 149+  , 150+  , 151+  , 152+  , 153+  , 154+  , 155+  , 156+  , 157+  , 158+  , 159+  , 160+  , 161+  , 162+  , 163+  , 164+  , 165+  , 166+  , 167+  , 168+  , 169+  , 170+  , 171+  , 172+  , 173+  , 174+  , 175+  , 176+  , 177+  , 178+  , 179+  , 180+  , 181+  , 182+  , 183+  , 184+  , 185+  , 186+  , 187+  , 188+  , 189+  , 190+  , 191+  , 192+  , 193+  , 194+  , 195+  , 196+  , 197+  , 198+  , 199+  , 200+  , 201+  , 202+  , 203+  , 204+  , 205+  , 206+  , 207+  , 208+  , 209+  , 210+  , 211+  , 212+  , 213+  , 214+  , 215+  , 216+  , 217+  , 218+  , 219+  , 220+  , 221+  , 222+  , 223+  , 224+  , 225+  , 226+  , 227+  , 228+  , 229+  , 230+  , 231+  , 232+  , 233+  , 234+  , 235+  , 236+  , 237+  , 238+  , 239+  , 240+  , 241+  , 242+  , 243+  , 244+  , 245+  , 246+  , 247+  , 248+  , 249+  , 250+  , 251+  , 252+  , 253+  , 254+  , 255+  ]++alex_deflt :: Array Int Int+alex_deflt = listArray (0 :: Int, 171)+  [ -1+  , 167+  , 6+  , -1+  , -1+  , 6+  , 6+  , 8+  , 9+  , 19+  , 8+  , 9+  , 19+  , 9+  , 19+  , -1+  , -1+  , 19+  , -1+  , 19+  , -1+  , -1+  , -1+  , 24+  , 25+  , 35+  , 24+  , 25+  , 35+  , 25+  , -1+  , 35+  , -1+  , -1+  , 35+  , 35+  , -1+  , -1+  , 52+  , 40+  , 41+  , 52+  , 40+  , 41+  , 52+  , 41+  , 52+  , -1+  , -1+  , -1+  , -1+  , 52+  , 52+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 63+  , 64+  , 71+  , 63+  , 64+  , 71+  , -1+  , -1+  , 71+  , 71+  , 71+  , -1+  , 75+  , 76+  , 83+  , 75+  , 76+  , 83+  , -1+  , -1+  , 83+  , 83+  , 167+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 93+  , 93+  , -1+  , -1+  , -1+  , 93+  , 112+  , 113+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , -1+  , 93+  , 112+  , 113+  , -1+  , -1+  , -1+  , 118+  , 118+  , -1+  , -1+  , 118+  , 128+  , 118+  , 128+  , 129+  , 35+  , 118+  , 128+  , 129+  , 131+  , 131+  , -1+  , -1+  , 131+  , 140+  , 131+  , 140+  , 141+  , 131+  , 140+  , 141+  , 143+  , 143+  , -1+  , -1+  , 143+  , 152+  , 143+  , 152+  , 153+  , 143+  , 152+  , 153+  , 155+  , 155+  , -1+  , -1+  , 155+  , 164+  , 155+  , 164+  , 165+  , 155+  , 164+  , 165+  , 6+  , 84+  , 6+  , 167+  , 84+  ]++alex_accept = listArray (0 :: Int, 171)+  [ AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 24+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 23+  , AlexAccNone+  , AlexAcc 22+  , AlexAcc 21+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 20+  , AlexAcc 19+  , AlexAcc 18+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 17+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 16+  , AlexAcc 15+  , AlexAccNone+  , AlexAcc 14+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 13+  , AlexAccSkip+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccSkip+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccSkip+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 12+  , AlexAccNone+  , AlexAcc 11+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 10+  , AlexAcc 9+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 8+  , AlexAcc 7+  , AlexAcc 6+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 5+  , AlexAccNone+  , AlexAcc 4+  , AlexAcc 3+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 2+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 1+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAcc 0+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  , AlexAccNone+  ]++alex_actions = array (0 :: Int, 25)+  [ (24,alex_action_9)+  , (23,alex_action_8)+  , (22,alex_action_7)+  , (21,alex_action_7)+  , (20,alex_action_6)+  , (19,alex_action_6)+  , (18,alex_action_5)+  , (17,alex_action_5)+  , (16,alex_action_5)+  , (15,alex_action_16)+  , (14,alex_action_4)+  , (13,alex_action_3)+  , (12,alex_action_17)+  , (11,alex_action_17)+  , (10,alex_action_16)+  , (9,alex_action_15)+  , (8,alex_action_16)+  , (7,alex_action_4)+  , (6,alex_action_4)+  , (5,alex_action_14)+  , (4,alex_action_5)+  , (3,alex_action_13)+  , (2,alex_action_12)+  , (1,alex_action_11)+  , (0,alex_action_10)+  ]++alex_action_3 = tok (eitherResIdent TV)+alex_action_4 = tok (eitherResIdent T_Bytes)+alex_action_5 = tok (eitherResIdent T_Function)+alex_action_6 = tok (eitherResIdent T_LabelId)+alex_action_7 = tok (eitherResIdent T_AlphaIndex)+alex_action_8 = tok (eitherResIdent T_LabelMetaId)+alex_action_9 = tok (eitherResIdent T_TailMetaId)+alex_action_10 = tok (eitherResIdent T_BindingsMetaId)+alex_action_11 = tok (eitherResIdent T_ObjectMetaId)+alex_action_12 = tok (eitherResIdent T_BytesMetaId)+alex_action_13 = tok (eitherResIdent T_MetaFunctionName)+alex_action_14 = tok (eitherResIdent TV)+alex_action_15 = tok (TL . unescapeInitTail)+alex_action_16 = tok TI+alex_action_17 = tok TD++#define ALEX_NOPRED 1+-- -----------------------------------------------------------------------------+-- ALEX TEMPLATE+--+-- This code is in the PUBLIC DOMAIN; you may copy it freely and use+-- it for any purpose whatsoever.++-- -----------------------------------------------------------------------------+-- INTERNALS and main scanner engine++#ifdef ALEX_GHC+#  define ILIT(n) n#+#  define IBOX(n) (I# (n))+#  define FAST_INT Int#+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#  if __GLASGOW_HASKELL__ > 706+#    define GTE(n,m) (tagToEnum# (n >=# m))+#    define EQ(n,m) (tagToEnum# (n ==# m))+#  else+#    define GTE(n,m) (n >=# m)+#    define EQ(n,m) (n ==# m)+#  endif+#  define PLUS(n,m) (n +# m)+#  define MINUS(n,m) (n -# m)+#  define TIMES(n,m) (n *# m)+#  define NEGATE(n) (negateInt# (n))+#  define IF_GHC(x) (x)+#else+#  define ILIT(n) (n)+#  define IBOX(n) (n)+#  define FAST_INT Int+#  define GTE(n,m) (n >= m)+#  define EQ(n,m) (n == m)+#  define PLUS(n,m) (n + m)+#  define MINUS(n,m) (n - m)+#  define TIMES(n,m) (n * m)+#  define NEGATE(n) (negate (n))+#  define IF_GHC(x)+#endif++#ifdef ALEX_GHC+data AlexAddr = AlexA# Addr#+-- Do not remove this comment. Required to fix CPP parsing when using GCC and a clang-compiled alex.+#if __GLASGOW_HASKELL__ < 503+uncheckedShiftL# = shiftL#+#endif++{-# INLINE alexIndexInt16OffAddr #-}+alexIndexInt16OffAddr :: AlexAddr -> Int# -> Int#+alexIndexInt16OffAddr (AlexA# arr) off =+#ifdef WORDS_BIGENDIAN+  narrow16Int# i+  where+        i    = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low)+        high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+        low  = int2Word# (ord# (indexCharOffAddr# arr off'))+        off' = off *# 2#+#else+#if __GLASGOW_HASKELL__ >= 901+  int16ToInt#+#endif+    (indexInt16OffAddr# arr off)+#endif+#else+alexIndexInt16OffAddr arr off = arr ! off+#endif++#ifdef ALEX_GHC+{-# INLINE alexIndexInt32OffAddr #-}+alexIndexInt32OffAddr :: AlexAddr -> Int# -> Int#+alexIndexInt32OffAddr (AlexA# arr) off =+#ifdef WORDS_BIGENDIAN+  narrow32Int# i+  where+   i    = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#`+                     (b2 `uncheckedShiftL#` 16#) `or#`+                     (b1 `uncheckedShiftL#` 8#) `or#` b0)+   b3   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#)))+   b2   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#)))+   b1   = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#)))+   b0   = int2Word# (ord# (indexCharOffAddr# arr off'))+   off' = off *# 4#+#else+#if __GLASGOW_HASKELL__ >= 901+  int32ToInt#+#endif+    (indexInt32OffAddr# arr off)+#endif+#else+alexIndexInt32OffAddr arr off = arr ! off+#endif++#ifdef ALEX_GHC++#if __GLASGOW_HASKELL__ < 503+quickIndex arr i = arr ! i+#else+-- GHC >= 503, unsafeAt is available from Data.Array.Base.+quickIndex = unsafeAt+#endif+#else+quickIndex arr i = arr ! i+#endif++-- -----------------------------------------------------------------------------+-- Main lexing routines++data AlexReturn a+  = AlexEOF+  | AlexError  !AlexInput+  | AlexSkip   !AlexInput !Int+  | AlexToken  !AlexInput !Int a++-- alexScan :: AlexInput -> StartCode -> AlexReturn a+alexScan input__ IBOX(sc)+  = alexScanUser undefined input__ IBOX(sc)++alexScanUser user__ input__ IBOX(sc)+  = case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of+  (AlexNone, input__') ->+    case alexGetByte input__ of+      Nothing ->+#ifdef ALEX_DEBUG+                                   trace ("End of input.") $+#endif+                                   AlexEOF+      Just _ ->+#ifdef ALEX_DEBUG+                                   trace ("Error.") $+#endif+                                   AlexError input__'++  (AlexLastSkip input__'' len, _) ->+#ifdef ALEX_DEBUG+    trace ("Skipping.") $+#endif+    AlexSkip input__'' len++  (AlexLastAcc k input__''' len, _) ->+#ifdef ALEX_DEBUG+    trace ("Accept.") $+#endif+    AlexToken input__''' len (alex_actions ! k)+++-- Push the input through the DFA, remembering the most recent accepting+-- state it encountered.++alex_scan_tkn user__ orig_input len input__ s last_acc =+  input__ `seq` -- strict in the input+  let+  new_acc = (check_accs (alex_accept `quickIndex` IBOX(s)))+  in+  new_acc `seq`+  case alexGetByte input__ of+     Nothing -> (new_acc, input__)+     Just (c, new_input) ->+#ifdef ALEX_DEBUG+      trace ("State: " ++ show IBOX(s) ++ ", char: " ++ show c) $+#endif+      case fromIntegral c of { IBOX(ord_c) ->+        let+                base   = alexIndexInt32OffAddr alex_base s+                offset = PLUS(base,ord_c)++                new_s = if GTE(offset,ILIT(0))+                          && let check  = alexIndexInt16OffAddr alex_check offset+                             in  EQ(check,ord_c)+                          then alexIndexInt16OffAddr alex_table offset+                          else alexIndexInt16OffAddr alex_deflt s+        in+        case new_s of+            ILIT(-1) -> (new_acc, input__)+                -- on an error, we want to keep the input *before* the+                -- character that failed, not after.+            _ -> alex_scan_tkn user__ orig_input+#ifdef ALEX_LATIN1+                   PLUS(len,ILIT(1))+                   -- issue 119: in the latin1 encoding, *each* byte is one character+#else+                   (if c < 0x80 || c >= 0xC0 then PLUS(len,ILIT(1)) else len)+                   -- note that the length is increased ONLY if this is the 1st byte in a char encoding)+#endif+                   new_input new_s new_acc+      }+  where+        check_accs (AlexAccNone) = last_acc+        check_accs (AlexAcc a  ) = AlexLastAcc a input__ IBOX(len)+        check_accs (AlexAccSkip) = AlexLastSkip  input__ IBOX(len)+#ifndef ALEX_NOPRED+        check_accs (AlexAccPred a predx rest)+           | predx user__ orig_input IBOX(len) input__+           = AlexLastAcc a input__ IBOX(len)+           | otherwise+           = check_accs rest+        check_accs (AlexAccSkipPred predx rest)+           | predx user__ orig_input IBOX(len) input__+           = AlexLastSkip input__ IBOX(len)+           | otherwise+           = check_accs rest+#endif++data AlexLastAcc+  = AlexNone+  | AlexLastAcc !Int !AlexInput !Int+  | AlexLastSkip     !AlexInput !Int++data AlexAcc user+  = AlexAccNone+  | AlexAcc Int+  | AlexAccSkip+#ifndef ALEX_NOPRED+  | AlexAccPred Int (AlexAccPred user) (AlexAcc user)+  | AlexAccSkipPred (AlexAccPred user) (AlexAcc user)++type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool++-- -----------------------------------------------------------------------------+-- Predicates on a rule++alexAndPred p1 p2 user__ in1 len in2+  = p1 user__ in1 len in2 && p2 user__ in1 len in2++--alexPrevCharIsPred :: Char -> AlexAccPred _+alexPrevCharIs c _ input__ _ _ = c == alexInputPrevChar input__++alexPrevCharMatches f _ input__ _ _ = f (alexInputPrevChar input__)++--alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _+alexPrevCharIsOneOf arr _ input__ _ _ = arr ! alexInputPrevChar input__++--alexRightContext :: Int -> AlexAccPred _+alexRightContext IBOX(sc) user__ _ _ input__ =+     case alex_scan_tkn user__ input__ ILIT(0) input__ sc AlexNone of+          (AlexNone, _) -> False+          _ -> True+        -- TODO: there's no need to find the longest+        -- match when checking the right context, just+        -- the first match will do.+#endif+{-# LINE 104 "Lex.x" #-} -- | Create a token with position. tok :: (String -> Tok) -> (Posn -> String -> Token) tok f p = PT p . f
src/Language/EO/Phi/Syntax/Lex.x view
@@ -89,6 +89,18 @@ $l $i*     { tok (eitherResIdent TV) } +-- String+\" ([$u # [\" \\ \n]] | (\\ (\" | \\ | \' | n | t | r | f)))* \"+    { tok (TL . unescapeInitTail) }++-- Integer+$d++    { tok TI }++-- Double+$d+ \. $d+ (e (\-)? $d+)?+    { tok TD }+ { -- | Create a token with position. tok :: (String -> Tok) -> (Posn -> String -> Token)
src/Language/EO/Phi/Syntax/Par.hs view
@@ -32,1274 +32,1382 @@ data HappyAbsSyn  	= HappyTerminal (Token) 	| HappyErrorToken Prelude.Int-	| HappyAbsSyn14 (Language.EO.Phi.Syntax.Abs.Bytes)-	| HappyAbsSyn15 (Language.EO.Phi.Syntax.Abs.Function)-	| HappyAbsSyn16 (Language.EO.Phi.Syntax.Abs.LabelId)-	| HappyAbsSyn17 (Language.EO.Phi.Syntax.Abs.AlphaIndex)-	| HappyAbsSyn18 (Language.EO.Phi.Syntax.Abs.LabelMetaId)-	| HappyAbsSyn19 (Language.EO.Phi.Syntax.Abs.TailMetaId)-	| HappyAbsSyn20 (Language.EO.Phi.Syntax.Abs.BindingsMetaId)-	| HappyAbsSyn21 (Language.EO.Phi.Syntax.Abs.ObjectMetaId)-	| HappyAbsSyn22 (Language.EO.Phi.Syntax.Abs.BytesMetaId)-	| HappyAbsSyn23 (Language.EO.Phi.Syntax.Abs.MetaFunctionName)-	| HappyAbsSyn24 (Language.EO.Phi.Syntax.Abs.Program)-	| HappyAbsSyn25 (Language.EO.Phi.Syntax.Abs.MetaId)-	| HappyAbsSyn26 (Language.EO.Phi.Syntax.Abs.Object)-	| HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.Binding)-	| HappyAbsSyn28 ([Language.EO.Phi.Syntax.Abs.Binding])-	| HappyAbsSyn29 (Language.EO.Phi.Syntax.Abs.Attribute)-	| HappyAbsSyn30 (Language.EO.Phi.Syntax.Abs.RuleAttribute)-	| HappyAbsSyn31 (Language.EO.Phi.Syntax.Abs.PeeledObject)-	| HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.ObjectHead)-	| HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.ObjectAction)-	| HappyAbsSyn34 ([Language.EO.Phi.Syntax.Abs.ObjectAction])--{- to allow type-synonyms as our monads (likely- - with explicitly-specified bind and return)- - in Haskell98, it seems that with- - /type M a = .../, then /(HappyReduction M)/- - is not allowed.  But Happy is a- - code-generator that can just substitute it.-type HappyReduction m = -	   Prelude.Int -	-> (Token)-	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)-	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(Token)] -> m HappyAbsSyn--}--action_0,- action_1,- action_2,- action_3,- action_4,- action_5,- action_6,- action_7,- action_8,- action_9,- action_10,- action_11,- action_12,- action_13,- action_14,- action_15,- action_16,- action_17,- action_18,- action_19,- action_20,- action_21,- action_22,- action_23,- action_24,- action_25,- action_26,- action_27,- action_28,- action_29,- action_30,- action_31,- action_32,- action_33,- action_34,- action_35,- action_36,- action_37,- action_38,- action_39,- action_40,- action_41,- action_42,- action_43,- action_44,- action_45,- action_46,- action_47,- action_48,- action_49,- action_50,- action_51,- action_52,- action_53,- action_54,- action_55,- action_56,- action_57,- action_58,- action_59,- action_60,- action_61,- action_62,- action_63,- action_64,- action_65,- action_66,- action_67,- action_68,- action_69,- action_70,- action_71,- action_72,- action_73,- action_74,- action_75,- action_76,- action_77,- action_78,- action_79,- action_80,- action_81,- action_82,- action_83,- action_84,- action_85,- action_86,- action_87,- action_88,- action_89,- action_90,- action_91,- action_92,- action_93,- action_94,- action_95,- action_96,- action_97,- action_98,- action_99,- action_100,- action_101,- action_102,- action_103,- action_104,- action_105,- action_106,- action_107,- action_108,- action_109 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}-	   Prelude.Int -	-> (Token)-	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)-	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(Token)] -> (Err) HappyAbsSyn)--happyReduce_11,- happyReduce_12,- happyReduce_13,- happyReduce_14,- happyReduce_15,- happyReduce_16,- happyReduce_17,- happyReduce_18,- happyReduce_19,- happyReduce_20,- happyReduce_21,- happyReduce_22,- happyReduce_23,- happyReduce_24,- happyReduce_25,- happyReduce_26,- happyReduce_27,- happyReduce_28,- happyReduce_29,- happyReduce_30,- happyReduce_31,- happyReduce_32,- happyReduce_33,- happyReduce_34,- happyReduce_35,- happyReduce_36,- happyReduce_37,- happyReduce_38,- happyReduce_39,- happyReduce_40,- happyReduce_41,- happyReduce_42,- happyReduce_43,- happyReduce_44,- happyReduce_45,- happyReduce_46,- happyReduce_47,- happyReduce_48,- happyReduce_49,- happyReduce_50,- happyReduce_51,- happyReduce_52,- happyReduce_53,- happyReduce_54,- happyReduce_55,- happyReduce_56,- happyReduce_57,- happyReduce_58,- happyReduce_59,- happyReduce_60,- happyReduce_61,- happyReduce_62,- happyReduce_63,- happyReduce_64 :: () => ({-HappyReduction (Err) = -}-	   Prelude.Int -	-> (Token)-	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)-	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] -	-> HappyStk HappyAbsSyn -	-> [(Token)] -> (Err) HappyAbsSyn)--happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int-happyExpList = Happy_Data_Array.listArray (0,230) ([0,0,512,0,0,0,0,0,62,0,0,22608,1280,0,0,6784,2944,0,0,43008,47105,0,0,0,32792,3,0,0,424,56,0,0,34048,4,0,0,20480,72,0,0,1088,0,0,0,17408,0,0,0,0,0,32,0,0,0,0,0,0,1088,0,0,0,0,0,0,0,0,6784,2944,0,0,32768,14337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,184,0,0,0,0,0,0,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,32,0,0,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,212,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20480,88,5,0,32768,32794,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,424,184,0,0,0,8,0,0,244,0,0,0,32768,32794,11,0,0,0,64,0,0,6144,896,0,0,16384,0,0,0,0,1413,80,0,0,0,4,0,0,16384,8224,0,0,20480,92,5,0,32768,32794,11,0,0,0,0,0,0,0,8,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54272,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3520,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,22608,1280,0,0,0,0,0,0,0,128,0,0,16384,0,0,0,54272,8192,0,0,0,0,0,0,0,20480,88,5,0,0,0,0,0,54272,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0-	])--{-# NOINLINE happyExpListPerState #-}-happyExpListPerState st =-    token_strs_expected-  where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\8968'","'\8969'","'\10214'","'\10215'","'\10509'","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]-        bit_start = st Prelude.* 68-        bit_end = (st Prelude.+ 1) Prelude.* 68-        read_bit = readArrayBit happyExpList-        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]-        bits_indexed = Prelude.zip bits [0..67]-        token_strs_expected = Prelude.concatMap f bits_indexed-        f (Prelude.False, _) = []-        f (Prelude.True, nr) = [token_strs Prelude.!! nr]--action_0 (42) = happyShift action_65-action_0 (24) = happyGoto action_64-action_0 _ = happyFail (happyExpListPerState 0)--action_1 (62) = happyShift action_36-action_1 (63) = happyShift action_62-action_1 (64) = happyShift action_44-action_1 (65) = happyShift action_54-action_1 (66) = happyShift action_63-action_1 (18) = happyGoto action_56-action_1 (19) = happyGoto action_57-action_1 (20) = happyGoto action_58-action_1 (21) = happyGoto action_59-action_1 (22) = happyGoto action_60-action_1 (25) = happyGoto action_61-action_1 _ = happyFail (happyExpListPerState 1)--action_2 (45) = happyShift action_49-action_2 (47) = happyShift action_50-action_2 (52) = happyShift action_51-action_2 (53) = happyShift action_52-action_2 (55) = happyShift action_53-action_2 (65) = happyShift action_54-action_2 (67) = happyShift action_55-action_2 (21) = happyGoto action_46-action_2 (23) = happyGoto action_47-action_2 (26) = happyGoto action_48-action_2 _ = happyFail (happyExpListPerState 2)--action_3 (44) = happyShift action_42-action_3 (46) = happyShift action_43-action_3 (48) = happyShift action_32-action_3 (49) = happyShift action_33-action_3 (60) = happyShift action_34-action_3 (61) = happyShift action_35-action_3 (62) = happyShift action_36-action_3 (64) = happyShift action_44-action_3 (16) = happyGoto action_25-action_3 (17) = happyGoto action_26-action_3 (18) = happyGoto action_27-action_3 (20) = happyGoto action_38-action_3 (27) = happyGoto action_45-action_3 (29) = happyGoto action_41-action_3 _ = happyFail (happyExpListPerState 3)--action_4 (44) = happyShift action_42-action_4 (46) = happyShift action_43-action_4 (48) = happyShift action_32-action_4 (49) = happyShift action_33-action_4 (60) = happyShift action_34-action_4 (61) = happyShift action_35-action_4 (62) = happyShift action_36-action_4 (64) = happyShift action_44-action_4 (16) = happyGoto action_25-action_4 (17) = happyGoto action_26-action_4 (18) = happyGoto action_27-action_4 (20) = happyGoto action_38-action_4 (27) = happyGoto action_39-action_4 (28) = happyGoto action_40-action_4 (29) = happyGoto action_41-action_4 _ = happyReduce_45--action_5 (48) = happyShift action_32-action_5 (49) = happyShift action_33-action_5 (60) = happyShift action_34-action_5 (61) = happyShift action_35-action_5 (62) = happyShift action_36-action_5 (16) = happyGoto action_25-action_5 (17) = happyGoto action_26-action_5 (18) = happyGoto action_27-action_5 (29) = happyGoto action_37-action_5 _ = happyFail (happyExpListPerState 5)--action_6 (44) = happyShift action_30-action_6 (46) = happyShift action_31-action_6 (48) = happyShift action_32-action_6 (49) = happyShift action_33-action_6 (60) = happyShift action_34-action_6 (61) = happyShift action_35-action_6 (62) = happyShift action_36-action_6 (16) = happyGoto action_25-action_6 (17) = happyGoto action_26-action_6 (18) = happyGoto action_27-action_6 (29) = happyGoto action_28-action_6 (30) = happyGoto action_29-action_6 _ = happyFail (happyExpListPerState 6)--action_7 (45) = happyShift action_19-action_7 (47) = happyShift action_20-action_7 (52) = happyShift action_21-action_7 (55) = happyShift action_22-action_7 (31) = happyGoto action_23-action_7 (32) = happyGoto action_24-action_7 _ = happyFail (happyExpListPerState 7)--action_8 (45) = happyShift action_19-action_8 (47) = happyShift action_20-action_8 (52) = happyShift action_21-action_8 (55) = happyShift action_22-action_8 (32) = happyGoto action_18-action_8 _ = happyFail (happyExpListPerState 8)--action_9 (35) = happyShift action_15-action_9 (39) = happyShift action_16-action_9 (33) = happyGoto action_17-action_9 _ = happyFail (happyExpListPerState 9)--action_10 (35) = happyShift action_15-action_10 (39) = happyShift action_16-action_10 (33) = happyGoto action_13-action_10 (34) = happyGoto action_14-action_10 _ = happyReduce_63--action_11 (58) = happyShift action_12-action_11 _ = happyFail (happyExpListPerState 11)--action_12 _ = happyReduce_11--action_13 (35) = happyShift action_15-action_13 (39) = happyShift action_16-action_13 (33) = happyGoto action_13-action_13 (34) = happyGoto action_82-action_13 _ = happyReduce_63--action_14 (68) = happyAccept-action_14 _ = happyFail (happyExpListPerState 14)--action_15 (44) = happyShift action_42-action_15 (46) = happyShift action_43-action_15 (48) = happyShift action_32-action_15 (49) = happyShift action_33-action_15 (60) = happyShift action_34-action_15 (61) = happyShift action_35-action_15 (62) = happyShift action_36-action_15 (64) = happyShift action_44-action_15 (16) = happyGoto action_25-action_15 (17) = happyGoto action_26-action_15 (18) = happyGoto action_27-action_15 (20) = happyGoto action_38-action_15 (27) = happyGoto action_39-action_15 (28) = happyGoto action_81-action_15 (29) = happyGoto action_41-action_15 _ = happyReduce_45--action_16 (48) = happyShift action_32-action_16 (49) = happyShift action_33-action_16 (60) = happyShift action_34-action_16 (61) = happyShift action_35-action_16 (62) = happyShift action_36-action_16 (16) = happyGoto action_25-action_16 (17) = happyGoto action_26-action_16 (18) = happyGoto action_27-action_16 (29) = happyGoto action_80-action_16 _ = happyFail (happyExpListPerState 16)--action_17 (68) = happyAccept-action_17 _ = happyFail (happyExpListPerState 17)--action_18 (68) = happyAccept-action_18 _ = happyFail (happyExpListPerState 18)--action_19 _ = happyReduce_58--action_20 _ = happyReduce_59--action_21 _ = happyReduce_60--action_22 (44) = happyShift action_42-action_22 (46) = happyShift action_43-action_22 (48) = happyShift action_32-action_22 (49) = happyShift action_33-action_22 (60) = happyShift action_34-action_22 (61) = happyShift action_35-action_22 (62) = happyShift action_36-action_22 (64) = happyShift action_44-action_22 (16) = happyGoto action_25-action_22 (17) = happyGoto action_26-action_22 (18) = happyGoto action_27-action_22 (20) = happyGoto action_38-action_22 (27) = happyGoto action_39-action_22 (28) = happyGoto action_79-action_22 (29) = happyGoto action_41-action_22 _ = happyReduce_45--action_23 (68) = happyAccept-action_23 _ = happyFail (happyExpListPerState 23)--action_24 (35) = happyShift action_15-action_24 (39) = happyShift action_16-action_24 (33) = happyGoto action_13-action_24 (34) = happyGoto action_78-action_24 _ = happyReduce_63--action_25 _ = happyReduce_50--action_26 _ = happyReduce_51--action_27 _ = happyReduce_52--action_28 _ = happyReduce_53--action_29 (68) = happyAccept-action_29 _ = happyFail (happyExpListPerState 29)--action_30 _ = happyReduce_54--action_31 _ = happyReduce_55--action_32 _ = happyReduce_49--action_33 _ = happyReduce_48--action_34 _ = happyReduce_13--action_35 _ = happyReduce_14--action_36 _ = happyReduce_15--action_37 (68) = happyAccept-action_37 _ = happyFail (happyExpListPerState 37)--action_38 _ = happyReduce_43--action_39 (38) = happyShift action_77-action_39 _ = happyReduce_46--action_40 (68) = happyAccept-action_40 _ = happyFail (happyExpListPerState 40)--action_41 (50) = happyShift action_76-action_41 _ = happyFail (happyExpListPerState 41)--action_42 (57) = happyShift action_75-action_42 _ = happyFail (happyExpListPerState 42)--action_43 (57) = happyShift action_74-action_43 _ = happyFail (happyExpListPerState 43)--action_44 _ = happyReduce_17--action_45 (68) = happyAccept-action_45 _ = happyFail (happyExpListPerState 45)--action_46 _ = happyReduce_35--action_47 (35) = happyShift action_73-action_47 _ = happyFail (happyExpListPerState 47)--action_48 (35) = happyShift action_69-action_48 (37) = happyShift action_70-action_48 (39) = happyShift action_71-action_48 (40) = happyShift action_72-action_48 (68) = happyAccept-action_48 _ = happyFail (happyExpListPerState 48)--action_49 _ = happyReduce_30--action_50 _ = happyReduce_31--action_51 _ = happyReduce_32--action_52 (45) = happyShift action_49-action_52 (47) = happyShift action_50-action_52 (52) = happyShift action_51-action_52 (53) = happyShift action_52-action_52 (55) = happyShift action_53-action_52 (65) = happyShift action_54-action_52 (67) = happyShift action_55-action_52 (21) = happyGoto action_46-action_52 (23) = happyGoto action_47-action_52 (26) = happyGoto action_68-action_52 _ = happyFail (happyExpListPerState 52)--action_53 (44) = happyShift action_42-action_53 (46) = happyShift action_43-action_53 (48) = happyShift action_32-action_53 (49) = happyShift action_33-action_53 (60) = happyShift action_34-action_53 (61) = happyShift action_35-action_53 (62) = happyShift action_36-action_53 (64) = happyShift action_44-action_53 (16) = happyGoto action_25-action_53 (17) = happyGoto action_26-action_53 (18) = happyGoto action_27-action_53 (20) = happyGoto action_38-action_53 (27) = happyGoto action_39-action_53 (28) = happyGoto action_67-action_53 (29) = happyGoto action_41-action_53 _ = happyReduce_45--action_54 _ = happyReduce_18--action_55 _ = happyReduce_20--action_56 _ = happyReduce_22--action_57 _ = happyReduce_23--action_58 _ = happyReduce_24--action_59 _ = happyReduce_25--action_60 _ = happyReduce_26--action_61 (68) = happyAccept-action_61 _ = happyFail (happyExpListPerState 61)--action_62 _ = happyReduce_16--action_63 _ = happyReduce_19--action_64 (68) = happyAccept-action_64 _ = happyFail (happyExpListPerState 64)--action_65 (55) = happyShift action_66-action_65 _ = happyFail (happyExpListPerState 65)--action_66 (44) = happyShift action_42-action_66 (46) = happyShift action_43-action_66 (48) = happyShift action_32-action_66 (49) = happyShift action_33-action_66 (60) = happyShift action_34-action_66 (61) = happyShift action_35-action_66 (62) = happyShift action_36-action_66 (64) = happyShift action_44-action_66 (16) = happyGoto action_25-action_66 (17) = happyGoto action_26-action_66 (18) = happyGoto action_27-action_66 (20) = happyGoto action_38-action_66 (27) = happyGoto action_39-action_66 (28) = happyGoto action_100-action_66 (29) = happyGoto action_41-action_66 _ = happyReduce_45--action_67 (56) = happyShift action_99-action_67 _ = happyFail (happyExpListPerState 67)--action_68 (35) = happyShift action_69-action_68 (37) = happyShift action_70-action_68 (38) = happyShift action_98-action_68 (39) = happyShift action_71-action_68 (40) = happyShift action_72-action_68 _ = happyFail (happyExpListPerState 68)--action_69 (44) = happyShift action_42-action_69 (46) = happyShift action_43-action_69 (48) = happyShift action_32-action_69 (49) = happyShift action_33-action_69 (60) = happyShift action_34-action_69 (61) = happyShift action_35-action_69 (62) = happyShift action_36-action_69 (64) = happyShift action_44-action_69 (16) = happyGoto action_25-action_69 (17) = happyGoto action_26-action_69 (18) = happyGoto action_27-action_69 (20) = happyGoto action_38-action_69 (27) = happyGoto action_39-action_69 (28) = happyGoto action_97-action_69 (29) = happyGoto action_41-action_69 _ = happyReduce_45--action_70 (63) = happyShift action_62-action_70 (19) = happyGoto action_96-action_70 _ = happyFail (happyExpListPerState 70)--action_71 (48) = happyShift action_32-action_71 (49) = happyShift action_33-action_71 (60) = happyShift action_34-action_71 (61) = happyShift action_35-action_71 (62) = happyShift action_36-action_71 (16) = happyGoto action_25-action_71 (17) = happyGoto action_26-action_71 (18) = happyGoto action_27-action_71 (29) = happyGoto action_95-action_71 _ = happyFail (happyExpListPerState 71)--action_72 (47) = happyShift action_94-action_72 _ = happyFail (happyExpListPerState 72)--action_73 (45) = happyShift action_49-action_73 (47) = happyShift action_50-action_73 (52) = happyShift action_51-action_73 (53) = happyShift action_52-action_73 (55) = happyShift action_53-action_73 (65) = happyShift action_54-action_73 (67) = happyShift action_55-action_73 (21) = happyGoto action_46-action_73 (23) = happyGoto action_47-action_73 (26) = happyGoto action_93-action_73 _ = happyFail (happyExpListPerState 73)--action_74 (59) = happyShift action_92-action_74 (15) = happyGoto action_91-action_74 _ = happyFail (happyExpListPerState 74)--action_75 (51) = happyShift action_90-action_75 (58) = happyShift action_12-action_75 (66) = happyShift action_63-action_75 (14) = happyGoto action_88-action_75 (22) = happyGoto action_89-action_75 _ = happyFail (happyExpListPerState 75)--action_76 (45) = happyShift action_49-action_76 (47) = happyShift action_50-action_76 (51) = happyShift action_87-action_76 (52) = happyShift action_51-action_76 (53) = happyShift action_52-action_76 (55) = happyShift action_53-action_76 (65) = happyShift action_54-action_76 (67) = happyShift action_55-action_76 (21) = happyGoto action_46-action_76 (23) = happyGoto action_47-action_76 (26) = happyGoto action_86-action_76 _ = happyFail (happyExpListPerState 76)--action_77 (44) = happyShift action_42-action_77 (46) = happyShift action_43-action_77 (48) = happyShift action_32-action_77 (49) = happyShift action_33-action_77 (60) = happyShift action_34-action_77 (61) = happyShift action_35-action_77 (62) = happyShift action_36-action_77 (64) = happyShift action_44-action_77 (16) = happyGoto action_25-action_77 (17) = happyGoto action_26-action_77 (18) = happyGoto action_27-action_77 (20) = happyGoto action_38-action_77 (27) = happyGoto action_39-action_77 (28) = happyGoto action_85-action_77 (29) = happyGoto action_41-action_77 _ = happyReduce_45--action_78 _ = happyReduce_56--action_79 (56) = happyShift action_84-action_79 _ = happyFail (happyExpListPerState 79)--action_80 _ = happyReduce_62--action_81 (36) = happyShift action_83-action_81 _ = happyFail (happyExpListPerState 81)--action_82 _ = happyReduce_64--action_83 _ = happyReduce_61--action_84 _ = happyReduce_57--action_85 _ = happyReduce_47--action_86 (35) = happyShift action_69-action_86 (37) = happyShift action_70-action_86 (39) = happyShift action_71-action_86 (40) = happyShift action_72-action_86 _ = happyReduce_38--action_87 _ = happyReduce_39--action_88 _ = happyReduce_40--action_89 _ = happyReduce_44--action_90 _ = happyReduce_41--action_91 _ = happyReduce_42--action_92 _ = happyReduce_12--action_93 (35) = happyShift action_69-action_93 (36) = happyShift action_105-action_93 (37) = happyShift action_70-action_93 (39) = happyShift action_71-action_93 (40) = happyShift action_72-action_93 _ = happyFail (happyExpListPerState 93)--action_94 (50) = happyShift action_104-action_94 _ = happyFail (happyExpListPerState 94)--action_95 _ = happyReduce_29--action_96 _ = happyReduce_36--action_97 (36) = happyShift action_103-action_97 _ = happyFail (happyExpListPerState 97)--action_98 (45) = happyShift action_49-action_98 (47) = happyShift action_50-action_98 (52) = happyShift action_51-action_98 (53) = happyShift action_52-action_98 (55) = happyShift action_53-action_98 (65) = happyShift action_54-action_98 (67) = happyShift action_55-action_98 (21) = happyGoto action_46-action_98 (23) = happyGoto action_47-action_98 (26) = happyGoto action_102-action_98 _ = happyFail (happyExpListPerState 98)--action_99 _ = happyReduce_27--action_100 (56) = happyShift action_101-action_100 _ = happyFail (happyExpListPerState 100)--action_101 (43) = happyShift action_108-action_101 _ = happyFail (happyExpListPerState 101)--action_102 (35) = happyShift action_69-action_102 (37) = happyShift action_70-action_102 (39) = happyShift action_71-action_102 (40) = happyShift action_72-action_102 (54) = happyShift action_107-action_102 _ = happyFail (happyExpListPerState 102)--action_103 _ = happyReduce_28--action_104 (45) = happyShift action_49-action_104 (47) = happyShift action_50-action_104 (52) = happyShift action_51-action_104 (53) = happyShift action_52-action_104 (55) = happyShift action_53-action_104 (65) = happyShift action_54-action_104 (67) = happyShift action_55-action_104 (21) = happyGoto action_46-action_104 (23) = happyGoto action_47-action_104 (26) = happyGoto action_106-action_104 _ = happyFail (happyExpListPerState 104)--action_105 _ = happyReduce_37--action_106 (35) = happyShift action_69-action_106 (37) = happyShift action_70-action_106 (39) = happyShift action_71-action_106 (40) = happyShift action_72-action_106 (41) = happyShift action_109-action_106 _ = happyFail (happyExpListPerState 106)--action_107 _ = happyReduce_34--action_108 _ = happyReduce_21--action_109 _ = happyReduce_33--happyReduce_11 = happySpecReduce_1  14 happyReduction_11-happyReduction_11 (HappyTerminal (PT _ (T_Bytes happy_var_1)))-	 =  HappyAbsSyn14-		 (Language.EO.Phi.Syntax.Abs.Bytes happy_var_1-	)-happyReduction_11 _  = notHappyAtAll --happyReduce_12 = happySpecReduce_1  15 happyReduction_12-happyReduction_12 (HappyTerminal (PT _ (T_Function happy_var_1)))-	 =  HappyAbsSyn15-		 (Language.EO.Phi.Syntax.Abs.Function happy_var_1-	)-happyReduction_12 _  = notHappyAtAll --happyReduce_13 = happySpecReduce_1  16 happyReduction_13-happyReduction_13 (HappyTerminal (PT _ (T_LabelId happy_var_1)))-	 =  HappyAbsSyn16-		 (Language.EO.Phi.Syntax.Abs.LabelId happy_var_1-	)-happyReduction_13 _  = notHappyAtAll --happyReduce_14 = happySpecReduce_1  17 happyReduction_14-happyReduction_14 (HappyTerminal (PT _ (T_AlphaIndex happy_var_1)))-	 =  HappyAbsSyn17-		 (Language.EO.Phi.Syntax.Abs.AlphaIndex happy_var_1-	)-happyReduction_14 _  = notHappyAtAll --happyReduce_15 = happySpecReduce_1  18 happyReduction_15-happyReduction_15 (HappyTerminal (PT _ (T_LabelMetaId happy_var_1)))-	 =  HappyAbsSyn18-		 (Language.EO.Phi.Syntax.Abs.LabelMetaId happy_var_1-	)-happyReduction_15 _  = notHappyAtAll --happyReduce_16 = happySpecReduce_1  19 happyReduction_16-happyReduction_16 (HappyTerminal (PT _ (T_TailMetaId happy_var_1)))-	 =  HappyAbsSyn19-		 (Language.EO.Phi.Syntax.Abs.TailMetaId happy_var_1-	)-happyReduction_16 _  = notHappyAtAll --happyReduce_17 = happySpecReduce_1  20 happyReduction_17-happyReduction_17 (HappyTerminal (PT _ (T_BindingsMetaId happy_var_1)))-	 =  HappyAbsSyn20-		 (Language.EO.Phi.Syntax.Abs.BindingsMetaId happy_var_1-	)-happyReduction_17 _  = notHappyAtAll --happyReduce_18 = happySpecReduce_1  21 happyReduction_18-happyReduction_18 (HappyTerminal (PT _ (T_ObjectMetaId happy_var_1)))-	 =  HappyAbsSyn21-		 (Language.EO.Phi.Syntax.Abs.ObjectMetaId happy_var_1-	)-happyReduction_18 _  = notHappyAtAll --happyReduce_19 = happySpecReduce_1  22 happyReduction_19-happyReduction_19 (HappyTerminal (PT _ (T_BytesMetaId happy_var_1)))-	 =  HappyAbsSyn22-		 (Language.EO.Phi.Syntax.Abs.BytesMetaId happy_var_1-	)-happyReduction_19 _  = notHappyAtAll --happyReduce_20 = happySpecReduce_1  23 happyReduction_20-happyReduction_20 (HappyTerminal (PT _ (T_MetaFunctionName happy_var_1)))-	 =  HappyAbsSyn23-		 (Language.EO.Phi.Syntax.Abs.MetaFunctionName happy_var_1-	)-happyReduction_20 _  = notHappyAtAll --happyReduce_21 = happyReduce 5 24 happyReduction_21-happyReduction_21 (_ `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn28  happy_var_3) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn24-		 (Language.EO.Phi.Syntax.Abs.Program happy_var_3-	) `HappyStk` happyRest--happyReduce_22 = happySpecReduce_1  25 happyReduction_22-happyReduction_22 (HappyAbsSyn18  happy_var_1)-	 =  HappyAbsSyn25-		 (Language.EO.Phi.Syntax.Abs.MetaIdLabel happy_var_1-	)-happyReduction_22 _  = notHappyAtAll --happyReduce_23 = happySpecReduce_1  25 happyReduction_23-happyReduction_23 (HappyAbsSyn19  happy_var_1)-	 =  HappyAbsSyn25-		 (Language.EO.Phi.Syntax.Abs.MetaIdTail happy_var_1-	)-happyReduction_23 _  = notHappyAtAll --happyReduce_24 = happySpecReduce_1  25 happyReduction_24-happyReduction_24 (HappyAbsSyn20  happy_var_1)-	 =  HappyAbsSyn25-		 (Language.EO.Phi.Syntax.Abs.MetaIdBindings happy_var_1-	)-happyReduction_24 _  = notHappyAtAll --happyReduce_25 = happySpecReduce_1  25 happyReduction_25-happyReduction_25 (HappyAbsSyn21  happy_var_1)-	 =  HappyAbsSyn25-		 (Language.EO.Phi.Syntax.Abs.MetaIdObject happy_var_1-	)-happyReduction_25 _  = notHappyAtAll --happyReduce_26 = happySpecReduce_1  25 happyReduction_26-happyReduction_26 (HappyAbsSyn22  happy_var_1)-	 =  HappyAbsSyn25-		 (Language.EO.Phi.Syntax.Abs.MetaIdBytes happy_var_1-	)-happyReduction_26 _  = notHappyAtAll --happyReduce_27 = happySpecReduce_3  26 happyReduction_27-happyReduction_27 _-	(HappyAbsSyn28  happy_var_2)-	_-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.Formation happy_var_2-	)-happyReduction_27 _ _ _  = notHappyAtAll --happyReduce_28 = happyReduce 4 26 happyReduction_28-happyReduction_28 (_ `HappyStk`-	(HappyAbsSyn28  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.Application happy_var_1 happy_var_3-	) `HappyStk` happyRest--happyReduce_29 = happySpecReduce_3  26 happyReduction_29-happyReduction_29 (HappyAbsSyn29  happy_var_3)-	_-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.ObjectDispatch happy_var_1 happy_var_3-	)-happyReduction_29 _ _ _  = notHappyAtAll --happyReduce_30 = happySpecReduce_1  26 happyReduction_30-happyReduction_30 _-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.GlobalObject-	)--happyReduce_31 = happySpecReduce_1  26 happyReduction_31-happyReduction_31 _-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.ThisObject-	)--happyReduce_32 = happySpecReduce_1  26 happyReduction_32-happyReduction_32 _-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.Termination-	)--happyReduce_33 = happyReduce 6 26 happyReduction_33-happyReduction_33 (_ `HappyStk`-	(HappyAbsSyn26  happy_var_5) `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5-	) `HappyStk` happyRest--happyReduce_34 = happyReduce 5 26 happyReduction_34-happyReduction_34 (_ `HappyStk`-	(HappyAbsSyn26  happy_var_4) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn26  happy_var_2) `HappyStk`-	_ `HappyStk`-	happyRest)-	 = HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.MetaContextualize happy_var_2 happy_var_4-	) `HappyStk` happyRest--happyReduce_35 = happySpecReduce_1  26 happyReduction_35-happyReduction_35 (HappyAbsSyn21  happy_var_1)-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.MetaObject happy_var_1-	)-happyReduction_35 _  = notHappyAtAll --happyReduce_36 = happySpecReduce_3  26 happyReduction_36-happyReduction_36 (HappyAbsSyn19  happy_var_3)-	_-	(HappyAbsSyn26  happy_var_1)-	 =  HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.MetaTailContext happy_var_1 happy_var_3-	)-happyReduction_36 _ _ _  = notHappyAtAll --happyReduce_37 = happyReduce 4 26 happyReduction_37-happyReduction_37 (_ `HappyStk`-	(HappyAbsSyn26  happy_var_3) `HappyStk`-	_ `HappyStk`-	(HappyAbsSyn23  happy_var_1) `HappyStk`-	happyRest)-	 = HappyAbsSyn26-		 (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3-	) `HappyStk` happyRest--happyReduce_38 = happySpecReduce_3  27 happyReduction_38-happyReduction_38 (HappyAbsSyn26  happy_var_3)-	_-	(HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.AlphaBinding happy_var_1 happy_var_3-	)-happyReduction_38 _ _ _  = notHappyAtAll --happyReduce_39 = happySpecReduce_3  27 happyReduction_39-happyReduction_39 _-	_-	(HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1-	)-happyReduction_39 _ _ _  = notHappyAtAll --happyReduce_40 = happySpecReduce_3  27 happyReduction_40-happyReduction_40 (HappyAbsSyn14  happy_var_3)-	_-	_-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3-	)-happyReduction_40 _ _ _  = notHappyAtAll --happyReduce_41 = happySpecReduce_3  27 happyReduction_41-happyReduction_41 _-	_-	_-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding-	)--happyReduce_42 = happySpecReduce_3  27 happyReduction_42-happyReduction_42 (HappyAbsSyn15  happy_var_3)-	_-	_-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3-	)-happyReduction_42 _ _ _  = notHappyAtAll --happyReduce_43 = happySpecReduce_1  27 happyReduction_43-happyReduction_43 (HappyAbsSyn20  happy_var_1)-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1-	)-happyReduction_43 _  = notHappyAtAll --happyReduce_44 = happySpecReduce_3  27 happyReduction_44-happyReduction_44 (HappyAbsSyn22  happy_var_3)-	_-	_-	 =  HappyAbsSyn27-		 (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3-	)-happyReduction_44 _ _ _  = notHappyAtAll --happyReduce_45 = happySpecReduce_0  28 happyReduction_45-happyReduction_45  =  HappyAbsSyn28-		 ([]-	)--happyReduce_46 = happySpecReduce_1  28 happyReduction_46-happyReduction_46 (HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn28-		 ((:[]) happy_var_1-	)-happyReduction_46 _  = notHappyAtAll --happyReduce_47 = happySpecReduce_3  28 happyReduction_47-happyReduction_47 (HappyAbsSyn28  happy_var_3)-	_-	(HappyAbsSyn27  happy_var_1)-	 =  HappyAbsSyn28-		 ((:) happy_var_1 happy_var_3-	)-happyReduction_47 _ _ _  = notHappyAtAll --happyReduce_48 = happySpecReduce_1  29 happyReduction_48-happyReduction_48 _-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Phi-	)--happyReduce_49 = happySpecReduce_1  29 happyReduction_49-happyReduction_49 _-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Rho-	)--happyReduce_50 = happySpecReduce_1  29 happyReduction_50-happyReduction_50 (HappyAbsSyn16  happy_var_1)-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Label happy_var_1-	)-happyReduction_50 _  = notHappyAtAll --happyReduce_51 = happySpecReduce_1  29 happyReduction_51-happyReduction_51 (HappyAbsSyn17  happy_var_1)-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1-	)-happyReduction_51 _  = notHappyAtAll --happyReduce_52 = happySpecReduce_1  29 happyReduction_52-happyReduction_52 (HappyAbsSyn18  happy_var_1)-	 =  HappyAbsSyn29-		 (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1-	)-happyReduction_52 _  = notHappyAtAll --happyReduce_53 = happySpecReduce_1  30 happyReduction_53-happyReduction_53 (HappyAbsSyn29  happy_var_1)-	 =  HappyAbsSyn30-		 (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1-	)-happyReduction_53 _  = notHappyAtAll --happyReduce_54 = happySpecReduce_1  30 happyReduction_54-happyReduction_54 _-	 =  HappyAbsSyn30-		 (Language.EO.Phi.Syntax.Abs.DeltaAttr-	)--happyReduce_55 = happySpecReduce_1  30 happyReduction_55-happyReduction_55 _-	 =  HappyAbsSyn30-		 (Language.EO.Phi.Syntax.Abs.LambdaAttr-	)--happyReduce_56 = happySpecReduce_2  31 happyReduction_56-happyReduction_56 (HappyAbsSyn34  happy_var_2)-	(HappyAbsSyn32  happy_var_1)-	 =  HappyAbsSyn31-		 (Language.EO.Phi.Syntax.Abs.PeeledObject happy_var_1 happy_var_2-	)-happyReduction_56 _ _  = notHappyAtAll --happyReduce_57 = happySpecReduce_3  32 happyReduction_57-happyReduction_57 _-	(HappyAbsSyn28  happy_var_2)-	_-	 =  HappyAbsSyn32-		 (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2-	)-happyReduction_57 _ _ _  = notHappyAtAll --happyReduce_58 = happySpecReduce_1  32 happyReduction_58-happyReduction_58 _-	 =  HappyAbsSyn32-		 (Language.EO.Phi.Syntax.Abs.HeadGlobal-	)--happyReduce_59 = happySpecReduce_1  32 happyReduction_59-happyReduction_59 _-	 =  HappyAbsSyn32-		 (Language.EO.Phi.Syntax.Abs.HeadThis-	)--happyReduce_60 = happySpecReduce_1  32 happyReduction_60-happyReduction_60 _-	 =  HappyAbsSyn32-		 (Language.EO.Phi.Syntax.Abs.HeadTermination-	)--happyReduce_61 = happySpecReduce_3  33 happyReduction_61-happyReduction_61 _-	(HappyAbsSyn28  happy_var_2)-	_-	 =  HappyAbsSyn33-		 (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2-	)-happyReduction_61 _ _ _  = notHappyAtAll --happyReduce_62 = happySpecReduce_2  33 happyReduction_62-happyReduction_62 (HappyAbsSyn29  happy_var_2)-	_-	 =  HappyAbsSyn33-		 (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2-	)-happyReduction_62 _ _  = notHappyAtAll --happyReduce_63 = happySpecReduce_0  34 happyReduction_63-happyReduction_63  =  HappyAbsSyn34-		 ([]-	)--happyReduce_64 = happySpecReduce_2  34 happyReduction_64-happyReduction_64 (HappyAbsSyn34  happy_var_2)-	(HappyAbsSyn33  happy_var_1)-	 =  HappyAbsSyn34-		 ((:) happy_var_1 happy_var_2-	)-happyReduction_64 _ _  = notHappyAtAll --happyNewToken action sts stk [] =-	action 68 68 notHappyAtAll (HappyState action) sts stk []--happyNewToken action sts stk (tk:tks) =-	let cont i = action i i tk (HappyState action) sts stk tks in-	case tk of {-	PT _ (TS _ 1) -> cont 35;-	PT _ (TS _ 2) -> cont 36;-	PT _ (TS _ 3) -> cont 37;-	PT _ (TS _ 4) -> cont 38;-	PT _ (TS _ 5) -> cont 39;-	PT _ (TS _ 6) -> cont 40;-	PT _ (TS _ 7) -> cont 41;-	PT _ (TS _ 8) -> cont 42;-	PT _ (TS _ 9) -> cont 43;-	PT _ (TS _ 10) -> cont 44;-	PT _ (TS _ 11) -> cont 45;-	PT _ (TS _ 12) -> cont 46;-	PT _ (TS _ 13) -> cont 47;-	PT _ (TS _ 14) -> cont 48;-	PT _ (TS _ 15) -> cont 49;-	PT _ (TS _ 16) -> cont 50;-	PT _ (TS _ 17) -> cont 51;-	PT _ (TS _ 18) -> cont 52;-	PT _ (TS _ 19) -> cont 53;-	PT _ (TS _ 20) -> cont 54;-	PT _ (TS _ 21) -> cont 55;-	PT _ (TS _ 22) -> cont 56;-	PT _ (TS _ 23) -> cont 57;-	PT _ (T_Bytes happy_dollar_dollar) -> cont 58;-	PT _ (T_Function happy_dollar_dollar) -> cont 59;-	PT _ (T_LabelId happy_dollar_dollar) -> cont 60;-	PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 61;-	PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 62;-	PT _ (T_TailMetaId happy_dollar_dollar) -> cont 63;-	PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 64;-	PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 65;-	PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 66;-	PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 67;-	_ -> happyError' ((tk:tks), [])-	}--happyError_ explist 68 tk tks = happyError' (tks, explist)-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)--happyThen :: () => Err a -> (a -> Err b) -> Err b-happyThen = ((>>=))-happyReturn :: () => a -> Err a-happyReturn = (return)-happyThen1 m k tks = ((>>=)) m (\a -> k a tks)-happyReturn1 :: () => a -> b -> Err a-happyReturn1 = \a tks -> (return) a-happyError' :: () => ([(Token)], [Prelude.String]) -> Err a-happyError' = (\(tokens, _) -> happyError tokens)-pProgram tks = happySomeParser where- happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn24 z -> happyReturn z; _other -> notHappyAtAll })--pMetaId tks = happySomeParser where- happySomeParser = happyThen (happyParse action_1 tks) (\x -> case x of {HappyAbsSyn25 z -> happyReturn z; _other -> notHappyAtAll })--pObject tks = happySomeParser where- happySomeParser = happyThen (happyParse action_2 tks) (\x -> case x of {HappyAbsSyn26 z -> happyReturn z; _other -> notHappyAtAll })--pBinding tks = happySomeParser where- happySomeParser = happyThen (happyParse action_3 tks) (\x -> case x of {HappyAbsSyn27 z -> happyReturn z; _other -> notHappyAtAll })--pListBinding tks = happySomeParser where- happySomeParser = happyThen (happyParse action_4 tks) (\x -> case x of {HappyAbsSyn28 z -> happyReturn z; _other -> notHappyAtAll })--pAttribute tks = happySomeParser where- happySomeParser = happyThen (happyParse action_5 tks) (\x -> case x of {HappyAbsSyn29 z -> happyReturn z; _other -> notHappyAtAll })--pRuleAttribute tks = happySomeParser where- happySomeParser = happyThen (happyParse action_6 tks) (\x -> case x of {HappyAbsSyn30 z -> happyReturn z; _other -> notHappyAtAll })--pPeeledObject tks = happySomeParser where- happySomeParser = happyThen (happyParse action_7 tks) (\x -> case x of {HappyAbsSyn31 z -> happyReturn z; _other -> notHappyAtAll })--pObjectHead tks = happySomeParser where- happySomeParser = happyThen (happyParse action_8 tks) (\x -> case x of {HappyAbsSyn32 z -> happyReturn z; _other -> notHappyAtAll })--pObjectAction tks = happySomeParser where- happySomeParser = happyThen (happyParse action_9 tks) (\x -> case x of {HappyAbsSyn33 z -> happyReturn z; _other -> notHappyAtAll })--pListObjectAction tks = happySomeParser where- happySomeParser = happyThen (happyParse action_10 tks) (\x -> case x of {HappyAbsSyn34 z -> happyReturn z; _other -> notHappyAtAll })+	| HappyAbsSyn14 (Double)+	| HappyAbsSyn15 (Integer)+	| HappyAbsSyn16 (String)+	| HappyAbsSyn17 (Language.EO.Phi.Syntax.Abs.Bytes)+	| HappyAbsSyn18 (Language.EO.Phi.Syntax.Abs.Function)+	| HappyAbsSyn19 (Language.EO.Phi.Syntax.Abs.LabelId)+	| HappyAbsSyn20 (Language.EO.Phi.Syntax.Abs.AlphaIndex)+	| HappyAbsSyn21 (Language.EO.Phi.Syntax.Abs.LabelMetaId)+	| HappyAbsSyn22 (Language.EO.Phi.Syntax.Abs.TailMetaId)+	| HappyAbsSyn23 (Language.EO.Phi.Syntax.Abs.BindingsMetaId)+	| HappyAbsSyn24 (Language.EO.Phi.Syntax.Abs.ObjectMetaId)+	| HappyAbsSyn25 (Language.EO.Phi.Syntax.Abs.BytesMetaId)+	| HappyAbsSyn26 (Language.EO.Phi.Syntax.Abs.MetaFunctionName)+	| HappyAbsSyn27 (Language.EO.Phi.Syntax.Abs.Program)+	| HappyAbsSyn28 (Language.EO.Phi.Syntax.Abs.MetaId)+	| HappyAbsSyn29 (Language.EO.Phi.Syntax.Abs.Object)+	| HappyAbsSyn30 (Language.EO.Phi.Syntax.Abs.Binding)+	| HappyAbsSyn31 ([Language.EO.Phi.Syntax.Abs.Binding])+	| HappyAbsSyn32 (Language.EO.Phi.Syntax.Abs.Attribute)+	| HappyAbsSyn33 (Language.EO.Phi.Syntax.Abs.RuleAttribute)+	| HappyAbsSyn34 (Language.EO.Phi.Syntax.Abs.PeeledObject)+	| HappyAbsSyn35 (Language.EO.Phi.Syntax.Abs.ObjectHead)+	| HappyAbsSyn36 (Language.EO.Phi.Syntax.Abs.ObjectAction)+	| HappyAbsSyn37 ([Language.EO.Phi.Syntax.Abs.ObjectAction])++{- to allow type-synonyms as our monads (likely+ - with explicitly-specified bind and return)+ - in Haskell98, it seems that with+ - /type M a = .../, then /(HappyReduction M)/+ - is not allowed.  But Happy is a+ - code-generator that can just substitute it.+type HappyReduction m = +	   Prelude.Int +	-> (Token)+	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)+	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)] +	-> HappyStk HappyAbsSyn +	-> [(Token)] -> m HappyAbsSyn+-}++action_0,+ action_1,+ action_2,+ action_3,+ action_4,+ action_5,+ action_6,+ action_7,+ action_8,+ action_9,+ action_10,+ action_11,+ action_12,+ action_13,+ action_14,+ action_15,+ action_16,+ action_17,+ action_18,+ action_19,+ action_20,+ action_21,+ action_22,+ action_23,+ action_24,+ action_25,+ action_26,+ action_27,+ action_28,+ action_29,+ action_30,+ action_31,+ action_32,+ action_33,+ action_34,+ action_35,+ action_36,+ action_37,+ action_38,+ action_39,+ action_40,+ action_41,+ action_42,+ action_43,+ action_44,+ action_45,+ action_46,+ action_47,+ action_48,+ action_49,+ action_50,+ action_51,+ action_52,+ action_53,+ action_54,+ action_55,+ action_56,+ action_57,+ action_58,+ action_59,+ action_60,+ action_61,+ action_62,+ action_63,+ action_64,+ action_65,+ action_66,+ action_67,+ action_68,+ action_69,+ action_70,+ action_71,+ action_72,+ action_73,+ action_74,+ action_75,+ action_76,+ action_77,+ action_78,+ action_79,+ action_80,+ action_81,+ action_82,+ action_83,+ action_84,+ action_85,+ action_86,+ action_87,+ action_88,+ action_89,+ action_90,+ action_91,+ action_92,+ action_93,+ action_94,+ action_95,+ action_96,+ action_97,+ action_98,+ action_99,+ action_100,+ action_101,+ action_102,+ action_103,+ action_104,+ action_105,+ action_106,+ action_107,+ action_108,+ action_109,+ action_110,+ action_111,+ action_112,+ action_113,+ action_114,+ action_115 :: () => Prelude.Int -> ({-HappyReduction (Err) = -}+	   Prelude.Int +	-> (Token)+	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)+	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] +	-> HappyStk HappyAbsSyn +	-> [(Token)] -> (Err) HappyAbsSyn)++happyReduce_11,+ happyReduce_12,+ happyReduce_13,+ happyReduce_14,+ happyReduce_15,+ happyReduce_16,+ happyReduce_17,+ happyReduce_18,+ happyReduce_19,+ happyReduce_20,+ happyReduce_21,+ happyReduce_22,+ happyReduce_23,+ happyReduce_24,+ happyReduce_25,+ happyReduce_26,+ happyReduce_27,+ happyReduce_28,+ happyReduce_29,+ happyReduce_30,+ happyReduce_31,+ happyReduce_32,+ happyReduce_33,+ happyReduce_34,+ happyReduce_35,+ happyReduce_36,+ happyReduce_37,+ happyReduce_38,+ happyReduce_39,+ happyReduce_40,+ happyReduce_41,+ happyReduce_42,+ happyReduce_43,+ happyReduce_44,+ happyReduce_45,+ happyReduce_46,+ happyReduce_47,+ happyReduce_48,+ happyReduce_49,+ happyReduce_50,+ happyReduce_51,+ happyReduce_52,+ happyReduce_53,+ happyReduce_54,+ happyReduce_55,+ happyReduce_56,+ happyReduce_57,+ happyReduce_58,+ happyReduce_59,+ happyReduce_60,+ happyReduce_61,+ happyReduce_62,+ happyReduce_63,+ happyReduce_64,+ happyReduce_65,+ happyReduce_66,+ happyReduce_67,+ happyReduce_68,+ happyReduce_69,+ happyReduce_70 :: () => ({-HappyReduction (Err) = -}+	   Prelude.Int +	-> (Token)+	-> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)+	-> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> (Err) HappyAbsSyn)] +	-> HappyStk HappyAbsSyn +	-> [(Token)] -> (Err) HappyAbsSyn)++happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int+happyExpList = Happy_Data_Array.listArray (0,290) ([0,0,4096,0,0,0,0,0,57344,3,0,0,11304,5127,0,0,20480,32771,11,0,0,3392,11776,0,0,0,48,56,0,0,54272,57344,0,0,0,37024,0,0,0,32768,578,0,0,32768,8,0,0,0,8704,0,0,0,0,0,1024,0,0,0,0,0,0,0,2176,0,0,0,0,0,0,0,0,0,848,2944,0,0,0,12,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54272,57344,2,0,0,0,0,0,0,544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,0,0,0,0,0,16384,0,0,0,0,32768,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,45216,20508,0,0,16384,13,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,848,2944,0,0,0,1024,0,0,32768,30,0,0,0,0,212,736,0,0,0,0,4,0,0,3072,3584,0,0,0,8,0,0,0,10240,1836,20,0,0,0,64,0,0,0,32800,128,0,0,35328,459,5,0,0,212,736,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,424,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,440,0,0,0,0,4096,0,0,0,0,0,0,0,0,0,0,0,0,4096,0,0,0,0,32768,29378,320,0,0,0,0,0,0,0,16384,0,0,0,2048,0,0,0,40960,6,1,0,0,0,0,0,0,0,10240,1836,20,0,0,0,0,0,0,3744,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+	])++{-# NOINLINE happyExpListPerState #-}+happyExpListPerState st =+    token_strs_expected+  where token_strs = ["error","%dummy","%start_pProgram","%start_pMetaId","%start_pObject","%start_pBinding","%start_pListBinding","%start_pAttribute","%start_pRuleAttribute","%start_pPeeledObject","%start_pObjectHead","%start_pObjectAction","%start_pListObjectAction","Double","Integer","String","Bytes","Function","LabelId","AlphaIndex","LabelMetaId","TailMetaId","BindingsMetaId","ObjectMetaId","BytesMetaId","MetaFunctionName","Program","MetaId","Object","Binding","ListBinding","Attribute","RuleAttribute","PeeledObject","ObjectHead","ObjectAction","ListObjectAction","'('","')'","'*'","','","'.'","'['","']'","'{'","'}'","'\916'","'\934'","'\955'","'\958'","'\961'","'\966'","'\8614'","'\8709'","'\8869'","'\8968'","'\8969'","'\10214'","'\10215'","'\10509'","L_doubl","L_integ","L_quoted","L_Bytes","L_Function","L_LabelId","L_AlphaIndex","L_LabelMetaId","L_TailMetaId","L_BindingsMetaId","L_ObjectMetaId","L_BytesMetaId","L_MetaFunctionName","%eof"]+        bit_start = st Prelude.* 74+        bit_end = (st Prelude.+ 1) Prelude.* 74+        read_bit = readArrayBit happyExpList+        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]+        bits_indexed = Prelude.zip bits [0..73]+        token_strs_expected = Prelude.concatMap f bits_indexed+        f (Prelude.False, _) = []+        f (Prelude.True, nr) = [token_strs Prelude.!! nr]++action_0 (45) = happyShift action_70+action_0 (27) = happyGoto action_69+action_0 _ = happyFail (happyExpListPerState 0)++action_1 (68) = happyShift action_36+action_1 (69) = happyShift action_67+action_1 (70) = happyShift action_44+action_1 (71) = happyShift action_59+action_1 (72) = happyShift action_68+action_1 (21) = happyGoto action_61+action_1 (22) = happyGoto action_62+action_1 (23) = happyGoto action_63+action_1 (24) = happyGoto action_64+action_1 (25) = happyGoto action_65+action_1 (28) = happyGoto action_66+action_1 _ = happyFail (happyExpListPerState 1)++action_2 (48) = happyShift action_52+action_2 (50) = happyShift action_53+action_2 (55) = happyShift action_54+action_2 (56) = happyShift action_55+action_2 (58) = happyShift action_56+action_2 (61) = happyShift action_12+action_2 (62) = happyShift action_57+action_2 (63) = happyShift action_58+action_2 (71) = happyShift action_59+action_2 (73) = happyShift action_60+action_2 (14) = happyGoto action_46+action_2 (15) = happyGoto action_47+action_2 (16) = happyGoto action_48+action_2 (24) = happyGoto action_49+action_2 (26) = happyGoto action_50+action_2 (29) = happyGoto action_51+action_2 _ = happyFail (happyExpListPerState 2)++action_3 (47) = happyShift action_42+action_3 (49) = happyShift action_43+action_3 (51) = happyShift action_32+action_3 (52) = happyShift action_33+action_3 (66) = happyShift action_34+action_3 (67) = happyShift action_35+action_3 (68) = happyShift action_36+action_3 (70) = happyShift action_44+action_3 (19) = happyGoto action_25+action_3 (20) = happyGoto action_26+action_3 (21) = happyGoto action_27+action_3 (23) = happyGoto action_38+action_3 (30) = happyGoto action_45+action_3 (32) = happyGoto action_41+action_3 _ = happyFail (happyExpListPerState 3)++action_4 (47) = happyShift action_42+action_4 (49) = happyShift action_43+action_4 (51) = happyShift action_32+action_4 (52) = happyShift action_33+action_4 (66) = happyShift action_34+action_4 (67) = happyShift action_35+action_4 (68) = happyShift action_36+action_4 (70) = happyShift action_44+action_4 (19) = happyGoto action_25+action_4 (20) = happyGoto action_26+action_4 (21) = happyGoto action_27+action_4 (23) = happyGoto action_38+action_4 (30) = happyGoto action_39+action_4 (31) = happyGoto action_40+action_4 (32) = happyGoto action_41+action_4 _ = happyReduce_51++action_5 (51) = happyShift action_32+action_5 (52) = happyShift action_33+action_5 (66) = happyShift action_34+action_5 (67) = happyShift action_35+action_5 (68) = happyShift action_36+action_5 (19) = happyGoto action_25+action_5 (20) = happyGoto action_26+action_5 (21) = happyGoto action_27+action_5 (32) = happyGoto action_37+action_5 _ = happyFail (happyExpListPerState 5)++action_6 (47) = happyShift action_30+action_6 (49) = happyShift action_31+action_6 (51) = happyShift action_32+action_6 (52) = happyShift action_33+action_6 (66) = happyShift action_34+action_6 (67) = happyShift action_35+action_6 (68) = happyShift action_36+action_6 (19) = happyGoto action_25+action_6 (20) = happyGoto action_26+action_6 (21) = happyGoto action_27+action_6 (32) = happyGoto action_28+action_6 (33) = happyGoto action_29+action_6 _ = happyFail (happyExpListPerState 6)++action_7 (48) = happyShift action_19+action_7 (50) = happyShift action_20+action_7 (55) = happyShift action_21+action_7 (58) = happyShift action_22+action_7 (34) = happyGoto action_23+action_7 (35) = happyGoto action_24+action_7 _ = happyFail (happyExpListPerState 7)++action_8 (48) = happyShift action_19+action_8 (50) = happyShift action_20+action_8 (55) = happyShift action_21+action_8 (58) = happyShift action_22+action_8 (35) = happyGoto action_18+action_8 _ = happyFail (happyExpListPerState 8)++action_9 (38) = happyShift action_15+action_9 (42) = happyShift action_16+action_9 (36) = happyGoto action_17+action_9 _ = happyFail (happyExpListPerState 9)++action_10 (38) = happyShift action_15+action_10 (42) = happyShift action_16+action_10 (36) = happyGoto action_13+action_10 (37) = happyGoto action_14+action_10 _ = happyReduce_69++action_11 (61) = happyShift action_12+action_11 _ = happyFail (happyExpListPerState 11)++action_12 _ = happyReduce_11++action_13 (38) = happyShift action_15+action_13 (42) = happyShift action_16+action_13 (36) = happyGoto action_13+action_13 (37) = happyGoto action_87+action_13 _ = happyReduce_69++action_14 (74) = happyAccept+action_14 _ = happyFail (happyExpListPerState 14)++action_15 (47) = happyShift action_42+action_15 (49) = happyShift action_43+action_15 (51) = happyShift action_32+action_15 (52) = happyShift action_33+action_15 (66) = happyShift action_34+action_15 (67) = happyShift action_35+action_15 (68) = happyShift action_36+action_15 (70) = happyShift action_44+action_15 (19) = happyGoto action_25+action_15 (20) = happyGoto action_26+action_15 (21) = happyGoto action_27+action_15 (23) = happyGoto action_38+action_15 (30) = happyGoto action_39+action_15 (31) = happyGoto action_86+action_15 (32) = happyGoto action_41+action_15 _ = happyReduce_51++action_16 (51) = happyShift action_32+action_16 (52) = happyShift action_33+action_16 (66) = happyShift action_34+action_16 (67) = happyShift action_35+action_16 (68) = happyShift action_36+action_16 (19) = happyGoto action_25+action_16 (20) = happyGoto action_26+action_16 (21) = happyGoto action_27+action_16 (32) = happyGoto action_85+action_16 _ = happyFail (happyExpListPerState 16)++action_17 (74) = happyAccept+action_17 _ = happyFail (happyExpListPerState 17)++action_18 (74) = happyAccept+action_18 _ = happyFail (happyExpListPerState 18)++action_19 _ = happyReduce_64++action_20 _ = happyReduce_65++action_21 _ = happyReduce_66++action_22 (47) = happyShift action_42+action_22 (49) = happyShift action_43+action_22 (51) = happyShift action_32+action_22 (52) = happyShift action_33+action_22 (66) = happyShift action_34+action_22 (67) = happyShift action_35+action_22 (68) = happyShift action_36+action_22 (70) = happyShift action_44+action_22 (19) = happyGoto action_25+action_22 (20) = happyGoto action_26+action_22 (21) = happyGoto action_27+action_22 (23) = happyGoto action_38+action_22 (30) = happyGoto action_39+action_22 (31) = happyGoto action_84+action_22 (32) = happyGoto action_41+action_22 _ = happyReduce_51++action_23 (74) = happyAccept+action_23 _ = happyFail (happyExpListPerState 23)++action_24 (38) = happyShift action_15+action_24 (42) = happyShift action_16+action_24 (36) = happyGoto action_13+action_24 (37) = happyGoto action_83+action_24 _ = happyReduce_69++action_25 _ = happyReduce_56++action_26 _ = happyReduce_57++action_27 _ = happyReduce_58++action_28 _ = happyReduce_59++action_29 (74) = happyAccept+action_29 _ = happyFail (happyExpListPerState 29)++action_30 _ = happyReduce_60++action_31 _ = happyReduce_61++action_32 _ = happyReduce_55++action_33 _ = happyReduce_54++action_34 _ = happyReduce_16++action_35 _ = happyReduce_17++action_36 _ = happyReduce_18++action_37 (74) = happyAccept+action_37 _ = happyFail (happyExpListPerState 37)++action_38 _ = happyReduce_49++action_39 (41) = happyShift action_82+action_39 _ = happyReduce_52++action_40 (74) = happyAccept+action_40 _ = happyFail (happyExpListPerState 40)++action_41 (53) = happyShift action_81+action_41 _ = happyFail (happyExpListPerState 41)++action_42 (60) = happyShift action_80+action_42 _ = happyFail (happyExpListPerState 42)++action_43 (60) = happyShift action_79+action_43 _ = happyFail (happyExpListPerState 43)++action_44 _ = happyReduce_20++action_45 (74) = happyAccept+action_45 _ = happyFail (happyExpListPerState 45)++action_46 _ = happyReduce_38++action_47 _ = happyReduce_37++action_48 _ = happyReduce_36++action_49 _ = happyReduce_41++action_50 (38) = happyShift action_78+action_50 _ = happyFail (happyExpListPerState 50)++action_51 (38) = happyShift action_74+action_51 (40) = happyShift action_75+action_51 (42) = happyShift action_76+action_51 (43) = happyShift action_77+action_51 (74) = happyAccept+action_51 _ = happyFail (happyExpListPerState 51)++action_52 _ = happyReduce_33++action_53 _ = happyReduce_34++action_54 _ = happyReduce_35++action_55 (48) = happyShift action_52+action_55 (50) = happyShift action_53+action_55 (55) = happyShift action_54+action_55 (56) = happyShift action_55+action_55 (58) = happyShift action_56+action_55 (61) = happyShift action_12+action_55 (62) = happyShift action_57+action_55 (63) = happyShift action_58+action_55 (71) = happyShift action_59+action_55 (73) = happyShift action_60+action_55 (14) = happyGoto action_46+action_55 (15) = happyGoto action_47+action_55 (16) = happyGoto action_48+action_55 (24) = happyGoto action_49+action_55 (26) = happyGoto action_50+action_55 (29) = happyGoto action_73+action_55 _ = happyFail (happyExpListPerState 55)++action_56 (47) = happyShift action_42+action_56 (49) = happyShift action_43+action_56 (51) = happyShift action_32+action_56 (52) = happyShift action_33+action_56 (66) = happyShift action_34+action_56 (67) = happyShift action_35+action_56 (68) = happyShift action_36+action_56 (70) = happyShift action_44+action_56 (19) = happyGoto action_25+action_56 (20) = happyGoto action_26+action_56 (21) = happyGoto action_27+action_56 (23) = happyGoto action_38+action_56 (30) = happyGoto action_39+action_56 (31) = happyGoto action_72+action_56 (32) = happyGoto action_41+action_56 _ = happyReduce_51++action_57 _ = happyReduce_12++action_58 _ = happyReduce_13++action_59 _ = happyReduce_21++action_60 _ = happyReduce_23++action_61 _ = happyReduce_25++action_62 _ = happyReduce_26++action_63 _ = happyReduce_27++action_64 _ = happyReduce_28++action_65 _ = happyReduce_29++action_66 (74) = happyAccept+action_66 _ = happyFail (happyExpListPerState 66)++action_67 _ = happyReduce_19++action_68 _ = happyReduce_22++action_69 (74) = happyAccept+action_69 _ = happyFail (happyExpListPerState 69)++action_70 (58) = happyShift action_71+action_70 _ = happyFail (happyExpListPerState 70)++action_71 (47) = happyShift action_42+action_71 (49) = happyShift action_43+action_71 (51) = happyShift action_32+action_71 (52) = happyShift action_33+action_71 (66) = happyShift action_34+action_71 (67) = happyShift action_35+action_71 (68) = happyShift action_36+action_71 (70) = happyShift action_44+action_71 (19) = happyGoto action_25+action_71 (20) = happyGoto action_26+action_71 (21) = happyGoto action_27+action_71 (23) = happyGoto action_38+action_71 (30) = happyGoto action_39+action_71 (31) = happyGoto action_106+action_71 (32) = happyGoto action_41+action_71 _ = happyReduce_51++action_72 (59) = happyShift action_105+action_72 _ = happyFail (happyExpListPerState 72)++action_73 (38) = happyShift action_74+action_73 (40) = happyShift action_75+action_73 (41) = happyShift action_104+action_73 (42) = happyShift action_76+action_73 (43) = happyShift action_77+action_73 _ = happyFail (happyExpListPerState 73)++action_74 (47) = happyShift action_42+action_74 (49) = happyShift action_43+action_74 (51) = happyShift action_32+action_74 (52) = happyShift action_33+action_74 (66) = happyShift action_34+action_74 (67) = happyShift action_35+action_74 (68) = happyShift action_36+action_74 (70) = happyShift action_44+action_74 (19) = happyGoto action_25+action_74 (20) = happyGoto action_26+action_74 (21) = happyGoto action_27+action_74 (23) = happyGoto action_38+action_74 (30) = happyGoto action_39+action_74 (31) = happyGoto action_103+action_74 (32) = happyGoto action_41+action_74 _ = happyReduce_51++action_75 (69) = happyShift action_67+action_75 (22) = happyGoto action_102+action_75 _ = happyFail (happyExpListPerState 75)++action_76 (51) = happyShift action_32+action_76 (52) = happyShift action_33+action_76 (66) = happyShift action_34+action_76 (67) = happyShift action_35+action_76 (68) = happyShift action_36+action_76 (19) = happyGoto action_25+action_76 (20) = happyGoto action_26+action_76 (21) = happyGoto action_27+action_76 (32) = happyGoto action_101+action_76 _ = happyFail (happyExpListPerState 76)++action_77 (50) = happyShift action_100+action_77 _ = happyFail (happyExpListPerState 77)++action_78 (48) = happyShift action_52+action_78 (50) = happyShift action_53+action_78 (55) = happyShift action_54+action_78 (56) = happyShift action_55+action_78 (58) = happyShift action_56+action_78 (61) = happyShift action_12+action_78 (62) = happyShift action_57+action_78 (63) = happyShift action_58+action_78 (71) = happyShift action_59+action_78 (73) = happyShift action_60+action_78 (14) = happyGoto action_46+action_78 (15) = happyGoto action_47+action_78 (16) = happyGoto action_48+action_78 (24) = happyGoto action_49+action_78 (26) = happyGoto action_50+action_78 (29) = happyGoto action_99+action_78 _ = happyFail (happyExpListPerState 78)++action_79 (65) = happyShift action_98+action_79 (18) = happyGoto action_97+action_79 _ = happyFail (happyExpListPerState 79)++action_80 (54) = happyShift action_95+action_80 (64) = happyShift action_96+action_80 (72) = happyShift action_68+action_80 (17) = happyGoto action_93+action_80 (25) = happyGoto action_94+action_80 _ = happyFail (happyExpListPerState 80)++action_81 (48) = happyShift action_52+action_81 (50) = happyShift action_53+action_81 (54) = happyShift action_92+action_81 (55) = happyShift action_54+action_81 (56) = happyShift action_55+action_81 (58) = happyShift action_56+action_81 (61) = happyShift action_12+action_81 (62) = happyShift action_57+action_81 (63) = happyShift action_58+action_81 (71) = happyShift action_59+action_81 (73) = happyShift action_60+action_81 (14) = happyGoto action_46+action_81 (15) = happyGoto action_47+action_81 (16) = happyGoto action_48+action_81 (24) = happyGoto action_49+action_81 (26) = happyGoto action_50+action_81 (29) = happyGoto action_91+action_81 _ = happyFail (happyExpListPerState 81)++action_82 (47) = happyShift action_42+action_82 (49) = happyShift action_43+action_82 (51) = happyShift action_32+action_82 (52) = happyShift action_33+action_82 (66) = happyShift action_34+action_82 (67) = happyShift action_35+action_82 (68) = happyShift action_36+action_82 (70) = happyShift action_44+action_82 (19) = happyGoto action_25+action_82 (20) = happyGoto action_26+action_82 (21) = happyGoto action_27+action_82 (23) = happyGoto action_38+action_82 (30) = happyGoto action_39+action_82 (31) = happyGoto action_90+action_82 (32) = happyGoto action_41+action_82 _ = happyReduce_51++action_83 _ = happyReduce_62++action_84 (59) = happyShift action_89+action_84 _ = happyFail (happyExpListPerState 84)++action_85 _ = happyReduce_68++action_86 (39) = happyShift action_88+action_86 _ = happyFail (happyExpListPerState 86)++action_87 _ = happyReduce_70++action_88 _ = happyReduce_67++action_89 _ = happyReduce_63++action_90 _ = happyReduce_53++action_91 (38) = happyShift action_74+action_91 (40) = happyShift action_75+action_91 (42) = happyShift action_76+action_91 (43) = happyShift action_77+action_91 _ = happyReduce_44++action_92 _ = happyReduce_45++action_93 _ = happyReduce_46++action_94 _ = happyReduce_50++action_95 _ = happyReduce_47++action_96 _ = happyReduce_14++action_97 _ = happyReduce_48++action_98 _ = happyReduce_15++action_99 (38) = happyShift action_74+action_99 (39) = happyShift action_111+action_99 (40) = happyShift action_75+action_99 (42) = happyShift action_76+action_99 (43) = happyShift action_77+action_99 _ = happyFail (happyExpListPerState 99)++action_100 (53) = happyShift action_110+action_100 _ = happyFail (happyExpListPerState 100)++action_101 _ = happyReduce_32++action_102 _ = happyReduce_42++action_103 (39) = happyShift action_109+action_103 _ = happyFail (happyExpListPerState 103)++action_104 (48) = happyShift action_52+action_104 (50) = happyShift action_53+action_104 (55) = happyShift action_54+action_104 (56) = happyShift action_55+action_104 (58) = happyShift action_56+action_104 (61) = happyShift action_12+action_104 (62) = happyShift action_57+action_104 (63) = happyShift action_58+action_104 (71) = happyShift action_59+action_104 (73) = happyShift action_60+action_104 (14) = happyGoto action_46+action_104 (15) = happyGoto action_47+action_104 (16) = happyGoto action_48+action_104 (24) = happyGoto action_49+action_104 (26) = happyGoto action_50+action_104 (29) = happyGoto action_108+action_104 _ = happyFail (happyExpListPerState 104)++action_105 _ = happyReduce_30++action_106 (59) = happyShift action_107+action_106 _ = happyFail (happyExpListPerState 106)++action_107 (46) = happyShift action_114+action_107 _ = happyFail (happyExpListPerState 107)++action_108 (38) = happyShift action_74+action_108 (40) = happyShift action_75+action_108 (42) = happyShift action_76+action_108 (43) = happyShift action_77+action_108 (57) = happyShift action_113+action_108 _ = happyFail (happyExpListPerState 108)++action_109 _ = happyReduce_31++action_110 (48) = happyShift action_52+action_110 (50) = happyShift action_53+action_110 (55) = happyShift action_54+action_110 (56) = happyShift action_55+action_110 (58) = happyShift action_56+action_110 (61) = happyShift action_12+action_110 (62) = happyShift action_57+action_110 (63) = happyShift action_58+action_110 (71) = happyShift action_59+action_110 (73) = happyShift action_60+action_110 (14) = happyGoto action_46+action_110 (15) = happyGoto action_47+action_110 (16) = happyGoto action_48+action_110 (24) = happyGoto action_49+action_110 (26) = happyGoto action_50+action_110 (29) = happyGoto action_112+action_110 _ = happyFail (happyExpListPerState 110)++action_111 _ = happyReduce_43++action_112 (38) = happyShift action_74+action_112 (40) = happyShift action_75+action_112 (42) = happyShift action_76+action_112 (43) = happyShift action_77+action_112 (44) = happyShift action_115+action_112 _ = happyFail (happyExpListPerState 112)++action_113 _ = happyReduce_40++action_114 _ = happyReduce_24++action_115 _ = happyReduce_39++happyReduce_11 = happySpecReduce_1  14 happyReduction_11+happyReduction_11 (HappyTerminal (PT _ (TD happy_var_1)))+	 =  HappyAbsSyn14+		 ((read happy_var_1) :: Double+	)+happyReduction_11 _  = notHappyAtAll ++happyReduce_12 = happySpecReduce_1  15 happyReduction_12+happyReduction_12 (HappyTerminal (PT _ (TI happy_var_1)))+	 =  HappyAbsSyn15+		 ((read happy_var_1) :: Integer+	)+happyReduction_12 _  = notHappyAtAll ++happyReduce_13 = happySpecReduce_1  16 happyReduction_13+happyReduction_13 (HappyTerminal (PT _ (TL happy_var_1)))+	 =  HappyAbsSyn16+		 (happy_var_1+	)+happyReduction_13 _  = notHappyAtAll ++happyReduce_14 = happySpecReduce_1  17 happyReduction_14+happyReduction_14 (HappyTerminal (PT _ (T_Bytes happy_var_1)))+	 =  HappyAbsSyn17+		 (Language.EO.Phi.Syntax.Abs.Bytes happy_var_1+	)+happyReduction_14 _  = notHappyAtAll ++happyReduce_15 = happySpecReduce_1  18 happyReduction_15+happyReduction_15 (HappyTerminal (PT _ (T_Function happy_var_1)))+	 =  HappyAbsSyn18+		 (Language.EO.Phi.Syntax.Abs.Function happy_var_1+	)+happyReduction_15 _  = notHappyAtAll ++happyReduce_16 = happySpecReduce_1  19 happyReduction_16+happyReduction_16 (HappyTerminal (PT _ (T_LabelId happy_var_1)))+	 =  HappyAbsSyn19+		 (Language.EO.Phi.Syntax.Abs.LabelId happy_var_1+	)+happyReduction_16 _  = notHappyAtAll ++happyReduce_17 = happySpecReduce_1  20 happyReduction_17+happyReduction_17 (HappyTerminal (PT _ (T_AlphaIndex happy_var_1)))+	 =  HappyAbsSyn20+		 (Language.EO.Phi.Syntax.Abs.AlphaIndex happy_var_1+	)+happyReduction_17 _  = notHappyAtAll ++happyReduce_18 = happySpecReduce_1  21 happyReduction_18+happyReduction_18 (HappyTerminal (PT _ (T_LabelMetaId happy_var_1)))+	 =  HappyAbsSyn21+		 (Language.EO.Phi.Syntax.Abs.LabelMetaId happy_var_1+	)+happyReduction_18 _  = notHappyAtAll ++happyReduce_19 = happySpecReduce_1  22 happyReduction_19+happyReduction_19 (HappyTerminal (PT _ (T_TailMetaId happy_var_1)))+	 =  HappyAbsSyn22+		 (Language.EO.Phi.Syntax.Abs.TailMetaId happy_var_1+	)+happyReduction_19 _  = notHappyAtAll ++happyReduce_20 = happySpecReduce_1  23 happyReduction_20+happyReduction_20 (HappyTerminal (PT _ (T_BindingsMetaId happy_var_1)))+	 =  HappyAbsSyn23+		 (Language.EO.Phi.Syntax.Abs.BindingsMetaId happy_var_1+	)+happyReduction_20 _  = notHappyAtAll ++happyReduce_21 = happySpecReduce_1  24 happyReduction_21+happyReduction_21 (HappyTerminal (PT _ (T_ObjectMetaId happy_var_1)))+	 =  HappyAbsSyn24+		 (Language.EO.Phi.Syntax.Abs.ObjectMetaId happy_var_1+	)+happyReduction_21 _  = notHappyAtAll ++happyReduce_22 = happySpecReduce_1  25 happyReduction_22+happyReduction_22 (HappyTerminal (PT _ (T_BytesMetaId happy_var_1)))+	 =  HappyAbsSyn25+		 (Language.EO.Phi.Syntax.Abs.BytesMetaId happy_var_1+	)+happyReduction_22 _  = notHappyAtAll ++happyReduce_23 = happySpecReduce_1  26 happyReduction_23+happyReduction_23 (HappyTerminal (PT _ (T_MetaFunctionName happy_var_1)))+	 =  HappyAbsSyn26+		 (Language.EO.Phi.Syntax.Abs.MetaFunctionName happy_var_1+	)+happyReduction_23 _  = notHappyAtAll ++happyReduce_24 = happyReduce 5 27 happyReduction_24+happyReduction_24 (_ `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn31  happy_var_3) `HappyStk`+	_ `HappyStk`+	_ `HappyStk`+	happyRest)+	 = HappyAbsSyn27+		 (Language.EO.Phi.Syntax.Abs.Program happy_var_3+	) `HappyStk` happyRest++happyReduce_25 = happySpecReduce_1  28 happyReduction_25+happyReduction_25 (HappyAbsSyn21  happy_var_1)+	 =  HappyAbsSyn28+		 (Language.EO.Phi.Syntax.Abs.MetaIdLabel happy_var_1+	)+happyReduction_25 _  = notHappyAtAll ++happyReduce_26 = happySpecReduce_1  28 happyReduction_26+happyReduction_26 (HappyAbsSyn22  happy_var_1)+	 =  HappyAbsSyn28+		 (Language.EO.Phi.Syntax.Abs.MetaIdTail happy_var_1+	)+happyReduction_26 _  = notHappyAtAll ++happyReduce_27 = happySpecReduce_1  28 happyReduction_27+happyReduction_27 (HappyAbsSyn23  happy_var_1)+	 =  HappyAbsSyn28+		 (Language.EO.Phi.Syntax.Abs.MetaIdBindings happy_var_1+	)+happyReduction_27 _  = notHappyAtAll ++happyReduce_28 = happySpecReduce_1  28 happyReduction_28+happyReduction_28 (HappyAbsSyn24  happy_var_1)+	 =  HappyAbsSyn28+		 (Language.EO.Phi.Syntax.Abs.MetaIdObject happy_var_1+	)+happyReduction_28 _  = notHappyAtAll ++happyReduce_29 = happySpecReduce_1  28 happyReduction_29+happyReduction_29 (HappyAbsSyn25  happy_var_1)+	 =  HappyAbsSyn28+		 (Language.EO.Phi.Syntax.Abs.MetaIdBytes happy_var_1+	)+happyReduction_29 _  = notHappyAtAll ++happyReduce_30 = happySpecReduce_3  29 happyReduction_30+happyReduction_30 _+	(HappyAbsSyn31  happy_var_2)+	_+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.Formation happy_var_2+	)+happyReduction_30 _ _ _  = notHappyAtAll ++happyReduce_31 = happyReduce 4 29 happyReduction_31+happyReduction_31 (_ `HappyStk`+	(HappyAbsSyn31  happy_var_3) `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn29  happy_var_1) `HappyStk`+	happyRest)+	 = HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.Application happy_var_1 happy_var_3+	) `HappyStk` happyRest++happyReduce_32 = happySpecReduce_3  29 happyReduction_32+happyReduction_32 (HappyAbsSyn32  happy_var_3)+	_+	(HappyAbsSyn29  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.ObjectDispatch happy_var_1 happy_var_3+	)+happyReduction_32 _ _ _  = notHappyAtAll ++happyReduce_33 = happySpecReduce_1  29 happyReduction_33+happyReduction_33 _+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.GlobalObject+	)++happyReduce_34 = happySpecReduce_1  29 happyReduction_34+happyReduction_34 _+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.ThisObject+	)++happyReduce_35 = happySpecReduce_1  29 happyReduction_35+happyReduction_35 _+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.Termination+	)++happyReduce_36 = happySpecReduce_1  29 happyReduction_36+happyReduction_36 (HappyAbsSyn16  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.ConstString happy_var_1+	)+happyReduction_36 _  = notHappyAtAll ++happyReduce_37 = happySpecReduce_1  29 happyReduction_37+happyReduction_37 (HappyAbsSyn15  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.ConstInt happy_var_1+	)+happyReduction_37 _  = notHappyAtAll ++happyReduce_38 = happySpecReduce_1  29 happyReduction_38+happyReduction_38 (HappyAbsSyn14  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.ConstFloat happy_var_1+	)+happyReduction_38 _  = notHappyAtAll ++happyReduce_39 = happyReduce 6 29 happyReduction_39+happyReduction_39 (_ `HappyStk`+	(HappyAbsSyn29  happy_var_5) `HappyStk`+	_ `HappyStk`+	_ `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn29  happy_var_1) `HappyStk`+	happyRest)+	 = HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaSubstThis happy_var_1 happy_var_5+	) `HappyStk` happyRest++happyReduce_40 = happyReduce 5 29 happyReduction_40+happyReduction_40 (_ `HappyStk`+	(HappyAbsSyn29  happy_var_4) `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn29  happy_var_2) `HappyStk`+	_ `HappyStk`+	happyRest)+	 = HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaContextualize happy_var_2 happy_var_4+	) `HappyStk` happyRest++happyReduce_41 = happySpecReduce_1  29 happyReduction_41+happyReduction_41 (HappyAbsSyn24  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaObject happy_var_1+	)+happyReduction_41 _  = notHappyAtAll ++happyReduce_42 = happySpecReduce_3  29 happyReduction_42+happyReduction_42 (HappyAbsSyn22  happy_var_3)+	_+	(HappyAbsSyn29  happy_var_1)+	 =  HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaTailContext happy_var_1 happy_var_3+	)+happyReduction_42 _ _ _  = notHappyAtAll ++happyReduce_43 = happyReduce 4 29 happyReduction_43+happyReduction_43 (_ `HappyStk`+	(HappyAbsSyn29  happy_var_3) `HappyStk`+	_ `HappyStk`+	(HappyAbsSyn26  happy_var_1) `HappyStk`+	happyRest)+	 = HappyAbsSyn29+		 (Language.EO.Phi.Syntax.Abs.MetaFunction happy_var_1 happy_var_3+	) `HappyStk` happyRest++happyReduce_44 = happySpecReduce_3  30 happyReduction_44+happyReduction_44 (HappyAbsSyn29  happy_var_3)+	_+	(HappyAbsSyn32  happy_var_1)+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.AlphaBinding happy_var_1 happy_var_3+	)+happyReduction_44 _ _ _  = notHappyAtAll ++happyReduce_45 = happySpecReduce_3  30 happyReduction_45+happyReduction_45 _+	_+	(HappyAbsSyn32  happy_var_1)+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.EmptyBinding happy_var_1+	)+happyReduction_45 _ _ _  = notHappyAtAll ++happyReduce_46 = happySpecReduce_3  30 happyReduction_46+happyReduction_46 (HappyAbsSyn17  happy_var_3)+	_+	_+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.DeltaBinding happy_var_3+	)+happyReduction_46 _ _ _  = notHappyAtAll ++happyReduce_47 = happySpecReduce_3  30 happyReduction_47+happyReduction_47 _+	_+	_+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.DeltaEmptyBinding+	)++happyReduce_48 = happySpecReduce_3  30 happyReduction_48+happyReduction_48 (HappyAbsSyn18  happy_var_3)+	_+	_+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.LambdaBinding happy_var_3+	)+happyReduction_48 _ _ _  = notHappyAtAll ++happyReduce_49 = happySpecReduce_1  30 happyReduction_49+happyReduction_49 (HappyAbsSyn23  happy_var_1)+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.MetaBindings happy_var_1+	)+happyReduction_49 _  = notHappyAtAll ++happyReduce_50 = happySpecReduce_3  30 happyReduction_50+happyReduction_50 (HappyAbsSyn25  happy_var_3)+	_+	_+	 =  HappyAbsSyn30+		 (Language.EO.Phi.Syntax.Abs.MetaDeltaBinding happy_var_3+	)+happyReduction_50 _ _ _  = notHappyAtAll ++happyReduce_51 = happySpecReduce_0  31 happyReduction_51+happyReduction_51  =  HappyAbsSyn31+		 ([]+	)++happyReduce_52 = happySpecReduce_1  31 happyReduction_52+happyReduction_52 (HappyAbsSyn30  happy_var_1)+	 =  HappyAbsSyn31+		 ((:[]) happy_var_1+	)+happyReduction_52 _  = notHappyAtAll ++happyReduce_53 = happySpecReduce_3  31 happyReduction_53+happyReduction_53 (HappyAbsSyn31  happy_var_3)+	_+	(HappyAbsSyn30  happy_var_1)+	 =  HappyAbsSyn31+		 ((:) happy_var_1 happy_var_3+	)+happyReduction_53 _ _ _  = notHappyAtAll ++happyReduce_54 = happySpecReduce_1  32 happyReduction_54+happyReduction_54 _+	 =  HappyAbsSyn32+		 (Language.EO.Phi.Syntax.Abs.Phi+	)++happyReduce_55 = happySpecReduce_1  32 happyReduction_55+happyReduction_55 _+	 =  HappyAbsSyn32+		 (Language.EO.Phi.Syntax.Abs.Rho+	)++happyReduce_56 = happySpecReduce_1  32 happyReduction_56+happyReduction_56 (HappyAbsSyn19  happy_var_1)+	 =  HappyAbsSyn32+		 (Language.EO.Phi.Syntax.Abs.Label happy_var_1+	)+happyReduction_56 _  = notHappyAtAll ++happyReduce_57 = happySpecReduce_1  32 happyReduction_57+happyReduction_57 (HappyAbsSyn20  happy_var_1)+	 =  HappyAbsSyn32+		 (Language.EO.Phi.Syntax.Abs.Alpha happy_var_1+	)+happyReduction_57 _  = notHappyAtAll ++happyReduce_58 = happySpecReduce_1  32 happyReduction_58+happyReduction_58 (HappyAbsSyn21  happy_var_1)+	 =  HappyAbsSyn32+		 (Language.EO.Phi.Syntax.Abs.MetaAttr happy_var_1+	)+happyReduction_58 _  = notHappyAtAll ++happyReduce_59 = happySpecReduce_1  33 happyReduction_59+happyReduction_59 (HappyAbsSyn32  happy_var_1)+	 =  HappyAbsSyn33+		 (Language.EO.Phi.Syntax.Abs.ObjectAttr happy_var_1+	)+happyReduction_59 _  = notHappyAtAll ++happyReduce_60 = happySpecReduce_1  33 happyReduction_60+happyReduction_60 _+	 =  HappyAbsSyn33+		 (Language.EO.Phi.Syntax.Abs.DeltaAttr+	)++happyReduce_61 = happySpecReduce_1  33 happyReduction_61+happyReduction_61 _+	 =  HappyAbsSyn33+		 (Language.EO.Phi.Syntax.Abs.LambdaAttr+	)++happyReduce_62 = happySpecReduce_2  34 happyReduction_62+happyReduction_62 (HappyAbsSyn37  happy_var_2)+	(HappyAbsSyn35  happy_var_1)+	 =  HappyAbsSyn34+		 (Language.EO.Phi.Syntax.Abs.PeeledObject happy_var_1 happy_var_2+	)+happyReduction_62 _ _  = notHappyAtAll ++happyReduce_63 = happySpecReduce_3  35 happyReduction_63+happyReduction_63 _+	(HappyAbsSyn31  happy_var_2)+	_+	 =  HappyAbsSyn35+		 (Language.EO.Phi.Syntax.Abs.HeadFormation happy_var_2+	)+happyReduction_63 _ _ _  = notHappyAtAll ++happyReduce_64 = happySpecReduce_1  35 happyReduction_64+happyReduction_64 _+	 =  HappyAbsSyn35+		 (Language.EO.Phi.Syntax.Abs.HeadGlobal+	)++happyReduce_65 = happySpecReduce_1  35 happyReduction_65+happyReduction_65 _+	 =  HappyAbsSyn35+		 (Language.EO.Phi.Syntax.Abs.HeadThis+	)++happyReduce_66 = happySpecReduce_1  35 happyReduction_66+happyReduction_66 _+	 =  HappyAbsSyn35+		 (Language.EO.Phi.Syntax.Abs.HeadTermination+	)++happyReduce_67 = happySpecReduce_3  36 happyReduction_67+happyReduction_67 _+	(HappyAbsSyn31  happy_var_2)+	_+	 =  HappyAbsSyn36+		 (Language.EO.Phi.Syntax.Abs.ActionApplication happy_var_2+	)+happyReduction_67 _ _ _  = notHappyAtAll ++happyReduce_68 = happySpecReduce_2  36 happyReduction_68+happyReduction_68 (HappyAbsSyn32  happy_var_2)+	_+	 =  HappyAbsSyn36+		 (Language.EO.Phi.Syntax.Abs.ActionDispatch happy_var_2+	)+happyReduction_68 _ _  = notHappyAtAll ++happyReduce_69 = happySpecReduce_0  37 happyReduction_69+happyReduction_69  =  HappyAbsSyn37+		 ([]+	)++happyReduce_70 = happySpecReduce_2  37 happyReduction_70+happyReduction_70 (HappyAbsSyn37  happy_var_2)+	(HappyAbsSyn36  happy_var_1)+	 =  HappyAbsSyn37+		 ((:) happy_var_1 happy_var_2+	)+happyReduction_70 _ _  = notHappyAtAll ++happyNewToken action sts stk [] =+	action 74 74 notHappyAtAll (HappyState action) sts stk []++happyNewToken action sts stk (tk:tks) =+	let cont i = action i i tk (HappyState action) sts stk tks in+	case tk of {+	PT _ (TS _ 1) -> cont 38;+	PT _ (TS _ 2) -> cont 39;+	PT _ (TS _ 3) -> cont 40;+	PT _ (TS _ 4) -> cont 41;+	PT _ (TS _ 5) -> cont 42;+	PT _ (TS _ 6) -> cont 43;+	PT _ (TS _ 7) -> cont 44;+	PT _ (TS _ 8) -> cont 45;+	PT _ (TS _ 9) -> cont 46;+	PT _ (TS _ 10) -> cont 47;+	PT _ (TS _ 11) -> cont 48;+	PT _ (TS _ 12) -> cont 49;+	PT _ (TS _ 13) -> cont 50;+	PT _ (TS _ 14) -> cont 51;+	PT _ (TS _ 15) -> cont 52;+	PT _ (TS _ 16) -> cont 53;+	PT _ (TS _ 17) -> cont 54;+	PT _ (TS _ 18) -> cont 55;+	PT _ (TS _ 19) -> cont 56;+	PT _ (TS _ 20) -> cont 57;+	PT _ (TS _ 21) -> cont 58;+	PT _ (TS _ 22) -> cont 59;+	PT _ (TS _ 23) -> cont 60;+	PT _ (TD happy_dollar_dollar) -> cont 61;+	PT _ (TI happy_dollar_dollar) -> cont 62;+	PT _ (TL happy_dollar_dollar) -> cont 63;+	PT _ (T_Bytes happy_dollar_dollar) -> cont 64;+	PT _ (T_Function happy_dollar_dollar) -> cont 65;+	PT _ (T_LabelId happy_dollar_dollar) -> cont 66;+	PT _ (T_AlphaIndex happy_dollar_dollar) -> cont 67;+	PT _ (T_LabelMetaId happy_dollar_dollar) -> cont 68;+	PT _ (T_TailMetaId happy_dollar_dollar) -> cont 69;+	PT _ (T_BindingsMetaId happy_dollar_dollar) -> cont 70;+	PT _ (T_ObjectMetaId happy_dollar_dollar) -> cont 71;+	PT _ (T_BytesMetaId happy_dollar_dollar) -> cont 72;+	PT _ (T_MetaFunctionName happy_dollar_dollar) -> cont 73;+	_ -> happyError' ((tk:tks), [])+	}++happyError_ explist 74 tk tks = happyError' (tks, explist)+happyError_ explist _ tk tks = happyError' ((tk:tks), explist)++happyThen :: () => Err a -> (a -> Err b) -> Err b+happyThen = ((>>=))+happyReturn :: () => a -> Err a+happyReturn = (return)+happyThen1 m k tks = ((>>=)) m (\a -> k a tks)+happyReturn1 :: () => a -> b -> Err a+happyReturn1 = \a tks -> (return) a+happyError' :: () => ([(Token)], [Prelude.String]) -> Err a+happyError' = (\(tokens, _) -> happyError tokens)+pProgram tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn27 z -> happyReturn z; _other -> notHappyAtAll })++pMetaId tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_1 tks) (\x -> case x of {HappyAbsSyn28 z -> happyReturn z; _other -> notHappyAtAll })++pObject tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_2 tks) (\x -> case x of {HappyAbsSyn29 z -> happyReturn z; _other -> notHappyAtAll })++pBinding tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_3 tks) (\x -> case x of {HappyAbsSyn30 z -> happyReturn z; _other -> notHappyAtAll })++pListBinding tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_4 tks) (\x -> case x of {HappyAbsSyn31 z -> happyReturn z; _other -> notHappyAtAll })++pAttribute tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_5 tks) (\x -> case x of {HappyAbsSyn32 z -> happyReturn z; _other -> notHappyAtAll })++pRuleAttribute tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_6 tks) (\x -> case x of {HappyAbsSyn33 z -> happyReturn z; _other -> notHappyAtAll })++pPeeledObject tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_7 tks) (\x -> case x of {HappyAbsSyn34 z -> happyReturn z; _other -> notHappyAtAll })++pObjectHead tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_8 tks) (\x -> case x of {HappyAbsSyn35 z -> happyReturn z; _other -> notHappyAtAll })++pObjectAction tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_9 tks) (\x -> case x of {HappyAbsSyn36 z -> happyReturn z; _other -> notHappyAtAll })++pListObjectAction tks = happySomeParser where+ happySomeParser = happyThen (happyParse action_10 tks) (\x -> case x of {HappyAbsSyn37 z -> happyReturn z; _other -> notHappyAtAll })  happySeq = happyDontSeq 
src/Language/EO/Phi/Syntax/Par.y view
@@ -66,6 +66,9 @@   '⟦'                { PT _ (TS _ 21)               }   '⟧'                { PT _ (TS _ 22)               }   '⤍'                { PT _ (TS _ 23)               }+  L_doubl            { PT _ (TD $$)                 }+  L_integ            { PT _ (TI $$)                 }+  L_quoted           { PT _ (TL $$)                 }   L_Bytes            { PT _ (T_Bytes $$)            }   L_Function         { PT _ (T_Function $$)         }   L_LabelId          { PT _ (T_LabelId $$)          }@@ -79,6 +82,15 @@  %% +Double  :: { Double }+Double   : L_doubl  { (read $1) :: Double }++Integer :: { Integer }+Integer  : L_integ  { (read $1) :: Integer }++String  :: { String }+String   : L_quoted { $1 }+ Bytes :: { Language.EO.Phi.Syntax.Abs.Bytes } Bytes  : L_Bytes { Language.EO.Phi.Syntax.Abs.Bytes $1 } @@ -129,6 +141,9 @@   | 'Φ' { Language.EO.Phi.Syntax.Abs.GlobalObject }   | 'ξ' { Language.EO.Phi.Syntax.Abs.ThisObject }   | '⊥' { Language.EO.Phi.Syntax.Abs.Termination }+  | String { Language.EO.Phi.Syntax.Abs.ConstString $1 }+  | Integer { Language.EO.Phi.Syntax.Abs.ConstInt $1 }+  | Double { Language.EO.Phi.Syntax.Abs.ConstFloat $1 }   | Object '[' 'ξ' '↦' Object ']' { Language.EO.Phi.Syntax.Abs.MetaSubstThis $1 $5 }   | '⌈' Object ',' Object '⌉' { Language.EO.Phi.Syntax.Abs.MetaContextualize $2 $4 }   | ObjectMetaId { Language.EO.Phi.Syntax.Abs.MetaObject $1 }
src/Language/EO/Phi/Syntax/Print.hs view
@@ -210,6 +210,9 @@     Language.EO.Phi.Syntax.Abs.GlobalObject -> prPrec i 0 (concatD [doc (showString "\934")])     Language.EO.Phi.Syntax.Abs.ThisObject -> prPrec i 0 (concatD [doc (showString "\958")])     Language.EO.Phi.Syntax.Abs.Termination -> prPrec i 0 (concatD [doc (showString "\8869")])+    Language.EO.Phi.Syntax.Abs.ConstString str -> prPrec i 0 (concatD [printString str])+    Language.EO.Phi.Syntax.Abs.ConstInt n -> prPrec i 0 (concatD [prt 0 n])+    Language.EO.Phi.Syntax.Abs.ConstFloat d -> prPrec i 0 (concatD [prt 0 d])     Language.EO.Phi.Syntax.Abs.MetaSubstThis object1 object2 -> prPrec i 0 (concatD [prt 0 object1, doc (showString "["), doc (showString "\958"), doc (showString "\8614"), prt 0 object2, doc (showString "]")])     Language.EO.Phi.Syntax.Abs.MetaContextualize object1 object2 -> prPrec i 0 (concatD [doc (showString "\8968"), prt 0 object1, doc (showString ","), prt 0 object2, doc (showString "\8969")])     Language.EO.Phi.Syntax.Abs.MetaObject objectmetaid -> prPrec i 0 (concatD [prt 0 objectmetaid])
src/Language/EO/Phi/ToLaTeX.hs view
@@ -83,6 +83,9 @@   toLatex (MetaFunction _ _) = error "rendering MetaFunction in LaTex format"   toLatex (MetaSubstThis obj1 obj2) = LaTeX "\\mathbb{S}(" <> toLatex obj1 <> ", " <> toLatex obj2 <> ")"   toLatex (MetaContextualize obj1 obj2) = LaTeX "\\lceil" <> toLatex obj1 <> ", " <> toLatex obj2 <> "\\rceil"+  toLatex (ConstString string) = "|" <> LaTeX (show string) <> "|"+  toLatex (ConstInt n) = LaTeX (show n)+  toLatex (ConstFloat x) = LaTeX (show x)  removeOrgEolang :: String -> String removeOrgEolang = T.unpack . T.replace "Q.org.eolang" "QQ" . T.pack@@ -108,7 +111,7 @@ instance ToLatex RuleContext where   toLatex RuleContext{..} =     maybe mempty (\x -> inMathMode $ toLatex GlobalObject <> " -> " <> toLatex x) global_object-      <> maybe mempty (\x -> (inMathMode $ toLatex x) <> " is the scope of the redex") current_object+      <> maybe mempty (\x -> inMathMode (toLatex x) <> " is the scope of the redex") current_object       <> maybe mempty (\x -> toLatex x <> " is the current attribute") current_attribute  instance ToLatex RuleAttribute where
test/Language/EO/Rules/PhiPaperSpec.hs view
@@ -46,9 +46,9 @@ import Data.Yaml qualified as Yaml import GHC.Generics (Generic) import Language.EO.Phi.Dataize.Context (defaultContext)-import Language.EO.Phi.Rules.Common (ApplicationLimits (..), NamedRule, applyOneRule, defaultApplicationLimits, equalObject, intToBytes, objectSize)+import Language.EO.Phi.Rules.Common (ApplicationLimits (..), NamedRule, applyOneRule, defaultApplicationLimits, equalObject, objectSize) import Language.EO.Phi.Rules.Yaml (convertRuleNamed, parseRuleSetFromFile, rules)-import Language.EO.Phi.Syntax (printTree)+import Language.EO.Phi.Syntax (intToBytes, printTree) import Language.EO.Phi.Syntax.Abs as Phi import Test.Hspec import Test.QuickCheck
test/Main.hs view
@@ -23,9 +23,9 @@ {- FOURMOLU_ENABLE -} module Main where -import Main.Utf8+import Language.EO.Locale (withCorrectLocale) import Spec qualified import Test.Hspec.Runner  main :: IO ()-main = withUtf8 $ hspecWith defaultConfig Spec.spec+main = withCorrectLocale $ hspecWith defaultConfig Spec.spec