diff --git a/Codec/TPTP/Base.hs b/Codec/TPTP/Base.hs
--- a/Codec/TPTP/Base.hs
+++ b/Codec/TPTP/Base.hs
@@ -1,8 +1,9 @@
-{-# OPTIONS -XRecordWildCards -XCPP 
- -XDeriveDataTypeable -fglasgow-exts -XNoMonomorphismRestriction 
- -XTemplateHaskell -XGeneralizedNewtypeDeriving -Wall 
- -fno-warn-orphans -XOverlappingInstances -XUndecidableInstances 
- #-}
+{-# LANGUAGE CPP, TemplateHaskell, NoMonomorphismRestriction, RecordWildCards
+  , StandaloneDeriving, MultiParamTypeClasses, FunctionalDependencies
+  , TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  , UndecidableInstances, DeriveDataTypeable, GeneralizedNewtypeDeriving
+  , OverlappingInstances
+  #-}
 
 module Codec.TPTP.Base where
     
diff --git a/Codec/TPTP/Diff.hs b/Codec/TPTP/Diff.hs
--- a/Codec/TPTP/Diff.hs
+++ b/Codec/TPTP/Diff.hs
@@ -1,4 +1,9 @@
-{-# OPTIONS -fwarn-missing-signatures -XRecordWildCards -XCPP -XDeriveDataTypeable -fglasgow-exts -XNoMonomorphismRestriction -XTemplateHaskell -XUndecidableInstances -Wall -XOverloadedStrings #-}
+{-# LANGUAGE NoMonomorphismRestriction, RecordWildCards
+  , StandaloneDeriving, MultiParamTypeClasses, FunctionalDependencies
+  , TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  , UndecidableInstances, DeriveDataTypeable, GeneralizedNewtypeDeriving
+  , OverlappingInstances, OverloadedStrings, RankNTypes
+  #-}
 
 module Codec.TPTP.Diff(Diffable(..),DiffResult(..),T0Diff,F0Diff,isSame,diffGenF,diffGenT,printSampleDiffs) where
     
diff --git a/Codec/TPTP/Export.hs b/Codec/TPTP/Export.hs
--- a/Codec/TPTP/Export.hs
+++ b/Codec/TPTP/Export.hs
@@ -1,4 +1,11 @@
-{-# OPTIONS -fglasgow-exts -XStandaloneDeriving -XRecordWildCards -XNoMonomorphismRestriction -fwarn-missing-signatures -Wall #-}
+{-# LANGUAGE NoMonomorphismRestriction, RecordWildCards
+  , StandaloneDeriving, MultiParamTypeClasses, FunctionalDependencies
+  , TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  , UndecidableInstances, DeriveDataTypeable, GeneralizedNewtypeDeriving
+  , OverlappingInstances, RankNTypes
+  #-}
+
+-- {-# OPTIONS -fglasgow-exts -XStandaloneDeriving -XRecordWildCards -XNoMonomorphismRestriction -fwarn-missing-signatures -Wall #-}
 
 module Codec.TPTP.Export(toTPTP',ToTPTP(..),isLowerWord) where
     
diff --git a/Codec/TPTP/Import.hs b/Codec/TPTP/Import.hs
--- a/Codec/TPTP/Import.hs
+++ b/Codec/TPTP/Import.hs
@@ -1,5 +1,3 @@
-{-# OPTIONS -fwarn-missing-signatures #-}
-
 module Codec.TPTP.Import(parse,parseFile
                         ,Token(..)) where
     
diff --git a/Codec/TPTP/Pretty.hs b/Codec/TPTP/Pretty.hs
--- a/Codec/TPTP/Pretty.hs
+++ b/Codec/TPTP/Pretty.hs
@@ -1,4 +1,9 @@
-{-# OPTIONS -XRecordWildCards -XCPP -XDeriveDataTypeable -XNoMonomorphismRestriction -XStandaloneDeriving -XFlexibleInstances -XGeneralizedNewtypeDeriving -fglasgow-exts #-}
+{-# LANGUAGE NoMonomorphismRestriction, RecordWildCards
+  , StandaloneDeriving, MultiParamTypeClasses, FunctionalDependencies
+  , TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  , UndecidableInstances, DeriveDataTypeable, GeneralizedNewtypeDeriving
+  , OverlappingInstances, RankNTypes, PatternGuards
+  #-}
 
 {-# OPTIONS -Wall -fno-warn-orphans #-}
 
diff --git a/Codec/TPTP/QuickCheck.hs b/Codec/TPTP/QuickCheck.hs
--- a/Codec/TPTP/QuickCheck.hs
+++ b/Codec/TPTP/QuickCheck.hs
@@ -1,4 +1,10 @@
-{-# OPTIONS -fglasgow-exts #-}
+{-# LANGUAGE NoMonomorphismRestriction, RecordWildCards
+  , StandaloneDeriving, MultiParamTypeClasses, FunctionalDependencies
+  , TypeSynonymInstances, FlexibleInstances, FlexibleContexts
+  , UndecidableInstances, DeriveDataTypeable, GeneralizedNewtypeDeriving
+  , OverlappingInstances, RankNTypes, PatternGuards
+  #-}
+
 module Codec.TPTP.QuickCheck where
     
 import Test.QuickCheck
diff --git a/Parser.y b/Parser.y
--- a/Parser.y
+++ b/Parser.y
@@ -1,5 +1,4 @@
 {
-{-# OPTIONS -XDeriveDataTypeable -XCPP #-}
 module Parser where
     
 import Data.Char
@@ -24,46 +23,46 @@
 
 
 %token
- lp                 { LP }
- rp                 { RP }
- lbra               { Lbrack }
- rbra               { Rbrack }
- comma              { Comma }
- dot                { Dot }
- star               { Star }
- plus               { Plus }
- rangle             { Rangle }
- colon              { Oper ":" }
+ tok_lp                 { LP }
+ tok_rp                 { RP }
+ tok_lbra               { Lbrack }
+ tok_rbra               { Rbrack }
+ tok_comma              { Comma }
+ tok_dot                { Dot }
+ tok_star               { Star }
+ tok_plus               { Plus }
+ tok_rangle             { Rangle }
+ tok_colon              { Oper ":" }
 
- iff                { Oper "<=>"}
- implies            { Oper "=>"}
- xor                { Oper "<~>"}
- nor                { Oper "~|"}
- nand               { Oper "~&"}
- impliedby          { Oper "<=" }
- equals             { Oper "=" }
- nequals            { Oper "!=" }
-         
- exclam             { Oper "!" }
- question           { Oper "?" }
- ampersand          { Oper "&" }
- vline              { Oper "|" }
- tilde              { Oper "~" }
-            
- fof                { LowerWord "fof" }
- cnf                { LowerWord "cnf" }
- include_           { LowerWord "include" }
- 
- single_quoted      { SingleQuoted $$ }
- distinct_object    { DoubleQuoted $$ }
- dollar_word        { DollarWord $$ }
- dollar_dollar_word { DollarDollarWord $$ }
- upper_word         { UpperWord $$ }
- lower_word         { LowerWord $$ }
- signed_integer     { SignedInt $$ }
- unsigned_integer   { UnsignedInt $$ }
- real               { Real $$ }
-            
+ tok_iff                { Oper "<=>"}
+ tok_implies            { Oper "=>"}
+ tok_xor                { Oper "<~>"}
+ tok_nor                { Oper "~|"}
+ tok_nand               { Oper "~&"}
+ tok_impliedby          { Oper "<=" }
+ tok_equals             { Oper "=" }
+ tok_nequals            { Oper "!=" }
+
+ tok_exclam             { Oper "!" }
+ tok_question           { Oper "?" }
+ tok_ampersand          { Oper "&" }
+ tok_vline              { Oper "|" }
+ tok_tilde              { Oper "~" }
+
+ tok_fof                { LowerWord "fof" }
+ tok_cnf                { LowerWord "cnf" }
+ tok_include_           { LowerWord "include" }
+
+ tok_single_quoted      { SingleQuoted $$ }
+ tok_distinct_object    { DoubleQuoted $$ }
+ tok_dollar_word        { DollarWord $$ }
+ tok_dollar_dollar_word { DollarDollarWord $$ }
+ tok_upper_word         { UpperWord $$ }
+ tok_lower_word         { LowerWord $$ }
+ tok_signed_integer     { SignedInt $$ }
+ tok_unsigned_integer   { UnsignedInt $$ }
+ tok_real               { Real $$ }
+
  comment            { CommentToken $$ }
 
      
@@ -404,11 +403,84 @@
             
 lower_word_ :: {String}
 lower_word_ : lower_word {$1} | fof {"fof"} | cnf {"cnf"} | include_ {"include"} -- "fof" is a perfectly cromulent lower_word, but it is interpreted as a "fof" token
-                               
 
+lp                 :: {Token}
+lp                 : tok_lp                  comment_list { $1 }
+rp                 :: {Token}
+rp                 : tok_rp                  comment_list { $1 }
+lbra               :: {Token}
+lbra               : tok_lbra                comment_list { $1 }
+rbra               :: {Token}
+rbra               : tok_rbra                comment_list { $1 }
+comma              :: {Token}
+comma              : tok_comma               comment_list { $1 }
+dot                :: {Token}
+dot                : tok_dot                 comment_list { $1 }
+star               :: {Token}
+star               : tok_star                comment_list { $1 }
+plus               :: {Token}
+plus               : tok_plus                comment_list { $1 }
+rangle             :: {Token}
+rangle             : tok_rangle              comment_list { $1 }
+colon              :: {Token}
+colon              : tok_colon               comment_list { $1 }
 
+iff                :: {Token}
+iff                : tok_iff                 comment_list { $1 }
+implies            :: {Token}
+implies            : tok_implies             comment_list { $1 }
+xor                :: {Token}
+xor                : tok_xor                 comment_list { $1 }
+nor                :: {Token}
+nor                : tok_nor                 comment_list { $1 }
+nand               :: {Token}
+nand               : tok_nand                comment_list { $1 }
+impliedby          :: {Token}
+impliedby          : tok_impliedby           comment_list { $1 }
+equals             :: {Token}
+equals             : tok_equals              comment_list { $1 }
+nequals            :: {Token}
+nequals            : tok_nequals             comment_list { $1 }
 
+exclam             :: {Token}
+exclam             : tok_exclam              comment_list { $1 }
+question           :: {Token}
+question           : tok_question            comment_list { $1 }
+ampersand          :: {Token}
+ampersand          : tok_ampersand           comment_list { $1 }
+vline              :: {Token}
+vline              : tok_vline               comment_list { $1 }
+tilde              :: {Token}
+tilde              : tok_tilde               comment_list { $1 }
 
+fof                :: {Token}
+fof                : tok_fof                 comment_list { $1 }
+cnf                :: {Token}
+cnf                : tok_cnf                 comment_list { $1 }
+include_           :: {Token}
+include_           : tok_include_            comment_list { $1 }
+
+single_quoted      :: {String}
+single_quoted      : tok_single_quoted       comment_list { $1 }
+distinct_object    :: {String}
+distinct_object    : tok_distinct_object     comment_list { $1 }
+dollar_word        :: {String}
+dollar_word        : tok_dollar_word         comment_list { $1 }
+dollar_dollar_word :: {String}
+dollar_dollar_word : tok_dollar_dollar_word  comment_list { $1 }
+upper_word         :: {String}
+upper_word         : tok_upper_word          comment_list { $1 }
+lower_word         :: {String}
+lower_word         : tok_lower_word          comment_list { $1 }
+signed_integer     :: {Int}
+signed_integer     : tok_signed_integer      comment_list { $1 }
+unsigned_integer   :: {Int}
+unsigned_integer   : tok_unsigned_integer    comment_list { $1 }
+real               :: {Double}
+real               : tok_real                comment_list { $1 }
+
+comment_list :: {[String]}
+comment_list : {[]} | comment comment_list { $1 : $2 }
        
 {
 
diff --git a/dist/build/Parser.hs b/dist/build/Parser.hs
--- a/dist/build/Parser.hs
+++ b/dist/build/Parser.hs
@@ -1,6 +1,5 @@
 {-# OPTIONS_GHC -fno-warn-overlapping-patterns #-}
 {-# OPTIONS -fglasgow-exts -cpp #-}
-{-# OPTIONS -XDeriveDataTypeable -XCPP #-}
 module Parser where
     
 import Data.Char
@@ -13,18 +12,10 @@
 import System.IO
 import System.IO.Unsafe
 import Control.Monad.Identity
-#if __GLASGOW_HASKELL__ >= 503
 import qualified Data.Array as Happy_Data_Array
-#else
-import qualified Array as Happy_Data_Array
-#endif
-#if __GLASGOW_HASKELL__ >= 503
 import qualified GHC.Exts as Happy_GHC_Exts
-#else
-import qualified GlaExts as Happy_GHC_Exts
-#endif
 
--- parser produced by Happy Version 1.18.4
+-- parser produced by Happy Version 1.18.5
 
 newtype HappyAbsSyn  = HappyAbsSyn HappyAny
 #if __GLASGOW_HASKELL__ >= 607
@@ -452,6 +443,222 @@
 happyOut73 :: (HappyAbsSyn ) -> (String)
 happyOut73 x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyOut73 #-}
+happyIn74 :: (Token) -> (HappyAbsSyn )
+happyIn74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn74 #-}
+happyOut74 :: (HappyAbsSyn ) -> (Token)
+happyOut74 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut74 #-}
+happyIn75 :: (Token) -> (HappyAbsSyn )
+happyIn75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn75 #-}
+happyOut75 :: (HappyAbsSyn ) -> (Token)
+happyOut75 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut75 #-}
+happyIn76 :: (Token) -> (HappyAbsSyn )
+happyIn76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn76 #-}
+happyOut76 :: (HappyAbsSyn ) -> (Token)
+happyOut76 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut76 #-}
+happyIn77 :: (Token) -> (HappyAbsSyn )
+happyIn77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn77 #-}
+happyOut77 :: (HappyAbsSyn ) -> (Token)
+happyOut77 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut77 #-}
+happyIn78 :: (Token) -> (HappyAbsSyn )
+happyIn78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn78 #-}
+happyOut78 :: (HappyAbsSyn ) -> (Token)
+happyOut78 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut78 #-}
+happyIn79 :: (Token) -> (HappyAbsSyn )
+happyIn79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn79 #-}
+happyOut79 :: (HappyAbsSyn ) -> (Token)
+happyOut79 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut79 #-}
+happyIn80 :: (Token) -> (HappyAbsSyn )
+happyIn80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn80 #-}
+happyOut80 :: (HappyAbsSyn ) -> (Token)
+happyOut80 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut80 #-}
+happyIn81 :: (Token) -> (HappyAbsSyn )
+happyIn81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn81 #-}
+happyOut81 :: (HappyAbsSyn ) -> (Token)
+happyOut81 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut81 #-}
+happyIn82 :: (Token) -> (HappyAbsSyn )
+happyIn82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn82 #-}
+happyOut82 :: (HappyAbsSyn ) -> (Token)
+happyOut82 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut82 #-}
+happyIn83 :: (Token) -> (HappyAbsSyn )
+happyIn83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn83 #-}
+happyOut83 :: (HappyAbsSyn ) -> (Token)
+happyOut83 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut83 #-}
+happyIn84 :: (Token) -> (HappyAbsSyn )
+happyIn84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn84 #-}
+happyOut84 :: (HappyAbsSyn ) -> (Token)
+happyOut84 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut84 #-}
+happyIn85 :: (Token) -> (HappyAbsSyn )
+happyIn85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn85 #-}
+happyOut85 :: (HappyAbsSyn ) -> (Token)
+happyOut85 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut85 #-}
+happyIn86 :: (Token) -> (HappyAbsSyn )
+happyIn86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn86 #-}
+happyOut86 :: (HappyAbsSyn ) -> (Token)
+happyOut86 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut86 #-}
+happyIn87 :: (Token) -> (HappyAbsSyn )
+happyIn87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn87 #-}
+happyOut87 :: (HappyAbsSyn ) -> (Token)
+happyOut87 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut87 #-}
+happyIn88 :: (Token) -> (HappyAbsSyn )
+happyIn88 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn88 #-}
+happyOut88 :: (HappyAbsSyn ) -> (Token)
+happyOut88 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut88 #-}
+happyIn89 :: (Token) -> (HappyAbsSyn )
+happyIn89 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn89 #-}
+happyOut89 :: (HappyAbsSyn ) -> (Token)
+happyOut89 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut89 #-}
+happyIn90 :: (Token) -> (HappyAbsSyn )
+happyIn90 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn90 #-}
+happyOut90 :: (HappyAbsSyn ) -> (Token)
+happyOut90 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut90 #-}
+happyIn91 :: (Token) -> (HappyAbsSyn )
+happyIn91 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn91 #-}
+happyOut91 :: (HappyAbsSyn ) -> (Token)
+happyOut91 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut91 #-}
+happyIn92 :: (Token) -> (HappyAbsSyn )
+happyIn92 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn92 #-}
+happyOut92 :: (HappyAbsSyn ) -> (Token)
+happyOut92 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut92 #-}
+happyIn93 :: (Token) -> (HappyAbsSyn )
+happyIn93 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn93 #-}
+happyOut93 :: (HappyAbsSyn ) -> (Token)
+happyOut93 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut93 #-}
+happyIn94 :: (Token) -> (HappyAbsSyn )
+happyIn94 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn94 #-}
+happyOut94 :: (HappyAbsSyn ) -> (Token)
+happyOut94 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut94 #-}
+happyIn95 :: (Token) -> (HappyAbsSyn )
+happyIn95 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn95 #-}
+happyOut95 :: (HappyAbsSyn ) -> (Token)
+happyOut95 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut95 #-}
+happyIn96 :: (Token) -> (HappyAbsSyn )
+happyIn96 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn96 #-}
+happyOut96 :: (HappyAbsSyn ) -> (Token)
+happyOut96 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut96 #-}
+happyIn97 :: (Token) -> (HappyAbsSyn )
+happyIn97 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn97 #-}
+happyOut97 :: (HappyAbsSyn ) -> (Token)
+happyOut97 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut97 #-}
+happyIn98 :: (Token) -> (HappyAbsSyn )
+happyIn98 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn98 #-}
+happyOut98 :: (HappyAbsSyn ) -> (Token)
+happyOut98 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut98 #-}
+happyIn99 :: (Token) -> (HappyAbsSyn )
+happyIn99 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn99 #-}
+happyOut99 :: (HappyAbsSyn ) -> (Token)
+happyOut99 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut99 #-}
+happyIn100 :: (String) -> (HappyAbsSyn )
+happyIn100 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn100 #-}
+happyOut100 :: (HappyAbsSyn ) -> (String)
+happyOut100 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut100 #-}
+happyIn101 :: (String) -> (HappyAbsSyn )
+happyIn101 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn101 #-}
+happyOut101 :: (HappyAbsSyn ) -> (String)
+happyOut101 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut101 #-}
+happyIn102 :: (String) -> (HappyAbsSyn )
+happyIn102 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn102 #-}
+happyOut102 :: (HappyAbsSyn ) -> (String)
+happyOut102 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut102 #-}
+happyIn103 :: (String) -> (HappyAbsSyn )
+happyIn103 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn103 #-}
+happyOut103 :: (HappyAbsSyn ) -> (String)
+happyOut103 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut103 #-}
+happyIn104 :: (String) -> (HappyAbsSyn )
+happyIn104 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn104 #-}
+happyOut104 :: (HappyAbsSyn ) -> (String)
+happyOut104 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut104 #-}
+happyIn105 :: (String) -> (HappyAbsSyn )
+happyIn105 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn105 #-}
+happyOut105 :: (HappyAbsSyn ) -> (String)
+happyOut105 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut105 #-}
+happyIn106 :: (Int) -> (HappyAbsSyn )
+happyIn106 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn106 #-}
+happyOut106 :: (HappyAbsSyn ) -> (Int)
+happyOut106 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut106 #-}
+happyIn107 :: (Int) -> (HappyAbsSyn )
+happyIn107 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn107 #-}
+happyOut107 :: (HappyAbsSyn ) -> (Int)
+happyOut107 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut107 #-}
+happyIn108 :: (Double) -> (HappyAbsSyn )
+happyIn108 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn108 #-}
+happyOut108 :: (HappyAbsSyn ) -> (Double)
+happyOut108 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut108 #-}
+happyIn109 :: ([String]) -> (HappyAbsSyn )
+happyIn109 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyIn109 #-}
+happyOut109 :: (HappyAbsSyn ) -> ([String])
+happyOut109 x = Happy_GHC_Exts.unsafeCoerce# x
+{-# INLINE happyOut109 #-}
 happyInTok :: (Token) -> (HappyAbsSyn )
 happyInTok x = Happy_GHC_Exts.unsafeCoerce# x
 {-# INLINE happyInTok #-}
@@ -461,21 +668,21 @@
 
 
 happyActOffsets :: HappyAddr
-happyActOffsets = HappyA# "\x3d\x00\x00\x00\x4a\x01\x3d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x01\x68\x01\x63\x01\x00\x00\x46\x01\x77\x01\x77\x01\x00\x00\x5b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5a\x01\x59\x01\x00\x00\x45\x01\x43\x01\x9c\x00\x9c\x00\x40\x01\x00\x00\x39\x01\x77\x01\x32\x01\x00\x00\x37\x01\x35\x01\x02\x03\xf2\x02\x34\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4d\x01\x00\x00\x00\x00\x00\x00\x33\x01\xf2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x67\x00\x00\x00\x31\x01\x00\x00\x00\x00\x00\x00\x65\x00\x00\x00\x2c\x01\x11\x00\x00\x00\x0f\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x01\x00\x00\xf8\x00\x00\x00\x00\x00\xd3\x00\x09\x01\x77\x01\x00\x00\x00\x00\x00\x00\xf3\x00\x01\x01\x00\x00\xd3\x00\xd6\x00\xe9\x03\xd5\x00\x09\x01\x09\x01\x09\x01\x09\x01\x00\x00\x09\x01\x00\x00\x00\x00\x00\x00\xe0\x00\xf2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf2\x02\xf2\x02\xcb\x00\xca\x00\xb6\x00\xc4\x00\x00\x00\xc7\x00\xc5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\x00\xbb\x00\xb9\x00\xb8\x00\x00\x00\x00\x00\xb4\x00\x00\x00\xad\x00\x00\x00\x00\x00\xa1\x00\x00\x00\xdd\x03\x00\x00\xa0\x00\x90\x00\x8a\x00\x00\x00\x00\x00\x00\x00\xf2\x02\x94\x00\x91\x00\x00\x00\xe9\x03\xe9\x03\x00\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x09\x01\x6d\x00\x84\x00\x00\x00\xf2\x02\x00\x00\xf2\x02\x00\x00\x6f\x00\x66\x00\xf2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x00\x00\xe9\x03\x52\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyActOffsets = HappyA# "\x7c\x00\x00\x00\x5b\x02\x7c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\x02\x79\x02\x79\x02\x50\x02\x50\x02\x50\x02\x00\x00\x00\x00\x50\x02\x00\x00\x00\x00\x52\x02\x41\x02\xd9\x00\xd9\x00\x00\x00\x65\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x02\x3f\x02\x3f\x02\x5f\x02\x00\x00\x5f\x02\x00\x00\x00\x00\x60\x02\x5e\x02\x3c\x02\x90\x01\x00\x00\x00\x00\x00\x00\x90\x01\x5a\x02\x00\x00\x5a\x02\x00\x00\xd9\x00\x39\x02\x58\x02\x38\x02\x00\x00\x00\x00\x38\x02\x00\x00\x57\x02\x43\x02\xfe\x01\xa6\x01\x43\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x01\x00\x00\x00\x00\x00\x00\x44\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x30\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x45\x02\x09\x00\x00\x00\x45\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x18\x02\x36\x02\x00\x00\x29\x02\x00\x00\x00\x00\x48\x01\xe8\x01\xd9\x00\x00\x00\x16\x02\x00\x00\x00\x00\x00\x00\x00\x00\x28\x02\x25\x02\x00\x00\x48\x01\x13\x02\x24\x02\xb0\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x02\xe8\x01\xe8\x01\xe8\x01\xe8\x01\x00\x00\xe8\x01\x00\x00\x00\x00\xff\x01\xff\x01\x00\x00\x03\x02\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa6\x01\xa6\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xf0\x01\xec\x01\x0d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x01\xd8\x01\x00\x00\xe1\x01\xe7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe7\x01\xe0\x01\xe0\x01\xe0\x01\x00\x00\x00\x00\xdc\x01\x00\x00\xd6\x01\x00\x00\x00\x00\xde\x01\x00\x00\x56\x02\x00\x00\xde\x01\xd7\x01\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\xa6\x01\xc7\x01\xb8\x01\x00\x00\xb0\x02\xb0\x02\x97\x01\x00\x00\xb3\x01\x00\x00\x00\x00\x00\x00\xe8\x01\x92\x01\xa5\x01\x00\x00\xa6\x01\x00\x00\xa6\x01\x00\x00\x98\x01\xf5\x00\xa6\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x01\x00\x00\xb0\x02\xab\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 happyGotoOffsets :: HappyAddr
-happyGotoOffsets = HappyA# "\x7c\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x35\x00\xf9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\xfc\xff\xfb\xff\x00\x00\x00\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x02\x80\x00\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\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\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x64\x02\xbf\x02\x7f\x00\x00\x00\x00\x00\x00\x00\x42\x00\x00\x00\x00\x00\x94\x02\x00\x00\xfc\x03\x00\x00\x69\x03\x47\x03\x25\x03\xad\x03\x00\x00\x8b\x03\x00\x00\x00\x00\x00\x00\x05\x00\xca\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93\x01\x5c\x01\x00\x00\x00\x00\x18\x00\x0a\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\xd9\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\xe2\x03\x08\x04\x00\x00\xda\xff\x00\x00\x00\x00\x00\x00\x03\x03\x04\x00\x00\x00\x00\x00\x25\x01\x00\x00\xee\x00\x00\x00\x07\x00\xfa\xff\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
+happyGotoOffsets = HappyA# "\x46\x00\x00\x00\x00\x00\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x66\x01\x4d\x01\x45\x01\x42\x01\x3d\x01\x3c\x01\x00\x00\x00\x00\x2b\x01\x00\x00\x00\x00\x0d\x00\x29\x01\xd3\x03\x7e\x03\x00\x00\x3e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1e\x01\x1d\x01\x1c\x01\x39\x01\x00\x00\x60\x00\x00\x00\x00\x00\x2c\x01\x2a\x01\x06\x01\x4e\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x24\x01\x00\x00\x22\x01\x00\x00\x43\x06\x04\x01\x11\x01\xee\x00\x00\x00\x00\x00\xeb\x00\x00\x00\x0a\x01\x08\x01\x8a\x03\xbe\x00\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x00\x00\x00\x00\x00\x00\x00\x09\x01\x34\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xed\xff\x00\x00\x00\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x00\x00\xf2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\xc5\x00\xc4\x00\xc3\x00\xc2\x00\xc0\x00\xac\x00\xa4\x00\xa3\x00\x0b\x00\x00\x00\xf3\xff\x00\x00\x00\x00\xdf\x03\x80\x04\x38\x06\x00\x00\xa2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x00\xc1\x00\x00\x00\x32\x04\x9d\x00\xbb\x00\xff\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8b\x00\x24\x05\xfb\x04\xd2\x04\x76\x05\x00\x00\x4d\x05\x00\x00\x00\x00\x94\x00\x91\x00\x00\x00\xa5\x00\xda\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x02\x26\x02\x8f\x00\x8e\x00\x8d\x00\x77\x00\x76\x00\x75\x00\x6b\x00\x8a\x00\x84\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x3d\x00\x00\x00\x83\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6d\x00\x6a\x00\x69\x00\x67\x00\x00\x00\x00\x00\x03\x00\x00\x00\x4c\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x88\x05\x00\x00\x29\x00\x04\x00\x00\x00\xf1\xff\x00\x00\x00\x00\x00\x00\xfa\xff\xfb\xff\xf5\xff\x00\x00\xc8\x05\x0e\x06\xd0\xff\x00\x00\xbf\x00\x00\x00\x00\x00\x00\x00\xa9\x04\xa1\x00\xdf\xff\x00\x00\xcc\x01\x00\x00\x72\x01\x00\x00\x21\x00\x0e\x00\x18\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcc\xff\x00\x00\xb9\x05\xc4\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#
 
 happyDefActions :: HappyAddr
-happyDefActions = HappyA# "\xfe\xff\x00\x00\x00\x00\xfe\xff\xfc\xff\xf9\xff\xf8\xff\xfb\xff\x00\x00\x00\x00\x00\x00\xfa\xff\x00\x00\x00\x00\x00\x00\xfd\xff\x00\x00\x8e\xff\x8c\xff\x83\xff\x82\xff\x81\xff\x8b\xff\x84\xff\x8d\xff\x00\x00\x9f\xff\x85\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf3\xff\x00\x00\x00\x00\x00\x00\xa1\xff\x00\x00\x9e\xff\x00\x00\x00\x00\xf4\xff\xf2\xff\xf0\xff\xef\xff\xed\xff\xec\xff\xf1\xff\xe5\xff\xe4\xff\xdd\xff\x00\x00\x00\x00\xe3\xff\xca\xff\xc9\xff\xc6\xff\xc5\xff\xc8\xff\x00\x00\xbe\xff\xc7\xff\xb9\xff\xb7\xff\xbb\xff\xb5\xff\xb4\xff\xc4\xff\xb0\xff\xae\xff\xbf\xff\xac\xff\xaa\xff\xbd\xff\xb6\xff\xad\xff\xa9\xff\xb3\xff\x00\x00\xd3\xff\xd2\xff\xcb\xff\xb2\xff\x8a\xff\x89\xff\xa8\xff\x87\xff\x86\xff\x88\xff\xf4\xff\xdb\xff\xd9\xff\xd5\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x9d\xff\xd6\xff\x00\x00\x00\x00\xda\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\xc1\xff\xc0\xff\xde\xff\x00\x00\x00\x00\xd1\xff\xd0\xff\xce\xff\xcd\xff\xcc\xff\xcf\xff\x00\x00\x00\x00\x00\x00\x00\x00\xea\xff\xe7\xff\xee\xff\x00\x00\xe0\xff\xd4\xff\xbc\xff\xb1\xff\xba\xff\xc3\xff\xa7\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x97\xff\xa3\xff\xa5\xff\x9c\xff\x94\xff\x9a\xff\x99\xff\x96\xff\x00\x00\x95\xff\x00\x00\x00\x00\xd9\xff\xdc\xff\xd8\xff\xf6\xff\x00\x00\x90\xff\x00\x00\x92\xff\x00\x00\x00\x00\xf5\xff\x00\x00\xab\xff\xaf\xff\xb8\xff\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xeb\xff\x00\x00\xf7\xff\xea\xff\xe7\xff\x00\x00\xdf\xff\xa6\xff\xa4\xff\xa2\xff\x9b\xff\x00\x00\x91\xff\x00\x00\x00\x00\x93\xff\x8f\xff\x98\xff\xe1\xff\xe6\xff\xe9\xff"#
+happyDefActions = HappyA# "\xfe\xff\x00\x00\x00\x00\xfe\xff\xfc\xff\xf9\xff\xf8\xff\xfb\xff\x00\x00\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\xfa\xff\x67\xff\x5d\xff\x68\xff\x69\xff\x00\x00\x5d\xff\x00\x00\x00\x00\xfd\xff\x00\x00\x8e\xff\x8c\xff\x83\xff\x82\xff\x81\xff\x8b\xff\x84\xff\x8d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x80\xff\x9f\xff\x85\xff\x5c\xff\x00\x00\x00\x00\x5d\xff\x00\x00\x5f\xff\x61\xff\x66\xff\x00\x00\x00\x00\xf3\xff\x00\x00\x7c\xff\x00\x00\x5d\xff\x00\x00\x5d\xff\x7f\xff\xa1\xff\x5d\xff\x7e\xff\x00\x00\x9e\xff\x00\x00\x00\x00\xf4\xff\xf2\xff\xf0\xff\xef\xff\xed\xff\xec\xff\xf1\xff\xe5\xff\xe4\xff\xdd\xff\x00\x00\x00\x00\xe3\xff\xca\xff\xc9\xff\xc6\xff\xc5\xff\xc8\xff\x00\x00\xbe\xff\xc7\xff\xb9\xff\xb7\xff\xbb\xff\xb5\xff\xb4\xff\xc4\xff\xb0\xff\xae\xff\xbf\xff\xac\xff\xaa\xff\xbd\xff\xb6\xff\xad\xff\xa9\xff\xb3\xff\x00\x00\xd3\xff\xd2\xff\xcb\xff\xb2\xff\x8a\xff\x89\xff\xa8\xff\x87\xff\x86\xff\x88\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\xf4\xff\xdb\xff\xd9\xff\xd5\xff\xd7\xff\x00\x00\x00\x00\x00\x00\xa0\xff\x5d\xff\x7b\xff\x7d\xff\x9d\xff\xd6\xff\x00\x00\x00\x00\xda\xff\x00\x00\x5d\xff\x00\x00\x00\x00\x5e\xff\x60\xff\x62\xff\x63\xff\x64\xff\x65\xff\x6a\xff\x6d\xff\x6e\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\xff\x00\x00\xc1\xff\xc0\xff\x5d\xff\x5d\xff\xde\xff\x00\x00\x00\x00\xd1\xff\xd0\xff\xce\xff\xcd\xff\xcc\xff\xcf\xff\x00\x00\x00\x00\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x5d\xff\x00\x00\x00\x00\x6c\xff\x71\xff\x72\xff\x73\xff\x74\xff\x75\xff\x76\xff\xea\xff\xe7\xff\xee\xff\x00\x00\xe0\xff\x6f\xff\x70\xff\xd4\xff\xbc\xff\xb1\xff\xba\xff\xc3\xff\xa7\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x97\xff\xa3\xff\xa5\xff\x9c\xff\x94\xff\x9a\xff\x99\xff\x96\xff\x00\x00\x95\xff\x00\x00\x00\x00\x6b\xff\xd9\xff\xdc\xff\xd8\xff\xf6\xff\x00\x00\x90\xff\x00\x00\x92\xff\x00\x00\x00\x00\x5d\xff\xf5\xff\x00\x00\xab\xff\xaf\xff\xb8\xff\x00\x00\x00\x00\x00\x00\xe8\xff\x00\x00\xeb\xff\x00\x00\xf7\xff\xea\xff\xe7\xff\x00\x00\xdf\xff\xa6\xff\xa4\xff\xa2\xff\x77\xff\x9b\xff\x00\x00\x91\xff\x00\x00\x00\x00\x93\xff\x8f\xff\x98\xff\xe1\xff\xe6\xff\xe9\xff"#
 
 happyCheck :: HappyAddr
-happyCheck = HappyA# "\xff\xff\x06\x00\x06\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x35\x00\x0d\x00\x36\x00\x0f\x00\x10\x00\x0c\x00\x12\x00\x11\x00\x11\x00\x3d\x00\x0e\x00\x17\x00\x18\x00\x15\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x11\x00\x12\x00\x0c\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x15\x00\x32\x00\x32\x00\x3f\x00\x40\x00\x37\x00\x20\x00\x21\x00\x22\x00\x45\x00\x05\x00\x45\x00\x45\x00\x40\x00\x41\x00\x42\x00\x43\x00\x19\x00\x45\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x05\x00\x0d\x00\x38\x00\x0f\x00\x10\x00\x44\x00\x12\x00\x02\x00\x18\x00\x19\x00\x1a\x00\x17\x00\x18\x00\x02\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x24\x00\x20\x00\x21\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\x11\x00\x12\x00\x11\x00\x12\x00\x45\x00\x15\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x40\x00\x41\x00\x42\x00\x43\x00\x16\x00\x45\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x1f\x00\x0d\x00\x0a\x00\x0f\x00\x10\x00\x03\x00\x12\x00\x11\x00\x12\x00\x04\x00\x06\x00\x17\x00\x18\x00\x05\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x16\x00\x01\x00\x01\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x37\x00\x18\x00\x19\x00\x1a\x00\x0a\x00\x39\x00\x05\x00\x02\x00\x02\x00\x20\x00\x02\x00\x3f\x00\x40\x00\x40\x00\x41\x00\x42\x00\x43\x00\x45\x00\x45\x00\x0f\x00\x10\x00\x05\x00\x12\x00\x05\x00\x04\x00\x16\x00\x02\x00\x17\x00\x18\x00\x06\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x02\x00\x02\x00\x15\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x41\x00\x42\x00\x43\x00\x39\x00\x45\x00\x0f\x00\x10\x00\x1f\x00\x12\x00\x3f\x00\x40\x00\x02\x00\x11\x00\x17\x00\x18\x00\x45\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x16\x00\x05\x00\x01\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x00\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x45\x00\x0f\x00\x10\x00\x03\x00\x12\x00\x06\x00\x05\x00\x05\x00\x04\x00\x17\x00\x18\x00\x05\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x05\x00\x03\x00\x02\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x05\x00\x05\x00\x05\x00\x1b\x00\x15\x00\x16\x00\x01\x00\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x45\x00\x0f\x00\x10\x00\x01\x00\x12\x00\x25\x00\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\x20\x00\xff\xff\x22\x00\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\x14\x00\x45\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x01\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\x01\x00\x45\x00\x13\x00\x14\x00\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\x00\x04\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x32\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x32\x00\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x32\x00\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x32\x00\x40\x00\x34\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x32\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff"#
+happyCheck = HappyA# "\xff\xff\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x15\x00\x0d\x00\x15\x00\x0f\x00\x10\x00\x47\x00\x12\x00\x20\x00\x21\x00\x22\x00\x05\x00\x17\x00\x18\x00\x47\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x11\x00\x12\x00\x0e\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x0c\x00\x4f\x00\x0c\x00\x05\x00\x11\x00\x12\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x35\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x49\x00\x45\x00\x46\x00\x11\x00\x12\x00\x56\x00\x57\x00\x4a\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x0e\x00\x5b\x00\x4a\x00\x5b\x00\x4b\x00\x06\x00\x44\x00\x58\x00\x59\x00\x06\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x5a\x00\x0d\x00\x37\x00\x0f\x00\x10\x00\x60\x00\x12\x00\x46\x00\x20\x00\x21\x00\x46\x00\x17\x00\x18\x00\x4a\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x5b\x00\x37\x00\x5b\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x45\x00\x5d\x00\x5e\x00\x5f\x00\x45\x00\x18\x00\x19\x00\x1a\x00\x5a\x00\x38\x00\x11\x00\x12\x00\x4f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x24\x00\x45\x00\x46\x00\x5d\x00\x5e\x00\x5f\x00\x56\x00\x5d\x00\x5e\x00\x5f\x00\x4a\x00\x5d\x00\x5e\x00\x5f\x00\x47\x00\x65\x00\x47\x00\x47\x00\x11\x00\x65\x00\x58\x00\x59\x00\x11\x00\x4a\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x4a\x00\x0d\x00\x49\x00\x0f\x00\x10\x00\x4b\x00\x12\x00\x47\x00\x47\x00\x32\x00\x69\x00\x17\x00\x18\x00\x32\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x69\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x36\x00\x69\x00\x69\x00\x69\x00\x20\x00\x69\x00\x22\x00\x3d\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x47\x00\x45\x00\x46\x00\x64\x00\x69\x00\x48\x00\x47\x00\x64\x00\x15\x00\x69\x00\x69\x00\x69\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x19\x00\x69\x00\x58\x00\x59\x00\x15\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x69\x00\x12\x00\x69\x00\x69\x00\x69\x00\x69\x00\x17\x00\x18\x00\x69\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x46\x00\x46\x00\x46\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x48\x00\x4a\x00\x49\x00\x69\x00\x5a\x00\x5b\x00\x69\x00\x40\x00\x41\x00\x42\x00\x43\x00\x4b\x00\x45\x00\x46\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x4a\x00\x69\x00\x4a\x00\x69\x00\x58\x00\x59\x00\x48\x00\x47\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x4a\x00\x12\x00\x69\x00\x69\x00\x69\x00\x4a\x00\x17\x00\x18\x00\x46\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x69\x00\x46\x00\x69\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x69\x00\x69\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x69\x00\x46\x00\x02\x00\x16\x00\x0a\x00\x20\x00\x1f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x03\x00\x45\x00\x46\x00\x13\x00\x14\x00\x24\x00\x04\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x58\x00\x59\x00\x05\x00\x16\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x06\x00\x12\x00\x01\x00\x0a\x00\x05\x00\x02\x00\x17\x00\x18\x00\x04\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x05\x00\x15\x00\x02\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x01\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x40\x00\x41\x00\x42\x00\x43\x00\x16\x00\x45\x00\x46\x00\x06\x00\x24\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x1f\x00\x24\x00\x58\x00\x59\x00\x02\x00\x02\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\x24\x00\x12\x00\x11\x00\x24\x00\x05\x00\x24\x00\x17\x00\x18\x00\x16\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x01\x00\x03\x00\x05\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\x00\x04\x00\x04\x00\x24\x00\x24\x00\x06\x00\x05\x00\x24\x00\x03\x00\x02\x00\x24\x00\x05\x00\x24\x00\x40\x00\x41\x00\x42\x00\x43\x00\x05\x00\x45\x00\x46\x00\x1b\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x24\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x01\x00\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x25\x00\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x03\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\xff\xff\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x0f\x00\x10\x00\xff\xff\x12\x00\xff\xff\xff\xff\xff\xff\xff\xff\x17\x00\x18\x00\xff\xff\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\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\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x13\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x14\x00\xff\xff\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x16\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\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\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\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\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x40\x00\x41\x00\x42\x00\x43\x00\x32\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x49\x00\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x32\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x32\x00\xff\xff\x34\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\x32\x00\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\xff\xff\xff\xff\x40\x00\xff\xff\xff\xff\x43\x00\xff\xff\x45\x00\xff\xff\xff\xff\x48\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\xff\xff\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\xff\xff\xff\xff\xff\xff\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x39\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\x39\x00\x45\x00\xff\xff\xff\xff\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\xff\xff\xff\xff\xff\xff\x45\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\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x65\x00\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff"#
 
 happyTable :: HappyAddr
-happyTable = HappyA# "\x00\x00\x20\x00\x22\x00\x0f\x00\x03\x00\x04\x00\x05\x00\x06\x00\xc3\x00\xbe\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\xa6\x00\x2f\x00\xb8\x00\x30\x00\x31\x00\xc4\x00\x32\x00\xb6\x00\x84\x00\xb9\x00\xae\x00\x33\x00\x34\x00\x9e\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xba\xff\xba\xff\xb0\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x67\x00\x85\x00\x85\x00\x10\x00\x11\x00\x07\x00\x6f\x00\x70\x00\x71\x00\x12\x00\x69\x00\x21\x00\x21\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x76\x00\x12\x00\x6b\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x7f\x00\x2f\x00\x1c\x00\x30\x00\x31\x00\x1a\x00\x32\x00\xc0\x00\x09\x00\x0a\x00\x0b\x00\x33\x00\x34\x00\xc2\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x0c\x00\x6f\x00\x70\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x19\x00\x11\x00\xb1\xff\xb1\xff\xbc\xff\xbc\xff\x12\x00\xb0\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\xb2\x00\x12\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x57\x00\x2f\x00\xb6\x00\x30\x00\x31\x00\x99\x00\x32\x00\x73\x00\x74\x00\xbd\x00\xa0\x00\x33\x00\x34\x00\xbe\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x69\x00\xa1\x00\xa5\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x07\x00\x14\x00\x15\x00\x16\x00\xa6\x00\x63\x00\xa8\x00\xa9\x00\xaa\x00\x18\x00\xab\x00\x27\x00\x11\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x12\x00\x12\x00\xc2\x00\x31\x00\xac\x00\x32\x00\xad\x00\xae\x00\xb2\x00\x81\x00\x33\x00\x34\x00\xb3\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x90\x00\x9c\x00\xb0\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x61\x00\x14\x00\x15\x00\x16\x00\x17\x00\x54\x00\x55\x00\x56\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x26\x00\x12\x00\xb3\x00\x31\x00\x57\x00\x32\x00\x27\x00\x11\x00\x9e\x00\x73\x00\x33\x00\x34\x00\x12\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x69\x00\x6b\x00\x6d\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x54\x00\x55\x00\x56\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x6e\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x6f\x00\x12\x00\xb4\x00\x31\x00\x76\x00\x32\x00\x26\x00\x6b\x00\x62\x00\x63\x00\x33\x00\x34\x00\x29\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2a\x00\x24\x00\x25\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x78\x00\x79\x00\x7a\x00\x7b\x00\x7c\x00\x7d\x00\x1e\x00\x1f\x00\x20\x00\x1c\x00\x7e\x00\x7f\x00\x0d\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x0e\x00\x12\x00\x81\x00\x31\x00\x0f\x00\x32\x00\xff\xff\x00\x00\x00\x00\x00\x00\x33\x00\x34\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x00\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x82\x00\x31\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x34\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x83\x00\x31\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x34\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x74\x00\x31\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x33\x00\x34\x00\x00\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x5a\x00\x5b\x00\x00\x00\x5c\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x66\x00\x12\x00\x5c\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x9c\x00\x5d\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x64\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x3b\x00\x65\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x00\x00\x50\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\x4c\x00\x4d\x00\x4e\x00\x60\x00\x12\x00\x51\x00\x52\x00\x00\x00\x00\x00\x53\x00\x14\x00\x15\x00\x16\x00\x17\x00\x54\x00\x55\x00\x56\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\x00\x00\x61\x00\x14\x00\x15\x00\x16\x00\x17\x00\x54\x00\x55\x00\x56\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x8b\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\x00\xb7\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x8b\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\x00\x8c\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x8b\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\x00\x8d\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x8b\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\x00\x8e\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x86\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\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\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x8a\x00\x3d\x00\x87\x00\x3f\x00\x40\x00\x41\x00\x42\x00\x43\x00\x88\x00\x45\x00\x46\x00\x89\x00\x48\x00\x49\x00\x4a\x00\x99\x00\xa4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x00\x00\x12\x00\x00\x00\x00\x00\x14\x00\x15\x00\x16\x00\x17\x00\x9a\x00\x9b\x00\x00\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x14\x00\x15\x00\x16\x00\x17\x00\x9a\x00\x9b\x00\x90\x00\x57\x00\x18\x00\x58\x00\x59\x00\x5a\x00\x00\x00\x00\x00\xa1\x00\x93\x00\x94\x00\x95\x00\xc0\x00\x90\x00\x96\x00\x00\x00\x00\x00\x97\x00\x00\x00\x12\x00\x00\x00\xa1\x00\x93\x00\x94\x00\x95\x00\xbb\x00\x90\x00\x96\x00\x00\x00\x00\x00\x97\x00\x00\x00\x12\x00\x00\x00\xa1\x00\x93\x00\x94\x00\x95\x00\xa2\x00\x90\x00\x96\x00\x91\x00\x00\x00\x97\x00\x00\x00\x12\x00\x00\x00\x92\x00\x93\x00\x94\x00\x95\x00\x90\x00\x00\x00\x96\x00\x00\x00\x00\x00\x97\x00\x00\x00\x12\x00\xba\x00\x93\x00\x94\x00\x95\x00\x00\x00\x00\x00\x96\x00\x00\x00\x00\x00\x97\x00\x00\x00\x12\x00\x00\x00"#
+happyTable = HappyA# "\x00\x00\x00\x01\x42\x00\x43\x00\x44\x00\x45\x00\xde\x00\x46\x00\x8a\x00\x47\x00\x48\x00\x01\x01\x49\x00\x9c\x00\x9d\x00\x9e\x00\x8d\x00\x4a\x00\x4b\x00\x03\x01\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xba\xff\xba\xff\x05\x01\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x06\x01\xf6\x00\xf1\x00\xb5\x00\xb1\xff\xb1\xff\x17\x00\x03\x00\x04\x00\x05\x00\x06\x00\xe7\x00\xfb\x00\x62\x00\x63\x00\x64\x00\x65\x00\xfe\x00\x1a\x00\x66\x00\xbc\xff\xbc\xff\x9f\x00\xa0\x00\xff\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\xef\x00\x8b\x00\xe8\x00\x8b\x00\xdf\x00\x31\x00\x26\x00\x67\x00\x68\x00\x33\x00\x8e\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x98\x00\x42\x00\x43\x00\x44\x00\x45\x00\xf0\x00\x46\x00\x07\x00\x47\x00\x48\x00\x27\x00\x49\x00\xe0\x00\x9c\x00\x9d\x00\xe4\x00\x4a\x00\x4b\x00\x8e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xf2\x00\x07\x00\xf2\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x32\x00\x08\x00\x09\x00\x0a\x00\x32\x00\x0c\x00\x0d\x00\x0e\x00\xf0\x00\x29\x00\xa2\x00\xa3\x00\xe5\x00\x62\x00\x63\x00\x64\x00\x65\x00\x0f\x00\x1a\x00\x66\x00\x08\x00\x09\x00\x0a\x00\x9f\x00\x1b\x00\x1c\x00\x1d\x00\x2a\x00\x1b\x00\x1c\x00\x1d\x00\xe9\x00\x1f\x00\xea\x00\xeb\x00\xf7\x00\x1f\x00\x67\x00\x68\x00\xc1\x00\xec\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\xed\x00\x46\x00\xee\x00\x47\x00\x48\x00\xf3\x00\x49\x00\xb6\x00\xce\x00\xc2\x00\xb7\x00\x4a\x00\x4b\x00\xc2\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\xb8\x00\xb9\x00\xba\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\xf9\x00\xbb\x00\xbc\x00\xbd\x00\x23\x00\xc3\x00\x24\x00\xfa\x00\xc4\x00\x62\x00\x63\x00\x64\x00\x65\x00\xda\x00\x1a\x00\x66\x00\x6d\x00\xdb\x00\xd7\x00\xdd\x00\x6d\x00\xb5\x00\x85\x00\x8f\x00\x90\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xa5\x00\x91\x00\x67\x00\x68\x00\xb5\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x04\x01\x48\x00\x92\x00\x49\x00\x93\x00\x94\x00\x95\x00\x96\x00\x4a\x00\x4b\x00\x97\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x99\x00\x9a\x00\x9b\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xa4\x00\x81\x00\x82\x00\x84\x00\xac\x00\xad\x00\x39\x00\x62\x00\x63\x00\x64\x00\x65\x00\x3a\x00\x1a\x00\x66\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x3f\x00\x3c\x00\x40\x00\x34\x00\x67\x00\x68\x00\x35\x00\x37\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf4\x00\x48\x00\x2c\x00\x49\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x4a\x00\x4b\x00\x13\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x25\x00\x15\x00\x28\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x0f\x00\x11\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x12\x00\x16\x00\x39\x00\x8d\x00\xe7\x00\x23\x00\x78\x00\x62\x00\x63\x00\x64\x00\x65\x00\x37\x00\x1a\x00\x66\x00\x72\x00\x73\x00\x11\x00\x84\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x67\x00\x68\x00\x2c\x00\x8d\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xf5\x00\x48\x00\x3c\x00\x49\x00\x15\x00\xe7\x00\x2c\x00\x39\x00\x4a\x00\x4b\x00\x84\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x2c\x00\xb5\x00\x39\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x15\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x62\x00\x63\x00\x64\x00\x65\x00\x8d\x00\x1a\x00\x66\x00\x3c\x00\x11\x00\x74\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x77\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x78\x00\x11\x00\x67\x00\x68\x00\x39\x00\x39\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbe\x00\x48\x00\x11\x00\x49\x00\xa2\x00\x11\x00\x2c\x00\x11\x00\x4a\x00\x4b\x00\x8d\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x15\x00\x37\x00\x2c\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\x00\x84\x00\x84\x00\x11\x00\x11\x00\x3c\x00\x2c\x00\x11\x00\x37\x00\x39\x00\x11\x00\x2c\x00\x11\x00\x62\x00\x63\x00\x64\x00\x65\x00\x2c\x00\x1a\x00\x66\x00\x22\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x11\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x15\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\xff\xff\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xbf\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x37\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\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\x00\x00\x00\x0c\x00\x0d\x00\x0e\x00\x22\x00\x75\x00\x76\x00\x00\x00\x78\x00\x23\x00\x79\x00\x24\x00\x7a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xc0\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\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\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\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\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xa3\x00\x48\x00\x00\x00\x49\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\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\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x66\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\x67\x00\x68\x00\x00\x00\x00\x00\x69\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x7a\x00\x7b\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x18\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x7f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x89\x00\x00\x00\x7c\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x24\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xdc\x00\x7d\x00\x00\x00\x00\x00\x00\x00\x7e\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\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\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\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\x80\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x87\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x00\x00\x00\x00\x00\x00\x52\x00\x88\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\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\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xf8\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcb\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcc\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xca\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\xcd\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\x00\x54\x00\xc6\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xc7\x00\x5c\x00\x5d\x00\xc8\x00\x5f\x00\x60\x00\x61\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x62\x00\x63\x00\x64\x00\x65\x00\xcf\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xe2\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe3\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\xcf\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\x02\x01\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xe1\x00\xd2\x00\xd3\x00\xd4\x00\xfd\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\xcf\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\xcf\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\xfc\x00\xd2\x00\xd3\x00\xd4\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x00\x00\xd6\x00\x00\x00\x1a\x00\x00\x00\x00\x00\xd7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x00\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\xd8\x00\xd9\x00\x86\x00\x6d\x00\x1f\x00\x6e\x00\x6f\x00\x70\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x3d\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1a\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\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00"#
 
-happyReduceArr = Happy_Data_Array.array (1, 126) [
+happyReduceArr = Happy_Data_Array.array (1, 163) [
 	(1 , happyReduce_1),
 	(2 , happyReduce_2),
 	(3 , happyReduce_3),
@@ -601,11 +808,48 @@
 	(123 , happyReduce_123),
 	(124 , happyReduce_124),
 	(125 , happyReduce_125),
-	(126 , happyReduce_126)
+	(126 , happyReduce_126),
+	(127 , happyReduce_127),
+	(128 , happyReduce_128),
+	(129 , happyReduce_129),
+	(130 , happyReduce_130),
+	(131 , happyReduce_131),
+	(132 , happyReduce_132),
+	(133 , happyReduce_133),
+	(134 , happyReduce_134),
+	(135 , happyReduce_135),
+	(136 , happyReduce_136),
+	(137 , happyReduce_137),
+	(138 , happyReduce_138),
+	(139 , happyReduce_139),
+	(140 , happyReduce_140),
+	(141 , happyReduce_141),
+	(142 , happyReduce_142),
+	(143 , happyReduce_143),
+	(144 , happyReduce_144),
+	(145 , happyReduce_145),
+	(146 , happyReduce_146),
+	(147 , happyReduce_147),
+	(148 , happyReduce_148),
+	(149 , happyReduce_149),
+	(150 , happyReduce_150),
+	(151 , happyReduce_151),
+	(152 , happyReduce_152),
+	(153 , happyReduce_153),
+	(154 , happyReduce_154),
+	(155 , happyReduce_155),
+	(156 , happyReduce_156),
+	(157 , happyReduce_157),
+	(158 , happyReduce_158),
+	(159 , happyReduce_159),
+	(160 , happyReduce_160),
+	(161 , happyReduce_161),
+	(162 , happyReduce_162),
+	(163 , happyReduce_163)
 	]
 
 happy_n_terms = 38 :: Int
-happy_n_nonterms = 70 :: Int
+happy_n_nonterms = 106 :: Int
 
 happyReduce_1 = happySpecReduce_0  0# happyReduction_1
 happyReduction_1  =  happyIn4
@@ -1209,7 +1453,7 @@
 
 happyReduce_77 = happySpecReduce_1  42# happyReduction_77
 happyReduction_77 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DoubleQuoted happy_var_1) -> 
+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
 	happyIn46
 		 (distinctObjectTerm (stripQuotes '"' happy_var_1)
 	)}
@@ -1289,7 +1533,7 @@
 
 happyReduce_87 = happySpecReduce_1  50# happyReduction_87
 happyReduction_87 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (UpperWord happy_var_1) -> 
+	 =  case happyOut104 happy_x_1 of { happy_var_1 -> 
 	happyIn54
 		 (V happy_var_1
 	)}
@@ -1444,7 +1688,7 @@
 
 happyReduce_106 = happySpecReduce_1  59# happyReduction_106
 happyReduction_106 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DoubleQuoted happy_var_1) -> 
+	 =  case happyOut101 happy_x_1 of { happy_var_1 -> 
 	happyIn63
 		 (GDistinctObject (stripQuotes '"' happy_var_1)
 	)}
@@ -1462,7 +1706,7 @@
 	happy_x_2 `HappyStk`
 	happy_x_1 `HappyStk`
 	happyRest)
-	 = case happyOutTok happy_x_1 of { (DollarWord happy_var_1) -> 
+	 = case happyOut102 happy_x_1 of { happy_var_1 -> 
 	case happyOut11 happy_x_3 of { happy_var_3 -> 
 	happyIn64
 		 (GFormulaData happy_var_1 happy_var_3
@@ -1510,7 +1754,7 @@
 
 happyReduce_114 = happySpecReduce_1  63# happyReduction_114
 happyReduction_114 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (UnsignedInt happy_var_1) -> 
+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
 	happyIn67
 		 (AtomicWord(show happy_var_1)
 	)}
@@ -1524,56 +1768,56 @@
 
 happyReduce_116 = happySpecReduce_1  64# happyReduction_116
 happyReduction_116 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (SingleQuoted happy_var_1) -> 
+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
 	happyIn68
 		 (AtomicWord (stripQuotes '\'' happy_var_1)
 	)}
 
 happyReduce_117 = happySpecReduce_1  65# happyReduction_117
 happyReduction_117 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DollarWord happy_var_1) -> 
+	 =  case happyOut102 happy_x_1 of { happy_var_1 -> 
 	happyIn69
 		 (happy_var_1
 	)}
 
 happyReduce_118 = happySpecReduce_1  66# happyReduction_118
 happyReduction_118 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (DollarDollarWord happy_var_1) -> 
+	 =  case happyOut103 happy_x_1 of { happy_var_1 -> 
 	happyIn70
 		 (happy_var_1
 	)}
 
 happyReduce_119 = happySpecReduce_1  67# happyReduction_119
 happyReduction_119 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (Real happy_var_1) -> 
+	 =  case happyOut108 happy_x_1 of { happy_var_1 -> 
 	happyIn71
 		 (happy_var_1
 	)}
 
 happyReduce_120 = happySpecReduce_1  67# happyReduction_120
 happyReduction_120 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (SignedInt happy_var_1) -> 
+	 =  case happyOut106 happy_x_1 of { happy_var_1 -> 
 	happyIn71
 		 (fromIntegral happy_var_1
 	)}
 
 happyReduce_121 = happySpecReduce_1  67# happyReduction_121
 happyReduction_121 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (UnsignedInt happy_var_1) -> 
+	 =  case happyOut107 happy_x_1 of { happy_var_1 -> 
 	happyIn71
 		 (fromIntegral happy_var_1
 	)}
 
 happyReduce_122 = happySpecReduce_1  68# happyReduction_122
 happyReduction_122 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (SingleQuoted happy_var_1) -> 
+	 =  case happyOut100 happy_x_1 of { happy_var_1 -> 
 	happyIn72
 		 (stripQuotes '\'' happy_var_1
 	)}
 
 happyReduce_123 = happySpecReduce_1  69# happyReduction_123
 happyReduction_123 happy_x_1
-	 =  case happyOutTok happy_x_1 of { (LowerWord happy_var_1) -> 
+	 =  case happyOut105 happy_x_1 of { happy_var_1 -> 
 	happyIn73
 		 (happy_var_1
 	)}
@@ -1596,6 +1840,300 @@
 		 ("include"
 	)
 
+happyReduce_127 = happySpecReduce_2  70# happyReduction_127
+happyReduction_127 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn74
+		 (happy_var_1
+	)}
+
+happyReduce_128 = happySpecReduce_2  71# happyReduction_128
+happyReduction_128 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn75
+		 (happy_var_1
+	)}
+
+happyReduce_129 = happySpecReduce_2  72# happyReduction_129
+happyReduction_129 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn76
+		 (happy_var_1
+	)}
+
+happyReduce_130 = happySpecReduce_2  73# happyReduction_130
+happyReduction_130 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn77
+		 (happy_var_1
+	)}
+
+happyReduce_131 = happySpecReduce_2  74# happyReduction_131
+happyReduction_131 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn78
+		 (happy_var_1
+	)}
+
+happyReduce_132 = happySpecReduce_2  75# happyReduction_132
+happyReduction_132 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn79
+		 (happy_var_1
+	)}
+
+happyReduce_133 = happySpecReduce_2  76# happyReduction_133
+happyReduction_133 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn80
+		 (happy_var_1
+	)}
+
+happyReduce_134 = happySpecReduce_2  77# happyReduction_134
+happyReduction_134 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn81
+		 (happy_var_1
+	)}
+
+happyReduce_135 = happySpecReduce_2  78# happyReduction_135
+happyReduction_135 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn82
+		 (happy_var_1
+	)}
+
+happyReduce_136 = happySpecReduce_2  79# happyReduction_136
+happyReduction_136 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn83
+		 (happy_var_1
+	)}
+
+happyReduce_137 = happySpecReduce_2  80# happyReduction_137
+happyReduction_137 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn84
+		 (happy_var_1
+	)}
+
+happyReduce_138 = happySpecReduce_2  81# happyReduction_138
+happyReduction_138 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn85
+		 (happy_var_1
+	)}
+
+happyReduce_139 = happySpecReduce_2  82# happyReduction_139
+happyReduction_139 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn86
+		 (happy_var_1
+	)}
+
+happyReduce_140 = happySpecReduce_2  83# happyReduction_140
+happyReduction_140 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn87
+		 (happy_var_1
+	)}
+
+happyReduce_141 = happySpecReduce_2  84# happyReduction_141
+happyReduction_141 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn88
+		 (happy_var_1
+	)}
+
+happyReduce_142 = happySpecReduce_2  85# happyReduction_142
+happyReduction_142 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn89
+		 (happy_var_1
+	)}
+
+happyReduce_143 = happySpecReduce_2  86# happyReduction_143
+happyReduction_143 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn90
+		 (happy_var_1
+	)}
+
+happyReduce_144 = happySpecReduce_2  87# happyReduction_144
+happyReduction_144 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn91
+		 (happy_var_1
+	)}
+
+happyReduce_145 = happySpecReduce_2  88# happyReduction_145
+happyReduction_145 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn92
+		 (happy_var_1
+	)}
+
+happyReduce_146 = happySpecReduce_2  89# happyReduction_146
+happyReduction_146 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn93
+		 (happy_var_1
+	)}
+
+happyReduce_147 = happySpecReduce_2  90# happyReduction_147
+happyReduction_147 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn94
+		 (happy_var_1
+	)}
+
+happyReduce_148 = happySpecReduce_2  91# happyReduction_148
+happyReduction_148 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn95
+		 (happy_var_1
+	)}
+
+happyReduce_149 = happySpecReduce_2  92# happyReduction_149
+happyReduction_149 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn96
+		 (happy_var_1
+	)}
+
+happyReduce_150 = happySpecReduce_2  93# happyReduction_150
+happyReduction_150 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn97
+		 (happy_var_1
+	)}
+
+happyReduce_151 = happySpecReduce_2  94# happyReduction_151
+happyReduction_151 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn98
+		 (happy_var_1
+	)}
+
+happyReduce_152 = happySpecReduce_2  95# happyReduction_152
+happyReduction_152 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { happy_var_1 -> 
+	happyIn99
+		 (happy_var_1
+	)}
+
+happyReduce_153 = happySpecReduce_2  96# happyReduction_153
+happyReduction_153 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (SingleQuoted happy_var_1) -> 
+	happyIn100
+		 (happy_var_1
+	)}
+
+happyReduce_154 = happySpecReduce_2  97# happyReduction_154
+happyReduction_154 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DoubleQuoted happy_var_1) -> 
+	happyIn101
+		 (happy_var_1
+	)}
+
+happyReduce_155 = happySpecReduce_2  98# happyReduction_155
+happyReduction_155 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DollarWord happy_var_1) -> 
+	happyIn102
+		 (happy_var_1
+	)}
+
+happyReduce_156 = happySpecReduce_2  99# happyReduction_156
+happyReduction_156 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (DollarDollarWord happy_var_1) -> 
+	happyIn103
+		 (happy_var_1
+	)}
+
+happyReduce_157 = happySpecReduce_2  100# happyReduction_157
+happyReduction_157 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (UpperWord happy_var_1) -> 
+	happyIn104
+		 (happy_var_1
+	)}
+
+happyReduce_158 = happySpecReduce_2  101# happyReduction_158
+happyReduction_158 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (LowerWord happy_var_1) -> 
+	happyIn105
+		 (happy_var_1
+	)}
+
+happyReduce_159 = happySpecReduce_2  102# happyReduction_159
+happyReduction_159 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (SignedInt happy_var_1) -> 
+	happyIn106
+		 (happy_var_1
+	)}
+
+happyReduce_160 = happySpecReduce_2  103# happyReduction_160
+happyReduction_160 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (UnsignedInt happy_var_1) -> 
+	happyIn107
+		 (happy_var_1
+	)}
+
+happyReduce_161 = happySpecReduce_2  104# happyReduction_161
+happyReduction_161 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (Real happy_var_1) -> 
+	happyIn108
+		 (happy_var_1
+	)}
+
+happyReduce_162 = happySpecReduce_0  105# happyReduction_162
+happyReduction_162  =  happyIn109
+		 ([]
+	)
+
+happyReduce_163 = happySpecReduce_2  105# happyReduction_163
+happyReduction_163 happy_x_2
+	happy_x_1
+	 =  case happyOutTok happy_x_1 of { (CommentToken happy_var_1) -> 
+	case happyOut109 happy_x_2 of { happy_var_2 -> 
+	happyIn109
+		 (happy_var_1 : happy_var_2
+	)}}
+
 happyNewToken action sts stk [] =
 	happyDoAction 37# notHappyAtAll action sts stk []
 
