From f5c66e2c6d4c2f08feccfc4ab86292ceacabfcc9 Mon Sep 17 00:00:00 2001
From: p9malino26 <pm3g19@soton.ac.uk>
Date: Thu, 6 May 2021 10:41:46 +0100
Subject: [PATCH] Fixed issue with lines starting with comma

---
 A.csv             |    3 -
 B.csv             |    3 -
 CSV.hs            |   20 +-
 Lexer.hs          | 7058 ---------------------------------------------
 P.csv             |    4 -
 P42.csv           |    5 -
 Parser.hs         | 1458 ----------
 Q.csv             |    4 -
 R.csv             |    4 -
 S.csv             |    4 -
 SampleSet.csv     |    5 -
 sampleprogram.txt |    6 -
 solutions/pr1.cql |    6 -
 solutions/pr2.cql |    6 -
 solutions/pr3.cql |    9 -
 solutions/pr4.cql |    5 -
 solutions/pr5.cql |    5 -
 17 files changed, 12 insertions(+), 8593 deletions(-)
 delete mode 100644 A.csv
 delete mode 100644 B.csv
 delete mode 100644 Lexer.hs
 delete mode 100644 P.csv
 delete mode 100644 P42.csv
 delete mode 100644 Parser.hs
 delete mode 100644 Q.csv
 delete mode 100644 R.csv
 delete mode 100644 S.csv
 delete mode 100644 SampleSet.csv
 delete mode 100644 sampleprogram.txt
 delete mode 100644 solutions/pr1.cql
 delete mode 100644 solutions/pr2.cql
 delete mode 100644 solutions/pr3.cql
 delete mode 100644 solutions/pr4.cql
 delete mode 100644 solutions/pr5.cql

diff --git a/A.csv b/A.csv
deleted file mode 100644
index ad83ff0..0000000
--- a/A.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-Steven , Steve , Butcher
-Dudley , Dudley , Timms
-Gillian , Gillian , Carter
\ No newline at end of file
diff --git a/B.csv b/B.csv
deleted file mode 100644
index bf47bb3..0000000
--- a/B.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-jian,shi
-andrew,sogokon
-julian,rathke
\ No newline at end of file
diff --git a/CSV.hs b/CSV.hs
index 39d0c4a..6982355 100644
--- a/CSV.hs
+++ b/CSV.hs
@@ -2,6 +2,7 @@ module CSV where
 
 import System.IO
 import Data.List
+import Debug.Trace
 
 readCSV :: FilePath -> IO [[String]]
 readCSV fname = do
@@ -9,16 +10,19 @@ readCSV fname = do
     return $ readCSVString str
 
 readCSVString :: String -> [[String]]
-readCSVString whole = [splitElem ',' (line++" " )  | line <- splitElem '\n' whole]
-splitElem :: Eq a => a -> [a] -> [[a]]
-splitElem elem = split (/=elem)
+readCSVString whole = [split ',' (' ':line ++ " ")  | line <- split '\n' whole]
+split :: Eq a => a -> [a] -> [[a]]
 
