From 4e42d73ee508715e83c8f1a160b7bc696b78571b Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 7 Jan 2006 12:26:11 +0000 Subject: [PATCH] regex patterns for tokens --- doc/DocGF.pdf | Bin 52210 -> 56913 bytes src/GF/Compile/CheckGrammar.hs | 22 ++- src/GF/Compile/Rename.hs | 18 ++ src/GF/Grammar/Compute.hs | 7 + src/GF/Grammar/Grammar.hs | 8 + src/GF/Grammar/Macros.hs | 26 ++- src/GF/Grammar/PatternMatch.hs | 23 ++- src/GF/Grammar/Refresh.hs | 7 + src/GF/Source/AbsGF.hs | 3 + src/GF/Source/GF.cf | 5 +- src/GF/Source/GrammarToSource.hs | 6 + src/GF/Source/LexGF.x | 10 +- src/GF/Source/ParGF.hs | 291 +++++++++++++++++-------------- src/GF/Source/ParGF.y | 112 ++++++------ src/GF/Source/PrintGF.hs | 3 + src/GF/Source/SourceToGrammar.hs | 16 +- 16 files changed, 358 insertions(+), 199 deletions(-) diff --git a/doc/DocGF.pdf b/doc/DocGF.pdf index a7d3dff02f11cfb127bad40125ca427378cebb2c..938dbe89ee7e7ac33d8954c1e1fa488b8482adef 100644 GIT binary patch literal 56913 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 delta 42808 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