@@ -1683,7 +2221,7 @@
 {-# LINE 1 "templates/GenericTemplate.hs" #-}
 -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp 
 
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
+{-# LINE 30 "templates/GenericTemplate.hs" #-}
 
 
 data Happy_IntList = HappyCons Happy_GHC_Exts.Int# Happy_IntList
@@ -1692,11 +2230,11 @@
 
 
 
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
+{-# LINE 51 "templates/GenericTemplate.hs" #-}
 
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
+{-# LINE 61 "templates/GenericTemplate.hs" #-}
 
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
+{-# LINE 70 "templates/GenericTemplate.hs" #-}
 
 infixr 9 `HappyStk`
 data HappyStk a = HappyStk a (HappyStk a)
@@ -1739,35 +2277,26 @@
 
 
 				     happyShift new_state i tk st
-				     where new_state = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
-   where off    = indexShortOffAddr happyActOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# i)
+				     where !(new_state) = (n Happy_GHC_Exts.-# (1# :: Happy_GHC_Exts.Int#))
+   where !(off)    = indexShortOffAddr happyActOffsets st
+         !(off_i)  = (off Happy_GHC_Exts.+# i)
 	 check  = if (off_i Happy_GHC_Exts.>=# (0# :: Happy_GHC_Exts.Int#))
 			then (indexShortOffAddr happyCheck off_i Happy_GHC_Exts.==#  i)
 			else False
- 	 action | check     = indexShortOffAddr happyTable off_i
-		| otherwise = indexShortOffAddr happyDefActions st
+         !(action)
+          | check     = indexShortOffAddr happyTable off_i
+          | otherwise = indexShortOffAddr happyDefActions st
 
-{-# LINE 127 "templates/GenericTemplate.hs" #-}
+{-# LINE 130 "templates/GenericTemplate.hs" #-}
 
 
 indexShortOffAddr (HappyA# arr) off =
-#if __GLASGOW_HASKELL__ > 500
 	Happy_GHC_Exts.narrow16Int# i
-#elif __GLASGOW_HASKELL__ == 500
-	Happy_GHC_Exts.intToInt16# i
-#else
-	Happy_GHC_Exts.iShiftRA# (Happy_GHC_Exts.iShiftL# i 16#) 16#
-#endif
   where
-#if __GLASGOW_HASKELL__ >= 503
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
-#else
-	i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.shiftL# high 8#) low)
-#endif
-	high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
-	low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
-	off' = off Happy_GHC_Exts.*# 2#
+	!i = Happy_GHC_Exts.word2Int# (Happy_GHC_Exts.or# (Happy_GHC_Exts.uncheckedShiftL# high 8#) low)
+	!high = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr (off' Happy_GHC_Exts.+# 1#)))
+	!low  = Happy_GHC_Exts.int2Word# (Happy_GHC_Exts.ord# (Happy_GHC_Exts.indexCharOffAddr# arr off'))
+	!off' = off Happy_GHC_Exts.*# 2#
 
 
 
@@ -1781,13 +2310,13 @@
 -----------------------------------------------------------------------------
 -- HappyState data type (not arrays)
 
-{-# LINE 170 "templates/GenericTemplate.hs" #-}
+{-# LINE 163 "templates/GenericTemplate.hs" #-}
 
 -----------------------------------------------------------------------------
 -- Shifting a token
 
 happyShift new_state 0# tk st sts stk@(x `HappyStk` _) =
-     let i = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
+     let !(i) = (case Happy_GHC_Exts.unsafeCoerce# x of { (Happy_GHC_Exts.I# (i)) -> i }) in
 --     trace "shifting the error token" $
      happyDoAction i tk new_state (HappyCons (st) (sts)) (stk)
 
@@ -1831,19 +2360,19 @@
      = happyFail 0# tk st sts stk
 happyMonadReduce k nt fn j tk st sts stk =
         happyThen1 (fn stk tk) (\r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk
 
 happyMonad2Reduce k nt fn 0# tk st sts stk
      = happyFail 0# tk st sts stk
 happyMonad2Reduce k nt fn j tk st sts stk =
        happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
-       where sts1@((HappyCons (st1@(action)) (_))) = happyDrop k (HappyCons (st) (sts))
+       where !(sts1@((HappyCons (st1@(action)) (_)))) = happyDrop k (HappyCons (st) (sts))
              drop_stk = happyDropStk k stk
 
-             off    = indexShortOffAddr happyGotoOffsets st1
-             off_i  = (off Happy_GHC_Exts.+# nt)
-             new_state = indexShortOffAddr happyTable off_i
+             !(off) = indexShortOffAddr happyGotoOffsets st1
+             !(off_i) = (off Happy_GHC_Exts.+# nt)
+             !(new_state) = indexShortOffAddr happyTable off_i
 
 
 
@@ -1861,9 +2390,9 @@
 happyGoto nt j tk st = 
    {- nothing -}
    happyDoAction j tk new_state
-   where off    = indexShortOffAddr happyGotoOffsets st
-	 off_i  = (off Happy_GHC_Exts.+# nt)
- 	 new_state = indexShortOffAddr happyTable off_i
+   where !(off) = indexShortOffAddr happyGotoOffsets st
+         !(off_i) = (off Happy_GHC_Exts.+# nt)
+         !(new_state) = indexShortOffAddr happyTable off_i
 
 
 
diff --git a/logic-TPTP.cabal b/logic-TPTP.cabal
--- a/logic-TPTP.cabal
+++ b/logic-TPTP.cabal
@@ -1,5 +1,5 @@
 name: logic-TPTP    
-version: 0.2.0.1
+version: 0.2.0.3
 cabal-version: >= 1.6
 build-type: Simple
 license: GPL
@@ -41,7 +41,7 @@
                     testing/PrettyPrintFile.hs
                     testing/ParseRandom.hs
                     
-tested-with: GHC==6.10.2
+tested-with: GHC==6.12.1
 
 source-repository head
  type: darcs
@@ -50,7 +50,7 @@
  
 
 Library
- ghc-options:     -O2
+ ghc-options: -Wall -O2
  
  build-depends:      base >=4 && < 5
                    , array
@@ -63,13 +63,13 @@
                    , mtl
  
  exposed-modules:   Codec.TPTP.Import
-                   ,Codec.TPTP.Base
-                   ,Codec.TPTP
-                   ,Codec.TPTP.Pretty
-                   ,Codec.TPTP.Export
-                   ,Codec.TPTP.Diff
+                  , Codec.TPTP.Base
+                  , Codec.TPTP
+                  , Codec.TPTP.Pretty
+                  , Codec.TPTP.Export
+                  , Codec.TPTP.Diff
  
  other-modules:
                     Lexer     
                   , Parser
-                   ,Codec.TPTP.QuickCheck
+                  , Codec.TPTP.QuickCheck