-split :: (a -> Bool) -> [a] -> [[a]]
-split p l = case span p l of
-        ([], _) -> []
-        (match, []) -> [match]
-        (match, _:rem') -> match:split p rem'
+split c l = (\(l, _,  _) -> reverse $ map reverse l) $ head $ dropWhile notEnd $ iterate split_ ([], [], l)
+    where
+        split_ (la, wa, []) = (wa:la, [], [])
+        split_ (la, wa, c':l_tail) | c == c' = (wa:la, [], l_tail)
+            | otherwise = (la, c':wa, l_tail)
 
+        notEnd (_, [], []) = False
+        notEnd _= True
+
+split1 a = span (==a)
 print2DList :: [[String]] -> IO ()
 print2DList = putStrLn.toCSVString
 
diff --git a/Lexer.hs b/Lexer.hs
deleted file mode 100644
index b82aa94..0000000
--- a/Lexer.hs
+++ /dev/null
@@ -1,7058 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-missing-signatures #-}
-{-# LANGUAGE CPP #-}
-{-# LINE 1 "Lexer.x" #-}
-
-module Lexer where
-import Data.List
-
-#if __GLASGOW_HASKELL__ >= 603
-#include "ghcconfig.h"
-#elif defined(__GLASGOW_HASKELL__)
-#include "config.h"
-#endif
-#if __GLASGOW_HASKELL__ >= 503
-import Data.Array
-#else
-import Array
-#endif
-{-# LINE 1 "templates/wrappers.hs" #-}
--- -----------------------------------------------------------------------------
--- Alex wrapper code.
---
--- This code is in the PUBLIC DOMAIN; you may copy it freely and use
--- it for any purpose whatsoever.
-
-
-
-
-
-import Data.Word (Word8)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-import Data.Char (ord)
-import qualified Data.Bits
-
--- | Encode a Haskell String to a list of Word8 values, in UTF8 format.
-utf8Encode :: Char -> [Word8]
-utf8Encode = uncurry (:) . utf8Encode'
-
-utf8Encode' :: Char -> (Word8, [Word8])
-utf8Encode' c = case go (ord c) of
-                  (x, xs) -> (fromIntegral x, map fromIntegral xs)
- where
-  go oc
-   | oc <= 0x7f       = ( oc
-                        , [
-                        ])
-
-   | oc <= 0x7ff      = ( 0xc0 + (oc `Data.Bits.shiftR` 6)
-                        , [0x80 + oc Data.Bits..&. 0x3f
-                        ])
-
-   | oc <= 0xffff     = ( 0xe0 + (oc `Data.Bits.shiftR` 12)
-                        , [0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)
-                        , 0x80 + oc Data.Bits..&. 0x3f
-                        ])
-   | otherwise        = ( 0xf0 + (oc `Data.Bits.shiftR` 18)
-                        , [0x80 + ((oc `Data.Bits.shiftR` 12) Data.Bits..&. 0x3f)
-                        , 0x80 + ((oc `Data.Bits.shiftR` 6) Data.Bits..&. 0x3f)
-                        , 0x80 + oc Data.Bits..&. 0x3f
-                        ])
-
-
-
-type Byte = Word8
-
--- -----------------------------------------------------------------------------
--- The input type
-
-
-type AlexInput = (AlexPosn,     -- current position,
-                  Char,         -- previous char
-                  [Byte],       -- pending bytes on current char
-                  String)       -- current input string
-
-ignorePendingBytes :: AlexInput -> AlexInput
-ignorePendingBytes (p,c,_ps,s) = (p,c,[],s)
-
-alexInputPrevChar :: AlexInput -> Char
-alexInputPrevChar (_p,c,_bs,_s) = c
-
-alexGetByte :: AlexInput -> Maybe (Byte,AlexInput)
-alexGetByte (p,c,(b:bs),s) = Just (b,(p,c,bs,s))
-alexGetByte (_,_,[],[]) = Nothing
-alexGetByte (p,_,[],(c:s))  = let p' = alexMove p c
-                              in case utf8Encode' c of
-                                   (b, bs) -> p' `seq`  Just (b, (p', c, bs, s))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- -----------------------------------------------------------------------------
--- Token positions
-
--- `Posn' records the location of a token in the input text.  It has three
--- fields: the address (number of chacaters preceding the token), line number
--- and column of a token within the file. `start_pos' gives the position of the
--- start of the file and `eof_pos' a standard encoding for the end of file.
--- `move_pos' calculates the new position after traversing a given character,
--- assuming the usual eight character tab stops.
-
-
-data AlexPosn = AlexPn !Int !Int !Int
-        deriving (Eq,Show)
-
-alexStartPos :: AlexPosn
-alexStartPos = AlexPn 0 1 1
-
-alexMove :: AlexPosn -> Char -> AlexPosn
-alexMove (AlexPn a l c) '\t' = AlexPn (a+1)  l     (c+alex_tab_size-((c-1) `mod` alex_tab_size))
-alexMove (AlexPn a l _) '\n' = AlexPn (a+1) (l+1)   1
-alexMove (AlexPn a l c) _    = AlexPn (a+1)  l     (c+1)
-
-
--- -----------------------------------------------------------------------------
--- Monad (default and with ByteString input)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- -----------------------------------------------------------------------------
--- Basic wrapper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- -----------------------------------------------------------------------------
--- Basic wrapper, ByteString version
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- -----------------------------------------------------------------------------
--- Posn wrapper
-
--- Adds text positions to the basic model.
-
-
---alexScanTokens :: String -> [token]
-alexScanTokens str0 = go (alexStartPos,'\n',[],str0)
-  where go inp__@(pos,_,_,str) =
-          case alexScan inp__ 0 of
-                AlexEOF -> []
-                AlexError ((AlexPn _ line column),_,_,_) -> error $ "lexical error at line " ++ (show line) ++ ", column " ++ (show column)
-                AlexSkip  inp__' _ln     -> go inp__'
-                AlexToken inp__' len act -> act pos (take len str) : go inp__'
-
-
-
--- -----------------------------------------------------------------------------
--- Posn wrapper, ByteString version
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- -----------------------------------------------------------------------------
--- GScan wrapper
-
--- For compatibility with previous versions of Alex, and because we can.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-alex_tab_size :: Int
-alex_tab_size = 8
-alex_base :: Array Int Int
-alex_base = listArray (0 :: Int, 73)
-  [ -8
-  , -115
-  , -54
-  , -53
-  , -13
-  , -108
-  , 115
-  , -99
-  , -101
-  , 0
-  , 228
-  , 436
-  , -104
-  , 0
-  , 368
-  , 590
-  , -49
-  , -102
-  , -95
-  , 713
-  , 649
-  , 0
-  , 616
-  , 895
-  , 867
-  , 0
-  , 896
-  , 1112
-  , 1140
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , -89
-  , 1224
-  , 1252
-  , 1336
-  , 1364
-  , 1448
-  , 1476
-  , 1560
-  , 1588
-  , 1672
-  , 1700
-  , 1784
-  , 1812
-  , 1896
-  , 1924
-  , 2008
-  , 2036
-  , 2120
-  , 2148
-  , 2232
-  , 2260
-  , 2344
-  , 2372
-  , 2456
-  , 2484
-  , 2568
-  , 2596
-  , 2654
-  , 877
-  , 2729
-  , 0
-  ]
-
-alex_table :: Array Int Int
-alex_table = listArray (0 :: Int, 2984)
-  [ 0
-  , 22
-  , 22
-  , 22
-  , 22
-  , 22
-  , 25
-  , 34
-  , 35
-  , 17
-  , 8
-  , 12
-  , 1
-  , 33
-  , 30
-  , 29
-  , 18
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 5
-  , 0
-  , 22
-  , 0
-  , 11
-  , 23
-  , 0
-  , 0
-  , 0
-  , 0
-  , 37
-  , 38
-  , 0
-  , 36
-  , 42
-  , 16
-  , 43
-  , 3
-  , 72
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 39
-  , 40
-  , 0
-  , 2
-  , 0
-  , 0
-  , 0
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 31
-  , 41
-  , 32
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 57
-  , 60
-  , 60
-  , 56
-  , 60
-  , 60
-  , 59
-  , 60
-  , 60
-  , 60
-  , 53
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 65
-  , 60
-  , 60
-  , 60
-  , 44
-  , 60
-  , 60
-  , 19
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 4
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 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
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 20
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 73
-  , 22
-  , 22
-  , 22
-  , 22
-  , 22
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 22
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 15
-  , 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
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 71
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 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
-  , 19
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 21
-  , 20
-  , 4
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 13
-  , 14
-  , 6
-  , 9
-  , 9
-  , 9
-  , 10
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 45
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 24
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 27
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 28
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 69
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 48
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 49
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 68
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 67
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 54
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 64
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 63
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 61
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 7
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 58
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 62
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 55
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 66
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 52
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 51
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 50
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 47
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 46
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 0
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 26
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 60
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 70
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 72
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  , 0
-  ]
-
-alex_check :: Array Int Int
-alex_check = listArray (0 :: Int, 2984)
-  [ -1
-  , 9
-  , 10
-  , 11
-  , 12
-  , 13
-  , 121
-  , 61
-  , 61
-  , 117
-  , 109
-  , 112
-  , 116
-  , 62
-  , 116
-  , 110
-  , 105
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 111
-  , -1
-  , 32
-  , -1
-  , 34
-  , 35
-  , -1
-  , -1
-  , -1
-  , -1
-  , 40
-  , 41
-  , -1
-  , 43
-  , 44
-  , 45
-  , 46
-  , 47
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , 58
-  , 59
-  , -1
-  , 61
-  , -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
-  , 91
-  , 92
-  , 93
-  , -1
-  , -1
-  , -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
-  , 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
-  , 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
-  , -1
-  , -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
-  , 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
-  , 34
-  , 9
-  , 10
-  , 11
-  , 12
-  , 13
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , 32
-  , -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
-  , -1
-  , -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
-  , 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
-  , 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
-  , 39
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , 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
-  , -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
-  , 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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 39
-  , -1
-  , 69
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -1
-  , 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
-  , -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
-  , 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
-  , 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
-  , -1
-  , -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
-  , 48
-  , 49
-  , 50
-  , 51
-  , 52
-  , 53
-  , 54
-  , 55
-  , 56
-  , 57
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -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_deflt :: Array Int Int
-alex_deflt = listArray (0 :: Int, 73)
-  [ -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , 13
-  , 13
-  , -1
-  , -1
-  , 21
-  , 21
-  , -1
-  , -1
-  , -1
-  , -1
-  , 23
-  , 23
-  , 23
-  , -1
-  , 23
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -1
-  , -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_accept = listArray (0 :: Int, 73)
-  [ AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccNone
-  , AlexAccSkip
-  , AlexAccSkip
-  , AlexAcc 49
-  , AlexAcc 48
-  , AlexAcc 47
-  , AlexAcc 46
-  , AlexAcc 45
-  , AlexAcc 44
-  , AlexAcc 43
-  , AlexAcc 42
-  , AlexAcc 41
-  , AlexAcc 40
-  , AlexAcc 39
-  , AlexAcc 38
-  , AlexAcc 37
-  , AlexAcc 36
-  , AlexAcc 35
-  , AlexAcc 34
-  , AlexAcc 33
-  , AlexAcc 32
-  , AlexAcc 31
-  , AlexAcc 30
-  , AlexAcc 29
-  , AlexAcc 28
-  , AlexAcc 27
-  , AlexAcc 26
-  , AlexAcc 25
-  , AlexAcc 24
-  , AlexAcc 23
-  , AlexAcc 22
-  , AlexAcc 21
-  , AlexAcc 20
-  , AlexAcc 19
-  , AlexAcc 18
-  , AlexAcc 17
-  , AlexAcc 16
-  , AlexAcc 15
-  , AlexAcc 14
-  , AlexAcc 13
-  , AlexAcc 12
-  , AlexAcc 11
-  , AlexAcc 10
-  , AlexAcc 9
-  , AlexAcc 8
-  , AlexAcc 7
-  , AlexAcc 6
-  , AlexAcc 5
-  , AlexAcc 4
-  , AlexAcc 3
-  , AlexAcc 2
-  , AlexAcc 1
-  , AlexAcc 0
-  ]
-
-alex_actions = array (0 :: Int, 50)
-  [ (49,alex_action_2)
-  , (48,alex_action_3)
-  , (47,alex_action_4)
-  , (46,alex_action_5)
-  , (45,alex_action_6)
-  , (44,alex_action_7)
-  , (43,alex_action_8)
-  , (42,alex_action_9)
-  , (41,alex_action_10)
-  , (40,alex_action_11)
-  , (39,alex_action_12)
-  , (38,alex_action_13)
-  , (37,alex_action_14)
-  , (36,alex_action_15)
-  , (35,alex_action_16)
-  , (34,alex_action_17)
-  , (33,alex_action_18)
-  , (32,alex_action_19)
-  , (31,alex_action_20)
-  , (30,alex_action_21)
-  , (29,alex_action_22)
-  , (28,alex_action_23)
-  , (27,alex_action_24)
-  , (26,alex_action_25)
-  , (25,alex_action_25)
-  , (24,alex_action_25)
-  , (23,alex_action_25)
-  , (22,alex_action_25)
-  , (21,alex_action_25)
-  , (20,alex_action_25)
-  , (19,alex_action_25)
-  , (18,alex_action_25)
-  , (17,alex_action_25)
-  , (16,alex_action_25)
-  , (15,alex_action_25)
-  , (14,alex_action_25)
-  , (13,alex_action_25)
-  , (12,alex_action_25)
-  , (11,alex_action_25)
-  , (10,alex_action_25)
-  , (9,alex_action_25)
-  , (8,alex_action_25)
-  , (7,alex_action_25)
-  , (6,alex_action_25)
-  , (5,alex_action_25)
-  , (4,alex_action_25)
-  , (3,alex_action_26)
-  , (2,alex_action_27)
-  , (1,alex_action_28)
-  , (0,alex_action_29)
-  ]
-
-{-# LINE 49 "Lexer.x" #-}
-
---token type:
-data Token  =
-    TokenFilter AlexPosn         |
-    TokenIsEmpty AlexPosn         |
-    TokenContains AlexPosn         |
-    TokenSetName AlexPosn String |
-    TokenNat AlexPosn Int        |
-    TokenPosNat AlexPosn Int        |
-    TokenVarName AlexPosn String |
-    TokenTrue AlexPosn           |
-    TokenFalse AlexPosn          |
-    TokenString AlexPosn String  |
-    TokenLeftSqBracket AlexPosn  |
-    TokenRightSqBracket AlexPosn |
-    TokenArrow AlexPosn          |
-    TokenisEqual AlexPosn        |
-    TokenisNotEqual AlexPosn     |
-    TokenPlus AlexPosn     |
-    TokenLeftBracket AlexPosn    |
-    TokenRightBracket AlexPosn   |
-    TokenSemiCol AlexPosn        |
-    TokenCol AlexPosn        |
-    TokenLambda AlexPosn         |
-    TokenComma AlexPosn          |
-    TokenFullStop AlexPosn       |
-    TokenInSet AlexPosn          |
-    TokenXProduct AlexPosn       |
-    TokenXXProduct AlexPosn       |
-    TokenOutSet AlexPosn         |
-    TokenMap AlexPosn
-    deriving  (Eq, Show)
-
-
-pos :: Token -> AlexPosn
-
-pos token = case token of
-    (TokenFilter p ) -> p        
-    (TokenIsEmpty p ) -> p        
-    (TokenContains p ) -> p        
-    (TokenSetName p _) -> p 
-    (TokenNat p _) -> p        
-    (TokenPosNat p _) -> p        
-    (TokenVarName p _) -> p 
-    (TokenTrue p ) -> p          
-    (TokenFalse p ) -> p         
-    (TokenString p _) -> p  
-    (TokenLeftSqBracket p ) -> p 
-    (TokenRightSqBracket p ) -> p
-    (TokenArrow p ) -> p         
-    (TokenisEqual p ) -> p       
-    (TokenisNotEqual p ) -> p    
-    (TokenPlus p ) -> p    
-    (TokenLeftBracket p ) -> p   
-    (TokenRightBracket p ) -> p  
-    (TokenSemiCol p ) -> p       
-    (TokenCol p ) -> p       
-    (TokenLambda p ) -> p        
-    (TokenComma p ) -> p         
-    (TokenFullStop p ) -> p      
-    (TokenInSet p ) -> p         
-    (TokenXProduct p ) -> p      
-    (TokenXXProduct p ) -> p      
-    (TokenOutSet p ) -> p        
-    (TokenMap p) -> p
-
-
-alex_action_2 = \p s -> TokenContains p 
-alex_action_3 = \p s -> TokenIsEmpty p 
-alex_action_4 = \p s -> TokenFilter p 
-alex_action_5 = \p s -> TokenTrue p 
-alex_action_6 = \p s -> TokenFalse p 
-alex_action_7 = \p s -> TokenInSet p 
-alex_action_8 = \p s -> TokenOutSet p 
-alex_action_9 = \p s -> TokenLeftSqBracket p 
-alex_action_10 = \p s -> TokenRightSqBracket p 
-alex_action_11 = \p s -> TokenArrow p 
-alex_action_12 = \p s -> TokenisEqual p 
-alex_action_13 = \p s -> TokenisNotEqual p 
-alex_action_14 = \p s -> TokenPlus p 
-alex_action_15 = \p s -> TokenLeftBracket p 
-alex_action_16 = \p s -> TokenRightBracket p 
-alex_action_17 = \p s -> TokenCol p 
-alex_action_18 = \p s -> TokenSemiCol p 
-alex_action_19 = \p s -> TokenLambda p 
-alex_action_20 = \p s -> TokenComma p 
-alex_action_21 = \p s -> TokenFullStop p 
-alex_action_22 = \p s -> TokenXProduct p 
-alex_action_23 = \p s -> TokenXXProduct p 
-alex_action_24 = \p s -> TokenMap p 
-alex_action_25 = \p s -> TokenVarName p s 
-alex_action_26 = \p s -> TokenSetName p s 
-alex_action_27 = \p s -> TokenPosNat p (read s) 
-alex_action_28 = \p s -> TokenNat p (read s) 
-alex_action_29 = \p s -> TokenString p (init.tail $ s) 
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- -----------------------------------------------------------------------------
--- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-alexIndexInt16OffAddr arr off = arr ! off
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-alexIndexInt32OffAddr arr off = arr ! off
-
-
-
-
-
-
-
-
-
-
-
-quickIndex arr i = arr ! i
-
-
--- -----------------------------------------------------------------------------
--- Main lexing routines
-
-data AlexReturn a
-  = AlexEOF
-  | AlexError  !AlexInput
-  | AlexSkip   !AlexInput !Int
-  | AlexToken  !AlexInput !Int a
-
--- alexScan :: AlexInput -> StartCode -> AlexReturn a
-alexScan input__ (sc)
-  = alexScanUser undefined input__ (sc)
-
-alexScanUser user__ input__ (sc)
-  = case alex_scan_tkn user__ input__ (0) input__ sc AlexNone of
-  (AlexNone, input__') ->
-    case alexGetByte input__ of
-      Nothing ->
-
-
-
-                                   AlexEOF
-      Just _ ->
-
-
-
-                                   AlexError input__'
-
-  (AlexLastSkip input__'' len, _) ->
-
-
-
-    AlexSkip input__'' len
-
-  (AlexLastAcc k input__''' len, _) ->
-
-
-
-    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` (s)))
-  in
-  new_acc `seq`
-  case alexGetByte input__ of
-     Nothing -> (new_acc, input__)
-     Just (c, new_input) ->
-
-
-
-      case fromIntegral c of { (ord_c) ->
-        let
-                base   = alexIndexInt32OffAddr alex_base s
-                offset = (base + ord_c)
-                check  = alexIndexInt16OffAddr alex_check offset
-
-                new_s = if (offset >= (0)) && (check == ord_c)
-                          then alexIndexInt16OffAddr alex_table offset
-                          else alexIndexInt16OffAddr alex_deflt s
-        in
-        case new_s of
-            (-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 (if c < 0x80 || c >= 0xC0 then (len + (1)) else len)
-                                                -- note that the length is increased ONLY if this is the 1st byte in a char encoding)
-                        new_input new_s new_acc
-      }
-  where
-        check_accs (AlexAccNone) = last_acc
-        check_accs (AlexAcc a  ) = AlexLastAcc a input__ (len)
-        check_accs (AlexAccSkip) = AlexLastSkip  input__ (len)
-
-        check_accs (AlexAccPred a predx rest)
-           | predx user__ orig_input (len) input__
-           = AlexLastAcc a input__ (len)
-           | otherwise
-           = check_accs rest
-        check_accs (AlexAccSkipPred predx rest)
-           | predx user__ orig_input (len) input__
-           = AlexLastSkip input__ (len)
-           | otherwise
-           = check_accs rest
-
-
-data AlexLastAcc
-  = AlexNone
-  | AlexLastAcc !Int !AlexInput !Int
-  | AlexLastSkip     !AlexInput !Int
-
-data AlexAcc user
-  = AlexAccNone
-  | AlexAcc Int
-  | AlexAccSkip
-
-  | 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 (sc) user__ _ _ input__ =
-     case alex_scan_tkn user__ input__ (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.
-
diff --git a/P.csv b/P.csv
deleted file mode 100644
index b33bda1..0000000
--- a/P.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-1 ,5 ,4 ,
-2 , ,2 ,
-3 ,7 ,1 ,2
-4 ,8 , ,
\ No newline at end of file
diff --git a/P42.csv b/P42.csv
deleted file mode 100644
index ae56f61..0000000
--- a/P42.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-David , Beckham
-Pele ,
-Diego , Maradona
-Cristiano, Ronaldo
-Ronaldinho ,
\ No newline at end of file
diff --git a/Parser.hs b/Parser.hs
deleted file mode 100644
index a16a017..0000000
--- a/Parser.hs
+++ /dev/null
@@ -1,1458 +0,0 @@
-{-# OPTIONS_GHC -w #-}
-module Parser where
-import Lexer
-import Types
-import CSV
-import qualified Data.Array as Happy_Data_Array
-import qualified Data.Bits as Bits
-import Control.Applicative(Applicative(..))
-import Control.Monad (ap)
-
--- parser produced by Happy Version 1.20.0
-
-data HappyAbsSyn t4 t5 t6 t7 t8 t9 t10 t11 t12 t13
-	= HappyTerminal (Token)
-	| HappyErrorToken Prelude.Int
-	| HappyAbsSyn4 t4
-	| HappyAbsSyn5 t5
-	| HappyAbsSyn6 t6
-	| HappyAbsSyn7 t7
-	| HappyAbsSyn8 t8
-	| HappyAbsSyn9 t9
-	| HappyAbsSyn10 t10
-	| HappyAbsSyn11 t11
-	| HappyAbsSyn12 t12
-	| HappyAbsSyn13 t13
-
-happyExpList :: Happy_Data_Array.Array Prelude.Int Prelude.Int
-happyExpList = Happy_Data_Array.listArray (0,182) ([16384,0,0,0,2,0,0,64,0,0,0,0,0,0,0,0,16384,0,4,0,0,8,0,64,0,0,52000,33792,798,2048,0,0,0,0,0,0,0,0,0,6144,1557,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38464,2049,1597,0,1024,0,0,0,0,0,0,0,0,0,0,0,2304,0,0,22784,8198,6388,0,0,0,0,0,0,0,0,0,0,49152,12328,416,0,0,512,0,0,4096,0,8,0,0,35840,834,24,0,1,0,38464,2049,1597,45568,16396,12776,36864,101,36674,32769,812,31248,12,6500,53376,99,52000,33792,798,22784,8198,6388,51200,50,51105,16384,406,15624,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,4,0,0,34136,12294,0,0,0,32768,812,31248,12,0,16,0,0,2048,0,22784,8198,6388,51200,50,51105,16384,406,15624,6,6144,1541,50,0,0,0,0,0,0,0,1,0,0,2048,0,0,0,0,0,0,0,0,38464,2049,1597,0,1024,0,0,0,0,32768,812,31248,12,32768,0,0,52000,33792,798,0,0,0,51200,50,51105,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0
-	])
-
-{-# NOINLINE happyExpListPerState #-}
-happyExpListPerState st =
-    token_strs_expected
-  where token_strs = ["error","%dummy","%start_parseSource","Prog","SetDecl","SetDecls","Instructions","Expr","PredefFunc","SetNames","VarNames","Exprs","Nats","filter","in","out","SetName","Nat","PosNat","VarName","true","false","Str","'['","'{'","'}'","']'","\"->\"","\"==\"","\"/=\"","'('","')'","';'","':'","'\\\\'","','","'.'","'+'","x","map","xx","contains","isEmpty","let","if","else","then","'='","or","and","%eof"]
-        bit_start = st Prelude.* 51
-        bit_end = (st Prelude.+ 1) Prelude.* 51
-        read_bit = readArrayBit happyExpList
-        bits = Prelude.map read_bit [bit_start..bit_end Prelude.- 1]
-        bits_indexed = Prelude.zip bits [0..50]
-        token_strs_expected = Prelude.concatMap f bits_indexed
-        f (Prelude.False, _) = []
-        f (Prelude.True, nr) = [token_strs Prelude.!! nr]
-
-action_0 (15) = happyShift action_2
-action_0 (4) = happyGoto action_3
-action_0 _ = happyFail (happyExpListPerState 0)
-
-action_1 (15) = happyShift action_2
-action_1 _ = happyFail (happyExpListPerState 1)
-
-action_2 (17) = happyShift action_6
-action_2 (5) = happyGoto action_4
-action_2 (6) = happyGoto action_5
-action_2 _ = happyFail (happyExpListPerState 2)
-
-action_3 (51) = happyAccept
-action_3 _ = happyFail (happyExpListPerState 3)
-
-action_4 _ = happyReduce_3
-
-action_5 (16) = happyShift action_8
-action_5 (36) = happyShift action_9
-action_5 _ = happyFail (happyExpListPerState 5)
-
-action_6 (34) = happyShift action_7
-action_6 _ = happyFail (happyExpListPerState 6)
-
-action_7 (18) = happyShift action_28
-action_7 _ = happyFail (happyExpListPerState 7)
-
-action_8 (14) = happyShift action_14
-action_8 (17) = happyShift action_15
-action_8 (18) = happyShift action_16
-action_8 (20) = happyShift action_17
-action_8 (23) = happyShift action_18
-action_8 (24) = happyShift action_19
-action_8 (35) = happyShift action_20
-action_8 (40) = happyShift action_21
-action_8 (42) = happyShift action_22
-action_8 (43) = happyShift action_23
-action_8 (44) = happyShift action_24
-action_8 (45) = happyShift action_25
-action_8 (49) = happyShift action_26
-action_8 (50) = happyShift action_27
-action_8 (7) = happyGoto action_11
-action_8 (8) = happyGoto action_12
-action_8 (9) = happyGoto action_13
-action_8 _ = happyFail (happyExpListPerState 8)
-
-action_9 (17) = happyShift action_6
-action_9 (5) = happyGoto action_10
-action_9 _ = happyFail (happyExpListPerState 9)
-
-action_10 _ = happyReduce_4
-
-action_11 _ = happyReduce_1
-
-action_12 (24) = happyShift action_35
-action_12 (25) = happyShift action_36
-action_12 (29) = happyShift action_37
-action_12 (31) = happyShift action_38
-action_12 (33) = happyShift action_39
-action_12 (38) = happyShift action_40
-action_12 (39) = happyShift action_41
-action_12 (49) = happyShift action_42
-action_12 (50) = happyShift action_43
-action_12 _ = happyFail (happyExpListPerState 12)
-
-action_13 _ = happyReduce_23
-
-action_14 _ = happyReduce_27
-
-action_15 _ = happyReduce_21
-
-action_16 _ = happyReduce_22
-
-action_17 _ = happyReduce_20
-
-action_18 _ = happyReduce_15
-
-action_19 (14) = happyShift action_14
-action_19 (17) = happyShift action_15
-action_19 (18) = happyShift action_16
-action_19 (20) = happyShift action_17
-action_19 (23) = happyShift action_18
-action_19 (24) = happyShift action_19
-action_19 (35) = happyShift action_20
-action_19 (40) = happyShift action_21
-action_19 (42) = happyShift action_22
-action_19 (43) = happyShift action_23
-action_19 (44) = happyShift action_24
-action_19 (45) = happyShift action_25
-action_19 (49) = happyShift action_26
-action_19 (50) = happyShift action_27
-action_19 (8) = happyGoto action_33
-action_19 (9) = happyGoto action_13
-action_19 (12) = happyGoto action_34
-action_19 _ = happyFail (happyExpListPerState 19)
-
-action_20 (31) = happyShift action_32
-action_20 _ = happyFail (happyExpListPerState 20)
-
-action_21 _ = happyReduce_30
-
-action_22 _ = happyReduce_28
-
-action_23 (24) = happyReduce_29
-action_23 (25) = happyReduce_29
-action_23 (26) = happyReduce_29
-action_23 (27) = happyReduce_29
-action_23 (29) = happyReduce_29
-action_23 (31) = happyReduce_29
-action_23 (32) = happyReduce_29
-action_23 (33) = happyReduce_29
-action_23 (36) = happyReduce_29
-action_23 (38) = happyReduce_29
-action_23 (39) = happyReduce_29
-action_23 (46) = happyReduce_29
-action_23 (47) = happyReduce_29
-action_23 (49) = happyReduce_29
-action_23 (50) = happyReduce_29
-action_23 _ = happyReduce_29
-
-action_24 (17) = happyShift action_30
-action_24 (20) = happyShift action_31
-action_24 _ = happyFail (happyExpListPerState 24)
-
-action_25 (14) = happyShift action_14
-action_25 (17) = happyShift action_15
-action_25 (18) = happyShift action_16
-action_25 (20) = happyShift action_17
-action_25 (23) = happyShift action_18
-action_25 (24) = happyShift action_19
-action_25 (35) = happyShift action_20
-action_25 (40) = happyShift action_21
-action_25 (42) = happyShift action_22
-action_25 (43) = happyShift action_23
-action_25 (44) = happyShift action_24
-action_25 (45) = happyShift action_25
-action_25 (49) = happyShift action_26
-action_25 (50) = happyShift action_27
-action_25 (8) = happyGoto action_29
-action_25 (9) = happyGoto action_13
-action_25 _ = happyFail (happyExpListPerState 25)
-
-action_26 _ = happyReduce_32
-
-action_27 _ = happyReduce_31
-
-action_28 _ = happyReduce_2
-
-action_29 (24) = happyShift action_35
-action_29 (25) = happyShift action_36
-action_29 (29) = happyShift action_37
-action_29 (31) = happyShift action_38
-action_29 (38) = happyShift action_40
-action_29 (39) = happyShift action_41
-action_29 (47) = happyShift action_59
-action_29 (49) = happyShift action_42
-action_29 (50) = happyShift action_43
-action_29 _ = happyFail (happyExpListPerState 29)
-
-action_30 (48) = happyShift action_58
-action_30 _ = happyFail (happyExpListPerState 30)
-
-action_31 (48) = happyShift action_57
-action_31 _ = happyFail (happyExpListPerState 31)
-
-action_32 (20) = happyShift action_56
-action_32 (11) = happyGoto action_55
-action_32 _ = happyFail (happyExpListPerState 32)
-
-action_33 (24) = happyShift action_35
-action_33 (25) = happyShift action_36
-action_33 (29) = happyShift action_37
-action_33 (31) = happyShift action_38
-action_33 (36) = happyShift action_54
-action_33 (38) = happyShift action_40
-action_33 (39) = happyShift action_41
-action_33 (49) = happyShift action_42
-action_33 (50) = happyShift action_43
-action_33 _ = happyReduce_37
-
-action_34 (27) = happyShift action_53
-action_34 _ = happyFail (happyExpListPerState 34)
-
-action_35 (14) = happyShift action_14
-action_35 (17) = happyShift action_15
-action_35 (18) = happyShift action_16
-action_35 (20) = happyShift action_17
-action_35 (23) = happyShift action_18
-action_35 (24) = happyShift action_19
-action_35 (35) = happyShift action_20
-action_35 (40) = happyShift action_21
-action_35 (42) = happyShift action_22
-action_35 (43) = happyShift action_23
-action_35 (44) = happyShift action_24
-action_35 (45) = happyShift action_25
-action_35 (49) = happyShift action_26
-action_35 (50) = happyShift action_27
-action_35 (8) = happyGoto action_52
-action_35 (9) = happyGoto action_13
-action_35 _ = happyFail (happyExpListPerState 35)
-
-action_36 (14) = happyShift action_14
-action_36 (17) = happyShift action_15
-action_36 (18) = happyShift action_16
-action_36 (20) = happyShift action_17
-action_36 (23) = happyShift action_18
-action_36 (24) = happyShift action_19
-action_36 (35) = happyShift action_20
-action_36 (40) = happyShift action_21
-action_36 (42) = happyShift action_22
-action_36 (43) = happyShift action_23
-action_36 (44) = happyShift action_24
-action_36 (45) = happyShift action_25
-action_36 (49) = happyShift action_26
-action_36 (50) = happyShift action_27
-action_36 (8) = happyGoto action_33
-action_36 (9) = happyGoto action_13
-action_36 (12) = happyGoto action_51
-action_36 _ = happyFail (happyExpListPerState 36)
-
-action_37 (14) = happyShift action_14
-action_37 (17) = happyShift action_15
-action_37 (18) = happyShift action_16
-action_37 (20) = happyShift action_17
-action_37 (23) = happyShift action_18
-action_37 (24) = happyShift action_19
-action_37 (35) = happyShift action_20
-action_37 (40) = happyShift action_21
-action_37 (42) = happyShift action_22
-action_37 (43) = happyShift action_23
-action_37 (44) = happyShift action_24
-action_37 (45) = happyShift action_25
-action_37 (49) = happyShift action_26
-action_37 (50) = happyShift action_27
-action_37 (8) = happyGoto action_50
-action_37 (9) = happyGoto action_13
-action_37 _ = happyFail (happyExpListPerState 37)
-
-action_38 (14) = happyShift action_14
-action_38 (17) = happyShift action_15
-action_38 (18) = happyShift action_16
-action_38 (20) = happyShift action_17
-action_38 (23) = happyShift action_18
-action_38 (24) = happyShift action_19
-action_38 (35) = happyShift action_20
-action_38 (40) = happyShift action_21
-action_38 (42) = happyShift action_22
-action_38 (43) = happyShift action_23
-action_38 (44) = happyShift action_24
-action_38 (45) = happyShift action_25
-action_38 (49) = happyShift action_26
-action_38 (50) = happyShift action_27
-action_38 (8) = happyGoto action_33
-action_38 (9) = happyGoto action_13
-action_38 (12) = happyGoto action_49
-action_38 _ = happyFail (happyExpListPerState 38)
-
-action_39 (14) = happyShift action_14
-action_39 (17) = happyShift action_15
-action_39 (18) = happyShift action_16
-action_39 (20) = happyShift action_17
-action_39 (23) = happyShift action_18
-action_39 (24) = happyShift action_19
-action_39 (35) = happyShift action_20
-action_39 (40) = happyShift action_21
-action_39 (42) = happyShift action_22
-action_39 (43) = happyShift action_23
-action_39 (44) = happyShift action_24
-action_39 (45) = happyShift action_25
-action_39 (49) = happyShift action_26
-action_39 (50) = happyShift action_27
-action_39 (7) = happyGoto action_48
-action_39 (8) = happyGoto action_12
-action_39 (9) = happyGoto action_13
-action_39 _ = happyReduce_5
-
-action_40 (14) = happyShift action_14
-action_40 (17) = happyShift action_15
-action_40 (18) = happyShift action_16
-action_40 (20) = happyShift action_17
-action_40 (23) = happyShift action_18
-action_40 (24) = happyShift action_19
-action_40 (35) = happyShift action_20
-action_40 (40) = happyShift action_21
-action_40 (42) = happyShift action_22
-action_40 (43) = happyShift action_23
-action_40 (44) = happyShift action_24
-action_40 (45) = happyShift action_25
-action_40 (49) = happyShift action_26
-action_40 (50) = happyShift action_27
-action_40 (8) = happyGoto action_47
-action_40 (9) = happyGoto action_13
-action_40 _ = happyFail (happyExpListPerState 40)
-
-action_41 (14) = happyShift action_14
-action_41 (17) = happyShift action_15
-action_41 (18) = happyShift action_16
-action_41 (20) = happyShift action_17
-action_41 (23) = happyShift action_18
-action_41 (24) = happyShift action_19
-action_41 (35) = happyShift action_20
-action_41 (40) = happyShift action_21
-action_41 (42) = happyShift action_22
-action_41 (43) = happyShift action_23
-action_41 (44) = happyShift action_24
-action_41 (45) = happyShift action_25
-action_41 (49) = happyShift action_26
-action_41 (50) = happyShift action_27
-action_41 (8) = happyGoto action_46
-action_41 (9) = happyGoto action_13
-action_41 _ = happyFail (happyExpListPerState 41)
-
-action_42 (14) = happyShift action_14
-action_42 (17) = happyShift action_15
-action_42 (18) = happyShift action_16
-action_42 (20) = happyShift action_17
-action_42 (23) = happyShift action_18
-action_42 (24) = happyShift action_19
-action_42 (35) = happyShift action_20
-action_42 (40) = happyShift action_21
-action_42 (42) = happyShift action_22
-action_42 (43) = happyShift action_23
-action_42 (44) = happyShift action_24
-action_42 (45) = happyShift action_25
-action_42 (49) = happyShift action_26
-action_42 (50) = happyShift action_27
-action_42 (8) = happyGoto action_45
-action_42 (9) = happyGoto action_13
-action_42 _ = happyFail (happyExpListPerState 42)
-
-action_43 (14) = happyShift action_14
-action_43 (17) = happyShift action_15
-action_43 (18) = happyShift action_16
-action_43 (20) = happyShift action_17
-action_43 (23) = happyShift action_18
-action_43 (24) = happyShift action_19
-action_43 (35) = happyShift action_20
-action_43 (40) = happyShift action_21
-action_43 (42) = happyShift action_22
-action_43 (43) = happyShift action_23
-action_43 (44) = happyShift action_24
-action_43 (45) = happyShift action_25
-action_43 (49) = happyShift action_26
-action_43 (50) = happyShift action_27
-action_43 (8) = happyGoto action_44
-action_43 (9) = happyGoto action_13
-action_43 _ = happyFail (happyExpListPerState 43)
-
-action_44 (24) = happyShift action_35
-action_44 (25) = happyShift action_36
-action_44 (29) = happyShift action_37
-action_44 (31) = happyShift action_38
-action_44 (38) = happyShift action_40
-action_44 (39) = happyShift action_41
-action_44 (49) = happyShift action_42
-action_44 (50) = happyShift action_43
-action_44 _ = happyReduce_25
-
-action_45 (24) = happyShift action_35
-action_45 (25) = happyShift action_36
-action_45 (29) = happyShift action_37
-action_45 (31) = happyShift action_38
-action_45 (38) = happyShift action_40
-action_45 (39) = happyShift action_41
-action_45 (49) = happyShift action_42
-action_45 (50) = happyShift action_43
-action_45 _ = happyReduce_24
-
-action_46 (24) = happyShift action_35
-action_46 (25) = happyShift action_36
-action_46 (29) = happyShift action_37
-action_46 (31) = happyShift action_38
-action_46 (38) = happyShift action_40
-action_46 (39) = happyShift action_41
-action_46 (49) = happyShift action_42
-action_46 (50) = happyShift action_43
-action_46 _ = happyReduce_10
-
-action_47 (24) = happyShift action_35
-action_47 (25) = happyShift action_36
-action_47 (29) = happyShift action_37
-action_47 (31) = happyShift action_38
-action_47 (38) = happyShift action_40
-action_47 (39) = happyShift action_41
-action_47 (49) = happyShift action_42
-action_47 (50) = happyShift action_43
-action_47 _ = happyReduce_11
-
-action_48 _ = happyReduce_6
-
-action_49 (32) = happyShift action_69
-action_49 _ = happyFail (happyExpListPerState 49)
-
-action_50 (24) = happyShift action_35
-action_50 (25) = happyShift action_36
-action_50 (29) = happyShift action_37
-action_50 (31) = happyShift action_38
-action_50 (38) = happyShift action_40
-action_50 (39) = happyShift action_41
-action_50 (49) = happyShift action_42
-action_50 (50) = happyShift action_43
-action_50 _ = happyReduce_9
-
-action_51 (26) = happyShift action_68
-action_51 _ = happyFail (happyExpListPerState 51)
-
-action_52 (24) = happyShift action_35
-action_52 (25) = happyShift action_36
-action_52 (27) = happyShift action_66
-action_52 (29) = happyShift action_37
-action_52 (31) = happyShift action_38
-action_52 (36) = happyShift action_67
-action_52 (38) = happyShift action_40
-action_52 (39) = happyShift action_41
-action_52 (49) = happyShift action_42
-action_52 (50) = happyShift action_43
-action_52 _ = happyFail (happyExpListPerState 52)
-
-action_53 _ = happyReduce_14
-
-action_54 (14) = happyShift action_14
-action_54 (17) = happyShift action_15
-action_54 (18) = happyShift action_16
-action_54 (20) = happyShift action_17
-action_54 (23) = happyShift action_18
-action_54 (24) = happyShift action_19
-action_54 (35) = happyShift action_20
-action_54 (40) = happyShift action_21
-action_54 (42) = happyShift action_22
-action_54 (43) = happyShift action_23
-action_54 (44) = happyShift action_24
-action_54 (45) = happyShift action_25
-action_54 (49) = happyShift action_26
-action_54 (50) = happyShift action_27
-action_54 (8) = happyGoto action_33
-action_54 (9) = happyGoto action_13
-action_54 (12) = happyGoto action_65
-action_54 _ = happyFail (happyExpListPerState 54)
-
-action_55 (32) = happyShift action_64
-action_55 _ = happyFail (happyExpListPerState 55)
-
-action_56 (36) = happyShift action_63
-action_56 _ = happyReduce_35
-
-action_57 (14) = happyShift action_14
-action_57 (17) = happyShift action_15
-action_57 (18) = happyShift action_16
-action_57 (20) = happyShift action_17
-action_57 (23) = happyShift action_18
-action_57 (24) = happyShift action_19
-action_57 (35) = happyShift action_20
-action_57 (40) = happyShift action_21
-action_57 (42) = happyShift action_22
-action_57 (43) = happyShift action_23
-action_57 (44) = happyShift action_24
-action_57 (45) = happyShift action_25
-action_57 (49) = happyShift action_26
-action_57 (50) = happyShift action_27
-action_57 (8) = happyGoto action_62
-action_57 (9) = happyGoto action_13
-action_57 _ = happyFail (happyExpListPerState 57)
-
-action_58 (14) = happyShift action_14
-action_58 (17) = happyShift action_15
-action_58 (18) = happyShift action_16
-action_58 (20) = happyShift action_17
-action_58 (23) = happyShift action_18
-action_58 (24) = happyShift action_19
-action_58 (35) = happyShift action_20
-action_58 (40) = happyShift action_21
-action_58 (42) = happyShift action_22
-action_58 (43) = happyShift action_23
-action_58 (44) = happyShift action_24
-action_58 (45) = happyShift action_25
-action_58 (49) = happyShift action_26
-action_58 (50) = happyShift action_27
-action_58 (8) = happyGoto action_61
-action_58 (9) = happyGoto action_13
-action_58 _ = happyFail (happyExpListPerState 58)
-
-action_59 (14) = happyShift action_14
-action_59 (17) = happyShift action_15
-action_59 (18) = happyShift action_16
-action_59 (20) = happyShift action_17
-action_59 (23) = happyShift action_18
-action_59 (24) = happyShift action_19
-action_59 (35) = happyShift action_20
-action_59 (40) = happyShift action_21
-action_59 (42) = happyShift action_22
-action_59 (43) = happyShift action_23
-action_59 (44) = happyShift action_24
-action_59 (45) = happyShift action_25
-action_59 (49) = happyShift action_26
-action_59 (50) = happyShift action_27
-action_59 (8) = happyGoto action_60
-action_59 (9) = happyGoto action_13
-action_59 _ = happyFail (happyExpListPerState 59)
-
-action_60 (24) = happyShift action_35
-action_60 (25) = happyShift action_36
-action_60 (29) = happyShift action_37
-action_60 (31) = happyShift action_38
-action_60 (38) = happyShift action_40
-action_60 (39) = happyShift action_41
-action_60 (46) = happyShift action_74
-action_60 (49) = happyShift action_42
-action_60 (50) = happyShift action_43
-action_60 _ = happyFail (happyExpListPerState 60)
-
-action_61 (24) = happyShift action_35
-action_61 (25) = happyShift action_36
-action_61 (29) = happyShift action_37
-action_61 (31) = happyShift action_38
-action_61 (38) = happyShift action_40
-action_61 (39) = happyShift action_41
-action_61 (49) = happyShift action_42
-action_61 (50) = happyShift action_43
-action_61 _ = happyReduce_18
-
-action_62 (24) = happyShift action_35
-action_62 (25) = happyShift action_36
-action_62 (29) = happyShift action_37
-action_62 (31) = happyShift action_38
-action_62 (38) = happyShift action_40
-action_62 (39) = happyShift action_41
-action_62 (49) = happyShift action_42
-action_62 (50) = happyShift action_43
-action_62 _ = happyReduce_19
-
-action_63 (20) = happyShift action_56
-action_63 (11) = happyGoto action_73
-action_63 _ = happyFail (happyExpListPerState 63)
-
-action_64 (28) = happyShift action_72
-action_64 _ = happyFail (happyExpListPerState 64)
-
-action_65 _ = happyReduce_38
-
-action_66 _ = happyReduce_12
-
-action_67 (14) = happyShift action_14
-action_67 (17) = happyShift action_15
-action_67 (18) = happyShift action_16
-action_67 (20) = happyShift action_17
-action_67 (23) = happyShift action_18
-action_67 (24) = happyShift action_19
-action_67 (35) = happyShift action_20
-action_67 (40) = happyShift action_21
-action_67 (42) = happyShift action_22
-action_67 (43) = happyShift action_23
-action_67 (44) = happyShift action_24
-action_67 (45) = happyShift action_25
-action_67 (49) = happyShift action_26
-action_67 (50) = happyShift action_27
-action_67 (8) = happyGoto action_33
-action_67 (9) = happyGoto action_13
-action_67 (12) = happyGoto action_71
-action_67 _ = happyFail (happyExpListPerState 67)
-
-action_68 (31) = happyShift action_70
-action_68 _ = happyFail (happyExpListPerState 68)
-
-action_69 _ = happyReduce_7
-
-action_70 (14) = happyShift action_14
-action_70 (17) = happyShift action_15
-action_70 (18) = happyShift action_16
-action_70 (20) = happyShift action_17
-action_70 (23) = happyShift action_18
-action_70 (24) = happyShift action_19
-action_70 (35) = happyShift action_20
-action_70 (40) = happyShift action_21
-action_70 (42) = happyShift action_22
-action_70 (43) = happyShift action_23
-action_70 (44) = happyShift action_24
-action_70 (45) = happyShift action_25
-action_70 (49) = happyShift action_26
-action_70 (50) = happyShift action_27
-action_70 (8) = happyGoto action_33
-action_70 (9) = happyGoto action_13
-action_70 (12) = happyGoto action_78
-action_70 _ = happyFail (happyExpListPerState 70)
-
-action_71 (27) = happyShift action_77
-action_71 _ = happyFail (happyExpListPerState 71)
-
-action_72 (14) = happyShift action_14
-action_72 (17) = happyShift action_15
-action_72 (18) = happyShift action_16
-action_72 (20) = happyShift action_17
-action_72 (23) = happyShift action_18
-action_72 (24) = happyShift action_19
-action_72 (35) = happyShift action_20
-action_72 (40) = happyShift action_21
-action_72 (42) = happyShift action_22
-action_72 (43) = happyShift action_23
-action_72 (44) = happyShift action_24
-action_72 (45) = happyShift action_25
-action_72 (49) = happyShift action_26
-action_72 (50) = happyShift action_27
-action_72 (8) = happyGoto action_76
-action_72 (9) = happyGoto action_13
-action_72 _ = happyFail (happyExpListPerState 72)
-
-action_73 _ = happyReduce_36
-
-action_74 (14) = happyShift action_14
-action_74 (17) = happyShift action_15
-action_74 (18) = happyShift action_16
-action_74 (20) = happyShift action_17
-action_74 (23) = happyShift action_18
-action_74 (24) = happyShift action_19
-action_74 (35) = happyShift action_20
-action_74 (40) = happyShift action_21
-action_74 (42) = happyShift action_22
-action_74 (43) = happyShift action_23
-action_74 (44) = happyShift action_24
-action_74 (45) = happyShift action_25
-action_74 (49) = happyShift action_26
-action_74 (50) = happyShift action_27
-action_74 (8) = happyGoto action_75
-action_74 (9) = happyGoto action_13
-action_74 _ = happyFail (happyExpListPerState 74)
-
-action_75 (24) = happyShift action_35
-action_75 (25) = happyShift action_36
-action_75 (29) = happyShift action_37
-action_75 (31) = happyShift action_38
-action_75 (38) = happyShift action_40
-action_75 (39) = happyShift action_41
-action_75 (49) = happyShift action_42
-action_75 (50) = happyShift action_43
-action_75 _ = happyReduce_17
-
-action_76 (24) = happyShift action_35
-action_76 (25) = happyShift action_36
-action_76 (29) = happyShift action_37
-action_76 (31) = happyShift action_38
-action_76 (38) = happyShift action_40
-action_76 (39) = happyShift action_41
-action_76 (49) = happyShift action_42
-action_76 (50) = happyShift action_43
-action_76 _ = happyReduce_16
-
-action_77 _ = happyReduce_13
-
-action_78 (32) = happyShift action_79
-action_78 _ = happyFail (happyExpListPerState 78)
-
-action_79 _ = happyReduce_8
-
-happyReduce_1 = happyReduce 4 4 happyReduction_1
-happyReduction_1 ((HappyAbsSyn7  happy_var_4) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn6  happy_var_2) `HappyStk`
-	_ `HappyStk`
-	happyRest)
-	 = HappyAbsSyn4
-		 ((happy_var_2,happy_var_4)
-	) `HappyStk` happyRest
-
-happyReduce_2 = happySpecReduce_3  5 happyReduction_2
-happyReduction_2 _
-	_
-	(HappyTerminal (TokenSetName _ happy_var_1))
-	 =  HappyAbsSyn5
-		 (happy_var_1
-	)
-happyReduction_2 _ _ _  = notHappyAtAll 
-
-happyReduce_3 = happySpecReduce_1  6 happyReduction_3
-happyReduction_3 (HappyAbsSyn5  happy_var_1)
-	 =  HappyAbsSyn6
-		 ([happy_var_1]
-	)
-happyReduction_3 _  = notHappyAtAll 
-
-happyReduce_4 = happySpecReduce_3  6 happyReduction_4
-happyReduction_4 (HappyAbsSyn5  happy_var_3)
-	_
-	(HappyAbsSyn6  happy_var_1)
-	 =  HappyAbsSyn6
-		 (happy_var_3:happy_var_1
-	)
-happyReduction_4 _ _ _  = notHappyAtAll 
-
-happyReduce_5 = happySpecReduce_2  7 happyReduction_5
-happyReduction_5 _
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn7
-		 ([happy_var_1]
-	)
-happyReduction_5 _ _  = notHappyAtAll 
-
-happyReduce_6 = happySpecReduce_3  7 happyReduction_6
-happyReduction_6 (HappyAbsSyn7  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn7
-		 (happy_var_1:happy_var_3
-	)
-happyReduction_6 _ _ _  = notHappyAtAll 
-
-happyReduce_7 = happyReduce 4 8 happyReduction_7
-happyReduction_7 (_ `HappyStk`
-	(HappyAbsSyn12  happy_var_3) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_1) `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (FuncCall happy_var_1 [] happy_var_3
-	) `HappyStk` happyRest
-
-happyReduce_8 = happyReduce 7 8 happyReduction_8
-happyReduction_8 (_ `HappyStk`
-	(HappyAbsSyn12  happy_var_6) `HappyStk`
-	_ `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn12  happy_var_3) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_1) `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (FuncCall happy_var_1 happy_var_3 happy_var_6
-	) `HappyStk` happyRest
-
-happyReduce_9 = happySpecReduce_3  8 happyReduction_9
-happyReduction_9 (HappyAbsSyn8  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn8
-		 (FuncCall (PredefFunc IsEqual) [] [happy_var_1, happy_var_3]
-	)
-happyReduction_9 _ _ _  = notHappyAtAll 
-
-happyReduce_10 = happySpecReduce_3  8 happyReduction_10
-happyReduction_10 (HappyAbsSyn8  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn8
-		 (FuncCall (PredefFunc XProduct) [happy_var_1, happy_var_3] []
-	)
-happyReduction_10 _ _ _  = notHappyAtAll 
-
-happyReduce_11 = happySpecReduce_3  8 happyReduction_11
-happyReduction_11 (HappyAbsSyn8  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn8
-		 (FuncCall (PredefFunc Plus) [happy_var_1, happy_var_3] []
-	)
-happyReduction_11 _ _ _  = notHappyAtAll 
-
-happyReduce_12 = happyReduce 4 8 happyReduction_12
-happyReduction_12 (_ `HappyStk`
-	(HappyAbsSyn8  happy_var_3) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_1) `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (FuncCall (PredefFunc RecordIndex) [] [happy_var_1, happy_var_3]
-	) `HappyStk` happyRest
-
-happyReduce_13 = happyReduce 6 8 happyReduction_13
-happyReduction_13 (_ `HappyStk`
-	(HappyAbsSyn12  happy_var_5) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_3) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_1) `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (FuncCall (PredefFunc RecordSelect) [] (happy_var_1:happy_var_3:happy_var_5)
-	) `HappyStk` happyRest
-
-happyReduce_14 = happySpecReduce_3  8 happyReduction_14
-happyReduction_14 _
-	(HappyAbsSyn12  happy_var_2)
-	_
-	 =  HappyAbsSyn8
-		 (Record happy_var_2
-	)
-happyReduction_14 _ _ _  = notHappyAtAll 
-
-happyReduce_15 = happySpecReduce_1  8 happyReduction_15
-happyReduction_15 (HappyTerminal (TokenString _ happy_var_1))
-	 =  HappyAbsSyn8
-		 (Types.String $ stripWhitespace happy_var_1
-	)
-happyReduction_15 _  = notHappyAtAll 
-
-happyReduce_16 = happyReduce 6 8 happyReduction_16
-happyReduction_16 ((HappyAbsSyn8  happy_var_6) `HappyStk`
-	_ `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn11  happy_var_3) `HappyStk`
-	_ `HappyStk`
-	_ `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (FuncDef [] happy_var_3 happy_var_6
-	) `HappyStk` happyRest
-
-happyReduce_17 = happyReduce 6 8 happyReduction_17
-happyReduction_17 ((HappyAbsSyn8  happy_var_6) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_4) `HappyStk`
-	_ `HappyStk`
-	(HappyAbsSyn8  happy_var_2) `HappyStk`
-	_ `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (If happy_var_2 happy_var_4 happy_var_6
-	) `HappyStk` happyRest
-
-happyReduce_18 = happyReduce 4 8 happyReduction_18
-happyReduction_18 ((HappyAbsSyn8  happy_var_4) `HappyStk`
-	_ `HappyStk`
-	(HappyTerminal (TokenSetName _ happy_var_2)) `HappyStk`
-	_ `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (Let True happy_var_2 happy_var_4
-	) `HappyStk` happyRest
-
-happyReduce_19 = happyReduce 4 8 happyReduction_19
-happyReduction_19 ((HappyAbsSyn8  happy_var_4) `HappyStk`
-	_ `HappyStk`
-	(HappyTerminal (TokenVarName _ happy_var_2)) `HappyStk`
-	_ `HappyStk`
-	happyRest)
-	 = HappyAbsSyn8
-		 (Let False happy_var_2 happy_var_4
-	) `HappyStk` happyRest
-
-happyReduce_20 = happySpecReduce_1  8 happyReduction_20
-happyReduction_20 (HappyTerminal (TokenVarName _ happy_var_1))
-	 =  HappyAbsSyn8
-		 (Var happy_var_1
-	)
-happyReduction_20 _  = notHappyAtAll 
-
-happyReduce_21 = happySpecReduce_1  8 happyReduction_21
-happyReduction_21 (HappyTerminal (TokenSetName _ happy_var_1))
-	 =  HappyAbsSyn8
-		 (Var happy_var_1
-	)
-happyReduction_21 _  = notHappyAtAll 
-
-happyReduce_22 = happySpecReduce_1  8 happyReduction_22
-happyReduction_22 (HappyTerminal (TokenNat _ happy_var_1))
-	 =  HappyAbsSyn8
-		 (Types.Int happy_var_1
-	)
-happyReduction_22 _  = notHappyAtAll 
-
-happyReduce_23 = happySpecReduce_1  8 happyReduction_23
-happyReduction_23 (HappyAbsSyn9  happy_var_1)
-	 =  HappyAbsSyn8
-		 (PredefFunc happy_var_1
-	)
-happyReduction_23 _  = notHappyAtAll 
-
-happyReduce_24 = happySpecReduce_3  8 happyReduction_24
-happyReduction_24 (HappyAbsSyn8  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn8
-		 (FuncCall (PredefFunc Or) [] [happy_var_1,happy_var_3]
-	)
-happyReduction_24 _ _ _  = notHappyAtAll 
-
-happyReduce_25 = happySpecReduce_3  8 happyReduction_25
-happyReduction_25 (HappyAbsSyn8  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn8
-		 (FuncCall (PredefFunc And) [] [happy_var_1,happy_var_3]
-	)
-happyReduction_25 _ _ _  = notHappyAtAll 
-
-happyReduce_26 = happySpecReduce_1  9 happyReduction_26
-happyReduction_26 _
-	 =  HappyAbsSyn9
-		 (IsEmpty
-	)
-
-happyReduce_27 = happySpecReduce_1  9 happyReduction_27
-happyReduction_27 _
-	 =  HappyAbsSyn9
-		 (Filter
-	)
-
-happyReduce_28 = happySpecReduce_1  9 happyReduction_28
-happyReduction_28 _
-	 =  HappyAbsSyn9
-		 (Contains
-	)
-
-happyReduce_29 = happySpecReduce_1  9 happyReduction_29
-happyReduction_29 _
-	 =  HappyAbsSyn9
-		 (IsEmpty
-	)
-
-happyReduce_30 = happySpecReduce_1  9 happyReduction_30
-happyReduction_30 _
-	 =  HappyAbsSyn9
-		 (Map
-	)
-
-happyReduce_31 = happySpecReduce_1  9 happyReduction_31
-happyReduction_31 _
-	 =  HappyAbsSyn9
-		 (And
-	)
-
-happyReduce_32 = happySpecReduce_1  9 happyReduction_32
-happyReduction_32 _
-	 =  HappyAbsSyn9
-		 (Or
-	)
-
-happyReduce_33 = happySpecReduce_1  10 happyReduction_33
-happyReduction_33 (HappyTerminal (TokenSetName _ happy_var_1))
-	 =  HappyAbsSyn10
-		 ([happy_var_1]
-	)
-happyReduction_33 _  = notHappyAtAll 
-
-happyReduce_34 = happySpecReduce_3  10 happyReduction_34
-happyReduction_34 (HappyAbsSyn10  happy_var_3)
-	_
-	(HappyTerminal (TokenSetName _ happy_var_1))
-	 =  HappyAbsSyn10
-		 (happy_var_1:happy_var_3
-	)
-happyReduction_34 _ _ _  = notHappyAtAll 
-
-happyReduce_35 = happySpecReduce_1  11 happyReduction_35
-happyReduction_35 (HappyTerminal (TokenVarName _ happy_var_1))
-	 =  HappyAbsSyn11
-		 ([happy_var_1]
-	)
-happyReduction_35 _  = notHappyAtAll 
-
-happyReduce_36 = happySpecReduce_3  11 happyReduction_36
-happyReduction_36 (HappyAbsSyn11  happy_var_3)
-	_
-	(HappyTerminal (TokenVarName _ happy_var_1))
-	 =  HappyAbsSyn11
-		 (happy_var_1:happy_var_3
-	)
-happyReduction_36 _ _ _  = notHappyAtAll 
-
-happyReduce_37 = happySpecReduce_1  12 happyReduction_37
-happyReduction_37 (HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn12
-		 ([happy_var_1]
-	)
-happyReduction_37 _  = notHappyAtAll 
-
-happyReduce_38 = happySpecReduce_3  12 happyReduction_38
-happyReduction_38 (HappyAbsSyn12  happy_var_3)
-	_
-	(HappyAbsSyn8  happy_var_1)
-	 =  HappyAbsSyn12
-		 (happy_var_1:happy_var_3
-	)
-happyReduction_38 _ _ _  = notHappyAtAll 
-
-happyReduce_39 = happySpecReduce_1  13 happyReduction_39
-happyReduction_39 (HappyTerminal (TokenNat _ happy_var_1))
-	 =  HappyAbsSyn13
-		 ([happy_var_1]
-	)
-happyReduction_39 _  = notHappyAtAll 
-
-happyReduce_40 = happySpecReduce_3  13 happyReduction_40
-happyReduction_40 (HappyAbsSyn13  happy_var_3)
-	_
-	(HappyTerminal (TokenNat _ happy_var_1))
-	 =  HappyAbsSyn13
-		 (happy_var_1:happy_var_3
-	)
-happyReduction_40 _ _ _  = notHappyAtAll 
-
-happyNewToken action sts stk [] =
-	action 51 51 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 {
-	TokenFilter _ -> cont 14;
-	TokenInSet _ -> cont 15;
-	TokenOutSet _ -> cont 16;
-	TokenSetName _ happy_dollar_dollar -> cont 17;
-	TokenNat _ happy_dollar_dollar -> cont 18;
-	TokenPosNat _ happy_dollar_dollar -> cont 19;
-	TokenVarName _ happy_dollar_dollar -> cont 20;
-	TokenTrue _ -> cont 21;
-	TokenFalse _ -> cont 22;
-	TokenString _ happy_dollar_dollar -> cont 23;
-	TokenLeftSqBracket _ -> cont 24;
-	TokenLeftBrace _ -> cont 25;
-	TokenRightBrace _ -> cont 26;
-	TokenRightSqBracket _ -> cont 27;
-	TokenArrow _ -> cont 28;
-	TokenisEqual _ -> cont 29;
-	TokenisNotEqual _ -> cont 30;
-	TokenLeftBracket _ -> cont 31;
-	TokenRightBracket _ -> cont 32;
-	TokenSemiCol _ -> cont 33;
-	TokenCol _ -> cont 34;
-	TokenLambda _ -> cont 35;
-	TokenComma _ -> cont 36;
-	TokenFullStop _ -> cont 37;
-	TokenPlus _ -> cont 38;
-	TokenXProduct _ -> cont 39;
-	TokenMap _ -> cont 40;
-	TokenXXProduct _ -> cont 41;
-	TokenContains _ -> cont 42;
-	TokenIsEmpty _ -> cont 43;
-	TokenLet _ -> cont 44;
-	TokenIf _ -> cont 45;
-	TokenElse _ -> cont 46;
-	TokenThen _ -> cont 47;
-	TokenEqual _ -> cont 48;
-	TokenBoolAND _ -> cont 49;
-	TokenBoolOR _ -> cont 50;
-	_ -> happyError' ((tk:tks), [])
-	}
-
-happyError_ explist 51 tk tks = happyError' (tks, explist)
-happyError_ explist _ tk tks = happyError' ((tk:tks), explist)
-
-newtype HappyIdentity a = HappyIdentity a
-happyIdentity = HappyIdentity
-happyRunIdentity (HappyIdentity a) = a
-
-instance Prelude.Functor HappyIdentity where
-    fmap f (HappyIdentity a) = HappyIdentity (f a)
-
-instance Applicative HappyIdentity where
-    pure  = HappyIdentity
-    (<*>) = ap
-instance Prelude.Monad HappyIdentity where
-    return = pure
-    (HappyIdentity p) >>= q = q p
-
-happyThen :: () => HappyIdentity a -> (a -> HappyIdentity b) -> HappyIdentity b
-happyThen = (Prelude.>>=)
-happyReturn :: () => a -> HappyIdentity a
-happyReturn = (Prelude.return)
-happyThen1 m k tks = (Prelude.>>=) m (\a -> k a tks)
-happyReturn1 :: () => a -> b -> HappyIdentity a
-happyReturn1 = \a tks -> (Prelude.return) a
-happyError' :: () => ([(Token)], [Prelude.String]) -> HappyIdentity a
-happyError' = HappyIdentity Prelude.. (\(tokens, _) -> parseError tokens)
-parseSource tks = happyRunIdentity happySomeParser where
- happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn4 z -> happyReturn z; _other -> notHappyAtAll })
-
-happySeq = happyDontSeq
-
-
-parseError :: [Token] -> a
-parseError tokens = error $ "Parse error: " ++ (show.pos.head) tokens
-
-tokenPosn :: Token -> String
-tokenPosn t = let (AlexPn _ line col) = pos t in (show line) ++ ':' : (show col)
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- $Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp $
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-data Happy_IntList = HappyCons Prelude.Int Happy_IntList
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is ERROR_TOK, it means we've just accepted a partial
--- parse (a %partial parser).  We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept (1) tk st sts (_ `HappyStk` ans `HappyStk` _) =
-        happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) = 
-         (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-indexShortOffAddr arr off = arr Happy_Data_Array.! off
-
-
-{-# INLINE happyLt #-}
-happyLt x y = (x Prelude.< y)
-
-
-
-
-
-
-readArrayBit arr bit =
-    Bits.testBit (indexShortOffAddr arr (bit `Prelude.div` 16)) (bit `Prelude.mod` 16)
-
-
-
-
-
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-
-
-newtype HappyState b c = HappyState
-        (Prelude.Int ->                    -- token number
-         Prelude.Int ->                    -- token number (yes, again)
-         b ->                           -- token semantic value
-         HappyState b c ->              -- current state
-         [HappyState b c] ->            -- state stack
-         c)
-
-
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state (1) tk st sts stk@(x `HappyStk` _) =
-     let i = (case x of { HappyErrorToken (i) -> i }) in
---     trace "shifting the error token" $
-     new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)
-
-happyShift new_state i tk st sts stk =
-     happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk
-     = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')
-     = let r = fn v1 in
-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')
-     = let r = fn v1 v2 in
-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
-     = let r = fn v1 v2 v3 in
-       happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happyReduce k nt fn j tk st sts stk
-     = case happyDrop (k Prelude.- ((1) :: Prelude.Int)) sts of
-         sts1@(((st1@(HappyState (action))):(_))) ->
-                let r = fn stk in  -- it doesn't hurt to always seq here...
-                happyDoSeq r (action nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
-      case happyDrop k ((st):(sts)) of
-        sts1@(((st1@(HappyState (action))):(_))) ->
-          let drop_stk = happyDropStk k stk in
-          happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))
-
-happyMonad2Reduce k nt fn (1) tk st sts stk
-     = happyFail [] (1) tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
-      case happyDrop k ((st):(sts)) of
-        sts1@(((st1@(HappyState (action))):(_))) ->
-         let drop_stk = happyDropStk k stk
-
-
-
-
-
-             _ = nt :: Prelude.Int
-             new_state = action
-
-          in
-          happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-
-happyDrop (0) l = l
-happyDrop n ((_):(t)) = happyDrop (n Prelude.- ((1) :: Prelude.Int)) t
-
-happyDropStk (0) l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n Prelude.- ((1)::Prelude.Int)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-
-
-
-
-
-
-
-
-happyGoto action j tk st = action j j tk (HappyState action)
-
-
------------------------------------------------------------------------------
--- Error recovery (ERROR_TOK is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail explist (1) tk old_st _ stk@(x `HappyStk` _) =
-     let i = (case x of { HappyErrorToken (i) -> i }) in
---      trace "failing" $ 
-        happyError_ explist i tk
-
-{-  We don't need state discarding for our restricted implementation of
-    "error".  In fact, it can cause some bogus parses, so I've disabled it
-    for now --SDM
-
--- discard a state
-happyFail  ERROR_TOK tk old_st CONS(HAPPYSTATE(action),sts) 
-                                                (saved_tok `HappyStk` _ `HappyStk` stk) =
---      trace ("discarding state, depth " ++ show (length stk))  $
-        DO_ACTION(action,ERROR_TOK,tk,sts,(saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
---                       save the old token and carry on.
-happyFail explist i tk (HappyState (action)) sts stk =
---      trace "entering error recovery" $
-        action (1) (1) tk (HappyState (action)) sts ((HappyErrorToken (i)) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll :: a
-notHappyAtAll = Prelude.error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-
-
-
-
-
------------------------------------------------------------------------------
--- Seq-ing.  If the --strict flag is given, then Happy emits 
---      happySeq = happyDoSeq
--- otherwise it emits
---      happySeq = happyDontSeq
-
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq   a b = a `Prelude.seq` b
-happyDontSeq a b = b
-
------------------------------------------------------------------------------
--- Don't inline any functions from the template.  GHC has a nasty habit
--- of deciding to inline happyGoto everywhere, which increases the size of
--- the generated parser quite a bit.
-
-
-
-
-
-
-
-
-
-{-# NOINLINE happyShift #-}
-{-# NOINLINE happySpecReduce_0 #-}
-{-# NOINLINE happySpecReduce_1 #-}
-{-# NOINLINE happySpecReduce_2 #-}
-{-# NOINLINE happySpecReduce_3 #-}
-{-# NOINLINE happyReduce #-}
-{-# NOINLINE happyMonadReduce #-}
-{-# NOINLINE happyGoto #-}
-{-# NOINLINE happyFail #-}
-
--- end of Happy Template.
diff --git a/Q.csv b/Q.csv
deleted file mode 100644
index e328109..0000000
--- a/Q.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-1 ,6 ,4 ,7
-2 ,8 ,5 ,3
-2 , , ,1
-4 , ,2 ,3
\ No newline at end of file
diff --git a/R.csv b/R.csv
deleted file mode 100644
index 5f2c212..0000000
--- a/R.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-1 ,5 ,4 ,0
-2 , 0,2 ,0
-3 ,7 ,1 ,2
-4 ,8 , 0,0
\ No newline at end of file
diff --git a/S.csv b/S.csv
deleted file mode 100644
index b3697e5..0000000
--- a/S.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-1 ,6 ,4 ,7
-2 ,8 ,5 ,3
-2 ,0,0,1
-4 ,0,2 ,3
\ No newline at end of file
diff --git a/SampleSet.csv b/SampleSet.csv
deleted file mode 100644
index f912eeb..0000000
--- a/SampleSet.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-  hello  ,tree
-big ,apple
-hello,world
-he,good
-hello,good bye
diff --git a/sampleprogram.txt b/sampleprogram.txt
deleted file mode 100644
index 6e4db43..0000000
--- a/sampleprogram.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-.in
-SampleSet:4
-
-.out
-let f = \(r) -> r[1] == "hello";
-filter[SampleSet](f);
\ No newline at end of file
diff --git a/solutions/pr1.cql b/solutions/pr1.cql
deleted file mode 100644
index f9bfb75..0000000
--- a/solutions/pr1.cql
+++ /dev/null
@@ -1,6 +0,0 @@
-.in
-A:2, # declare input files and their numbers of cols in .in section
-B:2
-
-.out # statements for the query are in .out section
-A x B; # returns the cartesian product of the two sets (conjunction)
\ No newline at end of file
diff --git a/solutions/pr2.cql b/solutions/pr2.cql
deleted file mode 100644
index 7411d32..0000000
--- a/solutions/pr2.cql
+++ /dev/null
@@ -1,6 +0,0 @@
-.in
-A:3
-
-.out
-filter( \(r) -> r[1] == r[2]);
-map (\(r) -> r[3,1]);
\ No newline at end of file
diff --git a/solutions/pr3.cql b/solutions/pr3.cql
deleted file mode 100644
index 5dc784d..0000000
--- a/solutions/pr3.cql
+++ /dev/null
@@ -1,9 +0,0 @@
-.in
-P: 4,
-Q: 4
-
-.out
-P x Q;
-filter(\(r) -> r[1] == r[5]);
-let f = \(a,y) -> if (isEmpty(a)) then y else a;
-map (\(r) -> [r[1], f(r[2], r[6]), f(r[3], r[7]), f(r[4], r[8])]);
\ No newline at end of file
diff --git a/solutions/pr4.cql b/solutions/pr4.cql
deleted file mode 100644
index d842528..0000000
--- a/solutions/pr4.cql
+++ /dev/null
@@ -1,5 +0,0 @@
-.in
-P42 :2
-
-.out
-filter (\(r) -> not(isEmpty(r[2]) ) );
\ No newline at end of file
diff --git a/solutions/pr5.cql b/solutions/pr5.cql
deleted file mode 100644
index f34636e..0000000
--- a/solutions/pr5.cql
+++ /dev/null
@@ -1,5 +0,0 @@
-.in
-A:1
-
-.out
-map{A}(\(r) -> [r[1],"0",r[1]] );
\ No newline at end of file
-- 
GitLab