u1CUIGwn6 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 True PInt _ -> True PFloat _ -> True + PSeq p q -> isConstPatt p && isConstPatt q + PAlt p q -> isConstPatt p && isConstPatt q + PRep p -> isConstPatt p + PAs _ p -> isConstPatt p _ -> False inferPatt p = case p of @@ -664,7 +668,7 @@ checkLType env trm typ0 = do pattContext :: LTEnv -> Type -> Patt -> Check Context pattContext env typ p = case p of PV x -> return [(x,typ)] - PP q c ps | q /= cPredef || prt c == "CC" -> do ---- why this /=? AR 6/1/2006 + PP q c ps | q /= cPredef -> do ---- why this /=? AR 6/1/2006 t <- checkErr $ lookupResType cnc q c (cont,v) <- checkErr $ typeFormCnc t checkCond ("wrong number of arguments for constructor in" +++ prt p) @@ -683,7 +687,21 @@ pattContext env typ p = case p of checkEqLType env typ t (patt2term p') pattContext env typ p' - _ -> return [] ---- + PAs x p -> do + g <- pattContext env typ p + return $ (x,typ):g + + PAlt p q -> do + g1 <- pattContext env typ p + g2 <- pattContext env typ q + return $ filter (flip elem g1) g2 -- must be in both + PSeq p q -> do + g1 <- pattContext env typ p + g2 <- pattContext env typ q + return $ g1 ++ g2 + PRep p -> pattContext env typeStr p + + _ -> return [] ---- check types! where cnc = env diff --git a/src/GF/Compile/Rename.hs b/src/GF/Compile/Rename.hs index c3369e9ef..61f26b89e 100644 --- a/src/GF/Compile/Rename.hs +++ b/src/GF/Compile/Rename.hs @@ -241,6 +241,24 @@ renamePattern env patt = case patt of let (ps',vs') = unzip psvss return (PR (zip ls ps'), concat vs') + PAlt p q -> do + (p',vs) <- renp p + (q',ws) <- renp q + return (PAlt p' q', vs ++ ws) + + PSeq p q -> do + (p',vs) <- renp p + (q',ws) <- renp q + return (PSeq p' q', vs ++ ws) + + PRep p -> do + (p',vs) <- renp p + return (PRep p', vs) + + PAs x p -> do + (p',vs) <- renp p + return (PAs x p', x:vs) + _ -> return (patt,[]) where diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs index 26409ce27..a25f6f98f 100644 --- a/src/GF/Grammar/Compute.hs +++ b/src/GF/Grammar/Compute.hs @@ -304,6 +304,13 @@ computeTermOpt rec gr = comp where PP _ _ ps -> concatMap contP ps PT _ p -> contP p PR rs -> concatMap (contP . snd) rs + + PAs x p -> (x,Vr x) : contP p + + PSeq p q -> concatMap contP [p,q] + PAlt p q -> concatMap contP [p,q] + PRep p -> contP p + _ -> [] prawitz g i f cs e = do diff --git a/src/GF/Grammar/Grammar.hs b/src/GF/Grammar/Grammar.hs index 4a983abcc..7be13a0d9 100644 --- a/src/GF/Grammar/Grammar.hs +++ b/src/GF/Grammar/Grammar.hs @@ -171,6 +171,14 @@ data Patt = | PInt Integer -- ^ integer literal pattern: @12@ -- only abstract | PFloat Double -- ^ float literal pattern: @1.2@ -- only abstract | PT Type Patt -- ^ type-annotated pattern + + | PAs Ident Patt -- ^ as-pattern: x@p + + -- regular expression patterns + | PAlt Patt Patt -- ^ disjunctive pattern: p1 | p2 + | PSeq Patt Patt -- ^ sequence of token parts + | PRep Patt -- ^ repetition of token part + deriving (Read, Show, Eq, Ord) -- | to guide computation and type checking of tables diff --git a/src/GF/Grammar/Macros.hs b/src/GF/Grammar/Macros.hs index dc4f790fd..bc394b143 100644 --- a/src/GF/Grammar/Macros.hs +++ b/src/GF/Grammar/Macros.hs @@ -504,6 +504,24 @@ term2patt trm = case termForm trm of Ok ([],EInt i,[]) -> return $ PInt i Ok ([],EFloat i,[]) -> return $ PFloat i Ok ([],K s, []) -> return $ PString s + +--- encodings due to excessive use of term-patt convs. AR 7/1/2005 + Ok ([], Cn (IC "@"), [Vr a,b]) -> do + b' <- term2patt b + return (PAs a b') + Ok ([], Cn (IC "*"), [a]) -> do + a' <- term2patt a + return (PRep a') + Ok ([], Cn (IC "+"), [a,b]) -> do + a' <- term2patt a + b' <- term2patt b + return (PSeq a' b') + Ok ([], Cn (IC "|"), [a,b]) -> do + a' <- term2patt a + b' <- term2patt b + return (PAlt a' b') + + _ -> prtBad "no pattern corresponds to term" trm patt2term :: Patt -> Term @@ -513,11 +531,17 @@ patt2term pt = case pt of PC c pp -> mkApp (Con c) (map patt2term pp) PP p c pp -> mkApp (QC p c) (map patt2term pp) PR r -> R [assign l (patt2term p) | (l,p) <- r] - PT _ p -> patt2term p + PT _ p -> patt2term p PInt i -> EInt i PFloat i -> EFloat i PString s -> K s + PAs x p -> appc "@" [Vr x, patt2term p] --- an encoding + PSeq a b -> appc "+" [(patt2term a), (patt2term b)] --- an encoding + PAlt a b -> appc "|" [(patt2term a), (patt2term b)] --- an encoding + PRep a -> appc "*" [(patt2term a)] --- an encoding + + redirectTerm :: Ident -> Term -> Term redirectTerm n t = case t of QC _ f -> QC n f diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs index b996efa0a..4e3feb5dc 100644 --- a/src/GF/Grammar/PatternMatch.hs +++ b/src/GF/Grammar/PatternMatch.hs @@ -67,11 +67,6 @@ tryMatch (p,t) = do do matches <- mapM tryMatch (zip pp tt) return (concat matches) - (PP (IC "Predef") (IC "CC") [p1,p2], ([],K s, [])) -> do - let cuts = [splitAt n s | n <- [0 .. length s]] - matches <- checks [mapM tryMatch [(p1,K s1),(p2,K s2)] | (s1,s2) <- cuts] - return (concat matches) - (PP q p pp, ([], QC r f, tt)) | -- q `eqStrIdent` r && --- not for inherited AR 10/10/2005 p `eqStrIdent` f && length pp == length tt -> @@ -91,6 +86,24 @@ tryMatch (p,t) = do return (concat matches) (PT _ p',_) -> trym p' t' (_, ([],Alias _ _ d,[])) -> tryMatch (p,d) + +-- (PP (IC "Predef") (IC "CC") [p1,p2], ([],K s, [])) -> do + + (PAs x p',_) -> do + subst <- trym p' t' + return $ (x,t) : subst + + (PAlt p1 p2,_) -> checks [trym p1 t', trym p2 t'] + + (PSeq p1 p2, ([],K s, [])) -> do + let cuts = [splitAt n s | n <- [0 .. length s]] + matches <- checks [mapM tryMatch [(p1,K s1),(p2,K s2)] | (s1,s2) <- cuts] + return (concat matches) + + (PRep p1, ([],K s, [])) -> checks [ + trym (foldr (const (PSeq p1)) (PString "") [0..n]) t' | n <- [1 .. length s] + ] + _ -> prtBad "no match in case expr for" t isInConstantForm :: Term -> Bool diff --git a/src/GF/Grammar/Refresh.hs b/src/GF/Grammar/Refresh.hs index a9bccbb1d..045fccfc0 100644 --- a/src/GF/Grammar/Refresh.hs +++ b/src/GF/Grammar/Refresh.hs @@ -71,6 +71,13 @@ refreshPatt p = case p of PP q c ps -> liftM (PP q c) (mapM refreshPatt ps) PR r -> liftM PR (mapPairsM refreshPatt r) PT t p' -> liftM2 PT (refresh t) (refreshPatt p') + + PAs x p' -> liftM2 PAs (refVar x) (refreshPatt p') + + PSeq p' q' -> liftM2 PSeq (refreshPatt p') (refreshPatt q') + PAlt p' q' -> liftM2 PAlt (refreshPatt p') (refreshPatt q') + PRep p' -> liftM PRep (refreshPatt p') + _ -> return p refreshRecord r = case r of diff --git a/src/GF/Source/AbsGF.hs b/src/GF/Source/AbsGF.hs index 5e00b938a..503a0ac97 100644 --- a/src/GF/Source/AbsGF.hs +++ b/src/GF/Source/AbsGF.hs @@ -221,6 +221,9 @@ data Patt = | PC Ident [Patt] | PQC Ident Ident [Patt] | PDisj Patt Patt + | PSeq Patt Patt + | PRep Patt + | PAs Ident Patt deriving (Eq,Ord,Show) data PattAss = diff --git a/src/GF/Source/GF.cf b/src/GF/Source/GF.cf index cdfb59d25..a84d37d5b 100644 --- a/src/GF/Source/GF.cf +++ b/src/GF/Source/GF.cf @@ -200,7 +200,7 @@ EEqs. Exp ::= "fn" "{" [Equation] "}" ; EExample. Exp ::= "in" Exp5 String ; -coercions Exp 4 ; +coercions Exp 6 ; separator Exp ";" ; -- in variants @@ -222,6 +222,9 @@ PTup. Patt2 ::= "<" [PattTupleComp] ">" ; PC. Patt1 ::= Ident [Patt] ; PQC. Patt1 ::= Ident "." Ident [Patt] ; PDisj. Patt ::= Patt "|" Patt1 ; +PSeq. Patt ::= Patt "+" Patt1 ; +PRep. Patt1 ::= Patt2 "*" ; +PAs. Patt1 ::= Ident "@" Patt2 ; coercions Patt 2 ; diff --git a/src/GF/Source/GrammarToSource.hs b/src/GF/Source/GrammarToSource.hs index c5ecf6b19..3303a6487 100644 --- a/src/GF/Source/GrammarToSource.hs +++ b/src/GF/Source/GrammarToSource.hs @@ -197,6 +197,12 @@ trp p = case p of PFloat i -> P.PFloat i PT t p -> trp p ---- prParenth (prt p +++ ":" +++ prt t) + PAs x p -> P.PAs (tri x) (trp p) + + PAlt p q -> P.PDisj (trp p) (trp q) + PSeq p q -> P.PSeq (trp p) (trp q) + PRep p -> P.PRep (trp p) + trAssign (lab, (mty, t)) = maybe (P.LDDef x t') (\ty -> P.LDFull x (trt ty) t') mty where diff --git a/src/GF/Source/LexGF.x b/src/GF/Source/LexGF.x index e50eca8b7..7ea768e75 100644 --- a/src/GF/Source/LexGF.x +++ b/src/GF/Source/LexGF.x @@ -1,10 +1,10 @@ -- -*- haskell -*- -- This Alex file was machine-generated by the BNF converter { -module GF.Source.LexGF where -- H +module LexGF where -import GF.Data.ErrM -- H -import GF.Data.SharedString -- H +import ErrM +import SharedString } @@ -16,7 +16,7 @@ $i = [$l $d _ '] -- identifier character $u = [\0-\255] -- universal: any character @rsyms = -- reserved words consisting of special symbols - \; | \= | \{ | \} | \( | \) | \: | \- \> | \* \* | \, | \[ | \] | \. | \| | \% | \? | \< | \> | \@ | \! | \* | \\ | \= \> | \+ \+ | \+ | \_ | \$ | \/ | \- + \; | \= | \{ | \} | \( | \) | \: | \- \> | \* \* | \, | \[ | \] | \- | \. | \| | \% | \? | \< | \> | \@ | \! | \* | \+ | \+ \+ | \\ | \= \> | \_ | \$ | \/ :- "--" [.]* ; -- Toss single line comments @@ -30,7 +30,7 @@ $l $i* { tok (\p s -> PT p (eitherResIdent (TV . share) s)) } \" ([$u # [\" \\ \n]] | (\\ (\" | \\ | \' | n | t)))* \"{ tok (\p s -> PT p (TL $ share $ unescapeInitTail s)) } $d+ { tok (\p s -> PT p (TI $ share s)) } - +$d+ \. $d+ (e (\-)? $d+)? { tok (\p s -> PT p (TD $ share s)) } { diff --git a/src/GF/Source/ParGF.hs b/src/GF/Source/ParGF.hs index d75c29977..8f6f1f330 100644 --- a/src/GF/Source/ParGF.hs +++ b/src/GF/Source/ParGF.hs @@ -526,21 +526,21 @@ happyOutTok x = unsafeCoerce# x {-# INLINE happyOutTok #-} happyActOffsets :: HappyAddr -happyActOffsets = HappyA# "\x00\x00\x98\x01\xf3\x04\x48\x01\xc9\x04\x00\x00\xff\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x05\xb2\x01\x89\x00\xf9\x04\xbe\x04\xf8\x04\x00\x00\x0a\x05\xc1\x04\x5e\x00\x27\x00\xc1\x04\x00\x00\x48\x01\x74\x00\xc1\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x09\x05\xb2\x02\x16\x00\x08\x05\x07\x05\x99\x02\x05\x05\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x04\x00\x00\x28\x00\x0e\x00\x90\x04\xae\x04\x00\x00\xa7\x04\x86\x01\xf7\x04\xf5\x04\xf4\x04\xa9\x04\xa9\x04\xa9\x04\xa9\x04\xa9\x04\xa9\x04\x00\x00\x28\x00\x00\x00\xef\x04\x00\x00\x28\x00\x28\x00\x28\x00\x7f\x07\x48\x01\x00\x00\x15\x00\x75\x00\xfa\x00\xa8\x04\xac\x00\xac\x00\xe9\x04\xeb\x00\xee\x04\xc0\x04\xa5\x04\x1d\x00\x75\x00\xa6\x04\x00\x00\x00\x00\xe2\x04\xe3\x04\x2f\x00\x00\x00\xd6\x04\xd2\x04\xc7\x04\x97\x02\x80\x02\xcf\x04\x00\x00\x2e\x03\xd3\x04\xce\x04\x4b\x02\x7c\x04\xd4\x04\xac\x00\x7d\x01\xac\x00\x7d\x01\x7d\x01\x7d\x01\xac\x00\xd1\x04\xc5\x04\xfa\xff\x32\x02\x00\x00\x84\x04\x00\x00\x00\x00\x76\x04\x74\x04\x00\x00\x19\x02\x19\x02\x19\x02\x00\x00\x19\x02\x7f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x74\x04\xb9\x04\xac\x00\x00\x00\x00\x00\xe4\x01\xb2\x04\x70\x04\x00\x00\x00\x00\xac\x00\xac\x00\xa3\x04\xac\x00\x2f\x00\xb7\x04\xab\x04\x00\x00\x00\x00\x00\x00\x75\x00\xb0\x04\xa4\x04\xb1\x04\x58\x04\x75\x00\x75\x00\x00\x00\x00\x00\xa2\x04\xac\x00\x57\x04\xac\x00\xac\x00\xa1\x04\xa0\x04\x9b\x04\x8e\x04\x00\x03\x00\x00\x00\x00\x0d\x00\x9c\x04\x98\x04\x75\x00\xac\x00\x88\x04\x00\x00\x8d\x00\x3c\x04\x8c\x00\x3c\x04\x3c\x04\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x3c\x04\x3c\x04\x8c\x00\x7a\x00\x3c\x04\x8c\x00\x8c\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x7e\x04\x00\x00\x00\x00\x51\x04\x4f\x04\x00\x00\xfc\xff\x80\x04\x5e\x04\x37\x00\x00\x00\x48\x04\x66\x04\x64\x04\x1b\x04\x1b\x04\x1b\x04\x1b\x04\x21\x00\x00\x00\x00\x00\x65\x04\x00\x00\xb5\x00\x4e\x00\x19\x04\x00\x00\x63\x04\x53\x04\x00\x00\x49\x04\x50\x04\x8c\x00\x8c\x00\x00\x00\x46\x04\x37\x04\x00\x00\x44\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x04\x00\x00\x28\x04\x2f\x04\x2d\x04\x00\x00\x00\x00\x88\x01\x2b\x04\x00\x00\x00\x00\x00\x00\x29\x04\x00\x00\xe1\x03\x00\x00\x0e\x04\x97\x00\x17\x04\x00\x00\x75\x00\x75\x00\xac\x00\x00\x00\xcd\x03\x00\x00\xac\x00\xac\x00\x16\x04\x00\x00\x00\x00\x00\x00\xe9\x03\xf0\x03\x0b\x04\xea\x03\x95\x00\xf1\x02\xfc\x03\xfb\x03\xe0\x03\x00\x00\x75\x00\xac\x00\x00\x00\xa7\x03\x75\x00\x00\x00\x00\x00\xac\x00\xd2\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x03\x00\x00\xdf\x03\x00\x00\xd6\x03\x00\x00\x79\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x03\x75\x00\x00\x00\x00\x00\x00\x00\x75\x00\xac\x00\xac\x00\xb9\x03\xc8\x03\xc4\x03\x00\x00\x75\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x00\xcb\x01\x7b\x03\x7b\x03\x7b\x03\x7b\x03\xac\x00\x7b\x03\xbe\x03\x74\x03\x20\x00\x00\x00\x00\x00\xac\x00\x3c\x00\x3c\x00\x00\x00\xaf\x03\xac\x00\xac\x00\x9e\x03\x3c\x00\x00\x00\xac\x03\x0e\x02\x00\x00\x00\x00\xcc\x01\x00\x00\x00\x00\x53\x03\x53\x03\x8d\x03\xfd\xff\x41\x03\x7c\x03\xfd\xff\x83\x03\x31\x03\x00\x00\x72\x03\x2d\x03\x6f\x03\x49\x03\x00\x00\x22\x03\x00\x00\x24\x03\x00\x00\x00\x00\xfd\xff\x00\x00\xac\x00\x68\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x03\x00\x00\x33\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x46\x03\x58\x03\x00\x00\x51\x03\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x18\x00\x00\x00\x00\x00\xac\x00\xac\x00\x00\x00\x00\x00\x00\x00\x3a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x45\x03\x39\x03\xf5\x02\xf5\x02\x6d\x03\xf5\x02\xf5\x02\xcb\x01\xac\x00\x00\x00\x00\x00\xa4\x01\xfd\xff\x4c\x03\x00\x00\x00\x00\x32\x03\xfd\xff\x36\x03\xef\x02\x00\x00\x00\x00\x00\x00\x00\x00\xef\x02\x00\x00\x00\x00\x00\x00\x27\x03\x18\x03\x00\x00\x00\x00\xac\x00\xc4\x02\x0c\x03\x21\x03\x00\x00\x00\x00\x12\x03\x0a\x03\xfc\x02\xf8\x02\x00\x00\xc1\x02\xc1\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x02\x00\x00\xb0\x02\xf3\xff\xfd\xff\xfd\xff\xf4\x02\xe8\x02\x00\x00\x00\x00\x00\x00"# +happyActOffsets = HappyA# "\x00\x00\x0f\x00\xfb\x04\x48\x01\xdc\x04\x00\x00\x13\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x05\xb2\x01\x9f\x00\x0e\x05\xd1\x04\xfd\x04\x00\x00\x0b\x05\xc6\x04\x5e\x00\x44\x00\xc6\x04\x00\x00\x48\x01\xd8\x00\xc6\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x01\x00\x00\x0c\x05\xb2\x02\x16\x00\x0a\x05\x09\x05\x99\x02\x08\x05\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x04\x00\x00\xc8\x00\x0e\x00\xfe\x04\xad\x04\x00\x00\xa6\x04\x47\x01\xf6\x04\xf4\x04\xf3\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\xa8\x04\x00\x00\xc8\x00\x00\x00\xef\x04\x00\x00\xc8\x00\xc8\x00\xc8\x00\x86\x07\x48\x01\x00\x00\xdd\x01\x73\x00\xfa\x00\xa7\x04\xac\x00\xac\x00\xe7\x04\x2f\x00\xeb\x04\xb0\x04\x91\x04\x0a\x00\x73\x00\xa4\x04\x00\x00\x00\x00\xd0\x04\xd3\x04\xfb\xff\x00\x00\xd2\x04\xce\x04\xc3\x04\x85\x02\x80\x02\xc5\x04\x00\x00\x3e\x03\xcf\x04\xbb\x04\x4b\x02\x41\x02\xbf\x04\xac\x00\x7d\x01\xac\x00\x7d\x01\x7d\x01\x7d\x01\xac\x00\xbe\x04\xb1\x04\x09\x00\x32\x02\x00\x00\x72\x04\x00\x00\x00\x00\x6f\x04\x71\x04\x00\x00\x19\x02\x19\x02\x19\x02\x00\x00\x19\x02\x4e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x71\x04\x71\x04\xb4\x04\xac\x00\x00\x00\x00\x00\xe4\x01\xa9\x04\x6d\x04\x00\x00\x00\x00\xac\x00\xac\x00\x8c\x04\xac\x00\xfb\xff\xa1\x04\x95\x04\x00\x00\x00\x00\x00\x00\x73\x00\x9a\x04\xa0\x04\x9b\x04\x52\x04\x73\x00\x73\x00\x00\x00\x00\x00\x99\x04\xac\x00\x50\x04\xac\x00\xac\x00\x8b\x04\x87\x04\x86\x04\x77\x04\x00\x03\x70\x04\x00\x00\xdd\x00\x84\x04\x7f\x04\x73\x00\xac\x00\x7e\x04\x00\x00\x94\x00\x35\x04\x8c\x00\x35\x04\x35\x04\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x8c\x00\x35\x04\x35\x04\x8c\x00\xbb\x00\x35\x04\x8c\x00\x8c\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x67\x04\x00\x00\x00\x00\x48\x04\x37\x04\x00\x00\xfc\xff\x64\x04\x42\x04\x37\x00\x00\x00\x2c\x04\x5b\x04\x4a\x04\x07\x04\x07\x04\x07\x04\x07\x04\x27\x00\x00\x00\x00\x00\x51\x04\x00\x00\x03\x01\x20\x00\xfc\x03\x00\x00\x45\x04\x36\x04\x00\x00\x2e\x04\x2f\x04\x8c\x00\x8c\x00\x00\x00\x2d\x04\x1a\x04\x00\x00\x2a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x04\x00\x00\x11\x04\x17\x04\x16\x04\x00\x00\x00\x00\x4c\x01\x14\x04\x00\x00\x00\x00\x00\x00\xfd\x03\x00\x00\xb1\x03\x00\x00\xf0\x03\xb5\x00\xef\x03\x00\x00\x73\x00\x73\x00\x73\x00\xac\x00\x00\x00\x00\x00\x99\x03\x73\x00\x00\x00\xac\x00\xac\x00\xe2\x03\x00\x00\x00\x00\x00\x00\xcd\x03\x25\x01\xd9\x03\xc7\x03\x89\x00\x22\x02\xd7\x03\xd6\x03\xc5\x03\x00\x00\x73\x00\xac\x00\x00\x00\x8a\x03\x73\x00\x00\x00\x00\x00\xac\x00\xb5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xba\x03\x00\x00\xc3\x03\x00\x00\xbd\x03\x00\x00\xae\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb7\x03\x00\x00\x00\x00\x00\x00\x00\x00\x68\x03\x73\x00\x00\x00\x00\x00\x00\x00\x73\x00\xac\x00\xac\x00\x94\x03\xae\x03\xa2\x03\x00\x00\x00\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\x00\xcb\x01\x64\x03\x64\x03\x64\x03\x64\x03\xac\x00\x64\x03\xab\x03\x60\x03\x26\x00\x00\x00\x00\x00\xac\x00\x25\x00\x25\x00\x00\x00\x9c\x03\xac\x00\xac\x00\xa3\x03\x25\x00\x00\x00\x98\x03\x95\x01\x00\x00\x00\x00\x74\x01\x00\x00\x00\x00\x53\x03\x53\x03\x8b\x03\xfd\xff\x41\x03\x7a\x03\xfd\xff\x7d\x03\x3b\x03\x00\x00\x74\x03\x31\x03\x67\x03\x4e\x03\x00\x00\x22\x03\x00\x00\x1e\x03\x00\x00\x00\x00\xfd\xff\x00\x00\xac\x00\x52\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x03\x00\x00\x39\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x45\x03\x42\x03\x00\x00\x47\x03\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x18\x00\x00\x00\x00\x00\xac\x00\xac\x00\x00\x00\x00\x00\x00\x00\x25\x01\x00\x00\x00\x00\x00\x00\x00\x00\x33\x03\x34\x03\xe9\x02\xe9\x02\x6d\x03\xe9\x02\xe9\x02\xcb\x01\xac\x00\x00\x00\x00\x00\xf0\x00\xfd\xff\x4c\x03\x00\x00\x00\x00\x21\x03\xfd\xff\x26\x03\xcc\x02\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\x00\x00\x00\x00\x00\x00\x0f\x03\x12\x03\x00\x00\x00\x00\xac\x00\xc4\x02\x08\x03\x0a\x03\x00\x00\x00\x00\x07\x03\x09\x03\xfc\x02\xf7\x02\x00\x00\xaa\x02\xaa\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x02\x00\x00\xb6\x02\xf3\xff\xfd\xff\xfd\xff\xf1\x02\xef\x02\x00\x00\x00\x00\x00\x00"# happyGotoOffsets :: HappyAddr -happyGotoOffsets = HappyA# "\x58\x01\x3e\x01\xe3\x00\xf1\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x60\x03\xb6\x03\x32\x00\xeb\x02\x00\x00\x28\x03\x30\x00\xe4\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x06\x00\x00\x00\x00\x2a\x07\x34\x03\x00\x00\x00\x00\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x02\x04\x00\x00\x00\xa5\x02\xd9\x02\x00\x00\x00\x00\x28\x01\x00\x00\x00\x00\x00\x00\xd7\x02\xd6\x02\xcb\x02\xc6\x02\xb6\x02\xb4\x02\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x07\x00\x9a\x02\x25\x04\x00\x00\x00\x00\x1c\x03\xba\x06\xb1\x02\x09\x04\x9e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x03\xa4\x02\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x69\x04\x00\x00\x00\x00\x83\x06\x0c\x07\x67\x06\x1b\x07\x13\x03\xdf\x01\x4c\x06\x00\x00\x00\x00\x2d\x00\xf8\x01\x00\x00\x90\x01\x00\x00\x00\x00\x95\x02\x56\x01\x00\x00\x4d\x04\x4d\x04\x4d\x04\x00\x00\x4d\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x93\x02\x00\x00\x30\x06\x00\x00\x00\x00\xc2\x03\x00\x00\x75\x02\x00\x00\x00\x00\x46\x02\x15\x06\x00\x00\xf9\x05\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x00\x00\x00\x00\x00\x00\x30\x01\x10\x04\x12\x02\x00\x00\x00\x00\x00\x00\xde\x05\x26\x01\xc2\x05\xa7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x06\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x29\x01\xed\x03\x00\x00\x00\x00\x09\x02\x7e\x01\x77\x07\x2e\x01\x29\x07\x70\x07\x5e\x07\x57\x07\x55\x07\x51\x07\x70\x02\x08\x02\x4f\x07\x19\x07\x64\x02\x49\x07\x30\x07\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x98\x03\x00\x00\x00\x00\x00\x00\x00\x00\x51\x02\x00\x00\x00\x00\x60\x02\xf7\x01\x4f\x02\x45\x02\x2c\x02\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x02\x00\x00\x2e\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x84\x03\x52\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x01\x00\x00\x00\x00\x25\x02\x00\x00\x00\x00\x35\x01\x00\x00\x00\x00\x06\x01\xbc\x03\x8b\x05\x00\x00\x16\x02\x00\x00\xd1\x03\xf0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x70\x05\x00\x00\x0b\x02\xdb\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x77\x01\x00\x00\x00\x00\x00\x00\xab\x01\x39\x05\x1d\x05\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x01\x65\x01\x11\x00\x93\x01\x42\x01\xee\x00\xfd\x01\x02\x05\x62\x02\x00\x00\xa8\x01\x5c\x01\x00\x00\x00\x00\xe6\x04\x0e\x01\x9d\x02\x00\x00\x00\x00\xcb\x04\xaf\x04\x00\x00\xc0\x02\x00\x00\x00\x00\xd3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x00\xa7\x01\x00\x00\x61\x02\xc9\x00\x00\x00\x5e\x02\x00\x00\x74\x01\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x4c\x01\x00\x00\x00\x00\xde\x01\x00\x00\x94\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x03\x00\x00\x11\x00\x00\x00\x00\x00\xac\x02\x78\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\xf1\x00\xc8\x00\xd6\x00\xa8\x00\x11\x00\x5d\x04\x00\x00\x00\x00\x00\x00\xfe\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x1e\x00\x00\x00\xbf\x02\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x04\xaf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x02\x8a\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x87\x00\x00\x00\x00\x00\x00\x00\xa1\x01\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyGotoOffsets = HappyA# "\x89\x02\x76\x01\x20\x02\xf1\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x04\xb6\x03\x7c\x01\xee\x02\x00\x00\x28\x03\x46\x00\xeb\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x06\x00\x00\x00\x00\x69\x04\xa5\x04\x00\x00\x00\x00\x32\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x02\x04\x00\x00\x00\xce\x02\xd9\x02\x00\x00\x00\x00\xb4\x00\x00\x00\x00\x00\x00\x00\xd7\x02\xd6\x02\xcb\x02\xc8\x02\xc7\x02\xbf\x02\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x08\x00\x07\x00\xad\x02\x25\x04\x00\x00\x00\x00\x1c\x03\xba\x06\xb4\x02\x09\x04\x9e\x06\x00\x00\x00\x00\x00\x00\x00\x00\x89\x04\xb0\x02\x99\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xde\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x04\x00\x00\x00\x00\x83\x06\x0c\x07\x67\x06\x2a\x07\x1b\x07\x0e\x02\x4c\x06\x00\x00\x00\x00\x2d\x00\xf8\x01\x00\x00\xff\x03\x00\x00\x00\x00\xb5\x02\x90\x01\x00\x00\x2e\x01\x2e\x01\x2e\x01\x00\x00\x2e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\xb3\x02\x00\x00\x30\x06\x00\x00\x00\x00\xc2\x03\x00\x00\xb1\x02\x00\x00\x00\x00\x46\x02\x15\x06\x00\x00\xf9\x05\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x37\x03\x00\x00\x00\x00\x00\x00\x21\x01\x10\x04\x3f\x01\x00\x00\x00\x00\x00\x00\xde\x05\x85\x01\xc2\x05\xa7\x05\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\x01\xed\x03\x00\x00\x00\x00\x0b\x02\x80\x07\x7d\x07\x33\x01\x19\x03\x77\x07\x6a\x07\x67\x07\x64\x07\x61\x07\xa7\x02\x92\x01\x55\x07\x4e\x07\xa6\x02\x48\x07\x31\x07\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x04\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x01\x00\x00\x00\x00\xa5\x02\xfd\x01\x96\x02\x94\x02\xa3\x01\x00\x00\x00\x00\x00\x00\x00\x00\x06\x03\x00\x00\x6f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x07\x63\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x02\x00\x00\x00\x00\x2e\x02\x00\x00\x00\x00\x1f\x02\x00\x00\x00\x00\x29\x01\xbc\x03\xac\x01\x8b\x05\x00\x00\x00\x00\x27\x02\x5f\x03\x00\x00\xd1\x03\xf0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4b\x00\x70\x05\x00\x00\xf2\x01\x32\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd3\x00\x40\x03\x00\x00\x00\x00\x00\x00\xa3\x00\x39\x05\x1d\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x01\x09\x02\x11\x00\x8d\x00\x89\x01\xee\x00\xd9\x01\x02\x05\x62\x02\x00\x00\x1e\x00\x45\x01\x00\x00\x00\x00\xe6\x04\x0e\x01\x9d\x02\x00\x00\x00\x00\xcb\x04\xaf\x04\x00\x00\xc0\x02\x00\x00\x00\x00\x8c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x01\x83\x01\x00\x00\x75\x02\xb0\x00\x00\x00\x61\x02\x00\x00\x5b\x01\x00\x00\x00\x00\x1f\x00\x00\x00\x00\x00\x84\x01\x00\x00\x00\x00\x54\x01\x00\x00\x00\x00\x44\x01\x00\x00\x94\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9a\x03\x00\x00\x11\x00\x00\x00\x00\x00\xac\x02\x78\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x01\xe2\x00\xab\x00\xb2\x00\x74\x00\x11\x00\x5d\x04\x00\x00\x00\x00\x00\x00\x4d\x02\x71\x00\x00\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x41\x04\x92\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcf\x01\x9a\x01\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\xed\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# happyDefActions :: HappyAddr -happyDefActions = HappyA# "\xf5\xff\xd0\xff\x0d\xff\x00\x00\x00\x00\xfb\xff\x80\xff\x7b\xff\x7c\xff\x7a\xff\x6f\xff\x6b\xff\x61\xff\x5c\xff\x4e\xff\x4f\xff\x00\x00\x5a\xff\x7d\xff\x00\x00\x83\xff\x2a\xff\x00\x00\x00\x00\x79\xff\x23\xff\x2a\xff\x00\x00\x35\xff\x33\xff\x32\xff\x34\xff\x36\xff\x00\x00\x77\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xf9\xff\xf8\xff\xf7\xff\x00\x00\xdc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\xd0\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x0a\xff\x0b\xff\x00\x00\x0c\xff\x00\x00\x00\x00\x00\x00\x0e\xff\x4d\xff\x80\xff\x00\x00\x83\xff\x00\x00\x00\x00\x4d\xff\x00\x00\x8c\xff\x00\x00\x82\xff\x00\x00\x83\xff\x00\x00\x19\xff\x00\x00\x60\xff\x2c\xff\x29\xff\x00\x00\x2a\xff\x2b\xff\x25\xff\x22\xff\x00\x00\x00\x00\x4a\xff\x00\x00\x78\xff\x80\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x00\x00\x62\xff\x83\xff\x38\xff\x6e\xff\x00\x00\x83\xff\x55\xff\x5e\xff\x5f\xff\x5d\xff\x59\xff\x5c\xff\x4e\xff\x5b\xff\x56\xff\x74\xff\x7f\xff\x00\x00\x00\x00\x80\xff\x00\x00\x70\xff\x75\xff\x4a\xff\x00\x00\x00\x00\x7e\xff\x73\xff\x23\xff\x00\x00\x00\x00\x00\x00\x2a\xff\x00\x00\x47\xff\x44\xff\x42\xff\x43\xff\x2e\xff\x00\x00\x18\xff\x00\x00\x31\xff\x00\x00\x20\xff\x48\xff\x50\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x4c\xff\x00\x00\x00\x00\x8c\xff\x3c\xff\x3a\xff\x00\x00\x1c\xff\x00\x00\x00\x00\x4d\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\xff\x08\xff\x07\xff\x05\xff\x06\xff\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\xe7\xff\xd9\xff\x00\x00\x00\x00\xc8\xff\xf1\xff\xd5\xff\x00\x00\xca\xff\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\x04\xff\x8a\xff\x00\x00\xaf\xff\x88\xff\x00\x00\x00\x00\xbc\xff\x00\x00\x00\x00\xb3\xff\x88\xff\x00\x00\x00\x00\x00\x00\xb1\xff\xa1\xff\x00\x00\xbb\xff\x00\x00\xba\xff\xb2\xff\xb8\xff\xb9\xff\xb7\xff\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\xb4\xff\xbe\xff\x8c\xff\x00\x00\xbf\xff\xbd\xff\x10\xff\x00\x00\xc1\xff\x00\x00\x65\xff\x00\x00\x47\xff\x00\x00\x69\xff\x00\x00\x00\x00\x00\x00\x3e\xff\x00\x00\x63\xff\x4d\xff\x15\xff\x86\xff\x85\xff\x81\xff\x53\xff\x00\x00\x24\xff\x1f\xff\x00\x00\x00\x00\x8c\xff\x00\x00\x30\xff\x00\x00\x51\xff\x19\xff\x00\x00\x2d\xff\x00\x00\x00\x00\x28\xff\x58\xff\x00\x00\x00\x00\x25\xff\x21\xff\x6c\xff\x76\xff\x49\xff\x00\x00\x72\xff\x00\x00\x8b\xff\x00\x00\x37\xff\x8c\xff\x52\xff\x6d\xff\x27\xff\x71\xff\x57\xff\x00\x00\x45\xff\x1a\xff\x17\xff\x41\xff\x31\xff\x00\x00\x46\xff\x3f\xff\x40\xff\x20\xff\x00\x00\x00\x00\x00\x00\x14\xff\x00\x00\x4b\xff\x45\xff\x1d\xff\x3b\xff\x1b\xff\x68\xff\x67\xff\x10\xff\x9b\xff\xad\xff\x97\xff\xa6\xff\x91\xff\x00\x00\x00\x00\x99\xff\x00\x00\x95\xff\x8f\xff\xb5\xff\xb6\xff\x00\x00\x00\x00\x93\xff\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xd3\xff\x00\x00\xce\xff\xe3\xff\xe4\xff\xc8\xff\xdd\xff\xde\xff\xcb\xff\xda\xff\x00\x00\xd8\xff\x00\x00\x00\x00\xd8\xff\x00\x00\x00\x00\xe0\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\xc9\xff\x00\x00\xcd\xff\xcc\xff\x00\x00\x9c\xff\x00\x00\xc5\xff\xc4\xff\x89\xff\x92\xff\x87\xff\x9f\xff\x10\xff\x8e\xff\xa3\xff\x00\x00\x94\xff\xdc\xff\x98\xff\xaa\xff\x9e\xff\x90\xff\xa8\xff\xa5\xff\xa9\xff\x00\x00\x96\xff\x11\xff\x0f\xff\x2a\xff\x9a\xff\x00\x00\x3d\xff\x64\xff\x15\xff\x00\x00\x84\xff\x54\xff\x1e\xff\x39\xff\x2f\xff\x66\xff\x16\xff\x13\xff\xac\xff\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x8f\xff\xa0\xff\x00\x00\xc3\xff\xe2\xff\x00\x00\xd8\xff\x00\x00\xd4\xff\xc7\xff\x00\x00\xd8\xff\x00\x00\xef\xff\xd6\xff\xc6\xff\xe1\xff\xdf\xff\x00\x00\xd2\xff\xc2\xff\x8d\xff\x00\x00\x00\x00\xa7\xff\xa4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xa2\xff\x00\x00\x00\x00\xee\xff\x00\x00\xf2\xff\xef\xff\x00\x00\xd1\xff\x12\xff\xab\xff\xeb\xff\xf0\xff\xed\xff\xec\xff\xea\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xff\xe8\xff"# +happyDefActions = HappyA# "\xf5\xff\xd0\xff\x0a\xff\x00\x00\x00\x00\xfb\xff\x80\xff\x7b\xff\x7c\xff\x7a\xff\x6f\xff\x6b\xff\x61\xff\x5c\xff\x4e\xff\x4f\xff\x00\x00\x5a\xff\x7d\xff\x00\x00\x83\xff\x27\xff\x00\x00\x00\x00\x79\xff\x20\xff\x27\xff\x00\x00\x32\xff\x30\xff\x2f\xff\x31\xff\x33\xff\x00\x00\x77\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x00\x00\xfa\xff\xf9\xff\xf8\xff\xf7\xff\x00\x00\xdc\xff\x00\x00\x00\x00\x00\x00\x00\x00\xcf\xff\x00\x00\xd0\xff\xf4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x07\xff\x08\xff\x00\x00\x09\xff\x00\x00\x00\x00\x00\x00\x0b\xff\x4d\xff\x80\xff\x00\x00\x83\xff\x00\x00\x00\x00\x4d\xff\x00\x00\x8c\xff\x00\x00\x82\xff\x00\x00\x83\xff\x00\x00\x16\xff\x00\x00\x60\xff\x29\xff\x26\xff\x00\x00\x27\xff\x28\xff\x22\xff\x1f\xff\x00\x00\x00\x00\x4a\xff\x00\x00\x78\xff\x80\xff\x00\x00\x00\x00\x00\x00\x8c\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6a\xff\x00\x00\x00\x00\x62\xff\x83\xff\x35\xff\x6e\xff\x00\x00\x83\xff\x55\xff\x5e\xff\x5f\xff\x5d\xff\x59\xff\x5c\xff\x4e\xff\x5b\xff\x56\xff\x74\xff\x7f\xff\x00\x00\x00\x00\x80\xff\x00\x00\x70\xff\x75\xff\x4a\xff\x00\x00\x00\x00\x7e\xff\x73\xff\x20\xff\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\x47\xff\x44\xff\x42\xff\x43\xff\x2b\xff\x00\x00\x15\xff\x00\x00\x2e\xff\x00\x00\x1d\xff\x48\xff\x50\xff\x00\x00\x00\x00\x83\xff\x00\x00\x00\x00\x00\x00\x4c\xff\x00\x00\x00\x00\x8c\xff\x3a\xff\x37\xff\x00\x00\x19\xff\x00\x00\x00\x00\x4d\xff\x00\x00\xdb\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\xff\x05\xff\x04\xff\x02\xff\x03\xff\x00\x00\xe6\xff\xe5\xff\x00\x00\x00\x00\xe7\xff\xd9\xff\x00\x00\x00\x00\xc8\xff\xf1\xff\xd5\xff\x00\x00\xca\xff\x00\x00\xcb\xff\x00\x00\x00\x00\x00\x00\x01\xff\x8a\xff\x00\x00\xaf\xff\x88\xff\x00\x00\x00\x00\xbc\xff\x00\x00\x00\x00\xb3\xff\x88\xff\x00\x00\x00\x00\x00\x00\xb1\xff\xa1\xff\x00\x00\xbb\xff\x00\x00\xba\xff\xb2\xff\xb8\xff\xb9\xff\xb7\xff\x00\x00\xc0\xff\x00\x00\x00\x00\x00\x00\xb4\xff\xbe\xff\x8c\xff\x00\x00\xbf\xff\xbd\xff\x0d\xff\x00\x00\xc1\xff\x00\x00\x65\xff\x00\x00\x47\xff\x00\x00\x69\xff\x00\x00\x00\x00\x00\x00\x00\x00\x3c\xff\x3e\xff\x00\x00\x00\x00\x63\xff\x4d\xff\x12\xff\x86\xff\x85\xff\x81\xff\x53\xff\x00\x00\x21\xff\x1c\xff\x00\x00\x00\x00\x8c\xff\x00\x00\x2d\xff\x00\x00\x51\xff\x16\xff\x00\x00\x2a\xff\x00\x00\x00\x00\x25\xff\x58\xff\x00\x00\x00\x00\x22\xff\x1e\xff\x6c\xff\x76\xff\x49\xff\x00\x00\x72\xff\x00\x00\x8b\xff\x00\x00\x34\xff\x8c\xff\x52\xff\x6d\xff\x24\xff\x71\xff\x57\xff\x00\x00\x45\xff\x17\xff\x14\xff\x41\xff\x2e\xff\x00\x00\x46\xff\x3f\xff\x40\xff\x1d\xff\x00\x00\x00\x00\x00\x00\x11\xff\x00\x00\x4b\xff\x3b\xff\x45\xff\x1a\xff\x38\xff\x39\xff\x18\xff\x68\xff\x67\xff\x0d\xff\x9b\xff\xad\xff\x97\xff\xa6\xff\x91\xff\x00\x00\x00\x00\x99\xff\x00\x00\x95\xff\x8f\xff\xb5\xff\xb6\xff\x00\x00\x00\x00\x93\xff\xae\xff\x00\x00\x00\x00\x00\x00\x00\x00\x9d\xff\xd3\xff\x00\x00\xce\xff\xe3\xff\xe4\xff\xc8\xff\xdd\xff\xde\xff\xcb\xff\xda\xff\x00\x00\xd8\xff\x00\x00\x00\x00\xd8\xff\x00\x00\x00\x00\xe0\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xdc\xff\x00\x00\xc9\xff\x00\x00\xcd\xff\xcc\xff\x00\x00\x9c\xff\x00\x00\xc5\xff\xc4\xff\x89\xff\x92\xff\x87\xff\x9f\xff\x0d\xff\x8e\xff\xa3\xff\x00\x00\x94\xff\xdc\xff\x98\xff\xaa\xff\x9e\xff\x90\xff\xa8\xff\xa5\xff\xa9\xff\x00\x00\x96\xff\x0e\xff\x0c\xff\x27\xff\x9a\xff\x00\x00\x3d\xff\x64\xff\x12\xff\x00\x00\x84\xff\x54\xff\x1b\xff\x36\xff\x2c\xff\x66\xff\x13\xff\x10\xff\xac\xff\x00\x00\xa6\xff\x00\x00\x00\x00\x00\x00\x8f\xff\xa0\xff\x00\x00\xc3\xff\xe2\xff\x00\x00\xd8\xff\x00\x00\xd4\xff\xc7\xff\x00\x00\xd8\xff\x00\x00\xef\xff\xd6\xff\xc6\xff\xe1\xff\xdf\xff\x00\x00\xd2\xff\xc2\xff\x8d\xff\x00\x00\x00\x00\xa7\xff\xa4\xff\x00\x00\x00\x00\x00\x00\x00\x00\xb0\xff\xa2\xff\x00\x00\x00\x00\xee\xff\x00\x00\xf2\xff\xef\xff\x00\x00\xd1\xff\x0f\xff\xab\xff\xeb\xff\xf0\xff\xed\xff\xec\xff\xea\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe9\xff\xe8\xff"# happyCheck :: HappyAddr -happyCheck = HappyA# "\xff\xff\x00\x00\x05\x00\x02\x00\x00\x00\x09\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x1c\x00\x19\x00\x03\x00\x03\x00\x00\x00\x03\x00\x0f\x00\x05\x00\x00\x00\x00\x00\x0b\x00\x2e\x00\x0b\x00\x0b\x00\x0c\x00\x05\x00\x05\x00\x1a\x00\x10\x00\x11\x00\x12\x00\x0e\x00\x00\x00\x00\x00\x3b\x00\x11\x00\x00\x00\x13\x00\x00\x00\x0c\x00\x02\x00\x0d\x00\x0e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1d\x00\x1e\x00\x42\x00\x13\x00\x28\x00\x30\x00\x0b\x00\x47\x00\x0d\x00\x1d\x00\x4c\x00\x0b\x00\x4c\x00\x4c\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3e\x00\x02\x00\x41\x00\x42\x00\x52\x00\x53\x00\x07\x00\x52\x00\x53\x00\x0b\x00\x52\x00\x52\x00\x41\x00\x42\x00\x52\x00\x52\x00\x4e\x00\x52\x00\x03\x00\x4c\x00\x05\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x3d\x00\x4e\x00\x4c\x00\x4c\x00\x10\x00\x11\x00\x12\x00\x41\x00\x42\x00\x4c\x00\x4c\x00\x4e\x00\x4e\x00\x19\x00\x03\x00\x1b\x00\x05\x00\x4c\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x25\x00\x39\x00\x0b\x00\x28\x00\x12\x00\x4c\x00\x2b\x00\x00\x00\x40\x00\x2e\x00\x19\x00\x00\x00\x1b\x00\x1b\x00\x33\x00\x09\x00\x0c\x00\x0a\x00\x4a\x00\x4b\x00\x0b\x00\x0b\x00\x4c\x00\x03\x00\x06\x00\x05\x00\x3f\x00\x15\x00\x16\x00\x26\x00\x43\x00\x44\x00\x1a\x00\x0f\x00\x0e\x00\x2c\x00\x49\x00\x00\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x01\x00\x05\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x0b\x00\x03\x00\x2b\x00\x05\x00\x00\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x4c\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x19\x00\x4c\x00\x12\x00\x20\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x2a\x00\x4a\x00\x28\x00\x00\x00\x00\x00\x2b\x00\x4c\x00\x4c\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x00\x00\x19\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x39\x00\x02\x00\x00\x00\x43\x00\x44\x00\x00\x00\x07\x00\x40\x00\x2b\x00\x49\x00\x16\x00\x17\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x2b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x10\x00\x11\x00\x12\x00\x2b\x00\x00\x00\x11\x00\x22\x00\x13\x00\x0f\x00\x19\x00\x39\x00\x3a\x00\x3b\x00\x29\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3c\x00\x25\x00\x39\x00\x3f\x00\x28\x00\x48\x00\x49\x00\x2b\x00\x00\x00\x40\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x00\x00\x07\x00\x00\x00\x4a\x00\x4b\x00\x50\x00\x51\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x2c\x00\x2d\x00\x14\x00\x43\x00\x44\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x49\x00\x4f\x00\x07\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x48\x00\x49\x00\x22\x00\x2b\x00\x14\x00\x0b\x00\x2e\x00\x2f\x00\x00\x00\x29\x00\x10\x00\x11\x00\x12\x00\x2b\x00\x00\x00\x05\x00\x06\x00\x1d\x00\x1e\x00\x19\x00\x39\x00\x3a\x00\x3b\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3c\x00\x25\x00\x39\x00\x3f\x00\x28\x00\x48\x00\x49\x00\x2b\x00\x00\x00\x40\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x20\x00\x04\x00\x00\x00\x1a\x00\x03\x00\x2b\x00\x05\x00\x0a\x00\x2e\x00\x2f\x00\x2a\x00\x3f\x00\x0b\x00\x24\x00\x02\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x00\x00\x49\x00\x0a\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1b\x00\x1c\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x25\x00\x25\x00\x26\x00\x28\x00\x02\x00\x00\x00\x00\x00\x2b\x00\x06\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1c\x00\x39\x00\x3a\x00\x3b\x00\x2d\x00\x13\x00\x03\x00\x30\x00\x05\x00\x0f\x00\x26\x00\x08\x00\x2b\x00\x3f\x00\x0b\x00\x2e\x00\x2f\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x2d\x00\x49\x00\x1f\x00\x30\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x27\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x0b\x00\x52\x00\x0d\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x39\x00\x3a\x00\x3b\x00\x03\x00\x15\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x45\x00\x13\x00\x47\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x00\x00\x4f\x00\x00\x00\x28\x00\x16\x00\x17\x00\x30\x00\x31\x00\x32\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x0b\x00\x00\x00\x4f\x00\x1f\x00\x30\x00\x10\x00\x11\x00\x12\x00\x00\x00\x24\x00\x00\x00\x27\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x30\x00\x13\x00\x32\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x39\x00\x3a\x00\x3b\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x45\x00\x39\x00\x47\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x00\x00\x00\x13\x00\x11\x00\x28\x00\x13\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x1b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x00\x00\x25\x00\x09\x00\x43\x00\x44\x00\x0b\x00\x46\x00\x2b\x00\x08\x00\x09\x00\x10\x00\x11\x00\x12\x00\x00\x00\x15\x00\x16\x00\x01\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x0e\x00\x02\x00\x10\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x0d\x00\x19\x00\x00\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x21\x00\x00\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x28\x00\x00\x00\x08\x00\x09\x00\x2c\x00\x2d\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x00\x00\x18\x00\x00\x00\x28\x00\x0f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x23\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x3e\x00\x00\x00\x2c\x00\x2d\x00\x06\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x46\x00\x05\x00\x4c\x00\x4d\x00\x06\x00\x0a\x00\x04\x00\x01\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x04\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x0a\x00\x00\x00\x02\x00\x4c\x00\x0e\x00\x0f\x00\x04\x00\x4d\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x06\x00\x01\x00\x1a\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x06\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x06\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x00\x00\x07\x00\x2b\x00\x01\x00\x0a\x00\x2e\x00\x2f\x00\x4c\x00\x4c\x00\x4d\x00\x0c\x00\x39\x00\x07\x00\x4c\x00\x14\x00\x30\x00\x31\x00\x32\x00\x40\x00\x2b\x00\x03\x00\x0f\x00\x2e\x00\x2f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x04\x00\x3e\x00\x00\x00\x02\x00\x0e\x00\x39\x00\x3a\x00\x3b\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x2b\x00\x00\x00\x2e\x00\x2e\x00\x2f\x00\x48\x00\x49\x00\x3e\x00\x0f\x00\x39\x00\x0f\x00\x02\x00\x43\x00\x44\x00\x4b\x00\x46\x00\x40\x00\x4c\x00\x04\x00\x26\x00\x21\x00\x28\x00\x29\x00\x2a\x00\x2e\x00\x2c\x00\x4c\x00\x28\x00\x0c\x00\x0a\x00\x4c\x00\x2c\x00\x2d\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x02\x00\x3a\x00\x0b\x00\x3c\x00\x3d\x00\x3e\x00\x2b\x00\x40\x00\x4c\x00\x2e\x00\x2f\x00\x03\x00\x45\x00\x46\x00\x26\x00\x48\x00\x28\x00\x29\x00\x2a\x00\x00\x00\x2c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x21\x00\x0e\x00\x3a\x00\x10\x00\x3c\x00\x3d\x00\x3e\x00\x28\x00\x40\x00\x16\x00\x17\x00\x2c\x00\x2d\x00\x45\x00\x46\x00\x08\x00\x48\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x4c\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x04\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x1d\x00\x4c\x00\x3e\x00\x04\x00\x04\x00\x41\x00\x42\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x04\x00\x13\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x4c\x00\x3e\x00\x39\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x38\x00\x06\x00\x01\x00\x13\x00\x02\x00\x0f\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x0a\x00\x38\x00\x2e\x00\x02\x00\x4c\x00\x0c\x00\x04\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x3e\x00\x01\x00\x4c\x00\x01\x00\x07\x00\x43\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x02\x00\x3e\x00\x02\x00\x39\x00\x3a\x00\x3b\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x02\x00\x0a\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x01\x00\x4c\x00\x01\x00\x4c\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x09\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x04\x00\x39\x00\x24\x00\x03\x00\x43\x00\x07\x00\x0a\x00\x38\x00\x4c\x00\x38\x00\x0e\x00\x3e\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x04\x00\x01\x00\x10\x00\x04\x00\x43\x00\x01\x00\x01\x00\x4c\x00\x4c\x00\x01\x00\x04\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x24\x00\x04\x00\x3e\x00\x27\x00\x08\x00\x0e\x00\x03\x00\x43\x00\x4c\x00\x1a\x00\x0c\x00\x06\x00\x4c\x00\x31\x00\x32\x00\x4d\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x41\x00\x3e\x00\x0e\x00\x03\x00\x07\x00\x46\x00\x43\x00\x04\x00\x06\x00\x13\x00\x0c\x00\x0a\x00\x07\x00\x38\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x08\x00\x0a\x00\x3e\x00\x2e\x00\x01\x00\x01\x00\x4c\x00\x43\x00\x0a\x00\x4c\x00\x4c\x00\x02\x00\x02\x00\x01\x00\x52\x00\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x52\x00\x03\x00\x3e\x00\x03\x00\x03\x00\x03\x00\x4c\x00\x43\x00\x17\x00\x52\x00\x18\x00\x08\x00\x14\x00\x0e\x00\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2f\x00\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x00\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x3e\x00\x00\x00\xff\xff\xff\xff\xff\xff\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x21\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x28\x00\x36\x00\xff\xff\x1b\x00\x2c\x00\x2d\x00\xff\xff\x18\x00\x00\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x25\x00\x00\x00\xff\xff\x00\x00\xff\xff\x23\x00\x2b\x00\x00\x00\xff\xff\x00\x00\xff\xff\x3e\x00\x30\x00\x31\x00\x2c\x00\x2d\x00\x00\x00\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x18\x00\x3e\x00\x18\x00\xff\xff\xff\xff\x23\x00\x18\x00\xff\xff\x18\x00\x00\x00\xff\xff\x23\x00\x3e\x00\x23\x00\x2c\x00\x2d\x00\x00\x00\x23\x00\xff\xff\x23\x00\x2c\x00\x2d\x00\x2c\x00\x2d\x00\x21\x00\xff\xff\x2c\x00\x2d\x00\x2c\x00\x2d\x00\xff\xff\x28\x00\xff\xff\x18\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x18\x00\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2c\x00\x2d\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# +happyCheck = HappyA# "\xff\xff\x00\x00\x05\x00\x02\x00\x00\x00\x09\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x00\x00\x00\x00\x02\x00\x02\x00\x01\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x1b\x00\x00\x00\x0e\x00\x03\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x00\x00\x0c\x00\x2e\x00\x02\x00\x0b\x00\x0c\x00\x1c\x00\x0b\x00\x07\x00\x10\x00\x11\x00\x12\x00\x05\x00\x05\x00\x00\x00\x3b\x00\x13\x00\x0b\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x07\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x2d\x00\x1f\x00\x42\x00\x30\x00\x28\x00\x30\x00\x0b\x00\x47\x00\x0d\x00\x27\x00\x00\x00\x4c\x00\x4c\x00\x4c\x00\x2b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3e\x00\x0c\x00\x41\x00\x42\x00\x52\x00\x53\x00\x4c\x00\x52\x00\x53\x00\x4e\x00\x52\x00\x52\x00\x41\x00\x42\x00\x52\x00\x52\x00\x4e\x00\x52\x00\x03\x00\x4c\x00\x05\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x0b\x00\x3d\x00\x39\x00\x3a\x00\x3b\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4c\x00\x4c\x00\x00\x00\x0b\x00\x03\x00\x19\x00\x05\x00\x1b\x00\x48\x00\x49\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4b\x00\x25\x00\x39\x00\x12\x00\x28\x00\x41\x00\x42\x00\x2b\x00\x19\x00\x40\x00\x2e\x00\x00\x00\x1b\x00\x06\x00\x4c\x00\x33\x00\x4e\x00\x01\x00\x20\x00\x4a\x00\x4b\x00\x0b\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x2a\x00\x0b\x00\x17\x00\x43\x00\x44\x00\x00\x00\x01\x00\x02\x00\x03\x00\x49\x00\x09\x00\x1c\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x00\x00\x26\x00\x15\x00\x16\x00\x4c\x00\x0b\x00\x03\x00\x1a\x00\x05\x00\x07\x00\x10\x00\x11\x00\x12\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0e\x00\x19\x00\x19\x00\x0b\x00\x12\x00\x14\x00\x14\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x39\x00\x00\x00\x28\x00\x0d\x00\x0e\x00\x2b\x00\x4c\x00\x40\x00\x2e\x00\x2b\x00\x39\x00\x3a\x00\x3b\x00\x33\x00\x4c\x00\x26\x00\x00\x00\x4a\x00\x4b\x00\x1d\x00\x00\x00\x2c\x00\x45\x00\x4a\x00\x47\x00\x3f\x00\x0f\x00\x00\x00\x00\x00\x43\x00\x44\x00\x19\x00\x02\x00\x1b\x00\x17\x00\x49\x00\x06\x00\x1a\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x2b\x00\x05\x00\x13\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x03\x00\x4c\x00\x05\x00\x00\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x00\x00\x3c\x00\x22\x00\x2b\x00\x3f\x00\x19\x00\x4c\x00\x12\x00\x4e\x00\x29\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1b\x00\x25\x00\x0f\x00\x00\x00\x28\x00\x4f\x00\x4c\x00\x2b\x00\x1d\x00\x1e\x00\x2e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x33\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x02\x00\x03\x00\x3f\x00\x2c\x00\x2d\x00\x17\x00\x43\x00\x44\x00\x00\x00\x01\x00\x02\x00\x03\x00\x49\x00\x00\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x2b\x00\x05\x00\x02\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x0b\x00\x00\x00\x22\x00\x0a\x00\x13\x00\x10\x00\x11\x00\x12\x00\x00\x00\x29\x00\x3c\x00\x30\x00\x31\x00\x3f\x00\x19\x00\x39\x00\x3a\x00\x3b\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x3e\x00\x25\x00\x39\x00\x2a\x00\x28\x00\x48\x00\x49\x00\x2b\x00\x2d\x00\x40\x00\x2e\x00\x30\x00\x39\x00\x3a\x00\x3b\x00\x33\x00\x00\x00\x07\x00\x02\x00\x0b\x00\x03\x00\x0d\x00\x05\x00\x00\x00\x45\x00\x00\x00\x47\x00\x3f\x00\x0b\x00\x00\x00\x14\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x00\x00\x49\x00\x00\x00\x0f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x52\x00\x00\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x15\x00\x25\x00\x00\x00\x0a\x00\x28\x00\x1d\x00\x1e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x1f\x00\x04\x00\x2e\x00\x2f\x00\x03\x00\x13\x00\x05\x00\x0a\x00\x27\x00\x08\x00\x2b\x00\x3f\x00\x0b\x00\x2e\x00\x2f\x00\x43\x00\x44\x00\x10\x00\x11\x00\x12\x00\x30\x00\x49\x00\x32\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x08\x00\x09\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x16\x00\x17\x00\x03\x00\x39\x00\x3a\x00\x3b\x00\x12\x00\x39\x00\x3a\x00\x03\x00\x0b\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x48\x00\x49\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x11\x00\x00\x00\x13\x00\x00\x00\x28\x00\x00\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x16\x00\x17\x00\x08\x00\x09\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x4f\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x1a\x00\x0b\x00\x1a\x00\x04\x00\x00\x00\x30\x00\x10\x00\x11\x00\x12\x00\x0a\x00\x24\x00\x00\x00\x24\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x30\x00\x31\x00\x32\x00\x28\x00\x10\x00\x11\x00\x12\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x3e\x00\x00\x00\x03\x00\x0e\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x09\x00\x39\x00\x4f\x00\x28\x00\x10\x00\x11\x00\x12\x00\x11\x00\x40\x00\x13\x00\x00\x00\x00\x00\x15\x00\x16\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x50\x00\x51\x00\x11\x00\x28\x00\x13\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x1b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x3e\x00\x05\x00\x11\x00\x25\x00\x13\x00\x43\x00\x44\x00\x0b\x00\x46\x00\x2b\x00\x05\x00\x06\x00\x10\x00\x11\x00\x12\x00\x0e\x00\x00\x00\x10\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x00\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x03\x00\x01\x00\x05\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x0b\x00\x21\x00\x00\x00\x00\x00\x28\x00\x10\x00\x11\x00\x12\x00\x28\x00\x19\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x00\x00\x00\x00\x18\x00\x00\x00\x28\x00\x0d\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x23\x00\x0f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x3e\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x06\x00\x4c\x00\x06\x00\x4c\x00\x4d\x00\x05\x00\x04\x00\x46\x00\x01\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x03\x00\x04\x00\x05\x00\x00\x00\x01\x00\x02\x00\x03\x00\x0a\x00\x02\x00\x04\x00\x06\x00\x0e\x00\x0f\x00\x06\x00\x4d\x00\x12\x00\x01\x00\x14\x00\x06\x00\x16\x00\x17\x00\x4c\x00\x00\x00\x1a\x00\x1b\x00\x00\x00\x01\x00\x02\x00\x03\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x01\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0c\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x1b\x00\x4c\x00\x03\x00\x00\x00\x01\x00\x02\x00\x03\x00\x07\x00\x4c\x00\x4d\x00\x25\x00\x39\x00\x00\x00\x01\x00\x02\x00\x03\x00\x2b\x00\x07\x00\x40\x00\x2b\x00\x0a\x00\x02\x00\x2e\x00\x2f\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x04\x00\x0f\x00\x14\x00\x0e\x00\x02\x00\x39\x00\x3a\x00\x3b\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x00\x00\x48\x00\x49\x00\x3e\x00\x2e\x00\x39\x00\x0f\x00\x4c\x00\x43\x00\x44\x00\x4b\x00\x46\x00\x40\x00\x39\x00\x04\x00\x26\x00\x0c\x00\x28\x00\x29\x00\x2a\x00\x40\x00\x2c\x00\x39\x00\x3a\x00\x3b\x00\x2e\x00\x4c\x00\x0a\x00\x02\x00\x34\x00\x35\x00\x36\x00\x37\x00\x21\x00\x0b\x00\x3a\x00\x4c\x00\x3c\x00\x3d\x00\x3e\x00\x28\x00\x40\x00\x4c\x00\x03\x00\x2c\x00\x2d\x00\x45\x00\x46\x00\x26\x00\x48\x00\x28\x00\x29\x00\x2a\x00\x39\x00\x2c\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x08\x00\x34\x00\x35\x00\x36\x00\x37\x00\x02\x00\x04\x00\x3a\x00\x0c\x00\x3c\x00\x3d\x00\x3e\x00\x4c\x00\x40\x00\x03\x00\x01\x00\x4c\x00\x1d\x00\x45\x00\x46\x00\x4c\x00\x48\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x06\x00\x04\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x04\x00\x13\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x4c\x00\x01\x00\x3e\x00\x02\x00\x13\x00\x41\x00\x42\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0a\x00\x02\x00\x4c\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x04\x00\x3e\x00\x39\x00\x3a\x00\x41\x00\x42\x00\x43\x00\x38\x00\x2e\x00\x0c\x00\x4c\x00\x01\x00\x00\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x00\x00\x01\x00\x02\x00\x03\x00\x43\x00\x01\x00\x38\x00\x01\x00\x07\x00\x02\x00\x01\x00\x01\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x3e\x00\x02\x00\x2e\x00\x2f\x00\x02\x00\x43\x00\x02\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x3e\x00\x4c\x00\x39\x00\x3a\x00\x3b\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x01\x00\x4c\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x3e\x00\x09\x00\x39\x00\x24\x00\x03\x00\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x07\x00\x38\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x38\x00\x4c\x00\x04\x00\x04\x00\x43\x00\x01\x00\x16\x00\x10\x00\x01\x00\x00\x00\x04\x00\x3e\x00\x01\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x30\x00\x31\x00\x3e\x00\x4c\x00\x04\x00\x4c\x00\x04\x00\x43\x00\x01\x00\x08\x00\x0e\x00\x03\x00\x00\x00\x1a\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x0c\x00\x3e\x00\x2e\x00\x2f\x00\x4c\x00\x06\x00\x43\x00\x4d\x00\x4c\x00\x4c\x00\x0e\x00\x00\x00\x03\x00\x07\x00\x04\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x0c\x00\x3e\x00\x2e\x00\x2f\x00\x06\x00\x13\x00\x43\x00\x0a\x00\x07\x00\x0a\x00\x08\x00\x38\x00\x4c\x00\x2e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x2b\x00\x01\x00\x3e\x00\x2e\x00\x2f\x00\x01\x00\x0a\x00\x43\x00\x4c\x00\x4c\x00\x02\x00\x02\x00\x01\x00\x52\x00\x4c\x00\x00\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x52\x00\x0e\x00\x3e\x00\x10\x00\x03\x00\x03\x00\x03\x00\x43\x00\x03\x00\x16\x00\x17\x00\x4c\x00\x08\x00\x17\x00\x0e\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x24\x00\x52\x00\x3e\x00\x27\x00\x18\x00\x14\x00\x4c\x00\x43\x00\x2f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x31\x00\x32\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x41\x00\x3e\x00\xff\xff\xff\xff\xff\xff\x46\x00\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x43\x00\x00\x00\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\xff\xff\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x3e\x00\xff\xff\x00\x00\xff\xff\xff\xff\x43\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x21\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x28\x00\x36\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\xff\xff\x00\x00\x18\x00\x3e\x00\x30\x00\x31\x00\x32\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x00\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x30\x00\x31\x00\x32\x00\x2c\x00\x2d\x00\xff\xff\x18\x00\x00\x00\xff\xff\xff\xff\x00\x00\x30\x00\x31\x00\x00\x00\x3e\x00\xff\xff\x00\x00\x23\x00\xff\xff\x18\x00\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\x3e\x00\x2c\x00\x2d\x00\x28\x00\x00\x00\x23\x00\x18\x00\x2c\x00\x2d\x00\x18\x00\x00\x00\xff\xff\x18\x00\x00\x00\x2c\x00\x2d\x00\xff\xff\x23\x00\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\x23\x00\x21\x00\xff\xff\x2c\x00\x2d\x00\x18\x00\x2c\x00\x2d\x00\x28\x00\x2c\x00\x2d\x00\x18\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\x23\x00\x1b\x00\x1c\x00\xff\xff\xff\xff\xff\xff\x23\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x25\x00\x26\x00\xff\xff\xff\xff\x2c\x00\x2d\x00\x2b\x00\x26\x00\xff\xff\x28\x00\x29\x00\x2a\x00\xff\xff\x2c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\x35\x00\x36\x00\x37\x00\xff\xff\xff\xff\x3a\x00\xff\xff\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\x46\x00\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# happyTable :: HappyAddr -happyTable = HappyA# "\x00\x00\x41\x00\x70\x01\x42\x00\x41\x00\xcb\xff\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x5a\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x7c\x00\xb8\x00\xb6\x00\x56\x00\x5a\x00\x79\x00\x11\x01\xa4\x01\x6d\x01\x9c\x01\xb7\x00\xea\x01\xe5\x01\x17\x00\xb3\x01\x96\x01\x70\x01\x12\x01\x4f\x00\x19\x00\x1a\x00\x76\x00\x6d\x01\x79\x00\xeb\x01\xc6\x01\x5a\x00\x7f\x01\x63\x00\x66\x00\x64\x00\x46\x00\x47\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x9d\x01\xd1\x01\xde\x00\xeb\x01\x23\x00\xa1\x01\x7a\x01\xdf\x00\x7b\x01\x48\x00\x06\x00\xe9\x00\x06\x00\x06\x00\x5f\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x12\x00\x6a\x01\x5b\x00\x2a\x01\x43\x00\xe2\x00\x6b\x01\x43\x00\x44\x00\x0a\x01\xca\x00\xcb\x00\x5b\x00\x95\x00\xcc\x00\xce\x00\xa2\x01\xff\xff\x15\x00\x06\x00\x16\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x17\x00\x7a\x00\x2c\x00\x06\x00\x06\x00\x18\x00\x19\x00\x1a\x00\x5b\x00\x5c\x00\x06\x00\x06\x00\x2c\x00\x2c\x00\x1b\x00\xa2\x00\x5f\x00\xa3\x00\x06\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x7c\x01\x22\x00\x9d\x00\xe9\x00\x23\x00\xa4\x00\x06\x00\x24\x00\xe2\x01\x9e\x00\x6a\x00\x5e\x00\x51\x00\x5f\x00\xa5\x00\x26\x00\x70\x00\xe6\x01\xe3\x01\x9f\x00\x42\x01\xe9\x00\x0a\x01\x06\x00\xa2\x00\x48\x01\xa3\x00\x27\x00\x71\x00\x72\x00\xf0\x00\x28\x00\x29\x00\x73\x00\x11\x01\x14\x01\xf1\x00\x2a\x00\x92\x01\xa4\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\xd4\x01\x16\x00\xa5\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x17\x00\xa2\x00\xc2\x01\xa3\x00\xd8\x01\x18\x00\x19\x00\x1a\x00\x66\x01\x06\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x1b\x00\x06\x00\xa4\x00\x93\x01\x51\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\xcd\x01\x74\x00\x23\x00\x51\x00\xce\x01\x24\x00\x06\x00\x06\x00\x25\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\x72\x01\xb8\x00\x51\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\x9d\x00\xaa\x00\xfe\x00\x28\x00\x29\x00\xd0\x01\xab\x00\xa6\x01\x81\x01\x2a\x00\x85\x01\xdc\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x6d\x01\x16\x00\x36\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x18\x00\x19\x00\x1a\x00\x21\x01\xe3\x00\xc9\x01\xff\x00\x7f\x01\xb6\x01\x1b\x00\xb0\x00\xb1\x00\xb2\x00\x9b\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x01\x22\x00\x9d\x00\xae\x01\x23\x00\xb3\x00\x3f\x01\x24\x00\x51\x00\x9e\x00\x6a\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\xfe\x00\x37\x00\x20\x01\x9f\x00\xa0\x00\x2e\x00\x2f\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xed\x00\x90\x01\x32\x00\x28\x00\x29\x00\xb0\x00\xb1\x00\xb2\x00\x9c\x01\x2a\x00\xb9\x01\x31\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\xbd\x01\x16\x00\xb3\x00\x53\x01\xff\x00\x52\x00\x32\x00\x17\x00\x53\x00\x19\x01\x51\x00\x00\x01\x18\x00\x19\x00\x1a\x00\x21\x01\x92\x01\x35\x00\x36\x00\x9d\x01\x9e\x01\x1b\x00\xb0\x00\xb1\x00\xb2\x00\x06\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x01\x22\x00\x9d\x00\x23\x01\x23\x00\xb3\x00\x0d\x01\x24\x00\xc4\x01\x12\x01\x25\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\x93\x01\x88\x00\x02\x01\x07\x01\x15\x00\x52\x00\x4e\x00\x89\x00\x53\x00\x37\x01\x94\x01\x27\x00\x17\x00\xa4\x01\x5b\x01\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x39\x01\x2a\x00\x89\x00\x9f\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xfb\x00\x03\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x6d\x01\x22\x00\x04\x01\x05\x01\x23\x00\xcb\x01\x84\x01\xf2\x00\xfd\x00\xcc\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x03\x01\xb0\x00\xb1\x00\xad\x01\x34\x00\xec\x01\x15\x00\x35\x00\x4e\x00\xbf\x01\xa0\x01\x26\xff\x52\x00\x27\x00\x17\x00\x53\x00\x6b\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x34\x00\x2a\x00\xf3\x00\x35\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x96\x01\xa4\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x7a\x01\xf6\xff\x7b\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x6d\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb0\x00\xb1\x00\x1c\x01\x79\x00\x86\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x1d\x01\xbc\x01\xac\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x72\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x9a\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xf2\x00\x06\x01\xa5\x01\x40\x01\x23\x00\x73\x01\xdc\x00\x0b\x00\x0c\x00\x7e\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x50\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x12\x00\x4e\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x07\x01\x17\x00\x56\x01\x58\x01\xf3\x00\x77\x00\x18\x00\x19\x00\x1a\x00\x6d\x01\x08\x01\x68\x01\xf4\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x88\x01\x6e\x01\x89\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x70\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb0\x00\xb1\x00\x1c\x01\x15\x00\x71\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x1d\x01\x9d\x00\x1e\x01\x23\x00\x18\x00\x19\x00\x1a\x00\x6d\x01\x6b\x01\x74\x01\x6d\x01\x51\x00\x77\x01\xea\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x7e\x01\xf5\x00\x7f\x01\x82\x01\x23\x00\x7f\x01\x30\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x2e\x01\x11\x00\xfb\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\xd9\x01\x98\x01\x70\x00\x13\x00\x60\x00\x17\x00\x2f\x01\xfd\x00\xda\x01\xe4\x01\x4f\x00\x19\x00\x1a\x00\x35\x01\x71\x00\x72\x00\x38\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x4d\x00\xe3\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x91\x00\xa5\x00\x92\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xae\x00\x39\x00\xb8\x00\xcf\x00\x15\x00\xd0\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xeb\x00\xd9\x01\xe3\x00\x23\x00\x18\x00\x19\x00\x1a\x00\x8f\x01\xd1\x00\xda\x01\xdb\x01\xed\x00\xee\x00\xd2\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xd3\x00\xd4\x00\xe4\x00\x38\x00\x23\x00\x48\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4c\x01\x11\x00\x8a\x01\x59\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x12\x00\x62\x00\xe6\x00\xe7\x00\xee\x01\x13\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x47\x01\xe9\x01\xe8\x01\x4d\x01\xb1\x01\xef\x01\x89\x00\xdd\x01\xde\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xa2\x00\x88\x00\xa3\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x89\x00\x51\x00\xdf\x01\x06\x00\x14\x01\x47\xff\xe2\x01\x2b\x00\xa4\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xe0\x01\xd7\x01\x47\xff\xa5\x00\xaf\x00\x9a\x00\x9b\x00\x9c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4c\x01\x11\x00\xe1\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xd8\x01\x12\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x13\x00\x51\x00\x2c\xff\x52\x00\xc6\x01\x2c\xff\x53\x00\xa6\x00\x06\x00\x4d\x01\x4e\x01\xc8\x01\x9d\x00\xd3\x01\x06\x00\x77\x00\x0b\x00\x0c\x00\x7f\x00\x12\x01\x52\x00\xd4\x01\x11\x01\x53\x00\x6b\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\xc9\x01\x12\x00\xe3\x00\x5b\x01\xb6\x01\xb0\x00\xb1\x00\xb2\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x5f\x00\x11\x00\x52\x00\x6a\x00\xb8\x01\x53\x00\x54\x00\xb3\x00\xb4\x00\x12\x00\xb5\x01\x9d\x00\xb9\x01\xbb\x01\x13\x00\x60\x00\xbf\x01\x61\x00\x27\x01\x06\x00\xd0\x01\xba\x00\xeb\x00\xbb\x00\xbc\x00\xbd\x00\xc1\x01\xbe\x00\x06\x00\x62\x01\xc2\x01\xc4\x01\x06\x00\xed\x00\xee\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xe3\x00\x7e\x01\xc3\x00\x81\x01\xc4\x00\xc5\x00\xc6\x00\x52\x00\xc7\x00\x06\x00\x53\x00\x6b\x00\x84\x01\xc8\x00\xc9\x00\xba\x00\xca\x00\xbb\x00\xbc\x00\xbd\x00\xd8\x00\xbe\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x8c\x01\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xeb\x00\xd9\x00\xc3\x00\xda\x00\xc4\x00\xc5\x00\xc6\x00\x63\x01\xc7\x00\xdb\x00\xdc\x00\xed\x00\xee\x00\xc8\x00\xc9\x00\x8a\x01\xca\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8f\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x06\x00\x98\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\xa8\x01\xa9\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xaa\x01\x06\x00\x12\x00\xb0\x01\x3b\x01\x5b\x00\xb3\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3c\x01\x44\x01\x3e\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x06\x00\x12\x00\xb0\x00\x52\x01\x5b\x00\x68\x00\x13\x00\x32\x01\x3d\x01\x45\x01\x49\x01\x46\x01\x11\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x4f\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x12\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x13\x00\x4a\x01\x8f\x00\x4b\x01\x4c\x01\x06\x00\x56\x01\x55\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x0b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x58\x01\x12\x00\x5a\x01\x06\x00\x5c\x01\x5e\x01\x13\x00\x5d\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x5f\x01\x61\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xad\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x60\x01\x12\x00\x62\x01\xb0\x00\xb1\x00\x1f\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x65\x01\x66\x01\x67\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xb7\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4b\x00\x12\x00\x68\x01\x06\x00\x6d\x01\x06\x00\x13\x00\x8a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x76\x01\x77\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xd5\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x74\x00\x12\x00\x88\x00\x79\x01\x7d\x01\xd8\x00\x13\x00\xe2\x00\x89\x00\xe0\x00\x06\x00\xe1\x00\x8a\x00\x12\x00\x0b\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xcc\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\x0f\x01\x10\x01\x92\x00\x15\x01\x13\x00\x16\x01\x17\x01\x06\x00\x06\x00\x26\x01\x1c\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3b\x00\x25\x01\x12\x00\x3c\x00\x27\x01\x29\x01\x2a\x01\x13\x00\x06\x00\x2d\x01\x32\x01\x35\x01\x06\x00\x3d\x00\x3e\x00\x2b\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xbb\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x3f\x00\x12\x00\x76\x00\x7d\x00\x8c\x00\x40\x00\x13\x00\x87\x00\x8d\x00\x93\x00\x8e\x00\x94\x00\x95\x00\x99\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x8c\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x97\x00\x98\x00\x12\x00\xa8\x00\xa9\x00\xce\x00\x06\x00\x13\x00\x89\x00\x06\x00\x06\x00\xd6\x00\xd7\x00\x41\x00\xff\xff\x06\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x8d\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\x4a\x00\x12\x00\x50\x00\x51\x00\x58\x00\x06\x00\x13\x00\x6e\x00\xff\xff\x6f\x00\x6d\x00\x77\x00\x76\x00\x06\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x91\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x31\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x99\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xaa\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xab\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x3e\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x41\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x51\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x17\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x18\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1a\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x2b\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x2d\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x33\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x7d\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x81\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x85\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xab\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x58\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\xe3\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x00\x00\x51\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x12\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xeb\x00\x00\x00\x0b\x00\x0c\x00\x82\x00\x83\x00\x84\x00\xec\x00\x11\x00\x00\x00\xfb\x00\xed\x00\xee\x00\x00\x00\xe4\x00\xe3\x00\x12\x00\x0b\x00\x0c\x00\x80\x00\xfc\x00\xe3\x00\x00\x00\xe3\x00\x00\x00\xe5\x00\xfd\x00\xe3\x00\x00\x00\xe3\x00\x00\x00\x12\x00\x0b\x00\x56\x00\xe6\x00\xe7\x00\xe3\x00\x00\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x74\x00\xe4\x00\x12\x00\xe4\x00\x00\x00\x00\x00\xe9\x00\xe4\x00\x00\x00\xe4\x00\xe3\x00\x00\x00\xf1\x00\x12\x00\xf6\x00\xe6\x00\xe7\x00\xe3\x00\xf7\x00\x00\x00\xf8\x00\xe6\x00\xe7\x00\xe6\x00\xe7\x00\xeb\x00\x00\x00\xe6\x00\xe7\x00\xe6\x00\xe7\x00\x00\x00\xf9\x00\x00\x00\xe4\x00\x00\x00\xed\x00\xee\x00\x00\x00\x00\x00\x00\x00\xe4\x00\x00\x00\x00\x00\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\xe6\x00\xe7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x00\xe7\x00\xba\x00\x00\x00\xbb\x00\xbc\x00\xbd\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x00\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\xc5\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# +happyTable = HappyA# "\x00\x00\x41\x00\x75\x01\x42\x00\x41\x00\xcb\xff\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x41\x00\x42\x00\x42\x00\x41\x00\x5a\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x5f\x00\xdd\x01\x76\x00\x56\x00\x5a\x00\x79\x00\x72\x01\xa9\x01\xf2\x00\x51\x00\xeb\x01\xef\x01\x6f\x01\x17\x00\xb8\x01\x7c\x00\xea\x01\x70\x01\x4f\x00\x19\x00\x1a\x00\x9b\x01\x75\x01\x79\x00\xf0\x01\xf0\x01\xe9\x00\xaa\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\xab\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x34\x00\xf3\x00\xde\x00\x35\x00\x23\x00\xa6\x01\x7f\x01\xdf\x00\x80\x01\x9b\x01\x5a\x00\x06\x00\x06\x00\x06\x00\xc7\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x12\x00\x66\x00\x5b\x00\x2d\x01\x43\x00\xe2\x00\x06\x00\x43\x00\x44\x00\x2c\x00\xca\x00\xcb\x00\x5b\x00\x95\x00\xcc\x00\xce\x00\xa7\x01\xff\xff\x15\x00\x06\x00\x16\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x17\x00\x7a\x00\xb0\x00\xb1\x00\xb2\x00\x18\x00\x19\x00\x1a\x00\x06\x00\x06\x00\x06\x00\x97\x01\x0a\x01\xa2\x00\x1b\x00\xa3\x00\x5f\x00\xb3\x00\x42\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x81\x01\x22\x00\x9d\x00\xa4\x00\x23\x00\x5b\x00\x5c\x00\x24\x00\xb8\x00\x9e\x00\x6a\x00\xa4\x01\xa5\x00\x4b\x01\x06\x00\x26\x00\x2c\x00\xd9\x01\x98\x01\x9f\x00\x45\x01\xe9\x00\x11\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xd2\x01\x0a\x01\x12\x01\x28\x00\x29\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x2a\x00\x70\x00\x03\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x51\x00\x16\x00\xd3\x01\xa5\x01\x71\x00\x72\x00\x06\x00\x17\x00\xa2\x00\x73\x00\xa3\x00\x37\x00\x18\x00\x19\x00\x1a\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x16\x01\xb8\x00\x1b\x00\xe9\x00\xa4\x00\x32\x00\x17\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\x9d\x00\x51\x00\x23\x00\x46\x00\x47\x00\x24\x00\x06\x00\x9e\x00\x25\x00\x86\x01\xb0\x00\xb1\x00\x1f\x01\x26\x00\x06\x00\xf0\x00\xd5\x01\x9f\x00\xa0\x00\x48\x00\x51\x00\xf1\x00\x20\x01\x74\x00\xb1\x01\x27\x00\x11\x01\x72\x01\xfe\x00\x28\x00\x29\x00\x5e\x00\xd0\x01\x5f\x00\x12\x01\x2a\x00\xd1\x01\x13\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x24\x01\x16\x00\xf1\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\xa2\x00\x06\x00\xa3\x00\xa1\x01\x18\x00\x19\x00\x1a\x00\x6b\x01\xe3\x00\x25\x01\xff\x00\x39\x01\xb3\x01\x1b\x00\x06\x00\xa4\x00\x2c\x00\xa0\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xa5\x00\x22\x00\xbb\x01\x23\x01\x23\x00\xbe\x01\x06\x00\x24\x00\xa2\x01\xd6\x01\x6a\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x26\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xfe\x00\x11\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\x27\x00\xed\x00\x95\x01\x12\x01\x28\x00\x29\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x2a\x00\x72\x01\x97\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\x24\x01\x16\x00\x60\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x17\x00\xc2\x01\xff\x00\x89\x00\xc1\x01\x18\x00\x19\x00\x1a\x00\xc9\x01\x00\x01\x25\x01\x0b\x00\x74\x00\x26\x01\x1b\x00\xb0\x00\xb1\x00\xb2\x00\x98\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x12\x00\x22\x00\x9d\x00\x99\x01\x23\x00\xb3\x00\x58\x01\x24\x00\x34\x00\xab\x01\x25\x00\x35\x00\xb0\x00\xb1\x00\x1f\x01\x26\x00\x63\x00\x31\x00\x64\x00\x7f\x01\x15\x00\x80\x01\x4e\x00\x89\x01\x20\x01\x51\x00\x21\x01\x27\x00\x17\x00\xa1\x01\x32\x00\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x51\x00\x2a\x00\xf2\x00\xc4\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xf6\xff\xe7\x01\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x8b\x01\x22\x00\x72\x01\xe8\x01\x23\x00\xa2\x01\xa3\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x52\x00\xf3\x00\x88\x00\x53\x00\x1c\x01\x15\x00\x73\x01\x4e\x00\x89\x00\xf4\x00\x23\xff\x52\x00\x27\x00\x17\x00\x53\x00\x3a\x01\x28\x00\x29\x00\x18\x00\x19\x00\x1a\x00\x8d\x01\x2a\x00\x8e\x01\x77\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\xde\x01\xa9\x01\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xdf\x01\xe9\x01\x9f\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x8a\x01\xdc\x00\xb6\x00\xb0\x00\xb1\x00\xb2\x00\x7c\x01\xb0\x00\x56\x01\x79\x00\xb7\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xb3\x00\x0d\x01\x43\x01\x23\x00\x4f\x00\x19\x00\x1a\x00\x72\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x77\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xcb\x01\x06\x01\x84\x01\x06\x01\x23\x00\xde\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x78\x01\xdc\x00\xdf\x01\xe0\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x15\x00\xaa\x01\x4e\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x07\x01\x17\x00\x07\x01\x4a\x01\x54\x01\x77\x00\x18\x00\x19\x00\x1a\x00\x89\x00\xa9\x01\x5b\x01\x08\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x0b\x00\x0c\x00\x7e\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x88\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x89\x00\x12\x00\x72\x01\x15\x00\x8a\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x70\x00\x9d\x00\x5d\x01\x23\x00\x18\x00\x19\x00\x1a\x00\xce\x01\x14\x01\x84\x01\x72\x01\x51\x00\x71\x00\x72\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x6d\x01\x2e\x00\x2f\x00\x83\x01\x23\x00\x84\x01\x72\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x31\x01\x11\x00\xfb\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x79\x00\x12\x00\x4e\x00\x87\x01\x9d\x01\x84\x01\x13\x00\x60\x00\x17\x00\x32\x01\xfd\x00\x35\x00\x36\x00\x4f\x00\x19\x00\x1a\x00\x91\x00\x75\x01\x92\x00\x76\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x4d\x00\xe3\x00\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\x79\x01\xea\x00\xf5\x00\x23\x00\x4f\x00\x19\x00\x1a\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x33\x01\xa5\x00\x38\x01\xae\x00\x15\x00\x3b\x01\x4e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x17\x00\xeb\x00\xcf\x00\xe3\x00\x23\x00\x18\x00\x19\x00\x1a\x00\x94\x01\xb8\x00\xd0\x00\xd1\x00\xed\x00\xee\x00\xd2\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\xd3\x00\xd4\x00\xe4\x00\x38\x00\x23\x00\x39\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4f\x01\x11\x00\x8f\x01\x48\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x12\x00\x59\x00\xe6\x00\xe7\x00\x62\x00\x13\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xf3\x01\x06\x00\xf4\x01\x50\x01\xb6\x01\xed\x01\xe2\x01\xee\x01\xe3\x01\x06\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xa2\x00\x88\x00\xa3\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x89\x00\xe4\x01\xe7\x01\xe5\x01\x16\x01\x47\xff\xe6\x01\x2b\x00\xa4\x00\xdc\x01\x17\x01\xdd\x01\x47\xff\x47\xff\x06\x00\x51\x00\x47\xff\xa5\x00\xaf\x00\x9a\x00\x9b\x00\x9c\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x4f\x01\x11\x00\xcb\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xcd\x01\x12\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x13\x00\xfb\x00\x06\x00\xd9\x01\x99\x00\x9a\x00\x9b\x00\x9c\x00\xd8\x01\x50\x01\x51\x01\xfc\x00\x9d\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\xfd\x00\x29\xff\x70\x01\x52\x00\x29\xff\x60\x01\x53\x00\x6b\x00\x06\x00\x2b\x00\x2c\x00\x2d\x00\xce\x01\xba\x01\x77\x00\xbb\x01\xc0\x01\xb0\x00\xb1\x00\xb2\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x5f\x00\x11\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\xe3\x00\xb3\x00\xb4\x00\x12\x00\xbd\x01\x9d\x00\xbe\x01\x06\x00\x13\x00\x60\x00\xc4\x01\x61\x00\x14\x01\x9d\x00\xd5\x01\xba\x00\xc7\x01\xbb\x00\xbc\x00\xbd\x00\x2a\x01\xbe\x00\xb0\x00\xb1\x00\xb2\x01\xc6\x01\x06\x00\xc9\x01\x83\x01\xbf\x00\xc0\x00\xc1\x00\xc2\x00\xeb\x00\x86\x01\xc3\x00\x06\x00\xc4\x00\xc5\x00\xc6\x00\x67\x01\xc7\x00\x06\x00\x89\x01\xed\x00\xee\x00\xc8\x00\xc9\x00\xba\x00\xca\x00\xbb\x00\xbc\x00\xbd\x00\x53\x01\xbe\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x8f\x01\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x91\x01\xad\x01\xc3\x00\x94\x01\xc4\x00\xc5\x00\xc6\x00\x06\x00\xc7\x00\x9d\x01\xae\x01\x06\x00\xaf\x01\xc8\x00\xc9\x00\x06\x00\xca\x00\x66\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xb5\x01\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x40\x01\x3e\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3f\x01\x41\x01\x47\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x06\x00\x48\x01\x12\x00\x49\x01\x4c\x01\x5b\x00\xb8\x01\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4d\x01\x4f\x01\x06\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x5a\x01\x12\x00\xb0\x00\x57\x01\x5b\x00\x68\x00\x13\x00\x35\x01\x4e\x01\x5b\x01\x06\x00\x5d\x01\x3c\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x52\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x8e\x00\x12\x00\x0c\x01\x9a\x00\x9b\x00\x9c\x00\x13\x00\x5f\x01\x8f\x00\x61\x01\x63\x01\x62\x01\x64\x01\x66\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\x0b\x01\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x12\x00\x65\x01\x53\x00\x6b\x00\x67\x01\x13\x00\x6a\x01\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x6c\x01\x6b\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xad\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x6d\x01\x12\x00\x06\x00\xb0\x00\xb1\x00\x22\x01\x13\x00\x8a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x72\x01\x06\x00\x7b\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xac\x00\x11\x00\xb7\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x4b\x00\x12\x00\x7c\x01\x7e\x01\x82\x01\xd8\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xe2\x00\xe0\x00\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xda\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\xe1\x00\x06\x00\x0b\x01\x0f\x01\x13\x00\x10\x01\x14\x01\x92\x00\x19\x01\x51\x00\x18\x01\x12\x00\x1a\x01\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xd1\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x56\x00\x12\x00\x06\x00\x1f\x01\x06\x00\x28\x01\x13\x00\x29\x01\x2a\x01\x2c\x01\x2d\x01\x51\x00\x30\x01\x12\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb5\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x35\x01\x12\x00\x53\x00\xa6\x00\x06\x00\x38\x01\x13\x00\x2b\x00\x06\x00\x06\x00\x76\x00\x6a\x00\x7d\x00\x8c\x00\x87\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xc0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\x8e\x00\x12\x00\x53\x00\x54\x00\x8d\x00\x93\x00\x13\x00\x94\x00\x95\x00\x98\x00\x97\x00\x99\x00\x06\x00\xa8\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x91\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x52\x00\xa9\x00\x12\x00\x53\x00\x6b\x00\xce\x00\x89\x00\x13\x00\x06\x00\x06\x00\xd6\x00\xd7\x00\x41\x00\xff\xff\x06\x00\xd8\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x92\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xff\xff\xd9\x00\x12\x00\xda\x00\x4a\x00\x50\x00\x51\x00\x13\x00\x58\x00\xdb\x00\xdc\x00\x06\x00\x6d\x00\x6e\x00\x76\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x96\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x3b\x00\xff\xff\x12\x00\x3c\x00\x6f\x00\x77\x00\x06\x00\x13\x00\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x3e\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x9e\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x3f\x00\x12\x00\x00\x00\x00\x00\x00\x00\x40\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xaf\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xb0\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x41\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x44\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x55\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1a\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1b\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x1d\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x2e\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x30\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x36\x01\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x7d\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x81\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x85\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\xab\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x67\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x58\x00\x11\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\xe3\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x00\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x00\x00\x00\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x12\x00\x00\x00\xe3\x00\x00\x00\x00\x00\x13\x00\x4a\x00\x07\x00\x08\x00\x09\x00\x0a\x00\xeb\x00\x00\x00\x0b\x00\x0c\x00\x82\x00\x83\x00\x84\x00\x68\x01\x11\x00\x00\x00\x00\x00\xed\x00\xee\x00\x00\x00\xe3\x00\xe4\x00\x12\x00\x0b\x00\x0c\x00\x7f\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x12\x00\x0b\x00\x0c\x00\x80\x00\xe6\x00\xe7\x00\x00\x00\xe4\x00\xe3\x00\x00\x00\x00\x00\xe3\x00\x0b\x00\x74\x00\xe3\x00\x12\x00\x00\x00\xe3\x00\xe9\x00\x00\x00\xe4\x00\x00\x00\xeb\x00\x00\x00\x00\x00\x00\x00\x12\x00\xe6\x00\xe7\x00\xec\x00\xe3\x00\xf1\x00\xe4\x00\xed\x00\xee\x00\xe4\x00\xe3\x00\x00\x00\xe4\x00\x02\x01\xe6\x00\xe7\x00\x00\x00\xf6\x00\x00\x00\x00\x00\xf7\x00\x00\x00\x00\x00\xf8\x00\xeb\x00\x00\x00\xe6\x00\xe7\x00\xe4\x00\xe6\x00\xe7\x00\xf9\x00\xe6\x00\xe7\x00\xe4\x00\xed\x00\xee\x00\x00\x00\x00\x00\xfa\x00\xfb\x00\x03\x01\x00\x00\x00\x00\x00\x00\x01\x01\x00\x00\x00\x00\xe6\x00\xe7\x00\x04\x01\x05\x01\x00\x00\x00\x00\xe6\x00\xe7\x00\xfd\x00\xba\x00\x00\x00\xbb\x00\xbc\x00\xbd\x00\x00\x00\xbe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbf\x00\xc0\x00\xc1\x00\xc2\x00\x00\x00\x00\x00\xc3\x00\x00\x00\xc4\x00\xc5\x00\xc6\x00\x00\x00\xc7\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc9\x00\x00\x00\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"# -happyReduceArr = array (4, 251) [ +happyReduceArr = array (4, 254) [ (4 , happyReduce_4), (5 , happyReduce_5), (6 , happyReduce_6), @@ -788,7 +788,10 @@ happyReduceArr = array (4, 251) [ (248 , happyReduce_248), (249 , happyReduce_249), (250 , happyReduce_250), - (251 , happyReduce_251) + (251 , happyReduce_251), + (252 , happyReduce_252), + (253 , happyReduce_253), + (254 , happyReduce_254) ] happy_n_terms = 83 :: Int @@ -2527,15 +2530,33 @@ happyReduction_194 (happy_x_4 `HappyStk` (PQC happy_var_1 happy_var_3 happy_var_4 ) `HappyStk` happyRest}}} -happyReduce_195 = happySpecReduce_1 58# happyReduction_195 -happyReduction_195 happy_x_1 +happyReduce_195 = happySpecReduce_2 58# happyReduction_195 +happyReduction_195 happy_x_2 + happy_x_1 + = case happyOut64 happy_x_1 of { happy_var_1 -> + happyIn65 + (PRep happy_var_1 + )} + +happyReduce_196 = happySpecReduce_3 58# happyReduction_196 +happyReduction_196 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut7 happy_x_1 of { happy_var_1 -> + case happyOut64 happy_x_3 of { happy_var_3 -> + happyIn65 + (PAs happy_var_1 happy_var_3 + )}} + +happyReduce_197 = happySpecReduce_1 58# happyReduction_197 +happyReduction_197 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> happyIn65 (happy_var_1 )} -happyReduce_196 = happySpecReduce_3 59# happyReduction_196 -happyReduction_196 happy_x_3 +happyReduce_198 = happySpecReduce_3 59# happyReduction_198 +happyReduction_198 happy_x_3 happy_x_2 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> @@ -2544,15 +2565,25 @@ happyReduction_196 happy_x_3 (PDisj happy_var_1 happy_var_3 )}} -happyReduce_197 = happySpecReduce_1 59# happyReduction_197 -happyReduction_197 happy_x_1 +happyReduce_199 = happySpecReduce_3 59# happyReduction_199 +happyReduction_199 happy_x_3 + happy_x_2 + happy_x_1 + = case happyOut66 happy_x_1 of { happy_var_1 -> + case happyOut65 happy_x_3 of { happy_var_3 -> + happyIn66 + (PSeq happy_var_1 happy_var_3 + )}} + +happyReduce_200 = happySpecReduce_1 59# happyReduction_200 +happyReduction_200 happy_x_1 = case happyOut65 happy_x_1 of { happy_var_1 -> happyIn66 (happy_var_1 )} -happyReduce_198 = happySpecReduce_3 60# happyReduction_198 -happyReduction_198 happy_x_3 +happyReduce_201 = happySpecReduce_3 60# happyReduction_201 +happyReduction_201 happy_x_3 happy_x_2 happy_x_1 = case happyOut50 happy_x_1 of { happy_var_1 -> @@ -2561,65 +2592,65 @@ happyReduction_198 happy_x_3 (PA happy_var_1 happy_var_3 )}} -happyReduce_199 = happySpecReduce_1 61# happyReduction_199 -happyReduction_199 happy_x_1 +happyReduce_202 = happySpecReduce_1 61# happyReduction_202 +happyReduction_202 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn68 (LIdent happy_var_1 )} -happyReduce_200 = happySpecReduce_2 61# happyReduction_200 -happyReduction_200 happy_x_2 +happyReduce_203 = happySpecReduce_2 61# happyReduction_203 +happyReduction_203 happy_x_2 happy_x_1 = case happyOut8 happy_x_2 of { happy_var_2 -> happyIn68 (LVar happy_var_2 )} -happyReduce_201 = happySpecReduce_1 62# happyReduction_201 -happyReduction_201 happy_x_1 - = happyIn69 - (Sort_Type - ) - -happyReduce_202 = happySpecReduce_1 62# happyReduction_202 -happyReduction_202 happy_x_1 - = happyIn69 - (Sort_PType - ) - -happyReduce_203 = happySpecReduce_1 62# happyReduction_203 -happyReduction_203 happy_x_1 - = happyIn69 - (Sort_Tok - ) - happyReduce_204 = happySpecReduce_1 62# happyReduction_204 happyReduction_204 happy_x_1 = happyIn69 - (Sort_Str + (Sort_Type ) happyReduce_205 = happySpecReduce_1 62# happyReduction_205 happyReduction_205 happy_x_1 + = happyIn69 + (Sort_PType + ) + +happyReduce_206 = happySpecReduce_1 62# happyReduction_206 +happyReduction_206 happy_x_1 + = happyIn69 + (Sort_Tok + ) + +happyReduce_207 = happySpecReduce_1 62# happyReduction_207 +happyReduction_207 happy_x_1 + = happyIn69 + (Sort_Str + ) + +happyReduce_208 = happySpecReduce_1 62# happyReduction_208 +happyReduction_208 happy_x_1 = happyIn69 (Sort_Strs ) -happyReduce_206 = happySpecReduce_0 63# happyReduction_206 -happyReduction_206 = happyIn70 +happyReduce_209 = happySpecReduce_0 63# happyReduction_209 +happyReduction_209 = happyIn70 ([] ) -happyReduce_207 = happySpecReduce_1 63# happyReduction_207 -happyReduction_207 happy_x_1 +happyReduce_210 = happySpecReduce_1 63# happyReduction_210 +happyReduction_210 happy_x_1 = case happyOut67 happy_x_1 of { happy_var_1 -> happyIn70 ((:[]) happy_var_1 )} -happyReduce_208 = happySpecReduce_3 63# happyReduction_208 -happyReduction_208 happy_x_3 +happyReduce_211 = happySpecReduce_3 63# happyReduction_211 +happyReduction_211 happy_x_3 happy_x_2 happy_x_1 = case happyOut67 happy_x_1 of { happy_var_1 -> @@ -2628,15 +2659,15 @@ happyReduction_208 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_209 = happySpecReduce_1 64# happyReduction_209 -happyReduction_209 happy_x_1 +happyReduce_212 = happySpecReduce_1 64# happyReduction_212 +happyReduction_212 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> happyIn71 ((:[]) happy_var_1 )} -happyReduce_210 = happySpecReduce_2 64# happyReduction_210 -happyReduction_210 happy_x_2 +happyReduce_213 = happySpecReduce_2 64# happyReduction_213 +happyReduction_213 happy_x_2 happy_x_1 = case happyOut64 happy_x_1 of { happy_var_1 -> case happyOut71 happy_x_2 of { happy_var_2 -> @@ -2644,33 +2675,33 @@ happyReduction_210 happy_x_2 ((:) happy_var_1 happy_var_2 )}} -happyReduce_211 = happySpecReduce_1 65# happyReduction_211 -happyReduction_211 happy_x_1 +happyReduce_214 = happySpecReduce_1 65# happyReduction_214 +happyReduction_214 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn72 (BIdent happy_var_1 )} -happyReduce_212 = happySpecReduce_1 65# happyReduction_212 -happyReduction_212 happy_x_1 +happyReduce_215 = happySpecReduce_1 65# happyReduction_215 +happyReduction_215 happy_x_1 = happyIn72 (BWild ) -happyReduce_213 = happySpecReduce_0 66# happyReduction_213 -happyReduction_213 = happyIn73 +happyReduce_216 = happySpecReduce_0 66# happyReduction_216 +happyReduction_216 = happyIn73 ([] ) -happyReduce_214 = happySpecReduce_1 66# happyReduction_214 -happyReduction_214 happy_x_1 +happyReduce_217 = happySpecReduce_1 66# happyReduction_217 +happyReduction_217 happy_x_1 = case happyOut72 happy_x_1 of { happy_var_1 -> happyIn73 ((:[]) happy_var_1 )} -happyReduce_215 = happySpecReduce_3 66# happyReduction_215 -happyReduction_215 happy_x_3 +happyReduce_218 = happySpecReduce_3 66# happyReduction_218 +happyReduction_218 happy_x_3 happy_x_2 happy_x_1 = case happyOut72 happy_x_1 of { happy_var_1 -> @@ -2679,8 +2710,8 @@ happyReduction_215 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_216 = happyReduce 5# 67# happyReduction_216 -happyReduction_216 (happy_x_5 `HappyStk` +happyReduce_219 = happyReduce 5# 67# happyReduction_219 +happyReduction_219 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -2692,41 +2723,41 @@ happyReduction_216 (happy_x_5 `HappyStk` (DDec happy_var_2 happy_var_4 ) `HappyStk` happyRest}} -happyReduce_217 = happySpecReduce_1 67# happyReduction_217 -happyReduction_217 happy_x_1 +happyReduce_220 = happySpecReduce_1 67# happyReduction_220 +happyReduction_220 happy_x_1 = case happyOut57 happy_x_1 of { happy_var_1 -> happyIn74 (DExp happy_var_1 )} -happyReduce_218 = happySpecReduce_1 68# happyReduction_218 -happyReduction_218 happy_x_1 +happyReduce_221 = happySpecReduce_1 68# happyReduction_221 +happyReduction_221 happy_x_1 = case happyOut60 happy_x_1 of { happy_var_1 -> happyIn75 (TComp happy_var_1 )} -happyReduce_219 = happySpecReduce_1 69# happyReduction_219 -happyReduction_219 happy_x_1 +happyReduce_222 = happySpecReduce_1 69# happyReduction_222 +happyReduction_222 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> happyIn76 (PTComp happy_var_1 )} -happyReduce_220 = happySpecReduce_0 70# happyReduction_220 -happyReduction_220 = happyIn77 +happyReduce_223 = happySpecReduce_0 70# happyReduction_223 +happyReduction_223 = happyIn77 ([] ) -happyReduce_221 = happySpecReduce_1 70# happyReduction_221 -happyReduction_221 happy_x_1 +happyReduce_224 = happySpecReduce_1 70# happyReduction_224 +happyReduction_224 happy_x_1 = case happyOut75 happy_x_1 of { happy_var_1 -> happyIn77 ((:[]) happy_var_1 )} -happyReduce_222 = happySpecReduce_3 70# happyReduction_222 -happyReduction_222 happy_x_3 +happyReduce_225 = happySpecReduce_3 70# happyReduction_225 +happyReduction_225 happy_x_3 happy_x_2 happy_x_1 = case happyOut75 happy_x_1 of { happy_var_1 -> @@ -2735,20 +2766,20 @@ happyReduction_222 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_223 = happySpecReduce_0 71# happyReduction_223 -happyReduction_223 = happyIn78 +happyReduce_226 = happySpecReduce_0 71# happyReduction_226 +happyReduction_226 = happyIn78 ([] ) -happyReduce_224 = happySpecReduce_1 71# happyReduction_224 -happyReduction_224 happy_x_1 +happyReduce_227 = happySpecReduce_1 71# happyReduction_227 +happyReduction_227 happy_x_1 = case happyOut76 happy_x_1 of { happy_var_1 -> happyIn78 ((:[]) happy_var_1 )} -happyReduce_225 = happySpecReduce_3 71# happyReduction_225 -happyReduction_225 happy_x_3 +happyReduce_228 = happySpecReduce_3 71# happyReduction_228 +happyReduction_228 happy_x_3 happy_x_2 happy_x_1 = case happyOut76 happy_x_1 of { happy_var_1 -> @@ -2757,8 +2788,8 @@ happyReduction_225 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_226 = happySpecReduce_3 72# happyReduction_226 -happyReduction_226 happy_x_3 +happyReduce_229 = happySpecReduce_3 72# happyReduction_229 +happyReduction_229 happy_x_3 happy_x_2 happy_x_1 = case happyOut66 happy_x_1 of { happy_var_1 -> @@ -2767,15 +2798,15 @@ happyReduction_226 happy_x_3 (Case happy_var_1 happy_var_3 )}} -happyReduce_227 = happySpecReduce_1 73# happyReduction_227 -happyReduction_227 happy_x_1 +happyReduce_230 = happySpecReduce_1 73# happyReduction_230 +happyReduction_230 happy_x_1 = case happyOut79 happy_x_1 of { happy_var_1 -> happyIn80 ((:[]) happy_var_1 )} -happyReduce_228 = happySpecReduce_3 73# happyReduction_228 -happyReduction_228 happy_x_3 +happyReduce_231 = happySpecReduce_3 73# happyReduction_231 +happyReduction_231 happy_x_3 happy_x_2 happy_x_1 = case happyOut79 happy_x_1 of { happy_var_1 -> @@ -2784,8 +2815,8 @@ happyReduction_228 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_229 = happySpecReduce_3 74# happyReduction_229 -happyReduction_229 happy_x_3 +happyReduce_232 = happySpecReduce_3 74# happyReduction_232 +happyReduction_232 happy_x_3 happy_x_2 happy_x_1 = case happyOut71 happy_x_1 of { happy_var_1 -> @@ -2794,20 +2825,20 @@ happyReduction_229 happy_x_3 (Equ happy_var_1 happy_var_3 )}} -happyReduce_230 = happySpecReduce_0 75# happyReduction_230 -happyReduction_230 = happyIn82 +happyReduce_233 = happySpecReduce_0 75# happyReduction_233 +happyReduction_233 = happyIn82 ([] ) -happyReduce_231 = happySpecReduce_1 75# happyReduction_231 -happyReduction_231 happy_x_1 +happyReduce_234 = happySpecReduce_1 75# happyReduction_234 +happyReduction_234 happy_x_1 = case happyOut81 happy_x_1 of { happy_var_1 -> happyIn82 ((:[]) happy_var_1 )} -happyReduce_232 = happySpecReduce_3 75# happyReduction_232 -happyReduction_232 happy_x_3 +happyReduce_235 = happySpecReduce_3 75# happyReduction_235 +happyReduction_235 happy_x_3 happy_x_2 happy_x_1 = case happyOut81 happy_x_1 of { happy_var_1 -> @@ -2816,8 +2847,8 @@ happyReduction_232 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_233 = happySpecReduce_3 76# happyReduction_233 -happyReduction_233 happy_x_3 +happyReduce_236 = happySpecReduce_3 76# happyReduction_236 +happyReduction_236 happy_x_3 happy_x_2 happy_x_1 = case happyOut60 happy_x_1 of { happy_var_1 -> @@ -2826,20 +2857,20 @@ happyReduction_233 happy_x_3 (Alt happy_var_1 happy_var_3 )}} -happyReduce_234 = happySpecReduce_0 77# happyReduction_234 -happyReduction_234 = happyIn84 +happyReduce_237 = happySpecReduce_0 77# happyReduction_237 +happyReduction_237 = happyIn84 ([] ) -happyReduce_235 = happySpecReduce_1 77# happyReduction_235 -happyReduction_235 happy_x_1 +happyReduce_238 = happySpecReduce_1 77# happyReduction_238 +happyReduction_238 happy_x_1 = case happyOut83 happy_x_1 of { happy_var_1 -> happyIn84 ((:[]) happy_var_1 )} -happyReduce_236 = happySpecReduce_3 77# happyReduction_236 -happyReduction_236 happy_x_3 +happyReduce_239 = happySpecReduce_3 77# happyReduction_239 +happyReduction_239 happy_x_3 happy_x_2 happy_x_1 = case happyOut83 happy_x_1 of { happy_var_1 -> @@ -2848,8 +2879,8 @@ happyReduction_236 happy_x_3 ((:) happy_var_1 happy_var_3 )}} -happyReduce_237 = happyReduce 5# 78# happyReduction_237 -happyReduction_237 (happy_x_5 `HappyStk` +happyReduce_240 = happyReduce 5# 78# happyReduction_240 +happyReduction_240 (happy_x_5 `HappyStk` happy_x_4 `HappyStk` happy_x_3 `HappyStk` happy_x_2 `HappyStk` @@ -2861,20 +2892,20 @@ happyReduction_237 (happy_x_5 `HappyStk` (DDDec happy_var_2 happy_var_4 ) `HappyStk` happyRest}} -happyReduce_238 = happySpecReduce_1 78# happyReduction_238 -happyReduction_238 happy_x_1 +happyReduce_241 = happySpecReduce_1 78# happyReduction_241 +happyReduction_241 happy_x_1 = case happyOut55 happy_x_1 of { happy_var_1 -> happyIn85 (DDExp happy_var_1 )} -happyReduce_239 = happySpecReduce_0 79# happyReduction_239 -happyReduction_239 = happyIn86 +happyReduce_242 = happySpecReduce_0 79# happyReduction_242 +happyReduction_242 = happyIn86 ([] ) -happyReduce_240 = happySpecReduce_2 79# happyReduction_240 -happyReduction_240 happy_x_2 +happyReduce_243 = happySpecReduce_2 79# happyReduction_243 +happyReduction_243 happy_x_2 happy_x_1 = case happyOut86 happy_x_1 of { happy_var_1 -> case happyOut85 happy_x_2 of { happy_var_2 -> @@ -2882,8 +2913,8 @@ happyReduction_240 happy_x_2 (flip (:) happy_var_1 happy_var_2 )}} -happyReduce_241 = happySpecReduce_2 80# happyReduction_241 -happyReduction_241 happy_x_2 +happyReduce_244 = happySpecReduce_2 80# happyReduction_244 +happyReduction_244 happy_x_2 happy_x_1 = case happyOut88 happy_x_1 of { happy_var_1 -> case happyOut22 happy_x_2 of { happy_var_2 -> @@ -2891,59 +2922,59 @@ happyReduction_241 happy_x_2 (OldGr happy_var_1 (reverse happy_var_2) )}} -happyReduce_242 = happySpecReduce_0 81# happyReduction_242 -happyReduction_242 = happyIn88 +happyReduce_245 = happySpecReduce_0 81# happyReduction_245 +happyReduction_245 = happyIn88 (NoIncl ) -happyReduce_243 = happySpecReduce_2 81# happyReduction_243 -happyReduction_243 happy_x_2 +happyReduce_246 = happySpecReduce_2 81# happyReduction_246 +happyReduction_246 happy_x_2 happy_x_1 = case happyOut90 happy_x_2 of { happy_var_2 -> happyIn88 (Incl happy_var_2 )} -happyReduce_244 = happySpecReduce_1 82# happyReduction_244 -happyReduction_244 happy_x_1 +happyReduce_247 = happySpecReduce_1 82# happyReduction_247 +happyReduction_247 happy_x_1 = case happyOut9 happy_x_1 of { happy_var_1 -> happyIn89 (FString happy_var_1 )} -happyReduce_245 = happySpecReduce_1 82# happyReduction_245 -happyReduction_245 happy_x_1 +happyReduce_248 = happySpecReduce_1 82# happyReduction_248 +happyReduction_248 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> happyIn89 (FIdent happy_var_1 )} -happyReduce_246 = happySpecReduce_2 82# happyReduction_246 -happyReduction_246 happy_x_2 +happyReduce_249 = happySpecReduce_2 82# happyReduction_249 +happyReduction_249 happy_x_2 happy_x_1 = case happyOut89 happy_x_2 of { happy_var_2 -> happyIn89 (FSlash happy_var_2 )} -happyReduce_247 = happySpecReduce_2 82# happyReduction_247 -happyReduction_247 happy_x_2 +happyReduce_250 = happySpecReduce_2 82# happyReduction_250 +happyReduction_250 happy_x_2 happy_x_1 = case happyOut89 happy_x_2 of { happy_var_2 -> happyIn89 (FDot happy_var_2 )} -happyReduce_248 = happySpecReduce_2 82# happyReduction_248 -happyReduction_248 happy_x_2 +happyReduce_251 = happySpecReduce_2 82# happyReduction_251 +happyReduction_251 happy_x_2 happy_x_1 = case happyOut89 happy_x_2 of { happy_var_2 -> happyIn89 (FMinus happy_var_2 )} -happyReduce_249 = happySpecReduce_2 82# happyReduction_249 -happyReduction_249 happy_x_2 +happyReduce_252 = happySpecReduce_2 82# happyReduction_252 +happyReduction_252 happy_x_2 happy_x_1 = case happyOut7 happy_x_1 of { happy_var_1 -> case happyOut89 happy_x_2 of { happy_var_2 -> @@ -2951,16 +2982,16 @@ happyReduction_249 happy_x_2 (FAddId happy_var_1 happy_var_2 )}} -happyReduce_250 = happySpecReduce_2 83# happyReduction_250 -happyReduction_250 happy_x_2 +happyReduce_253 = happySpecReduce_2 83# happyReduction_253 +happyReduction_253 happy_x_2 happy_x_1 = case happyOut89 happy_x_1 of { happy_var_1 -> happyIn90 ((:[]) happy_var_1 )} -happyReduce_251 = happySpecReduce_3 83# happyReduction_251 -happyReduction_251 happy_x_3 +happyReduce_254 = happySpecReduce_3 83# happyReduction_254 +happyReduction_254 happy_x_3 happy_x_2 happy_x_1 = case happyOut89 happy_x_1 of { happy_var_1 -> diff --git a/src/GF/Source/ParGF.y b/src/GF/Source/ParGF.y index 5fb0194eb..3399c0862 100644 --- a/src/GF/Source/ParGF.y +++ b/src/GF/Source/ParGF.y @@ -1,10 +1,9 @@ -- This Happy file was machine-generated by the BNF converter { -module GF.Source.ParGF where -- H -import GF.Source.AbsGF -- H -import GF.Source.LexGF -- H -import GF.Infra.Ident -- H -import GF.Data.ErrM -- H +module ParGF where +import AbsGF +import LexGF +import ErrM } %name pGrammar Grammar @@ -29,6 +28,7 @@ import GF.Data.ErrM -- H ',' { PT _ (TS ",") } '[' { PT _ (TS "[") } ']' { PT _ (TS "]") } + '-' { PT _ (TS "-") } '.' { PT _ (TS ".") } '|' { PT _ (TS "|") } '%' { PT _ (TS "%") } @@ -38,14 +38,13 @@ import GF.Data.ErrM -- H '@' { PT _ (TS "@") } '!' { PT _ (TS "!") } '*' { PT _ (TS "*") } + '+' { PT _ (TS "+") } + '++' { PT _ (TS "++") } '\\' { PT _ (TS "\\") } '=>' { PT _ (TS "=>") } - '++' { PT _ (TS "++") } - '+' { PT _ (TS "+") } '_' { PT _ (TS "_") } '$' { PT _ (TS "$") } '/' { PT _ (TS "/") } - '-' { PT _ (TS "-") } 'Lin' { PT _ (TS "Lin") } 'PType' { PT _ (TS "PType") } 'Str' { PT _ (TS "Str") } @@ -96,15 +95,17 @@ import GF.Data.ErrM -- H L_ident { PT _ (TV $$) } L_integ { PT _ (TI $$) } L_quoted { PT _ (TL $$) } +L_doubl { PT _ (TD $$) } L_LString { PT _ (T_LString $$) } L_err { _ } %% -Ident :: { Ident } : L_ident { identC $1 } -- H +Ident :: { Ident } : L_ident { Ident $1 } Integer :: { Integer } : L_integ { (read $1) :: Integer } String :: { String } : L_quoted { $1 } +Double :: { Double } : L_doubl { (read $1) :: Double } LString :: { LString} : L_LString { LString ($1)} Grammar :: { Grammar } @@ -158,7 +159,7 @@ ModType : 'abstract' Ident { MTAbstract $2 } ModBody :: { ModBody } ModBody : Extend Opens '{' ListTopDef '}' { MBody $1 $2 (reverse $4) } | Ident 'with' ListOpen { MWith $1 $3 } - | ListIdent '**' Ident 'with' ListOpen { MWithE $1 $3 $5 } + | ListIncluded '**' Ident 'with' ListOpen { MWithE $1 $3 $5 } | 'reuse' Ident { MReuse $2 } | 'union' ListIncluded { MUnion $2 } @@ -169,7 +170,7 @@ ListTopDef : {- empty -} { [] } Extend :: { Extend } -Extend : ListIdent '**' { Ext $1 } +Extend : ListIncluded '**' { Ext $1 } | {- empty -} { NoExt } @@ -210,6 +211,7 @@ ListIncluded : {- empty -} { [] } Included :: { Included } Included : Ident { IAll $1 } | Ident '[' ListIdent ']' { ISome $1 $3 } + | Ident '-' '[' ListIdent ']' { IMinus $1 $4 } Def :: { Def } @@ -353,13 +355,14 @@ ListLocDef : {- empty -} { [] } | LocDef ';' ListLocDef { (:) $1 $3 } -Exp4 :: { Exp } -Exp4 : Ident { EIdent $1 } +Exp6 :: { Exp } +Exp6 : Ident { EIdent $1 } | '{' Ident '}' { EConstr $2 } | '%' Ident '%' { ECons $2 } | Sort { ESort $1 } | String { EString $1 } | Integer { EInt $1 } + | Double { EFloat $1 } | '?' { EMeta } | '[' ']' { EEmpty } | 'data' { EData } @@ -373,48 +376,57 @@ Exp4 : Ident { EIdent $1 } | LString { ELString $1 } -Exp3 :: { Exp } -Exp3 : Exp3 '.' Label { EProj $1 $3 } +Exp5 :: { Exp } +Exp5 : Exp5 '.' Label { EProj $1 $3 } | '{' Ident '.' Ident '}' { EQConstr $2 $4 } - | '%' Ident '.' Ident '%' { EQCons $2 $4 } - | Exp4 { $1 } + | '%' Ident '.' Ident { EQCons $2 $4 } + | Exp6 { $1 } -Exp2 :: { Exp } -Exp2 : Exp2 Exp3 { EApp $1 $2 } +Exp4 :: { Exp } +Exp4 : Exp4 Exp5 { EApp $1 $2 } | 'table' '{' ListCase '}' { ETable $3 } - | 'table' Exp4 '{' ListCase '}' { ETTable $2 $4 } - | 'table' Exp4 '[' ListExp ']' { EVTable $2 $4 } + | 'table' Exp6 '{' ListCase '}' { ETTable $2 $4 } + | 'table' Exp6 '[' ListExp ']' { EVTable $2 $4 } | 'case' Exp 'of' '{' ListCase '}' { ECase $2 $5 } | 'variants' '{' ListExp '}' { EVariants $3 } | 'pre' '{' Exp ';' ListAltern '}' { EPre $3 $5 } | 'strs' '{' ListExp '}' { EStrs $3 } - | Ident '@' Exp4 { EConAt $1 $3 } - | Exp3 { $1 } + | Ident '@' Exp6 { EConAt $1 $3 } + | Exp5 { $1 } | 'Lin' Ident { ELin $2 } +Exp3 :: { Exp } +Exp3 : Exp3 '!' Exp4 { ESelect $1 $3 } + | Exp3 '*' Exp4 { ETupTyp $1 $3 } + | Exp3 '**' Exp4 { EExtend $1 $3 } + | Exp4 { $1 } + + Exp1 :: { Exp } -Exp1 : Exp1 '!' Exp2 { ESelect $1 $3 } - | Exp1 '*' Exp2 { ETupTyp $1 $3 } - | Exp1 '**' Exp2 { EExtend $1 $3 } +Exp1 : Exp2 '+' Exp1 { EGlue $1 $3 } | Exp2 { $1 } Exp :: { Exp } -Exp : '\\' ListBind '->' Exp { EAbstr $2 $4 } +Exp : Exp1 '++' Exp { EConcat $1 $3 } + | '\\' ListBind '->' Exp { EAbstr $2 $4 } | '\\' '\\' ListBind '=>' Exp { ECTable $3 $5 } | Decl '->' Exp { EProd $1 $3 } - | Exp1 '=>' Exp { ETType $1 $3 } - | Exp1 '++' Exp { EConcat $1 $3 } - | Exp1 '+' Exp { EGlue $1 $3 } + | Exp3 '=>' Exp { ETType $1 $3 } | 'let' '{' ListLocDef '}' 'in' Exp { ELet $3 $6 } | 'let' ListLocDef 'in' Exp { ELetb $2 $4 } - | Exp1 'where' '{' ListLocDef '}' { EWhere $1 $4 } + | Exp3 'where' '{' ListLocDef '}' { EWhere $1 $4 } | 'fn' '{' ListEquation '}' { EEqs $3 } + | 'in' Exp5 String { EExample $2 $3 } | Exp1 { $1 } +Exp2 :: { Exp } +Exp2 : Exp3 { $1 } + + ListExp :: { [Exp] } ListExp : {- empty -} { [] } | Exp { (:[]) $1 } @@ -423,24 +435,33 @@ ListExp : {- empty -} { [] } Exps :: { Exps } Exps : {- empty -} { NilExp } - | Exp4 Exps { ConsExp $1 $2 } + | Exp6 Exps { ConsExp $1 $2 } -Patt1 :: { Patt } -Patt1 : '_' { PW } +Patt2 :: { Patt } +Patt2 : '_' { PW } | Ident { PV $1 } | '{' Ident '}' { PCon $2 } | Ident '.' Ident { PQ $1 $3 } | Integer { PInt $1 } + | Double { PFloat $1 } | String { PStr $1 } | '{' ListPattAss '}' { PR $2 } | '<' ListPattTupleComp '>' { PTup $2 } | '(' Patt ')' { $2 } -Patt :: { Patt } -Patt : Ident ListPatt { PC $1 $2 } +Patt1 :: { Patt } +Patt1 : Ident ListPatt { PC $1 $2 } | Ident '.' Ident ListPatt { PQC $1 $3 $4 } + | Patt2 '*' { PRep $1 } + | Ident '@' Patt2 { PAs $1 $3 } + | Patt2 { $1 } + + +Patt :: { Patt } +Patt : Patt '|' Patt1 { PDisj $1 $3 } + | Patt '+' Patt1 { PSeq $1 $3 } | Patt1 { $1 } @@ -467,18 +488,9 @@ ListPattAss : {- empty -} { [] } | PattAss ';' ListPattAss { (:) $1 $3 } -PattAlt :: { PattAlt } -PattAlt : Patt { AltP $1 } - - ListPatt :: { [Patt] } -ListPatt : Patt1 { (:[]) $1 } - | Patt1 ListPatt { (:) $1 $2 } - - -ListPattAlt :: { [PattAlt] } -ListPattAlt : PattAlt { (:[]) $1 } - | PattAlt '|' ListPattAlt { (:) $1 $3 } +ListPatt : Patt2 { (:[]) $1 } + | Patt2 ListPatt { (:) $1 $2 } Bind :: { Bind } @@ -494,7 +506,7 @@ ListBind : {- empty -} { [] } Decl :: { Decl } Decl : '(' ListBind ':' Exp ')' { DDec $2 $4 } - | Exp2 { DExp $1 } + | Exp4 { DExp $1 } TupleComp :: { TupleComp } @@ -518,7 +530,7 @@ ListPattTupleComp : {- empty -} { [] } Case :: { Case } -Case : ListPattAlt '=>' Exp { Case $1 $3 } +Case : Patt '=>' Exp { Case $1 $3 } ListCase :: { [Case] } @@ -548,7 +560,7 @@ ListAltern : {- empty -} { [] } DDecl :: { DDecl } DDecl : '(' ListBind ':' Exp ')' { DDDec $2 $4 } - | Exp4 { DDExp $1 } + | Exp6 { DDExp $1 } ListDDecl :: { [DDecl] } diff --git a/src/GF/Source/PrintGF.hs b/src/GF/Source/PrintGF.hs index c01329227..ad9dd46c0 100644 --- a/src/GF/Source/PrintGF.hs +++ b/src/GF/Source/PrintGF.hs @@ -399,6 +399,9 @@ instance Print Patt where PC id patts -> prPrec i 1 (concatD [prt 0 id , prt 0 patts]) PQC id0 id patts -> prPrec i 1 (concatD [prt 0 id0 , doc (showString ".") , prt 0 id , prt 0 patts]) PDisj patt0 patt -> prPrec i 0 (concatD [prt 0 patt0 , doc (showString "|") , prt 1 patt]) + PSeq patt0 patt -> prPrec i 0 (concatD [prt 0 patt0 , doc (showString "+") , prt 1 patt]) + PRep patt -> prPrec i 1 (concatD [prt 2 patt , doc (showString "*")]) + PAs id patt -> prPrec i 1 (concatD [prt 0 id , doc (showString "@") , prt 2 patt]) prtList es = case es of [x] -> (concatD [prt 2 x]) diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs index 97f8fbc75..6465b6fc9 100644 --- a/src/GF/Source/SourceToGrammar.hs +++ b/src/GF/Source/SourceToGrammar.hs @@ -517,6 +517,7 @@ transSort :: Sort -> Err String transSort x = case x of _ -> return $ printTree x +--- no more used 7/1/2006 AR transPatts :: Patt -> Err [G.Patt] transPatts p = case p of PDisj p1 p2 -> liftM2 (++) (transPatts p1) (transPatts p2) @@ -555,7 +556,12 @@ transPatt x = case x of PQ id0 id -> liftM3 G.PP (transIdent id0) (transIdent id) (return []) PQC id0 id patts -> liftM3 G.PP (transIdent id0) (transIdent id) (mapM transPatt patts) - PDisj _ _ -> Bad $ "not allowed pattern" +++ printTree x + PDisj p1 p2 -> liftM2 G.PAlt (transPatt p1) (transPatt p2) + PSeq p1 p2 -> liftM2 G.PSeq (transPatt p1) (transPatt p2) + PRep p -> liftM G.PRep (transPatt p) + PAs x p -> liftM2 G.PAs (transIdent x) (transPatt p) + + transBind :: Bind -> Err Ident transBind x = case x of @@ -571,13 +577,13 @@ transDecl x = case x of DExp exp -> liftM (return . M.mkDecl) $ transExp exp transCases :: [Case] -> Err [G.Case] -transCases = liftM concat . mapM transCase +transCases = mapM transCase -transCase :: Case -> Err [G.Case] +transCase :: Case -> Err G.Case transCase (Case p exp) = do - patts <- transPatts p + patt <- transPatt p exp' <- transExp exp - return [(p,exp') | p <- patts] + return (patt,exp') transEquation :: Equation -> Err G.Equation transEquation x = case x of